A proof is a valid argument that establishes the truth of a statement.
In Math and CS, we mostly use informal proofs.
Why proofs in CS?
- To prove your program to be correct
- Dijkstra “Testing shows the presence of bugs, not its absence”
- To establish your OS is secure
- To prove your algorithm gives you the correct answer
- To show your system specifications are consistent
Tools in our “Proof” Toolbox
- The Rules of Inference allow us to preserve truth.
- We must begin with the truth
- We must start with premises that are true.
- To prove a mathematical statement, we will need the following tools
- Definitions
- Theorem - A statement that can be shown to be true
- axioms - Statements we assume to be true
- lemma - A helping theorem or result which is needed to prove a theorem
- proof - A valid argument that establishes the truth of a theorem
- corollary - A theorem that can be established directly from a theorem
- conjecture - A statement that is proposed to be true, usually on the basis of some partial evidence or intuition of an expert. When proof is found, the conjecture becomes a theorem.