| ⊦ stutf(nσ) ∧ ⌜n⌝ < leninv(nσ) → (⌜inv(nσ)[n]⌝ < # nσ ↔ true) |
¬(⌜inv(nσ)[n]⌝ < # nσ ↔ true), ⌜n⌝ < leninv(nσ), stutf(nσ) ⊦
| ¬(⌜inv(nσ)[n]⌝ < # nσ ↔ true), ⌜n⌝ < leninv(nσ), stutf(nσ) ⊦ |
⌜n⌝ < leninv(nσ), stutf(nσ), ¬ ⌜inv(nσ)[n]⌝ < # nσ ⊦
| ⌜n⌝ < leninv(nσ), stutf(nσ), ¬ ⌜inv(nσ)[n]⌝ < # nσ ⊦ |
⊦ stutf(nσ) → inv(nσ) = (leninv(nσ) = ∞ ⊃ ⌜λ m. max∞(λ n. ⌜n⌝ < # nσ ∧ nσ[n] = m).n⌝ ;⌜λ m. max∞(λ n. ⌜n⌝ < # nσ ∧ nσ[n] = m).n⌝ to leninv(nσ).n)
⌜n⌝ < leninv(nσ), stutf(nσ), ¬ ⌜(leninv(nσ) = ∞ ⊃ ⌜λ m. max∞(λ n. ⌜n⌝ < # nσ ∧ nσ[n] = m).n⌝ ;⌜λ m. max∞(λ n. ⌜n⌝ < # nσ ∧ nσ[n] = m).n⌝ to leninv(nσ).n)[n]⌝ < # nσ ⊦
Used terms: nσ
| ⊦ stutf(nσ) → inv(nσ) = (leninv(nσ) = ∞ ⊃ ⌜λ m. max∞(λ n. ⌜n⌝ < # nσ ∧ nσ[n] = m).n⌝ ;⌜λ m. max∞(λ n. ⌜n⌝ < # nσ ∧ nσ[n] = m).n⌝ to leninv(nσ).n) |
| ⌜n⌝ < leninv(nσ), stutf(nσ), ¬ ⌜(leninv(nσ) = ∞ ⊃ ⌜λ m. max∞(λ n. ⌜n⌝ < # nσ ∧ nσ[n] = m).n⌝ ;⌜λ m. max∞(λ n. ⌜n⌝ < # nσ ∧ nσ[n] = m).n⌝ to leninv(nσ).n)[n]⌝ < # nσ ⊦ |
⌜n⌝ < leninv(nσ), stutf(nσ), ¬ ⌜(leninv(nσ) = ∞ ⊃ ⌜λ m. max∞(λ n. ⌜n⌝ < # nσ ∧ nσ[n] = m).n⌝ ;⌜(λ m. max∞(λ n. ⌜n⌝ < # nσ ∧ nσ[n] = m).n) to leninv(nσ).n⌝ )[n] ⌝ < # nσ ⊦
Used simplifier rules: ⊦ ⌜nf⌝ to n = ⌜nf to n⌝ ; (s)
| ⌜n⌝ < leninv(nσ), stutf(nσ), ¬ ⌜(leninv(nσ) = ∞ ⊃ ⌜λ m. max∞(λ n. ⌜n⌝ < # nσ ∧ nσ[n] = m).n⌝ ;⌜(λ m. max∞(λ n. ⌜n⌝ < # nσ ∧ nσ[n] = m).n) to leninv(nσ).n⌝ )[n] ⌝ < # nσ ⊦ |
leninv(nσ) ≠ ∞, ⌜n⌝ < leninv(nσ), stutf(nσ), ¬ ⌜⌜(λ m. max∞(λ n. ⌜n⌝ < # nσ ∧ nσ[n] = m).n) to leninv(nσ).n⌝ [n]⌝ < # nσ ⊦
Used simplifier rules: leninv-inf-strong: ⊦ stutf(nσ) → ( leninv(nσ) = ∞ ↔ # nσ = ∞ ∧ (∀ m. ∃ m0. m < m0 ∧ nσ[m] < nσ[m0]) ∧ (∀ m. ∃ m0. m < nσ[m0])); ⊦ ⌜nf⌝ [n] = nf(n); (s) ⊦ ⌜m⌝ < ∞; (s)
| leninv(nσ) ≠ ∞, ⌜n⌝ < leninv(nσ), stutf(nσ), ¬ ⌜⌜(λ m. max∞(λ n. ⌜n⌝ < # nσ ∧ nσ[n] = m).n) to leninv(nσ).n⌝ [n]⌝ < # nσ ⊦ |
leninv(nσ) ≠ ∞, ⌜n⌝ < leninv(nσ), stutf(nσ), ¬ ⌜((λ m. max∞(λ n. ⌜n⌝ < # nσ ∧ nσ[n] = m).n) to leninv(nσ).n)[n]⌝ < # nσ ⊦
Used simplifier rules: ⊦ ⌜x⌝ [n] = x[n]; (s)
| leninv(nσ) ≠ ∞, ⌜n⌝ < leninv(nσ), stutf(nσ), ¬ ⌜((λ m. max∞(λ n. ⌜n⌝ < # nσ ∧ nσ[n] = m).n) to leninv(nσ).n)[n]⌝ < # nσ ⊦ |
leninv(nσ) = ⌜n0⌝ , leninv(nσ) ≠ ∞, ⌜n⌝ < leninv(nσ), stutf(nσ), ¬ ⌜((λ m. max∞(λ n. ⌜n⌝ < # nσ ∧ nσ[n] = m).n) to n0)[n]⌝ < # nσ ⊦
Used simplifier rules: ⊦ n∞ ≠ ∞ → (n = n∞.n ↔ n∞ = ⌜n⌝ ); (elim) Used terms: leninv(nσ), n0
| leninv(nσ) = ⌜n0⌝ , leninv(nσ) ≠ ∞, ⌜n⌝ < leninv(nσ), stutf(nσ), ¬ ⌜((λ m. max∞(λ n. ⌜n⌝ < # nσ ∧ nσ[n] = m).n) to n0)[n]⌝ < # nσ ⊦ |
leninv(nσ) = ⌜n0⌝ , n < n0, stutf(nσ), ¬ ⌜max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n).n⌝ < # nσ ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic m < n ⊦ (nf to n)[m] = nf(m); (s) ⊦ m < n → (n ≤ m ↔ false); (s) ⊦ m < n ↔ ¬ n ≤ m; (ss) ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) ⊦ ⌜n⌝ ≠ ∞; (s)
| leninv(nσ) = ⌜n0⌝ , n < n0, stutf(nσ), ¬ ⌜max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n).n⌝ < # nσ ⊦ |
n∞ ≠ ∞ ⊦ ⌜n∞.n⌝ = n∞
leninv(nσ) = ⌜n0⌝ , max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) = ∞, n < n0, stutf(nσ), ¬ ⌜max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n).n⌝ < # nσ ⊦
leninv(nσ) = ⌜n0⌝ , max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) ≠ ∞, n < n0, stutf(nσ), ¬ max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) < # nσ ⊦
Used terms: max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n)
| n∞ ≠ ∞ ⊦ ⌜n∞.n⌝ = n∞ |
| leninv(nσ) = ⌜n0⌝ , max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) = ∞, n < n0, stutf(nσ), ¬ ⌜max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n).n⌝ < # nσ ⊦ |
leninv(nσ) = ⌜n0⌝ , max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) = ∞, n < n0, stutf(nσ), ¬ ⌜∞.n⌝ < # nσ ⊦
| leninv(nσ) = ⌜n0⌝ , max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) = ∞, n < n0, stutf(nσ), ¬ ⌜∞.n⌝ < # nσ ⊦ |
leninv(nσ) = ⌜n0⌝ , max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) = ∞, n0 = n1 +1, n < n0, stutf(nσ), ¬ ⌜∞.n⌝ < # nσ ⊦
Used simplifier rules: nat freely generated by 0, +1;; ⊦ ¬ n < 0; (s)
| leninv(nσ) = ⌜n0⌝ , max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) = ∞, n0 = n1 +1, n < n0, stutf(nσ), ¬ ⌜∞.n⌝ < # nσ ⊦ |
leninv(nσ) = ⌜n1⌝ + ⌜1⌝ , max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) = ∞, stutf(nσ), n ≤ n1, ¬ ⌜∞.n⌝ < # nσ ⊦
Used simplifier rules: ⊦ m < n ↔ ¬ n ≤ m; (ss) c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ m < n + 1 ↔ ¬ n < m; (s) ⊦ m +1 = m + 1; (s) ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s)
| leninv(nσ) = ⌜n1⌝ + ⌜1⌝ , max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) = ∞, stutf(nσ), n ≤ n1, ¬ ⌜∞.n⌝ < # nσ ⊦ |
⊦ stutf(nσ) → (leninv(nσ) = ⌜n⌝ + ⌜1⌝ ↔ (# nσ = ∞ ⊃ ∃ m. nσ[m] = n ∧ (∀ m0. m < m0 → nσ[m0] = n + 1);nσ[(# nσ).n - 1] = n))
max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) = ∞, stutf(nσ), n ≤ n1, ¬ ⌜∞.n⌝ < # nσ, (# nσ = ∞ ⊃ ∃ m. nσ[m] = n1 ∧ (∀ m0. m < m0 → nσ[m0] = n1 + 1);nσ[(# nσ).n - 1] = n1) ⊦
Used terms: n1, nσ
| ⊦ stutf(nσ) → (leninv(nσ) = ⌜n⌝ + ⌜1⌝ ↔ (# nσ = ∞ ⊃ ∃ m. nσ[m] = n ∧ (∀ m0. m < m0 → nσ[m0] = n + 1);nσ[(# nσ).n - 1] = n)) |
| max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) = ∞, stutf(nσ), n ≤ n1, ¬ ⌜∞.n⌝ < # nσ, (# nσ = ∞ ⊃ ∃ m. nσ[m] = n1 ∧ (∀ m0. m < m0 → nσ[m0] = n1 + 1);nσ[(# nσ).n - 1] = n1) ⊦ |
max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) = ∞, stutf(nσ), n ≤ n1, ¬ ⌜∞.n⌝ < # nσ, (# nσ = ∞ ⊃ nσ[n0] = n1 ∧ (∀ m0. n0 < m0 → nσ[m0] = nσ[n0] + 1);nσ[(# nσ).n - 1] = n1) ⊦
| max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) = ∞, stutf(nσ), n ≤ n1, ¬ ⌜∞.n⌝ < # nσ, (# nσ = ∞ ⊃ nσ[n0] = n1 ∧ (∀ m0. n0 < m0 → nσ[m0] = nσ[n0] + 1);nσ[(# nσ).n - 1] = n1) ⊦ |
nσ[(# nσ).n - 1] = n1, max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) = ∞, # nσ ≠ ∞, stutf(nσ), n ≤ n1, ¬ ⌜∞.n⌝ < # nσ ⊦
Used simplifier rules: ⊦ ⌜m⌝ < ∞; (s)
| nσ[(# nσ).n - 1] = n1, max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) = ∞, # nσ ≠ ∞, stutf(nσ), n ≤ n1, ¬ ⌜∞.n⌝ < # nσ ⊦ |
max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) = ∞, # nσ ≠ ∞, stutf(nσ), n ≤ nσ[(# nσ).n - 1], ¬ ⌜∞.n⌝ < # nσ ⊦
| max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) = ∞, # nσ ≠ ∞, stutf(nσ), n ≤ nσ[(# nσ).n - 1], ¬ ⌜∞.n⌝ < # nσ ⊦ |
# nσ = ⌜n1⌝ , max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) = ∞, # nσ ≠ ∞, stutf(nσ), n ≤ nσ[n1 - 1], ¬ ⌜∞.n⌝ < # nσ ⊦
Used simplifier rules: ⊦ n∞ ≠ ∞ → (n = n∞.n ↔ n∞ = ⌜n⌝ ); (elim) Used terms: # nσ, n1
| # nσ = ⌜n1⌝ , max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) = ∞, # nσ ≠ ∞, stutf(nσ), n ≤ nσ[n1 - 1], ¬ ⌜∞.n⌝ < # nσ ⊦ |
# nσ = ⌜n1⌝ , max∞(λ n0. n0 < n1 ∧ nσ[n0] = n) = ∞, stutf(nσ), n ≤ nσ[n1 - 1], n1 ≤ ∞.n ⊦
Used simplifier rules: ⊦ m < n ↔ ¬ n ≤ m; (ss) ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) ⊦ ⌜n⌝ ≠ ∞; (s)
| # nσ = ⌜n1⌝ , max∞(λ n0. n0 < n1 ∧ nσ[n0] = n) = ∞, stutf(nσ), n ≤ nσ[n1 - 1], n1 ≤ ∞.n ⊦ |
# nσ = ⌜n1⌝ , max∞(λ n0. n0 < n1 ∧ nσ[n0] = n) = ∞, n1 = n2 + 1, n1 ≠ 0, stutf(nσ), n1 ≤ ∞.n, n ≤ nσ[n2] ⊦
Used simplifier rules: stutf-nonempty: ⊦ stutf(nσ) → (nσ = [] ↔ false); ⊦ ¬ n < 0; (s) ⊦ # σ = ⌜0⌝ ↔ σ = []; (s) n ≠ 0 ⊦ m = n - 1 ↔ n = m + 1; (elim) Used terms: n1, m
| # nσ = ⌜n1⌝ , max∞(λ n0. n0 < n1 ∧ nσ[n0] = n) = ∞, n1 = n2 + 1, n1 ≠ 0, stutf(nσ), n1 ≤ ∞.n, n ≤ nσ[n2] ⊦ |
# nσ = ⌜n2⌝ + ⌜1⌝ , max∞(λ n0. ¬ n2 < n0 ∧ nσ[n0] = n) = ∞, n2 < ∞.n, stutf(nσ), n ≤ nσ[n2] ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ m + 1 ≤ n ↔ m < n; (s) ⊦ m + 1 ≠ 0; (s) ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s) ⊦ m < n + 1 ↔ ¬ n < m; (s)
| # nσ = ⌜n2⌝ + ⌜1⌝ , max∞(λ n0. ¬ n2 < n0 ∧ nσ[n0] = n) = ∞, n2 < ∞.n, stutf(nσ), n ≤ nσ[n2] ⊦ |
⊦ max∞(np) = ∞ ↔ (∀ n. ∃ n0. n < n0 ∧ np(n0)) ∨ (∀ n. ¬ np(n))
# nσ = ⌜n2⌝ + ⌜1⌝ , n2 < ∞.n, stutf(nσ), n ≤ nσ[n2], (∀ n0. ∃ n1. n0 < n1 ∧ ¬ n2 < n1 ∧ nσ[n1] = n) ∨ (∀ n0. ¬(¬ n2 < n0 ∧ nσ[n0] = n)) ⊦
Used terms: λ n0. ¬ n2 < n0 ∧ nσ[n0] = n
| ⊦ max∞(np) = ∞ ↔ (∀ n. ∃ n0. n < n0 ∧ np(n0)) ∨ (∀ n. ¬ np(n)) |
| # nσ = ⌜n2⌝ + ⌜1⌝ , n2 < ∞.n, stutf(nσ), n ≤ nσ[n2], (∀ n0. ∃ n1. n0 < n1 ∧ ¬ n2 < n1 ∧ nσ[n1] = n) ∨ (∀ n0. ¬(¬ n2 < n0 ∧ nσ[n0] = n)) ⊦ |
# nσ = ⌜n2⌝ + ⌜1⌝ , n2 < ∞.n, stutf(nσ), n ≤ nσ[n2], (∀ n0. ∃ n1. n0 < n1 ∧ ¬ n2 < n1 ∧ nσ[n1] = n) ∨ (∀ n0. n2 < n0 ∨ nσ[n0] ≠ n) ⊦
| # nσ = ⌜n2⌝ + ⌜1⌝ , n2 < ∞.n, stutf(nσ), n ≤ nσ[n2], (∀ n0. ∃ n1. n0 < n1 ∧ ¬ n2 < n1 ∧ nσ[n1] = n) ∨ (∀ n0. n2 < n0 ∨ nσ[n0] ≠ n) ⊦ |
# nσ = ⌜n2⌝ + ⌜1⌝ , n2 < ∞.n, stutf(nσ), n ≤ nσ[n2], ∀ n0. ∃ n1. n0 < n1 ∧ ¬ n2 < n1 ∧ nσ[n1] = n ⊦
# nσ = ⌜n2⌝ + ⌜1⌝ , n2 < ∞.n, stutf(nσ), n ≤ nσ[n2], ∀ n0. n2 < n0 ∨ nσ[n0] ≠ n ⊦
| # nσ = ⌜n2⌝ + ⌜1⌝ , n2 < ∞.n, stutf(nσ), n ≤ nσ[n2], ∀ n0. ∃ n1. n0 < n1 ∧ ¬ n2 < n1 ∧ nσ[n1] = n ⊦ |
Used terms: n2
| # nσ = ⌜n2⌝ + ⌜1⌝ , n2 < ∞.n, stutf(nσ), n ≤ nσ[n2], ∀ n0. n2 < n0 ∨ nσ[n0] ≠ n ⊦ |
⊦ stutf(nσ) ∧ ⌜m⌝ < # nσ ∧ n ≤ nσ[m] → (∃ m0. m0 ≤ m ∧ nσ[m0] = n)
# nσ = ⌜n2⌝ + ⌜1⌝ , n2 < ∞.n, stutf(nσ), n ≤ nσ[n2], stutf(nσ) ∧ ⌜n2⌝ < # nσ ∧ n ≤ nσ[n2] → (∃ m0. m0 ≤ n2 ∧ nσ[m0] = n), ∀ n0. n2 < n0 ∨ nσ[n0] ≠ n ⊦
Used terms: nσ, n2, n
| ⊦ stutf(nσ) ∧ ⌜m⌝ < # nσ ∧ n ≤ nσ[m] → (∃ m0. m0 ≤ m ∧ nσ[m0] = n) |
| # nσ = ⌜n2⌝ + ⌜1⌝ , n2 < ∞.n, stutf(nσ), n ≤ nσ[n2], stutf(nσ) ∧ ⌜n2⌝ < # nσ ∧ n ≤ nσ[n2] → (∃ m0. m0 ≤ n2 ∧ nσ[m0] = n), ∀ n0. n2 < n0 ∨ nσ[n0] ≠ n ⊦ |
# nσ = ⌜n2⌝ + ⌜1⌝ , n0 < ∞.n, n2 < ∞.n, stutf(nσ), n0 ≤ n2, nσ[n0] ≤ nσ[n2], ∀ n1. n2 < n1 ∨ nσ[n1] ≠ nσ[n0] ⊦
Used simplifier rules: fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ ¬ n < n; (s) ⊦ m < n + 1 ↔ ¬ n < m; (s) ⊦ n∞ = ⌜m⌝ + ⌜n0⌝ → (⌜n⌝ < n∞ ↔ n < m + n0); (s) add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf
| # nσ = ⌜n2⌝ + ⌜1⌝ , n0 < ∞.n, n2 < ∞.n, stutf(nσ), n0 ≤ n2, nσ[n0] ≤ nσ[n2], ∀ n1. n2 < n1 ∨ nσ[n1] ≠ nσ[n0] ⊦ |
Used simplifier rules: ⊦ m ≤ n → (n < m ↔ false); (s) Used terms: n0
| leninv(nσ) = ⌜n0⌝ , max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) ≠ ∞, n < n0, stutf(nσ), ¬ max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) < # nσ ⊦ |
leninv(nσ) = ⌜n0⌝ , max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) ≠ ∞, n < n0, stutf(nσ), ¬ max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) < # nσ ⊦
| leninv(nσ) = ⌜n0⌝ , max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) ≠ ∞, n < n0, stutf(nσ), ¬ max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) < # nσ ⊦ |
⊦ n∞ = ∞ ↔ ¬(∃ n. n∞ = ⌜n⌝ )
leninv(nσ) = ⌜n0⌝ , n < n0, stutf(nσ), ¬ max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) < # nσ, ∃ n0. max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) = ⌜n0⌝ ⊦
Used terms: max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n)
| ⊦ n∞ = ∞ ↔ ¬(∃ n. n∞ = ⌜n⌝ ) |
| leninv(nσ) = ⌜n0⌝ , n < n0, stutf(nσ), ¬ max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) < # nσ, ∃ n0. max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) = ⌜n0⌝ ⊦ |
leninv(nσ) = ⌜n0⌝ , max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) = ⌜n1⌝ , n < n0, stutf(nσ), ¬ ⌜n1⌝ < # nσ ⊦
| leninv(nσ) = ⌜n0⌝ , max∞(λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n) = ⌜n1⌝ , n < n0, stutf(nσ), ¬ ⌜n1⌝ < # nσ ⊦ |
⊦ max∞(np) = ⌜n⌝ ↔ np(n) ∧ (∀ m. np(m) → ¬ n < m)
Used terms: n1, λ n0. ⌜n0⌝ < # nσ ∧ nσ[n0] = n
| ⊦ max∞(np) = ⌜n⌝ ↔ np(n) ∧ (∀ m. np(m) → ¬ n < m) |
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.