First, When transactions being in memory pool, it was already valid by Independent verification of every full node.
Each node has its own memory pool.
A transaction in my node's memory pool might not be in your node's memory pool.
A transaction in your node's memory pool might not me in my node's memory pool.
If we are taking about CERTAINTY, then...
When a transaction is in your node's memory pool, you only know for certain that it is valid be independent verification of your node. There is no way for you to know how many other nodes (if any) have also verified the transaction.
If we are talking more about general Bitcoin topics, then a properly running full node should not relay the transaction to any other nodes until the transaction has been verified. Therefore, unless you are connected directly to a malicious node, you should never receive any invalid transactions.
and mining node should aggregate those transactions in candidate block.
Yes, solo-miner or mining pool. If you are a participant in a mining pool, then you receive the block header from the pool after the pool has already aggregated the transactions into the candidate block.
at this point, how to confirm a unconfirmed transactions?( I know that transactions in candidate block are confirmed,, So How?...)
Complete the proof-of-work on the candidate block. If you succeed, then send that completed block to all peers that you are connected to. As long as there isn't a competing block at that time which also has a valid proof-of-work, then everyone will add your block to their blockchain and relay the block to their peers. Any node that has the block in their blockchain will see the transactions of that block as having 1 confirmation.
Second, when transactions in "not chosen block" are comeback to memory pool, you mentioned that those transactions are comeback to memory pool with unconfirmed condition.
Correct. "Confirmed" means "included in a block in the blockchain" That is the DEFINITION of the word CONFIRMED. If the transaction is NOT in a block in the blockchain, then the transaction is NOT confirmed. If the transaction IS in a block in the blockchain, then the transaction IS confirmed.
at this point, those transactions were already verified? if it is not, we would verify transactions again, and then put txs in memory pool?
Nodes do not add unverified transactions to their memory pool.