2DM3 2019 — M1 Theorem List Equivalence, Negation and Inequivalence “Definition of ≡”: (p ≡ q) = (p = q) (3.2) “Symmetry of ≡”: ? (3.3) “Identity of ≡”: ? (3.5) “Reflexivity of ≡”: p ≡ p (3.9) “Commutativity of ¬ with ≡”: ? (3.11) “¬ connection”: ¬ p ≡ q ≡ p ≡ ¬ q (3.14): (p ≡ / q) ≡ (¬ p ≡ q) (3.15) “Definition of ¬ via ≡”: ¬ p ≡ (p ≡ false) Disjunction and Conjunction (3.32): ? (3.35) “Golden rule”: ? (3.48): ? (3.49) “Semi-distributivity of ∧ over ≡”: ? (3.50) “Strong Modus Ponens”: ? (3.51) “Replacement”: (p ≡ q) ∧ (r ≡ p) ≡ (p ≡ q) ∧ (r ≡ q) (3.52) “Alternative definition of ≡”: ? (3.53) “Exclusive or” “Alternative definition of ≡ / ”: ? Implication (3.57) “Definition of ⇒”: ? (3.58) “Definition of ⇐” “Consequence”: ? (3.59) “Definition of ⇒”: ? (3.60) “Definition of ⇒”: ? (3.61) “Contrapositive”: ? (3.62): p ⇒ (q ≡ r) ≡ (p ∧ q ≡ p ∧ r) (3.63) “Distributivity of ⇒ over ≡”: ? (3.64) “Self-distributivity of ⇒”: ? (3.65) “Shunting”: ? (3.66): p ∧ (p ⇒ q) ≡ p ∧ q (3.67): p ∧ (q ⇒ p) ≡ p (3.68): p ∨ (p ⇒ q) ≡ true (3.69): p ∨ (q ⇒ p) ≡ q ⇒ p (3.70): p ∨ q ⇒ p ∧ q ≡ (p ≡ q) (3.71) “Reflexivity of ⇒”: ? (3.72) “Right-zero of ⇒”: ? (3.73) “Left-identity of ⇒”: ? “Definition of ¬ via ⇒” (3.74): ? (3.75) “ex falso quodlibet”: ? (3.76a) “Weakening”: ? (3.76a) “Weakening”: ? (3.76b) “Weakening”: ? (3.76c) “Weakening”: ? (3.76d) “Weakening”: ? (3.76e) “Weakening”: ? “Reflexivity of ⇒”: ? (3.77) “Modus ponens”: ? (3.78) “Case analysis”: ? (3.79) “Case analysis”: ? (3.80) “Mutual implication”: ? (3.81) “Antisymmetry of ⇒”: ? (3.82a) “Transitivity of ⇒”: ? (3.82b) “Transitivity of ⇒”: ? (3.82c) “Transitivity of ⇒”: ? “Implication strengthening”: p ⇒ q ≡ p ⇒ p ∧ q Leibniz as Axiom and Replacement Laws (3.83) “Leibniz”: e = f ⇒ E[z ∶= e] = E[z ∶= f] (3.84a) “Replacement”: e = f ∧ E[z ∶= e] ≡ e = f ∧ E[z ∶= f] (3.84b) “Replacement”: e = f ⇒ E[z ∶= e] ≡ e = f ⇒ E[z ∶= f] (3.84c) “Replacement”: q ∧ e = f ⇒ E[z ∶= e] ≡ q ∧ e = f ⇒ E[z ∶= f] “Transitivity of =”: e = f ∧ f = g ⇒ e = g (3.85a) “Replace by ‘true‘”: p ⇒ E[z ∶= p] ≡ p ⇒ E[z ∶= true] (3.85b) “Replace by ‘true‘”: q ∧ p ⇒ E[z ∶= p] ≡ q ∧ p ⇒ E[z ∶= true] (3.85c) “Replace by ‘false‘”: ¬ p ⇒ E[z ∶= p] ≡ ¬ p ⇒ E[z ∶= false] (3.85e) “Replace by ‘true‘”: p ⇒ E[z ∶= p] = E[z ∶= true] (3.86a) “Replace by ‘false‘”: E[z ∶= p] ⇒ p ≡ E[z ∶= false] ⇒ p (3.86b) “Replace by ‘false‘”: E[z ∶= p] ⇒ p ∨ q ≡ E[z ∶= false] ⇒ p ∨ q (3.87) “Replace by ‘true‘”: p ∧ E[z ∶= p] ≡ p ∧ E[z ∶= true] (3.88) “Replace by ‘false‘”: p ∨ E[z ∶= p] ≡ p ∨ E[z ∶= false] Monotonicity with Respect to Implication (4.2) “Left-monotonicity of ∨” “Monotonicity of ∨”: ? “Monotonicity of ∨”: (p ⇒ q) ⇒ ((r ⇒ s) ⇒ (p ∨ r ⇒ q ∨ s)) (4.3) “Left-monotonicity of ∧” “Monotonicity of ∧”: ? “Monotonicity of ∧”: (p ⇒ p’) ⇒ ((q ⇒ q’) ⇒ (p ∧ q ⇒ p’ ∧ q’)) “Antitonicity of ¬”: ? “Monotonicity of ⇒” “Right-monotonicity of ⇒”: ? “Antitonicity of ⇒” “Left-antitonicity of ⇒”: ? Equational Theory of Integers (15.17) “Self-inverse of unary minus”: ? (15.18) “Fixpoint of unary minus”: ? (15.20): - a = - 1 ⋅ a (15.19) “Distributivity of unary minus over +”: ? (15.21): - a ⋅ b = a ⋅ - b (15.22): a ⋅ - b = - (a ⋅ b) (15.23): - a ⋅ - b = a ⋅ b (15.24) “Right-identity of -”: ? (15.25): (a - b) + (c - d) = (a + c) - (b + d) (15.25a) “Mutual associativity of + and -”: ? (15.25b) “Subtraction of addition”: ? (15.25c): (a - b) + (b - c) = a - c (15.26): (a - b) - (c - d) = (a + d) - (b + c) (15.27): (a - b) ⋅ (c - d) = (a ⋅ c + b ⋅ d) - (a ⋅ d + b ⋅ c) (15.29) “Distributivity of ⋅ over -”: ? Cancellation Laws for Integers (15.7) “Cancellation of ⋅”: ? (15.8) “Cancellation of +”: ? “Non-zero multiplication”: ? “Cancellation of unary minus”: ? Inductive Theory of the Natural Numbers Addition and Oddities “Definition of + for 0” “Left-identity of +”: 0 + n = n “Definition of + for ‘suc‘”: suc m + n = suc (m + n) “Right-identity of +”: m + 0 = m “Successor”: suc n = n + 1 “Adding the successor”: m + suc n = suc (m + n) “Symmetry of +”: m + n = n + m “Zero is even”: even 0 “Odd is not even”: odd n ≡ ¬ even n “Even successor”: even (suc n) ≡ odd n “Odd successor”: odd (suc n) ≡ even n “Even double”: even (n + n) “Successor”: suc n = n + 1 “Associativity of +”: (a + b) + c = a + (b + c) “Even addition”: even (m + n) ≡ (even m ≡ even n) Multiplication “Definition of ⋅ for 0”: 0 ⋅ n = 0 “Definition of ⋅ for ‘suc‘”: suc m ⋅ n = n + m ⋅ n “Left-identity of ⋅”: 1 ⋅ n = n “Right-zero of ⋅”: m ⋅ 0 = 0 “Multiplying the successor”: m ⋅ suc n = m + m ⋅ n “Symmetry of ⋅”: m ⋅ n = n ⋅ m “Distributivity of ⋅ over +”: (k + m) ⋅ n = k ⋅ n + m ⋅ n “Associativity of ⋅”: (k ⋅ m) ⋅ n = k ⋅ (m ⋅ n) “Right-identity of ⋅”: a ⋅ 1 = a “Zero product”: 0 = a ⋅ b ≡ 0 = a ∨ 0 = b “Zero is not product of successors”: suc a ⋅ suc b = 0 ≡ false “Cancellation of multiplication with successor”: suc c ⋅ a = suc c ⋅ b ≡ a = b “Cancellation of ⋅”: c ≠ 0 ⇒ (c ⋅ a = c ⋅ b ≡ a = b) “Cancellation of ⋅”: c ≠ 0 ⇒ (a ⋅ c = b ⋅ c ≡ a = b) Equality on the Natural Numbers “Zero is not successor”: ? “Zero is not successor”: ? “Cancellation of ‘suc‘”: ? “Cancellation of +”: ? “Zero sum”: 0 = a + b ≡ 0 = a ∧ 0 = b The Order ≤ on the Natural Numbers “Zero is least element”: 0 ≤ a “Isotonicity of successor”: suc a ≤ suc b ≡ a ≤ b “Successor is not at most zero”: suc a ≤ 0 ≡ false “Zero is unique least element”: a ≤ 0 ≡ a = 0 “Predecessor of zero”: ? “Predecessor of successor”: ? “Predecessor of non-zero”: n ≠ 0 ⇒ suc (pred n) = n “Isotonicity of +”: ? “Monotonicity of +”: a ≤ b ⇒ (c ≤ d ⇒ a + c ≤ b + d) b “Monotonicity of predecessor”: ? “Successor is non-decreasing”: a ≤ suc a “Subtraction is non-increasing”: a - b ≤ a Strict-Order on the Natural Numbers “Zero is less than successor”: 0 < suc a “<-Isotonicity of successor”: suc a < suc b ≡ a < b “Nothing is less than zero”: a < 0 ≡ false “Irreflexivity of <”: a < a ≡ false “Zero is <-least element”: 0 < a ∨ 0 = a “Less than successor”: a < suc b ≡ a < b ∨ a = b “Less than successor”: a < suc a “Only zero is less than one”: a < 1 ≡ a = 0 “Transitivity of <”: ? “Irreflexivity of <”: a < b ⇒ ¬ (a = b) “Empty range”: a < b < a ⇒ false “Empty range”: a < b < a ≡ false “Asymmetry of <”: a < b ⇒ ¬ (b < a) CALCCHECK Structured Proofs Simple Induction %\ LQGXFWLRQ RQ CYDU 7\C %DVH FDVH " ,QGXFWLRQ VWHS " ,QGXFWLRQ K\SRWKHVLV " Making base case, induction step, and induction hypothesis explicit: %\ LQGXFWLRQ RQ CYDU 7\C %DVH FDVH C"C " ,QGXFWLRQ VWHS C"C " ,QGXFWLRQ K\SRWKHVLV C"C " (Remember that in nested inductions, induction hypotheses always need to be made explicit!) Facts that can be shown by “Evaluation” Only where enabled: Fact `6 ⋅ 7 = 42`, ≡ false` Fact `6 > 7 Assuming the Antecedent $VVXPLQJ CSC CTC " $VVXPSWLRQ CSC " $VVXPLQJ CSC DQG XVLQJ ZLWK " $VVXPSWLRQ CSC " The following key bindings work the same in both edit and command modes: Ctrl-Enter performs a syntax check on the contents of all code cells before and up to the current cell. Ctrl-Alt-Enter performs proof checks (if enabled) on the contents of all code cells before and up to the current Subproofs cell. During Midterm 1: Same as Ctrl-Enter. " Shift-Alt-RightArrow enlarges the 8G 6XESURRI IRU C C I SURRI LQGHQWHG DV IDU DV QHHGHG width of the current code cell entry WR DYRLG SDUVH HUURU J area by a small amount H " Ctrl-Shift-Alt-RightArrow enlarges the width of the current code cell entry area by a large amount Shift-Alt-LeftArrow reduces the width Theorems Used as Proof Methods (Exof the current code cell entry area ample) by a small amount 8VLQJ !0XWXDO LPSOLFDWLRQ" Ctrl-Shift-Alt-LeftArrow reduces 6XESURRI IRU C æ C the width of the current code cell " entry area by a large amount 6XESURRI IRU C æ C Ctrl-Shift-v (for visible spaces) toggles " display of initial spaces on each line as “␣” characters. Side Proofs ONLY if you are logged in via Avenue: 6LGH SURRI IRU C3C Ctrl-Shift-s saves the notebook on the " server. &RQWLQXLQJ ZLWK JRDO C"C To be safest, use in command " mode, e.g. after clicking on the ORFDO SURSHUW\ C3C area of a code box where the line " number would be displayed. Check the pop-up whether it is Disabling Hints Producing Time-outs the CalcCheckWeb pop-up saying “. . . Notebook saved to . . . ”. Add “?, ” at the beginning of the hint: (Links for reloading the last three e{ " !*ROGHQ UXOH" | saved versions are displayed when you view the notebook again.) %\ FDVHV CSC CTC CUC &RPSOHWHQHVV " &DVH CSC " $VVXPSWLRQ CSC " Selected CALCCHECKWeb Key Bindings Case Analysis (See Getting Started with CALCCHECKWeb for the complete listing.) In edit mode, you have the following key bindings: Esc enters command mode Alt-i or Alt-SPACE inserts one space in the current line and in all non-empty lines below it, until a line is encountered that is not indented more than to the cursor position. Alt-BACKSPACE deletes only a space character to the left of the current cursor position, and also from lines below it, until a line is encountered that is not indented at least to the cursor position. Alt-DELETE deletes only a space character to the right of the current cursor position, and also from lines below it, until a line is encountered that is not indented more than to the cursor position. The last three bindings also work with Shift. Some important symbols: Symbol Key sequence(s) ≡ \equiv, \== ≡ / \nequiv ¬ \lnot ∧ \land ∨ \lor ⇒ \implies, \=> ⇐ \follows ≠ \neq ∀ \forall ∃ \exists ∑ \sum ∏ \product \with ● \spot ↓ \min ↑ \max B \BB, \bool N \NN, \nat Z \ZZ, \int