| ⊦ m1 ≤ m0 ∧ m0 + n0 ≤ m1 + n1 → (id○(ar0, fill(ar1, a, m0, n0), m1, n1) ↔ id○(ar0, ar1, m1, n1)) |
¬(id○(ar0, fill(ar1, a, m0, n0), m1, n1) ↔ id○(ar0, ar1, m1, n1)), m1 ≤ m0, m0 + n0 ≤ m1 + n1 ⊦
| ¬(id○(ar0, fill(ar1, a, m0, n0), m1, n1) ↔ id○(ar0, ar1, m1, n1)), m1 ≤ m0, m0 + n0 ≤ m1 + n1 ⊦ |
m0 + n0 ≤ m1 + n1, m1 ≤ m0, m1 + n1 ≤ size, m0 + n0 ≤ size ⊦ (∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2)) ↔ (∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m))
Used simplifier rules: Idexcept-n: ⊦ id○(ar0, ar1, m, n) ↔ m + n ≤ size ∧ (∀ m0. (m0 < m ∨ m + n ≤ m0) ∧ m0 < # ar0 → ar0(m0) = ar1(m0)); let: ⊦ n ≤ n0 ∧ n0 ≤ n1 → n ≤ n1; (forward) from specification nat ⊦ # ar = size; (s)
| m0 + n0 ≤ m1 + n1, m1 ≤ m0, m1 + n1 ≤ size, m0 + n0 ≤ size ⊦ (∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2)) ↔ (∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m)) |
m0 + n0 ≤ size, m1 + n1 ≤ size, m1 ≤ m0, m0 + n0 ≤ m1 + n1, ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2) ⊦ ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m)
m0 + n0 ≤ size, m1 + n1 ≤ size, m1 ≤ m0, m0 + n0 ≤ m1 + n1, ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m) ⊦ ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2)
| m0 + n0 ≤ size, m1 + n1 ≤ size, m1 ≤ m0, m0 + n0 ≤ m1 + n1, ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2) ⊦ ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m) |
ar0(m) ≠ ar1(m), m < size, m0 + n0 ≤ size, m1 + n1 ≤ size, m1 ≤ m0, m0 + n0 ≤ m1 + n1, ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2), m < m1 ∨ m1 + n1 ≤ m ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic
| ar0(m) ≠ ar1(m), m < size, m0 + n0 ≤ size, m1 + n1 ≤ size, m1 ≤ m0, m0 + n0 ≤ m1 + n1, ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2), m < m1 ∨ m1 + n1 ≤ m ⊦ |
ar0(m) ≠ ar1(m), m < size, m0 + n0 ≤ m1 + n1, m1 ≤ m0, m1 + n1 ≤ size, m0 + n0 ≤ size, (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = fill(ar1, a, m0, n0)(m), ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2), m < m1 ∨ m1 + n1 ≤ m ⊦
Used terms: m
| ar0(m) ≠ ar1(m), m < size, m0 + n0 ≤ m1 + n1, m1 ≤ m0, m1 + n1 ≤ size, m0 + n0 ≤ size, (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = fill(ar1, a, m0, n0)(m), ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2), m < m1 ∨ m1 + n1 ≤ m ⊦ |
ar0(m) = fill(ar1, a, m0, n0)(m), ar0(m) ≠ ar1(m), m < size, m0 + n0 ≤ size, m1 + n1 ≤ size, m1 ≤ m0, m0 + n0 ≤ m1 + n1, ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2), m < m1 ∨ m1 + n1 ≤ m ⊦
| ar0(m) = fill(ar1, a, m0, n0)(m), ar0(m) ≠ ar1(m), m < size, m0 + n0 ≤ size, m1 + n1 ≤ size, m1 ≤ m0, m0 + n0 ≤ m1 + n1, ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2), m < m1 ∨ m1 + n1 ≤ m ⊦ |
ar0(m) = fill(ar1, a, m0, n0)(m), ar0(m) ≠ ar1(m), m < size, m0 + n0 ≤ m1 + n1, m1 ≤ m0, m1 + n1 ≤ size, m0 + n0 ≤ size, (size < m1 ∨ m1 + n1 ≤ size) ∧ size < size → ar0(size) = fill(ar1, a, m0, n0)(size), ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2), m < m1 ∨ m1 + n1 ≤ m ⊦
Used terms: size
| ar0(m) = fill(ar1, a, m0, n0)(m), ar0(m) ≠ ar1(m), m < size, m0 + n0 ≤ m1 + n1, m1 ≤ m0, m1 + n1 ≤ size, m0 + n0 ≤ size, (size < m1 ∨ m1 + n1 ≤ size) ∧ size < size → ar0(size) = fill(ar1, a, m0, n0)(size), ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2), m < m1 ∨ m1 + n1 ≤ m ⊦ |
ar0(m) = fill(ar1, a, m0, n0)(m), ar0(m) ≠ ar1(m), m < size, m0 + n0 ≤ size, m1 + n1 ≤ size, m1 ≤ m0, m0 + n0 ≤ m1 + n1, ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2), m < m1 ∨ m1 + n1 ≤ m ⊦
Used simplifier rules: ⊦ ¬ n < n; (s)
| ar0(m) = fill(ar1, a, m0, n0)(m), ar0(m) ≠ ar1(m), m < size, m0 + n0 ≤ size, m1 + n1 ≤ size, m1 ≤ m0, m0 + n0 ≤ m1 + n1, ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2), m < m1 ∨ m1 + n1 ≤ m ⊦ |
ar0(m) = fill(ar1, a, m0, n0)(m), ar0(m) ≠ ar1(m), m < size, m < m1, m0 + n0 ≤ m1 + n1, m1 ≤ m0, m1 + n1 ≤ size, m0 + n0 ≤ size, ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2) ⊦
ar0(m) = fill(ar1, a, m0, n0)(m), ar0(m) ≠ ar1(m), m < size, m0 + n0 ≤ m1 + n1, m1 ≤ m0, m1 + n1 ≤ size, m0 + n0 ≤ size, m1 + n1 ≤ m, ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2) ⊦
| ar0(m) = fill(ar1, a, m0, n0)(m), ar0(m) ≠ ar1(m), m < size, m < m1, m0 + n0 ≤ m1 + n1, m1 ≤ m0, m1 + n1 ≤ size, m0 + n0 ≤ size, ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2) ⊦ |
ar0(m) = fill(ar1, a, m0, n0)(m), ar0(m) ≠ ar1(m), m < m1, m < size, m < m0, m0 + n0 ≤ size, m1 + n1 ≤ size, m1 ≤ m0, m0 + n0 ≤ m1 + n1, ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2) ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic fle: ⊦ m < n ∧ n ≤ n0 → m < n0; (forward) from specification nat
| ar0(m) = fill(ar1, a, m0, n0)(m), ar0(m) ≠ ar1(m), m < m1, m < size, m < m0, m0 + n0 ≤ size, m1 + n1 ≤ size, m1 ≤ m0, m0 + n0 ≤ m1 + n1, ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2) ⊦ |
⊦ n < size → fill(ar, a, m0, m1)(n) = (m0 ≤ n ∧ n < m0 + m1 ⊃ a;ar(n))
Used simplifier rules: ⊦ m < n → (n ≤ m ↔ false); (s) Used terms: m0, a, ar1, m, n0
| ⊦ n < size → fill(ar, a, m0, m1)(n) = (m0 ≤ n ∧ n < m0 + m1 ⊃ a;ar(n)) |
| ar0(m) = fill(ar1, a, m0, n0)(m), ar0(m) ≠ ar1(m), m < size, m0 + n0 ≤ m1 + n1, m1 ≤ m0, m1 + n1 ≤ size, m0 + n0 ≤ size, m1 + n1 ≤ m, ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2) ⊦ |
ar0(m) = fill(ar1, a, m0, n0)(m), ar0(m) ≠ ar1(m), m0 + n0 < size, m < size, m1 + n1 < size, m1 + n1 ≤ m, m1 ≤ m0, m0 + n0 ≤ m1 + n1, m0 + n0 ≤ m, ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2) ⊦
Used simplifier rules: ⊦ m < n → m ≤ n; (s) fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat let: ⊦ n ≤ n0 ∧ n0 ≤ n1 → n ≤ n1; (forward) from specification nat
| ar0(m) = fill(ar1, a, m0, n0)(m), ar0(m) ≠ ar1(m), m0 + n0 < size, m < size, m1 + n1 < size, m1 + n1 ≤ m, m1 ≤ m0, m0 + n0 ≤ m1 + n1, m0 + n0 ≤ m, ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2) ⊦ |
ar0(m) = fill(ar1, a, m0, n0)(m), ar0(m) ≠ ar1(m), m1 + n1 < size, m < size, m0 + n0 < size, m0 + n0 ≤ m, m0 + n0 ≤ m1 + n1, m1 ≤ m0, m1 + n1 ≤ m, (m1 + n1 < m1 ∨ m1 + n1 ≤ m1 + n1) ∧ m1 + n1 < size → ar0(m1 + n1) = fill(ar1, a, m0, n0)(m1 + n1), ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2) ⊦
Used terms: m1 + n1
| ar0(m) = fill(ar1, a, m0, n0)(m), ar0(m) ≠ ar1(m), m1 + n1 < size, m < size, m0 + n0 < size, m0 + n0 ≤ m, m0 + n0 ≤ m1 + n1, m1 ≤ m0, m1 + n1 ≤ m, (m1 + n1 < m1 ∨ m1 + n1 ≤ m1 + n1) ∧ m1 + n1 < size → ar0(m1 + n1) = fill(ar1, a, m0, n0)(m1 + n1), ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2) ⊦ |
ar0(m) = fill(ar1, a, m0, n0)(m), ar0(m1 + n1) = fill(ar1, a, m0, n0)(m1 + n1), ar0(m) ≠ ar1(m), m0 + n0 < size, m < size, m1 + n1 < size, m1 + n1 ≤ m, m1 ≤ m0, m0 + n0 ≤ m1 + n1, m0 + n0 ≤ m, ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2) ⊦
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ m ≤ m; (s) ⊦ m + n ≤ m + n0 ↔ n ≤ n0; (s) ⊦ ¬ m + n < m; (s)
| ar0(m) = fill(ar1, a, m0, n0)(m), ar0(m1 + n1) = fill(ar1, a, m0, n0)(m1 + n1), ar0(m) ≠ ar1(m), m0 + n0 < size, m < size, m1 + n1 < size, m1 + n1 ≤ m, m1 ≤ m0, m0 + n0 ≤ m1 + n1, m0 + n0 ≤ m, ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2) ⊦ |
⊦ n < size → fill(ar, a, m0, m1)(n) = (m0 ≤ n ∧ n < m0 + m1 ⊃ a;ar(n))
Used simplifier rules: ⊦ m ≤ n → (n < m ↔ false); (s) Used terms: m0, a, ar1, m, n0
| ⊦ n < size → fill(ar, a, m0, m1)(n) = (m0 ≤ n ∧ n < m0 + m1 ⊃ a;ar(n)) |
| m0 + n0 ≤ size, m1 + n1 ≤ size, m1 ≤ m0, m0 + n0 ≤ m1 + n1, ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m) ⊦ ∀ m2. (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = fill(ar1, a, m0, n0)(m2) |
ar0(m2) ≠ fill(ar1, a, m0, n0)(m2), m2 < size, m0 + n0 ≤ size, m1 + n1 ≤ size, m1 ≤ m0, m0 + n0 ≤ m1 + n1, ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m), m2 < m1 ∨ m1 + n1 ≤ m2 ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic
| ar0(m2) ≠ fill(ar1, a, m0, n0)(m2), m2 < size, m0 + n0 ≤ size, m1 + n1 ≤ size, m1 ≤ m0, m0 + n0 ≤ m1 + n1, ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m), m2 < m1 ∨ m1 + n1 ≤ m2 ⊦ |
ar0(m2) ≠ fill(ar1, a, m0, n0)(m2), m2 < size, m0 + n0 ≤ m1 + n1, m1 ≤ m0, m1 + n1 ≤ size, m0 + n0 ≤ size, (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = ar1(m2), ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m), m2 < m1 ∨ m1 + n1 ≤ m2 ⊦
Used terms: m2
| ar0(m2) ≠ fill(ar1, a, m0, n0)(m2), m2 < size, m0 + n0 ≤ m1 + n1, m1 ≤ m0, m1 + n1 ≤ size, m0 + n0 ≤ size, (m2 < m1 ∨ m1 + n1 ≤ m2) ∧ m2 < size → ar0(m2) = ar1(m2), ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m), m2 < m1 ∨ m1 + n1 ≤ m2 ⊦ |
ar0(m2) = ar1(m2), ar1(m2) ≠ fill(ar1, a, m0, n0)(m2), m2 < size, m0 + n0 ≤ size, m1 + n1 ≤ size, m1 ≤ m0, m0 + n0 ≤ m1 + n1, ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m), m2 < m1 ∨ m1 + n1 ≤ m2 ⊦
| ar0(m2) = ar1(m2), ar1(m2) ≠ fill(ar1, a, m0, n0)(m2), m2 < size, m0 + n0 ≤ size, m1 + n1 ≤ size, m1 ≤ m0, m0 + n0 ≤ m1 + n1, ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m), m2 < m1 ∨ m1 + n1 ≤ m2 ⊦ |
ar0(m2) = ar1(m2), ar1(m2) ≠ fill(ar1, a, m0, n0)(m2), m2 < size, m0 + n0 ≤ m1 + n1, m1 ≤ m0, m1 + n1 ≤ size, m0 + n0 ≤ size, (size < m1 ∨ m1 + n1 ≤ size) ∧ size < size → ar0(size) = ar1(size), ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m), m2 < m1 ∨ m1 + n1 ≤ m2 ⊦
Used terms: size
| ar0(m2) = ar1(m2), ar1(m2) ≠ fill(ar1, a, m0, n0)(m2), m2 < size, m0 + n0 ≤ m1 + n1, m1 ≤ m0, m1 + n1 ≤ size, m0 + n0 ≤ size, (size < m1 ∨ m1 + n1 ≤ size) ∧ size < size → ar0(size) = ar1(size), ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m), m2 < m1 ∨ m1 + n1 ≤ m2 ⊦ |
ar0(m2) = ar1(m2), ar1(m2) ≠ fill(ar1, a, m0, n0)(m2), m2 < size, m0 + n0 ≤ size, m1 + n1 ≤ size, m1 ≤ m0, m0 + n0 ≤ m1 + n1, ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m), m2 < m1 ∨ m1 + n1 ≤ m2 ⊦
Used simplifier rules: ⊦ ¬ n < n; (s)
| ar0(m2) = ar1(m2), ar1(m2) ≠ fill(ar1, a, m0, n0)(m2), m2 < size, m0 + n0 ≤ size, m1 + n1 ≤ size, m1 ≤ m0, m0 + n0 ≤ m1 + n1, ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m), m2 < m1 ∨ m1 + n1 ≤ m2 ⊦ |
ar0(m2) = ar1(m2), ar1(m2) ≠ fill(ar1, a, m0, n0)(m2), m2 < size, m2 < m1, m0 + n0 ≤ m1 + n1, m1 ≤ m0, m1 + n1 ≤ size, m0 + n0 ≤ size, ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m) ⊦
ar0(m2) = ar1(m2), ar1(m2) ≠ fill(ar1, a, m0, n0)(m2), m2 < size, m0 + n0 ≤ m1 + n1, m1 ≤ m0, m1 + n1 ≤ size, m0 + n0 ≤ size, m1 + n1 ≤ m2, ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m) ⊦
| ar0(m2) = ar1(m2), ar1(m2) ≠ fill(ar1, a, m0, n0)(m2), m2 < size, m2 < m1, m0 + n0 ≤ m1 + n1, m1 ≤ m0, m1 + n1 ≤ size, m0 + n0 ≤ size, ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m) ⊦ |
ar0(m2) = ar1(m2), ar1(m2) ≠ fill(ar1, a, m0, n0)(m2), m2 < m1, m2 < size, m2 < m0, m0 + n0 ≤ size, m1 + n1 ≤ size, m1 ≤ m0, m0 + n0 ≤ m1 + n1, ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m) ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic fle: ⊦ m < n ∧ n ≤ n0 → m < n0; (forward) from specification nat
| ar0(m2) = ar1(m2), ar1(m2) ≠ fill(ar1, a, m0, n0)(m2), m2 < m1, m2 < size, m2 < m0, m0 + n0 ≤ size, m1 + n1 ≤ size, m1 ≤ m0, m0 + n0 ≤ m1 + n1, ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m) ⊦ |
⊦ n < size → fill(ar, a, m0, m1)(n) = (m0 ≤ n ∧ n < m0 + m1 ⊃ a;ar(n))
Used simplifier rules: ⊦ m < n → (n ≤ m ↔ false); (s) Used terms: m0, a, ar1, m2, n0
| ⊦ n < size → fill(ar, a, m0, m1)(n) = (m0 ≤ n ∧ n < m0 + m1 ⊃ a;ar(n)) |
| ar0(m2) = ar1(m2), ar1(m2) ≠ fill(ar1, a, m0, n0)(m2), m2 < size, m0 + n0 ≤ m1 + n1, m1 ≤ m0, m1 + n1 ≤ size, m0 + n0 ≤ size, m1 + n1 ≤ m2, ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m) ⊦ |
ar0(m2) = ar1(m2), ar1(m2) ≠ fill(ar1, a, m0, n0)(m2), m0 + n0 < size, m2 < size, m1 + n1 < size, m1 + n1 ≤ m2, m1 ≤ m0, m0 + n0 ≤ m1 + n1, m0 + n0 ≤ m2, ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m) ⊦
Used simplifier rules: ⊦ m < n → m ≤ n; (s) fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat let: ⊦ n ≤ n0 ∧ n0 ≤ n1 → n ≤ n1; (forward) from specification nat
| ar0(m2) = ar1(m2), ar1(m2) ≠ fill(ar1, a, m0, n0)(m2), m0 + n0 < size, m2 < size, m1 + n1 < size, m1 + n1 ≤ m2, m1 ≤ m0, m0 + n0 ≤ m1 + n1, m0 + n0 ≤ m2, ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m) ⊦ |
ar0(m2) = ar1(m2), ar1(m2) ≠ fill(ar1, a, m0, n0)(m2), m1 + n1 < size, m2 < size, m0 + n0 < size, m0 + n0 ≤ m2, m0 + n0 ≤ m1 + n1, m1 ≤ m0, m1 + n1 ≤ m2, (m1 + n1 < m1 ∨ m1 + n1 ≤ m1 + n1) ∧ m1 + n1 < size → ar0(m1 + n1) = ar1(m1 + n1), ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m) ⊦
Used terms: m1 + n1
| ar0(m2) = ar1(m2), ar1(m2) ≠ fill(ar1, a, m0, n0)(m2), m1 + n1 < size, m2 < size, m0 + n0 < size, m0 + n0 ≤ m2, m0 + n0 ≤ m1 + n1, m1 ≤ m0, m1 + n1 ≤ m2, (m1 + n1 < m1 ∨ m1 + n1 ≤ m1 + n1) ∧ m1 + n1 < size → ar0(m1 + n1) = ar1(m1 + n1), ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m) ⊦ |
ar0(m2) = ar1(m2), ar0(m1 + n1) = ar1(m1 + n1), ar1(m2) ≠ fill(ar1, a, m0, n0)(m2), m0 + n0 < size, m2 < size, m1 + n1 < size, m1 + n1 ≤ m2, m1 ≤ m0, m0 + n0 ≤ m1 + n1, m0 + n0 ≤ m2, ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m) ⊦
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ m ≤ m; (s) ⊦ m + n ≤ m + n0 ↔ n ≤ n0; (s) ⊦ ¬ m + n < m; (s)
| ar0(m2) = ar1(m2), ar0(m1 + n1) = ar1(m1 + n1), ar1(m2) ≠ fill(ar1, a, m0, n0)(m2), m0 + n0 < size, m2 < size, m1 + n1 < size, m1 + n1 ≤ m2, m1 ≤ m0, m0 + n0 ≤ m1 + n1, m0 + n0 ≤ m2, ∀ m. (m < m1 ∨ m1 + n1 ≤ m) ∧ m < size → ar0(m) = ar1(m) ⊦ |
⊦ n < size → fill(ar, a, m0, m1)(n) = (m0 ≤ n ∧ n < m0 + m1 ⊃ a;ar(n))
Used simplifier rules: ⊦ m ≤ n → (n < m ↔ false); (s) Used terms: m0, a, ar1, m2, n0
| ⊦ n < size → fill(ar, a, m0, m1)(n) = (m0 ≤ n ∧ n < m0 + m1 ⊃ a;ar(n)) |
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.