---
title: "Proof Design Patterns"
source: https://www.jemoka.com/posts/kbhproof_design_patterns/
---

Based on the wise words of a crab, I will start writing down some Proof Design Patterns I saw over Axler everything.
inheriting properties (splitting, doing, merging) &ldquo;complex numbers inherit commutativity via real numbers&rdquo;
construct then generalize for uniqueness and existence
try to remember to go backwards
to prove IFF
zero is cool, and here too!, also \(1-1=0\)
\(0v = 0\) \(1-1 = 0\) \(v-v=0\) a.k.a. \(v+(-v)=0\) \(v+0 = v\) distributivity is epic: it is essentially the only tool to connect scalar multiplication and addition in a vector space
&ldquo;smallest&rdquo; double containement proofs to show set equivalence: prove one way, then prove the converse (\(a \subset b, b\subset a \Rightarrow a=b\))
couple hints
step 1: identify hypothesis (assumptions) desired conclusion (results, trying/to/proof) step 2: define write down precise, mathematical notations proving uniqueness: set up two distinct results, show that they are the same
proving negation: if the &ldquo;negative&rdquo; is distinct, but the direct case is more nebulous, use proves by contradiction
proof by induction
especially if you are dealing with polynomials, try factoring tools to help includes length of linearly-independent list \(\leq\) length of spanning list Uniqueness by construction: uniqueness part of basis of domain
pick one element that does exist pick arbitrary elements and construct a result if we are trying to prove equivalence, double-containment is a good bet
see fundamental theorem of linear maps: but basically wehnever you need to construct basis of things start with an arbiturary basis of the subspace and expand into that of the whole space
a loop in the statements makes them all equivalent
working with the square of the norm is often easier
using NFA in place of a DFA can make your life a lot easier; if you need a DFA in the end then just use subset construction remember the NFAs that are useful to make each construction for the properties of regular languages; then, construct any NFA you need to support a particular language out of those properties
