| ⊦ r ∈ h \ rs → (#(h \ rs) ≤ #((h -- r) \ rs) ↔ false) |
¬(#(h \ rs) ≤ #((h -- r) \ rs) ↔ false), r ∈ h \ rs ⊦
| ¬(#(h \ rs) ≤ #((h -- r) \ rs) ↔ false), r ∈ h \ rs ⊦ |
¬(#(h \ ∅) ≤ #((h -- r) \ ∅) ↔ false), r ∈ h \ ∅ ⊦
¬(#(h \ (rs0 ++ r0)) ≤ #((h -- r) \ (rs0 ++ r0)) ↔ false), r ∈ h \ (rs0 ++ r0), ∀ h, r. ¬(¬(#(h \ rs0) ≤ #((h -- r) \ rs0) ↔ false) ∧ r ∈ h \ rs0) ⊦
Used simplifier rules: refset generated by ∅, ++;;
| ¬(#(h \ ∅) ≤ #((h -- r) \ ∅) ↔ false), r ∈ h \ ∅ ⊦ |
r ∈ h, # h ≤ #(h -- r) ⊦
Used simplifier rules: diffs-emp: ⊦ h0 \ ∅ = h0;
| r ∈ h, # h ≤ #(h -- r) ⊦ |
⊦ r ≠ null → (r ∈ h ↔ (∃ h0, o. h = (h0 ++ r)[r, o] ∧ ¬ r ∈ h0))
Used simplifier rules: sanity: ⊦ ¬ null ∈ h; size-write: r ∈ h ⊦ # h[r, o] = # h; size-alloc: ¬ r ∈ h, r ≠ null ⊦ #(h ++ r) = # h + 1; in-alloc: r0 ≠ null, ¬ r0 ∈ h ⊦ r ∈ h ++ r0 ↔ r = r0 ∨ r ∈ h; write-del: r ∈ h ⊦ h[r, o] -- r = h -- r; del-new: ¬ r ∈ h, r ≠ null ⊦ (h ++ r) -- r = h; ⊦ m + 1 ≤ n ↔ m < n; (s) ⊦ ¬ n < n; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic Used terms: r, h
| ⊦ r ≠ null → (r ∈ h ↔ (∃ h0, o. h = (h0 ++ r)[r, o] ∧ ¬ r ∈ h0)) |
| ¬(#(h \ (rs0 ++ r0)) ≤ #((h -- r) \ (rs0 ++ r0)) ↔ false), r ∈ h \ (rs0 ++ r0), ∀ h, r. ¬(¬(#(h \ rs0) ≤ #((h -- r) \ rs0) ↔ false) ∧ r ∈ h \ rs0) ⊦ |
r ∈ (h -- r0) \ rs0, #((h -- r0) \ rs0) ≤ #((h -- r -- r0) \ rs0), ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦
Used simplifier rules: diffs-ins: ⊦ h0 \ (rs ++ r) = (h0 -- r) \ rs;
| r ∈ (h -- r0) \ rs0, #((h -- r0) \ rs0) ≤ #((h -- r -- r0) \ rs0), ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ |
⊦ (h -- r) \ rs = (h \ rs) -- r
r ∈ (h \ rs0) -- r0, #((h \ rs0) -- r0) ≤ #((h -- r -- r0) \ rs0), ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦
Used terms: h, r0, rs0
| ⊦ (h -- r) \ rs = (h \ rs) -- r |
| r ∈ (h \ rs0) -- r0, #((h \ rs0) -- r0) ≤ #((h -- r -- r0) \ rs0), ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ |
r ≠ r0, r ∈ h \ rs0, #((h \ rs0) -- r0) ≤ #((h -- r -- r0) \ rs0), ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦
Used simplifier rules: in-del: ⊦ r ∈ h -- r0 ↔ r ≠ r0 ∧ r ∈ h;
| r ≠ r0, r ∈ h \ rs0, #((h \ rs0) -- r0) ≤ #((h -- r -- r0) \ rs0), ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ |
⊦ (h -- r) \ rs = (h \ rs) -- r
r ≠ r0, r ∈ h \ rs0, #((h \ rs0) -- r0) ≤ #(((h -- r) \ rs0) -- r0), ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦
Used terms: h -- r, r0, rs0
| ⊦ (h -- r) \ rs = (h \ rs) -- r |
| r ≠ r0, r ∈ h \ rs0, #((h \ rs0) -- r0) ≤ #(((h -- r) \ rs0) -- r0), ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ |
⊦ r ∈ h → #(h -- r) = # h - 1
r ≠ r0, r ∈ h \ rs0, #((h \ rs0) -- r0) ≤ #(((h -- r) \ rs0) -- r0), ¬ r0 ∈ h \ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦
r ≠ r0, r ∈ h \ rs0, r0 ∈ h \ rs0, #(h \ rs0) - 1 ≤ #(((h -- r) \ rs0) -- r0), ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦
Used terms: h \ rs0, r0
| ⊦ r ∈ h → #(h -- r) = # h - 1 |
| r ≠ r0, r ∈ h \ rs0, #((h \ rs0) -- r0) ≤ #(((h -- r) \ rs0) -- r0), ¬ r0 ∈ h \ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ |
r ≠ r0, r ∈ h \ rs0, #(h \ rs0) ≤ #(((h -- r) \ rs0) -- r0), ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ r0 ∈ h ∧ ¬ r0 ∈ rs0
Used simplifier rules: del-notin: ⊦ ¬ r ∈ h → h -- r = h; in-diffs: ⊦ r ∈ h \ rs ↔ r ∈ h ∧ ¬ r ∈ rs;
| r ≠ r0, r ∈ h \ rs0, #(h \ rs0) ≤ #(((h -- r) \ rs0) -- r0), ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ r0 ∈ h ∧ ¬ r0 ∈ rs0 |
⊦ ¬ r ∈ h → h -- r = h
r ≠ r0, r0 ∈ (h -- r) \ rs0, r ∈ h \ rs0, #(h \ rs0) ≤ #(((h -- r) \ rs0) -- r0), ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ r0 ∈ h ∧ ¬ r0 ∈ rs0
r ≠ r0, r ∈ h \ rs0, #(h \ rs0) ≤ #((h -- r) \ rs0), ¬ r0 ∈ (h -- r) \ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ r0 ∈ h ∧ ¬ r0 ∈ rs0
Used terms: (h -- r) \ rs0, r0
| ⊦ ¬ r ∈ h → h -- r = h |
| r ≠ r0, r0 ∈ (h -- r) \ rs0, r ∈ h \ rs0, #(h \ rs0) ≤ #(((h -- r) \ rs0) -- r0), ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ r0 ∈ h ∧ ¬ r0 ∈ rs0 |
r ≠ r0, r ∈ h \ rs0, r0 ∈ (h -- r) \ rs0, #(h \ rs0) ≤ #((h -- r) \ rs0) - 1, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ r0 ∈ h ∧ ¬ r0 ∈ rs0
Used simplifier rules: rm-size: ⊦ r ∈ h → #(h -- r) = # h - 1;
| r ≠ r0, r ∈ h \ rs0, r0 ∈ (h -- r) \ rs0, #(h \ rs0) ≤ #((h -- r) \ rs0) - 1, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ r0 ∈ h ∧ ¬ r0 ∈ rs0 |
⊦ r ∈ h \ rs ↔ r ∈ h ∧ ¬ r ∈ rs
Used simplifier rules: in-del: ⊦ r ∈ h -- r0 ↔ r ≠ r0 ∧ r ∈ h; Used terms: r0, h -- r, rs0
| ⊦ r ∈ h \ rs ↔ r ∈ h ∧ ¬ r ∈ rs |
| r ≠ r0, r ∈ h \ rs0, #(h \ rs0) ≤ #((h -- r) \ rs0), ¬ r0 ∈ (h -- r) \ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ r0 ∈ h ∧ ¬ r0 ∈ rs0 |
r ≠ r0, r ∈ h \ rs0, #(h \ rs0) ≤ #((h -- r) \ rs0), ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ r0 ∈ h ∧ ¬ r0 ∈ rs0
Used simplifier rules: in-diffs: ⊦ r ∈ h \ rs ↔ r ∈ h ∧ ¬ r ∈ rs; in-del: ⊦ r ∈ h -- r0 ↔ r ≠ r0 ∧ r ∈ h;
| r ≠ r0, r ∈ h \ rs0, #(h \ rs0) ≤ #((h -- r) \ rs0), ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ r0 ∈ h ∧ ¬ r0 ∈ rs0 |
Used terms: h, r
| r ≠ r0, r ∈ h \ rs0, r0 ∈ h \ rs0, #(h \ rs0) - 1 ≤ #(((h -- r) \ rs0) -- r0), ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ |
⊦ r ∈ h → #(h -- r) = # h - 1
r ≠ r0, r0 ∈ h \ rs0, r ∈ h \ rs0, #(h \ rs0) - 1 ≤ #(((h -- r) \ rs0) -- r0), ¬ r0 ∈ (h -- r) \ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦
r ≠ r0, r0 ∈ h \ rs0, r ∈ h \ rs0, r0 ∈ (h -- r) \ rs0, #(h \ rs0) - 1 ≤ #((h -- r) \ rs0) - 1, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦
Used terms: (h -- r) \ rs0, r0
| ⊦ r ∈ h → #(h -- r) = # h - 1 |
| r ≠ r0, r0 ∈ h \ rs0, r ∈ h \ rs0, #(h \ rs0) - 1 ≤ #(((h -- r) \ rs0) -- r0), ¬ r0 ∈ (h -- r) \ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ |
r ≠ r0, r ∈ h \ rs0, r0 ∈ h \ rs0, #(h \ rs0) - 1 ≤ #((h -- r) \ rs0), ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ r0 ∈ h ∧ ¬ r0 ∈ rs0
Used simplifier rules: del-notin: ⊦ ¬ r ∈ h → h -- r = h; in-diffs: ⊦ r ∈ h \ rs ↔ r ∈ h ∧ ¬ r ∈ rs; in-del: ⊦ r ∈ h -- r0 ↔ r ≠ r0 ∧ r ∈ h;
| r ≠ r0, r ∈ h \ rs0, r0 ∈ h \ rs0, #(h \ rs0) - 1 ≤ #((h -- r) \ rs0), ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ r0 ∈ h ∧ ¬ r0 ∈ rs0 |
⊦ r ∈ h \ rs ↔ r ∈ h ∧ ¬ r ∈ rs
r ≠ r0, r0 ∈ h \ rs0, r ∈ h, #(h \ rs0) - 1 ≤ #((h -- r) \ rs0), ¬ r ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ r0 ∈ h ∧ ¬ r0 ∈ rs0
Used terms: r, h, rs0
| ⊦ r ∈ h \ rs ↔ r ∈ h ∧ ¬ r ∈ rs |
| r ≠ r0, r0 ∈ h \ rs0, r ∈ h, #(h \ rs0) - 1 ≤ #((h -- r) \ rs0), ¬ r ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ r0 ∈ h ∧ ¬ r0 ∈ rs0 |
⊦ r ∈ h \ rs ↔ r ∈ h ∧ ¬ r ∈ rs
Used terms: r0, h, rs0
| ⊦ r ∈ h \ rs ↔ r ∈ h ∧ ¬ r ∈ rs |
| r ≠ r0, r0 ∈ h \ rs0, r ∈ h \ rs0, r0 ∈ (h -- r) \ rs0, #(h \ rs0) - 1 ≤ #((h -- r) \ rs0) - 1, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ |
#(h \ rs0) = 0, r ≠ r0, r0 ∈ (h -- r) \ rs0, r ∈ h \ rs0, r0 ∈ h \ rs0, #(h \ rs0) - 1 ≤ #((h -- r) \ rs0) - 1, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦
#(h \ rs0) = n0 + 1, #(h \ rs0) ≠ 0, r ≠ r0, r0 ∈ (h -- r) \ rs0, r ∈ h \ rs0, r0 ∈ h \ rs0, n0 ≤ #((h -- r) \ rs0) - 1, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦
Used simplifier rules: n ≠ 0 ⊦ m = n - 1 ↔ n = m + 1; (elim) Used terms: #(h \ rs0), m
| #(h \ rs0) = 0, r ≠ r0, r0 ∈ (h -- r) \ rs0, r ∈ h \ rs0, r0 ∈ h \ rs0, #(h \ rs0) - 1 ≤ #((h -- r) \ rs0) - 1, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ |
#(h \ rs0) = 0, r ≠ r0, r0 ∈ h \ rs0, r ∈ h \ rs0, r0 ∈ (h -- r) \ rs0, 0 - 1 ≤ #((h -- r) \ rs0) - 1, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦
| #(h \ rs0) = 0, r ≠ r0, r0 ∈ h \ rs0, r ∈ h \ rs0, r0 ∈ (h -- r) \ rs0, 0 - 1 ≤ #((h -- r) \ rs0) - 1, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ |
Used simplifier rules: ⊦ m ≤ n ↔ ¬ n < m; (ss) ⊦ m < n → n ≠ 0; (s) Used terms: h, r
| #(h \ rs0) = n0 + 1, #(h \ rs0) ≠ 0, r ≠ r0, r0 ∈ (h -- r) \ rs0, r ∈ h \ rs0, r0 ∈ h \ rs0, n0 ≤ #((h -- r) \ rs0) - 1, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ |
#(h \ rs0) = n0 + 1, r ≠ r0, r0 ∈ (h -- r) \ rs0, r ∈ h \ rs0, r0 ∈ h \ rs0, n0 ≤ #((h -- r) \ rs0) - 1, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ m + 1 ≠ 0; (s)
| #(h \ rs0) = n0 + 1, r ≠ r0, r0 ∈ (h -- r) \ rs0, r ∈ h \ rs0, r0 ∈ h \ rs0, n0 ≤ #((h -- r) \ rs0) - 1, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ |
#((h -- r) \ rs0) = 0, #(h \ rs0) = n0 + 1, r ≠ r0, r0 ∈ h \ rs0, r ∈ h \ rs0, r0 ∈ (h -- r) \ rs0, n0 ≤ #((h -- r) \ rs0) - 1, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦
#(h \ rs0) = n0 + 1, #((h -- r) \ rs0) = n1 + 1, #((h -- r) \ rs0) ≠ 0, r ≠ r0, r0 ∈ h \ rs0, r ∈ h \ rs0, r0 ∈ (h -- r) \ rs0, n0 ≤ n1, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦
Used simplifier rules: n ≠ 0 ⊦ m = n - 1 ↔ n = m + 1; (elim) Used terms: #((h -- r) \ rs0), m
| #((h -- r) \ rs0) = 0, #(h \ rs0) = n0 + 1, r ≠ r0, r0 ∈ h \ rs0, r ∈ h \ rs0, r0 ∈ (h -- r) \ rs0, n0 ≤ #((h -- r) \ rs0) - 1, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ |
#(h \ rs0) = n0 + 1, #((h -- r) \ rs0) = 0, r ≠ r0, r0 ∈ (h -- r) \ rs0, r ∈ h \ rs0, r0 ∈ h \ rs0, n0 ≤ 0 - 1, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦
| #(h \ rs0) = n0 + 1, #((h -- r) \ rs0) = 0, r ≠ r0, r0 ∈ (h -- r) \ rs0, r ∈ h \ rs0, r0 ∈ h \ rs0, n0 ≤ 0 - 1, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ |
Used simplifier rules: ⊦ m ≤ n ↔ ¬ n < m; (ss) ⊦ m < n → n ≠ 0; (s) Used terms: h -- r, r0
| #(h \ rs0) = n0 + 1, #((h -- r) \ rs0) = n1 + 1, #((h -- r) \ rs0) ≠ 0, r ≠ r0, r0 ∈ h \ rs0, r ∈ h \ rs0, r0 ∈ (h -- r) \ rs0, n0 ≤ n1, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ |
#(h \ rs0) = n0 + 1, #((h -- r) \ rs0) = n1 + 1, r ≠ r0, r0 ∈ h \ rs0, r ∈ h \ rs0, r0 ∈ (h -- r) \ rs0, n0 ≤ n1, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ m + 1 ≠ 0; (s)
| #(h \ rs0) = n0 + 1, #((h -- r) \ rs0) = n1 + 1, r ≠ r0, r0 ∈ h \ rs0, r ∈ h \ rs0, r0 ∈ (h -- r) \ rs0, n0 ≤ n1, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 \ rs0 ⊦ |
Used simplifier rules: ⊦ m ≤ n ↔ ¬ n < m; (ss) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic lf-02: ⊦ m < n ∧ m = n0 → n0 < n; (forward) from specification nat-basic lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic ⊦ m + 1 ≠ 0; (s) ⊦ m < n + 1 ↔ ¬ n < m; (s) ⊦ m ≤ m0 ∧ n ≤ n0 → ¬ m0 + n0 < m + n; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic Used terms: h, r
The following image shows the proof tree of sequent calculus. The proved goal is at the bottom. You can click on the nodes to view additional rules. See here for details on colors in a proof tree.