A good proof has the following properties: * Justify each step * Write your proofs in two-column format, with each step showing a true statement in the left column and a correct justification on the right. * Statements have truth value; expressions do not. For example, an equation is either true or not. Thus, no step should consist of just an algebraic expression. * Each step must also be justified. If you cannot provide a clear and convincing reason for a particular statement in your proof, then you need to give the matter further thought and consider adding additional steps to improve the argument. * The last step is the conclusion, namely the statement which you set out to prove. See the proofs on the [[example_proofs|example proofs page]]. A bad proof may have the following properties: * The first step is a restatement of the result to be proven. * Any step is a simple expression with some value other than true or false. * Any step violates type constraints; e.g., a step that equates a number to a set cannot be valid. Use your mental type-checker!