(a) That's right. Where one party indicates before the performance is due, either expressly or by conduct, that they will not perform the contract, either at all or in the manner required, there is no actual breach. However, the law recognises what is called 'anticipatory breach', or 'breach by anticipatory repudiation'.
If such breach is established, the non-breaching party has the right to immediately terminate performance, even before it is due to begin. This is only if the anticipatory repudiation involves a condition, or if non-performance would amount to a serious breach of an innominate term.
In the present case, B is clearly entitled to terminate performance of the contract as soon as A expresses his intention not to comply with the conditions of the contract.