| ∀ x, n. x ⊑ nextnli(x, n) ⊦ ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)) |
∀ x, n. x ⊑ nextnli(x, n), ∀ x, n. ∃ y. nextnli(x, n) = x + y ⊦ ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1))
∀ x, n. x ⊑ nextnli(x, n) ⊦ ∀ x, n. ∃ y. nextnli(x, n) = x + y, ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1))
Used formulas: ∀ x, n. ∃ y. nextnli(x, n) = x + y
| ∀ x, n. x ⊑ nextnli(x, n), ∀ x, n. ∃ y. nextnli(x, n) = x + y ⊦ ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)) |
∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ x, n. x ⊑ nextnli(x, n) ⊦ ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1))
| ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ x, n. x ⊑ nextnli(x, n) ⊦ ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)) |
∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦ ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1))
| ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦ ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)) |
⊦ ∃ lf. lf(0) = x ∧ (∀ n. lf(n + 1) = nextnli(lf(n), n))
∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∃ lf. lf(0) = [] ∧ (∀ n. lf(n + 1) = nextnli(lf(n), n)) ⊦ ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1))
Used terms: [], nextnli
| ⊦ ∃ lf. lf(0) = x ∧ (∀ n. lf(n + 1) = nextnli(lf(n), n)) |
| ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∃ lf. lf(0) = [] ∧ (∀ n. lf(n + 1) = nextnli(lf(n), n)) ⊦ ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)) |
lf(0) = [], ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦ ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1))
| lf(0) = [], ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦ ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)) |
⊦ ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n + 1) = ii(n) + # lf(n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # lf(n) = ⌜lf(n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → lf(m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1))
lf(0) = [], ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)) ⊦ ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1))
Used terms: λ n. nextnli0(lf(n), n)
| ⊦ ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n + 1) = ii(n) + # lf(n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # lf(n) = ⌜lf(n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → lf(m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)) |
| lf(0) = [], ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)) ⊦ ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)) |
ii(0) = 0, lf(0) = [], (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦ ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1))
| ii(0) = 0, lf(0) = [], (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦ ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)) |
ii(0) = 0, lf(0) = [], (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ ⊦ ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1))
Used terms: σ, ii
| ii(0) = 0, lf(0) = [], (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ ⊦ ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)) |
ii(0) = 0, lf(0) = [], (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦ ii(n0) ≤ ii(n0 + 1) ∧ ¬ # σ < ⌜ii(n0 + 1)⌝ ∧ σ to ii(n0 + 1) = ⌜nextnli((σ to ii(n0)).l, n0)⌝ ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1))
| ii(0) = 0, lf(0) = [], (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦ ii(n0) ≤ ii(n0 + 1) ∧ ¬ # σ < ⌜ii(n0 + 1)⌝ ∧ σ to ii(n0 + 1) = ⌜nextnli((σ to ii(n0)).l, n0)⌝ ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1)) |
ii(0) = 0, lf(0) = [], (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ n0. lf(n0) = (σ to ii(n0)).l ⊦ ii(n0) ≤ ii(n0 + 1) ∧ ¬ # σ < ⌜ii(n0 + 1)⌝ ∧ σ to ii(n0 + 1) = ⌜nextnli((σ to ii(n0)).l, n0)⌝ ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1))
ii(0) = 0, lf(0) = [], (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ ⊦ ∀ n0. lf(n0) = (σ to ii(n0)).l, ii(n0) ≤ ii(n0 + 1) ∧ ¬ # σ < ⌜ii(n0 + 1)⌝ ∧ σ to ii(n0 + 1) = ⌜nextnli((σ to ii(n0)).l, n0)⌝ ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1))
Used formulas: ∀ n0. lf(n0) = (σ to ii(n0)).l
| ii(0) = 0, lf(0) = [], (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ n0. lf(n0) = (σ to ii(n0)).l ⊦ ii(n0) ≤ ii(n0 + 1) ∧ ¬ # σ < ⌜ii(n0 + 1)⌝ ∧ σ to ii(n0 + 1) = ⌜nextnli((σ to ii(n0)).l, n0)⌝ ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1)) |
ii(0) = 0, lf(0) = [], ¬ ii(n0) ≤ ii(n0 + 1), (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦
ii(0) = 0, lf(0) = [], # σ < ⌜ii(n0 + 1)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦
ii(0) = 0, lf(0) = [], σ to ii(n0 + 1) ≠ ⌜nextnli((σ to ii(n0)).l, n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦
ii(0) = 0, lf(0) = [], (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1))
| ii(0) = 0, lf(0) = [], ¬ ii(n0) ≤ ii(n0 + 1), (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦ |
ii(0) = 0, lf(0) = [], ii(n0 + 1) < ii(n0), (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic ⊦ m ≤ n ↔ ¬ n < m; (ss)
| ii(0) = 0, lf(0) = [], ii(n0 + 1) < ii(n0), (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦ |
Used simplifier rules: ⊦ m ≤ m + n; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic ⊦ m < n → (n ≤ m ↔ false); (s) Used terms: n0, n0 + 1
| ii(0) = 0, lf(0) = [], # σ < ⌜ii(n0 + 1)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦ |
# σ = ⌜ii(n)⌝ , ii(0) = 0, lf(0) = [], ii(n) < ii(n0 + 1), ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n) ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) ⊦ ¬ ∞ < n∞; (s) ⊦ ¬ finp(σ) → # σ = ∞; (s)
| # σ = ⌜ii(n)⌝ , ii(0) = 0, lf(0) = [], ii(n) < ii(n0 + 1), ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n) ⊦ |
Used simplifier rules: lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) ⊦ m < n ↔ ¬ n ≤ m; (ss) ⊦ m < n → (n ≤ m ↔ false); (s) Used terms: n0
| ii(0) = 0, lf(0) = [], σ to ii(n0 + 1) ≠ ⌜nextnli((σ to ii(n0)).l, n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦ |
ii(0) = 0, lf(0) = [], lf(n0) = (σ to ii(n0)).l, σ to ii(n0 + 1) ≠ ⌜nextnli((σ to ii(n0)).l, n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ n0. lf(n0) = (σ to ii(n0)).l ⊦
Used terms: n0
| ii(0) = 0, lf(0) = [], lf(n0) = (σ to ii(n0)).l, σ to ii(n0 + 1) ≠ ⌜nextnli((σ to ii(n0)).l, n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ n0. lf(n0) = (σ to ii(n0)).l ⊦ |
ii(0) = 0, lf(n0) = (σ to ii(n0)).l, lf(0) = [], σ to ii(n0 + 1) ≠ ⌜nextnli(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦
| ii(0) = 0, lf(n0) = (σ to ii(n0)).l, lf(0) = [], σ to ii(n0 + 1) ≠ ⌜nextnli(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦ |
ii(0) = 0, lf(0) = [], lf(n0) = (σ to ii(n0)).l, lf(n0 + 1) = (σ to ii(n0 + 1)).l, σ to ii(n0 + 1) ≠ ⌜nextnli(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ n0. lf(n0) = (σ to ii(n0)).l ⊦
Used terms: n0 + 1
| ii(0) = 0, lf(0) = [], lf(n0) = (σ to ii(n0)).l, lf(n0 + 1) = (σ to ii(n0 + 1)).l, σ to ii(n0 + 1) ≠ ⌜nextnli(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ n0. lf(n0) = (σ to ii(n0)).l ⊦ |
ii(0) = 0, lf(n0 + 1) = (σ to ii(n0 + 1)).l, lf(n0) = (σ to ii(n0)).l, lf(0) = [], lf(n0 + 1) = nextnli(lf(n0), n0), σ to ii(n0 + 1) ≠ ⌜nextnli(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦
Used terms: n0
| ii(0) = 0, lf(n0 + 1) = (σ to ii(n0 + 1)).l, lf(n0) = (σ to ii(n0)).l, lf(0) = [], lf(n0 + 1) = nextnli(lf(n0), n0), σ to ii(n0 + 1) ≠ ⌜nextnli(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦ |
ii(0) = 0, lf(n0 + 1) = nextnli(lf(n0), n0), lf(0) = [], lf(n0) = (σ to ii(n0)).l, nextnli(lf(n0), n0) = (σ to ii(n0 + 1)).l, σ to ii(n0 + 1) ≠ ⌜nextnli(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ n0. lf(n0) = (σ to ii(n0)).l ⊦
| ii(0) = 0, lf(n0 + 1) = nextnli(lf(n0), n0), lf(0) = [], lf(n0) = (σ to ii(n0)).l, nextnli(lf(n0), n0) = (σ to ii(n0 + 1)).l, σ to ii(n0 + 1) ≠ ⌜nextnli(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ n0. lf(n0) = (σ to ii(n0)).l ⊦ |
ii(0) = 0, lf(n0) = (σ to ii(n0)).l, lf(0) = [], lf(n0 + 1) = nextnli(lf(n0), n0), nextnli(lf(n0), n0) = (σ to ii(n0 + 1)).l, nextnli(lf(n0), n0) = lf(n0) + nextnli0(lf(n0), n0), σ to ii(n0 + 1) ≠ ⌜nextnli(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦
Used terms: lf(n0), n0
| ii(0) = 0, lf(n0) = (σ to ii(n0)).l, lf(0) = [], lf(n0 + 1) = nextnli(lf(n0), n0), nextnli(lf(n0), n0) = (σ to ii(n0 + 1)).l, nextnli(lf(n0), n0) = lf(n0) + nextnli0(lf(n0), n0), σ to ii(n0 + 1) ≠ ⌜nextnli(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦ |
(σ to ii(n0 + 1)).l = lf(n0) + nextnli0(lf(n0), n0), ii(0) = 0, lf(n0 + 1) = (σ to ii(n0 + 1)).l, lf(0) = [], lf(n0) = (σ to ii(n0)).l, σ to ii(n0 + 1) ≠ ⌜(σ to ii(n0 + 1)).l⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ n0. lf(n0) = (σ to ii(n0)).l ⊦
| (σ to ii(n0 + 1)).l = lf(n0) + nextnli0(lf(n0), n0), ii(0) = 0, lf(n0 + 1) = (σ to ii(n0 + 1)).l, lf(0) = [], lf(n0) = (σ to ii(n0)).l, σ to ii(n0 + 1) ≠ ⌜(σ to ii(n0 + 1)).l⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ n0. lf(n0) = (σ to ii(n0)).l ⊦ |
(σ to ii(n0 + 1)).l = lf(n0 + 1), ii(0) = 0, lf(n0) = (σ to ii(n0)).l, lf(0) = [], lf(n0 + 1) = lf(n0) + nextnli0(lf(n0), n0), σ to ii(n0 + 1) ≠ ⌜lf(n0 + 1)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦
| (σ to ii(n0 + 1)).l = lf(n0 + 1), ii(0) = 0, lf(n0) = (σ to ii(n0)).l, lf(0) = [], lf(n0 + 1) = lf(n0) + nextnli0(lf(n0), n0), σ to ii(n0 + 1) ≠ ⌜lf(n0 + 1)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦ |
⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n])
(σ to ii(n0 + 1)).l = lf(n0 + 1), ii(0) = 0, lf(n0 + 1) = lf(n0) + nextnli0(lf(n0), n0), lf(0) = [], lf(n0) = (σ to ii(n0)).l, (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ n0. lf(n0) = (σ to ii(n0)).l, #(σ to ii(n0 + 1)) ≠ # ⌜lf(n0 + 1)⌝ ∨ (∃ n. ¬(⌜n⌝ < #(σ to ii(n0 + 1)) → (σ to ii(n0 + 1))[n] = ⌜lf(n0 + 1)⌝ [n])) ⊦
Used terms: ⌜lf(n0 + 1)⌝ , σ to ii(n0 + 1)
| ⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n]) |
| (σ to ii(n0 + 1)).l = lf(n0 + 1), ii(0) = 0, lf(n0 + 1) = lf(n0) + nextnli0(lf(n0), n0), lf(0) = [], lf(n0) = (σ to ii(n0)).l, (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ n0. lf(n0) = (σ to ii(n0)).l, #(σ to ii(n0 + 1)) ≠ # ⌜lf(n0 + 1)⌝ ∨ (∃ n. ¬(⌜n⌝ < #(σ to ii(n0 + 1)) → (σ to ii(n0 + 1))[n] = ⌜lf(n0 + 1)⌝ [n])) ⊦ |
(σ to ii(n0 + 1)).l = lf(n0 + 1), ii(0) = 0, lf(n0) = (σ to ii(n0)).l, lf(0) = [], lf(n0 + 1) = lf(n0) + nextnli0(lf(n0), n0), (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), #(σ to ii(n0 + 1)) ≠ ⌜# lf(n0 + 1)⌝ ∨ ¬(⌜n1⌝ < #(σ to ii(n0 + 1)) → (σ to ii(n0 + 1))[n1] = lf(n0 + 1)[n1]) ⊦
Used simplifier rules: ⊦ ⌜x⌝ [n] = x[n]; (s) ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s)
| (σ to ii(n0 + 1)).l = lf(n0 + 1), ii(0) = 0, lf(n0) = (σ to ii(n0)).l, lf(0) = [], lf(n0 + 1) = lf(n0) + nextnli0(lf(n0), n0), (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), #(σ to ii(n0 + 1)) ≠ ⌜# lf(n0 + 1)⌝ ∨ ¬(⌜n1⌝ < #(σ to ii(n0 + 1)) → (σ to ii(n0 + 1))[n1] = lf(n0 + 1)[n1]) ⊦ |
⊦ x = y ↔ # x = # y ∧ (∀ n. n < # x → x[n] = y[n])
# (σ to ii(n0 + 1)).l = # lf(n0 + 1), ii(0) = 0, lf(n0 + 1) = lf(n0) + nextnli0(lf(n0), n0), lf(0) = [], lf(n0) = (σ to ii(n0)).l, (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. n < # (σ to ii(n0 + 1)).l → (σ to ii(n0 + 1)).l[n] = lf(n0 + 1)[n], #(σ to ii(n0 + 1)) ≠ ⌜# lf(n0 + 1)⌝ ∨ ¬(⌜n1⌝ < #(σ to ii(n0 + 1)) → (σ to ii(n0 + 1))[n1] = lf(n0 + 1)[n1]) ⊦
Used terms: lf(n0 + 1), (σ to ii(n0 + 1)).l
| ⊦ x = y ↔ # x = # y ∧ (∀ n. n < # x → x[n] = y[n]) |
| # (σ to ii(n0 + 1)).l = # lf(n0 + 1), ii(0) = 0, lf(n0 + 1) = lf(n0) + nextnli0(lf(n0), n0), lf(0) = [], lf(n0) = (σ to ii(n0)).l, (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. n < # (σ to ii(n0 + 1)).l → (σ to ii(n0 + 1)).l[n] = lf(n0 + 1)[n], #(σ to ii(n0 + 1)) ≠ ⌜# lf(n0 + 1)⌝ ∨ ¬(⌜n1⌝ < #(σ to ii(n0 + 1)) → (σ to ii(n0 + 1))[n1] = lf(n0 + 1)[n1]) ⊦ |
# (σ to ii(n0 + 1)).l = # lf(n0 + 1), ii(0) = 0, lf(n0) = (σ to ii(n0)).l, lf(0) = [], lf(n0 + 1) = lf(n0) + nextnli0(lf(n0), n0), (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n. n < # lf(n0 + 1) → (σ to ii(n0 + 1)).l[n] = lf(n0 + 1)[n], ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), #(σ to ii(n0 + 1)) ≠ ⌜# lf(n0 + 1)⌝ ∨ ¬(⌜n1⌝ < #(σ to ii(n0 + 1)) → (σ to ii(n0 + 1))[n1] = lf(n0 + 1)[n1]) ⊦
| # (σ to ii(n0 + 1)).l = # lf(n0 + 1), ii(0) = 0, lf(n0) = (σ to ii(n0)).l, lf(0) = [], lf(n0 + 1) = lf(n0) + nextnli0(lf(n0), n0), (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n. n < # lf(n0 + 1) → (σ to ii(n0 + 1)).l[n] = lf(n0 + 1)[n], ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), #(σ to ii(n0 + 1)) ≠ ⌜# lf(n0 + 1)⌝ ∨ ¬(⌜n1⌝ < #(σ to ii(n0 + 1)) → (σ to ii(n0 + 1))[n1] = lf(n0 + 1)[n1]) ⊦ |
# (σ to ii(n0 + 1)).l = # lf(n0 + 1), # σ = ⌜ii(n)⌝ , ii(0) = 0, lf(n0 + 1) = lf(n0) + nextnli0(lf(n0), n0), lf(0) = [], lf(n0) = (σ to ii(n0)).l, finp(σ), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. n < # lf(n0 + 1) → (σ to ii(n0 + 1)).l[n] = lf(n0 + 1)[n], ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n), #(σ to ii(n0 + 1)) ≠ ⌜# lf(n0 + 1)⌝ ∨ ¬(⌜n1⌝ < #(σ to ii(n0 + 1)) → (σ to ii(n0 + 1))[n1] = lf(n0 + 1)[n1]) ⊦
# (σ to ii(n0 + 1)).l = # lf(n0 + 1), ii(0) = 0, lf(n0 + 1) = lf(n0) + nextnli0(lf(n0), n0), lf(0) = [], lf(n0) = (σ to ii(n0)).l, ¬ finp(σ), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. n < # lf(n0 + 1) → (σ to ii(n0 + 1)).l[n] = lf(n0 + 1)[n], ∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1), #(σ to ii(n0 + 1)) ≠ ⌜# lf(n0 + 1)⌝ ∨ ¬(⌜n1⌝ < #(σ to ii(n0 + 1)) → (σ to ii(n0 + 1))[n1] = lf(n0 + 1)[n1]) ⊦
| # (σ to ii(n0 + 1)).l = # lf(n0 + 1), # σ = ⌜ii(n)⌝ , ii(0) = 0, lf(n0 + 1) = lf(n0) + nextnli0(lf(n0), n0), lf(0) = [], lf(n0) = (σ to ii(n0)).l, finp(σ), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. n < # lf(n0 + 1) → (σ to ii(n0 + 1)).l[n] = lf(n0 + 1)[n], ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n), #(σ to ii(n0 + 1)) ≠ ⌜# lf(n0 + 1)⌝ ∨ ¬(⌜n1⌝ < #(σ to ii(n0 + 1)) → (σ to ii(n0 + 1))[n1] = lf(n0 + 1)[n1]) ⊦ |
#(x to ii(n0 + 1)) = # lf(n0 + 1), # x = ii(n), ii(0) = 0, lf(n0 + 1) = lf(n0) + nextnli0(lf(n0), n0), lf(0) = [], lf(n0) = x to ii(n0), (x to ii(n0 + 1))[n1] ≠ lf(n0 + 1)[n1], lf(n0 + 1) ≠ [], n1 < # lf(n0 + 1), ∀ n2. ii(n2 + 1) = ii(n2) + # nextnli0(lf(n2), n2) ∧ ¬ ii(n) < ii(n2 + 1) ∧ (x from ii(n2)) to # nextnli0(lf(n2), n2) = nextnli0(lf(n2), n2), ∀ n2. lf(n2) = x to ii(n2), ∀ n2. n2 < # lf(n0 + 1) → (x to ii(n0 + 1))[n2] = lf(n0 + 1)[n2], ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n) ⊦
Used simplifier rules: ⊦ # x = 0 ↔ x = []; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic ⊦ ⌜x⌝ = ⌜x0⌝ ↔ x = x0; (s) ⊦ ⌜x⌝ to n = ⌜x to n⌝ ; (s) ⊦ ⌜x⌝ from n = ⌜x from n⌝ ; (s) ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s) ⊦ ⌜x⌝ .l = x; (s) ⊦ ⌜x⌝ [n] = x[n]; (s) ⊦ ⌜n⌝ = ⌜n0⌝ ↔ n = n0; (s) ⊦ finp(⌜x⌝ ); (s) stream-fin-forward: ⊦ finp(σ) → (∃ x. ⌜x⌝ = σ); (forward) from specification stream-basic
| #(x to ii(n0 + 1)) = # lf(n0 + 1), # x = ii(n), ii(0) = 0, lf(n0 + 1) = lf(n0) + nextnli0(lf(n0), n0), lf(0) = [], lf(n0) = x to ii(n0), (x to ii(n0 + 1))[n1] ≠ lf(n0 + 1)[n1], lf(n0 + 1) ≠ [], n1 < # lf(n0 + 1), ∀ n2. ii(n2 + 1) = ii(n2) + # nextnli0(lf(n2), n2) ∧ ¬ ii(n) < ii(n2 + 1) ∧ (x from ii(n2)) to # nextnli0(lf(n2), n2) = nextnli0(lf(n2), n2), ∀ n2. lf(n2) = x to ii(n2), ∀ n2. n2 < # lf(n0 + 1) → (x to ii(n0 + 1))[n2] = lf(n0 + 1)[n2], ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n) ⊦ |
Used terms: n1
| # (σ to ii(n0 + 1)).l = # lf(n0 + 1), ii(0) = 0, lf(n0 + 1) = lf(n0) + nextnli0(lf(n0), n0), lf(0) = [], lf(n0) = (σ to ii(n0)).l, ¬ finp(σ), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. n < # lf(n0 + 1) → (σ to ii(n0 + 1)).l[n] = lf(n0 + 1)[n], ∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1), #(σ to ii(n0 + 1)) ≠ ⌜# lf(n0 + 1)⌝ ∨ ¬(⌜n1⌝ < #(σ to ii(n0 + 1)) → (σ to ii(n0 + 1))[n1] = lf(n0 + 1)[n1]) ⊦ |
ii(0) = 0, ii(n0 + 1) = # lf(n0 + 1), lf(0) = [], lf(n0 + 1) = lf(n0) + nextnli0(lf(n0), n0), lf(n0) = nf to ii(n0), nf(n1) ≠ lf(n0 + 1)[n1], n1 < ii(n0 + 1), ∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n) = nf to ii(n), ∀ n. n < ii(n0 + 1) → nf(n) = lf(n0 + 1)[n], ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ (nf from ii(n)) to # nextnli0(lf(n), n) = nextnli0(lf(n), n) ⊦
Used simplifier rules: ⊦ ⌜x⌝ = ⌜x0⌝ ↔ x = x0; (s) ⊦ ⌜nf⌝ to n = ⌜nf to n⌝ ; (s) ⊦ ⌜nf⌝ from n = ⌜nf from n⌝ ; (s) ⊦ ⌜nf⌝ [n] = nf(n); (s) ⊦ ⌜x⌝ .l = x; (s) ⊦ ¬ finp(⌜nf⌝ ); (s) ⊦ m < n → n ≠ 0; (s) stream-inf-forward: ⊦ ¬ finp(σ) → (∃ nf. ⌜nf⌝ = σ); (forward) from specification stream-basic lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic ⊦ ¬ ∞ < n∞; (s) ⊦ ¬ finp(σ) → # σ = ∞; (s) m < n, ¬ # σ < ⌜n⌝ ⊦ (σ to n).l[m] = σ[m]; (s) m < n, ¬ # σ < ⌜n⌝ ⊦ (σ to n)[m] = σ[m]; (s) ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) ¬ # σ < ⌜n⌝ ⊦ #(σ to n) = ⌜n⌝ ; (s) ⊦ ⌜n⌝ = ⌜n0⌝ ↔ n = n0; (s) ¬ # σ < ⌜n⌝ ⊦ # (σ to n).l = n; (s)
| ii(0) = 0, ii(n0 + 1) = # lf(n0 + 1), lf(0) = [], lf(n0 + 1) = lf(n0) + nextnli0(lf(n0), n0), lf(n0) = nf to ii(n0), nf(n1) ≠ lf(n0 + 1)[n1], n1 < ii(n0 + 1), ∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n) = nf to ii(n), ∀ n. n < ii(n0 + 1) → nf(n) = lf(n0 + 1)[n], ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ (nf from ii(n)) to # nextnli0(lf(n), n) = nextnli0(lf(n), n) ⊦ |
Used terms: n1
| ii(0) = 0, lf(0) = [], (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1)) |
# σ = ⌜ii(n)⌝ , ii(0) = 0, lf(0) = [], finp(σ), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n) ⊦ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1))
ii(0) = 0, lf(0) = [], ¬ finp(σ), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1) ⊦ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1))
| # σ = ⌜ii(n)⌝ , ii(0) = 0, lf(0) = [], finp(σ), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n) ⊦ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1)) |
# x = ii(n), ii(0) = 0, lf(0) = [], ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n0. lf(n0) = x to ii(n0), ∀ n0. ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0) ∧ ¬ ii(n) < ii(n0 + 1) ∧ (x from ii(n0)) to # nextnli0(lf(n0), n0) = nextnli0(lf(n0), n0) ⊦ ∃ n0. ii(n) = ii(n0) ∧ nextnli(x, n0) = x ∧ (∀ m. n0 ≤ m → ii(m) = ii(n0))
Used simplifier rules: ⊦ ⌜x⌝ = ⌜x0⌝ ↔ x = x0; (s) ⊦ ⌜x⌝ .l = x; (s) ⊦ ⌜n⌝ = ⌜n0⌝ ↔ n = n0; (s) ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s) ⊦ ⌜x⌝ to n = ⌜x to n⌝ ; (s) ⊦ ⌜x⌝ from n = ⌜x from n⌝ ; (s) ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) ⊦ finp(⌜x⌝ ); (s) stream-fin-forward: ⊦ finp(σ) → (∃ x. ⌜x⌝ = σ); (forward) from specification stream-basic
| # x = ii(n), ii(0) = 0, lf(0) = [], ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n0. lf(n0) = x to ii(n0), ∀ n0. ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0) ∧ ¬ ii(n) < ii(n0 + 1) ∧ (x from ii(n0)) to # nextnli0(lf(n0), n0) = nextnli0(lf(n0), n0) ⊦ ∃ n0. ii(n) = ii(n0) ∧ nextnli(x, n0) = x ∧ (∀ m. n0 ≤ m → ii(m) = ii(n0)) |
# x = ii(n), ii(0) = 0, lf(0) = [], ∀ n0. ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0) ∧ ¬ ii(n) < ii(n0 + 1) ∧ (x from ii(n0)) to # nextnli0(lf(n0), n0) = nextnli0(lf(n0), n0), ∀ n0. lf(n0) = x to ii(n0), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n) ⊦ ii(n) = ii(n) ∧ nextnli(x, n) = x ∧ (∀ m. n ≤ m → ii(m) = ii(n))
Used terms: n
| # x = ii(n), ii(0) = 0, lf(0) = [], ∀ n0. ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0) ∧ ¬ ii(n) < ii(n0 + 1) ∧ (x from ii(n0)) to # nextnli0(lf(n0), n0) = nextnli0(lf(n0), n0), ∀ n0. lf(n0) = x to ii(n0), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n) ⊦ ii(n) = ii(n) ∧ nextnli(x, n) = x ∧ (∀ m. n ≤ m → ii(m) = ii(n)) |
# x = ii(n), ii(0) = 0, lf(0) = [], ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n0. lf(n0) = x to ii(n0), ∀ n0. ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0) ∧ ¬ ii(n) < ii(n0 + 1) ∧ (x from ii(n0)) to # nextnli0(lf(n0), n0) = nextnli0(lf(n0), n0) ⊦ nextnli(x, n) = x ∧ (n ≤ m → ii(m) = ii(n))
| # x = ii(n), ii(0) = 0, lf(0) = [], ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n0. lf(n0) = x to ii(n0), ∀ n0. ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0) ∧ ¬ ii(n) < ii(n0 + 1) ∧ (x from ii(n0)) to # nextnli0(lf(n0), n0) = nextnli0(lf(n0), n0) ⊦ nextnli(x, n) = x ∧ (n ≤ m → ii(m) = ii(n)) |
# x = ii(n), ii(0) = 0, lf(0) = [], nextnli(x, n) ≠ x, ∀ n0. ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0) ∧ ¬ ii(n) < ii(n0 + 1) ∧ (x from ii(n0)) to # nextnli0(lf(n0), n0) = nextnli0(lf(n0), n0), ∀ n0. lf(n0) = x to ii(n0), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n) ⊦
# x = ii(n), ii(0) = 0, lf(0) = [], ii(m) ≠ ii(n), n ≤ m, ∀ n0. ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0) ∧ ¬ ii(n) < ii(n0 + 1) ∧ (x from ii(n0)) to # nextnli0(lf(n0), n0) = nextnli0(lf(n0), n0), ∀ n0. lf(n0) = x to ii(n0), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n) ⊦
| # x = ii(n), ii(0) = 0, lf(0) = [], nextnli(x, n) ≠ x, ∀ n0. ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0) ∧ ¬ ii(n) < ii(n0 + 1) ∧ (x from ii(n0)) to # nextnli0(lf(n0), n0) = nextnli0(lf(n0), n0), ∀ n0. lf(n0) = x to ii(n0), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n) ⊦ |
# x = ii(n), ii(0) = 0, lf(0) = [], nextnli(x, n) = x + nextnli0(x, n), nextnli(x, n) ≠ x, ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ n0. lf(n0) = x to ii(n0), ∀ n0. ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0) ∧ ¬ ii(n) < ii(n0 + 1) ∧ (x from ii(n0)) to # nextnli0(lf(n0), n0) = nextnli0(lf(n0), n0) ⊦
Used terms: x, n
| # x = ii(n), ii(0) = 0, lf(0) = [], nextnli(x, n) = x + nextnli0(x, n), nextnli(x, n) ≠ x, ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ n0. lf(n0) = x to ii(n0), ∀ n0. ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0) ∧ ¬ ii(n) < ii(n0 + 1) ∧ (x from ii(n0)) to # nextnli0(lf(n0), n0) = nextnli0(lf(n0), n0) ⊦ |
# x = ii(n), ii(0) = 0, lf(0) = [], lf(n + 1) = nextnli(lf(n), n), nextnli(x, n) = x + nextnli0(x, n), nextnli(x, n) ≠ x, ∀ n0. ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0) ∧ ¬ ii(n) < ii(n0 + 1) ∧ (x from ii(n0)) to # nextnli0(lf(n0), n0) = nextnli0(lf(n0), n0), ∀ n0. lf(n0) = x to ii(n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n) ⊦
Used terms: n
| # x = ii(n), ii(0) = 0, lf(0) = [], lf(n + 1) = nextnli(lf(n), n), nextnli(x, n) = x + nextnli0(x, n), nextnli(x, n) ≠ x, ∀ n0. ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0) ∧ ¬ ii(n) < ii(n0 + 1) ∧ (x from ii(n0)) to # nextnli0(lf(n0), n0) = nextnli0(lf(n0), n0), ∀ n0. lf(n0) = x to ii(n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n) ⊦ |
# x = ii(n), ii(0) = 0, ii(n + 1) = ii(n) + # nextnli0(lf(n), n), lf(n + 1) = nextnli(lf(n), n), lf(0) = [], nextnli(x, n) = x + nextnli0(x, n), (x from ii(n)) to # nextnli0(lf(n), n) = nextnli0(lf(n), n), nextnli(x, n) ≠ x, ¬ ii(n) < ii(n + 1), ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ n0. lf(n0) = x to ii(n0) ⊦
Used terms: n
| # x = ii(n), ii(0) = 0, ii(n + 1) = ii(n) + # nextnli0(lf(n), n), lf(n + 1) = nextnli(lf(n), n), lf(0) = [], nextnli(x, n) = x + nextnli0(x, n), (x from ii(n)) to # nextnli0(lf(n), n) = nextnli0(lf(n), n), nextnli(x, n) ≠ x, ¬ ii(n) < ii(n + 1), ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ n0. lf(n0) = x to ii(n0) ⊦ |
# x = ii(n), ii(n + 1) = ii(n) + # nextnli0(lf(n), n), ii(0) = 0, lf(0) = [], lf(n + 1) = nextnli(lf(n), n), nextnli(x, n) = x + nextnli0(x, n), (x from ii(n)) to # nextnli0(lf(n), n) = nextnli0(lf(n), n), nextnli(x, n) ≠ x, ii(n + 1) ≤ ii(n), ∀ n0. lf(n0) = x to ii(n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n) ⊦
Used simplifier rules: ⊦ m < n ↔ ¬ n ≤ m; (ss)
| # x = ii(n), ii(n + 1) = ii(n) + # nextnli0(lf(n), n), ii(0) = 0, lf(0) = [], lf(n + 1) = nextnli(lf(n), n), nextnli(x, n) = x + nextnli0(x, n), (x from ii(n)) to # nextnli0(lf(n), n) = nextnli0(lf(n), n), nextnli(x, n) ≠ x, ii(n + 1) ≤ ii(n), ∀ n0. lf(n0) = x to ii(n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n) ⊦ |
# x = ii(n), ii(0) = 0, ii(n + 1) = ii(n) + # nextnli0(lf(n), n), lf(n + 1) = nextnli(lf(n), n), lf(0) = [], nextnli(x, n) = x + nextnli0(x, n), (x from ii(n)) to # nextnli0(lf(n), n) = nextnli0(lf(n), n), nextnli(x, n) ≠ x, ii(n + 1) ≤ ii(n), n ≤ n → nextnli0(lf(n), n) = [] ∧ ii(n) = ii(n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ n0. lf(n0) = x to ii(n0) ⊦
Used terms: n
| # x = ii(n), ii(0) = 0, ii(n + 1) = ii(n) + # nextnli0(lf(n), n), lf(n + 1) = nextnli(lf(n), n), lf(0) = [], nextnli(x, n) = x + nextnli0(x, n), (x from ii(n)) to # nextnli0(lf(n), n) = nextnli0(lf(n), n), nextnli(x, n) ≠ x, ii(n + 1) ≤ ii(n), n ≤ n → nextnli0(lf(n), n) = [] ∧ ii(n) = ii(n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ n0. lf(n0) = x to ii(n0) ⊦ |
# x = ii(n), ii(0) = 0, ii(n + 1) = ii(n), lf(n + 1) = nextnli(lf(n), n), lf(0) = [], nextnli(x, n) = x + nextnli0(x, n), nextnli0(lf(n), n) = [], nextnli(x, n) ≠ x, ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ n0. lf(n0) = x to ii(n0) ⊦
Used simplifier rules: ⊦ m ≤ m; (s) c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ n + 0 = n; (s) ⊦ # [] = 0; (s) ⊦ x to 0 = []; (s)
| # x = ii(n), ii(0) = 0, ii(n + 1) = ii(n), lf(n + 1) = nextnli(lf(n), n), lf(0) = [], nextnli(x, n) = x + nextnli0(x, n), nextnli0(lf(n), n) = [], nextnli(x, n) ≠ x, ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ n0. lf(n0) = x to ii(n0) ⊦ |
Used simplifier rules: ⊦ # x = n → x to n = x; (s) ⊦ x + [] = x; (s) a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: n
| # x = ii(n), ii(0) = 0, lf(0) = [], ii(m) ≠ ii(n), n ≤ m, ∀ n0. ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0) ∧ ¬ ii(n) < ii(n0 + 1) ∧ (x from ii(n0)) to # nextnli0(lf(n0), n0) = nextnli0(lf(n0), n0), ∀ n0. lf(n0) = x to ii(n0), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n) ⊦ |
# x = ii(n), ii(0) = 0, lf(0) = [], ii(m) ≠ ii(n), n ≤ m, ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n0. lf(n0) = x to ii(n0), ∀ n0. ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0) ∧ ¬ ii(n) < ii(n0 + 1) ∧ (x from ii(n0)) to # nextnli0(lf(n0), n0) = nextnli0(lf(n0), n0) ⊦
| # x = ii(n), ii(0) = 0, lf(0) = [], ii(m) ≠ ii(n), n ≤ m, ∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n0. lf(n0) = x to ii(n0), ∀ n0. ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0) ∧ ¬ ii(n) < ii(n0 + 1) ∧ (x from ii(n0)) to # nextnli0(lf(n0), n0) = nextnli0(lf(n0), n0) ⊦ |
Used terms: m
| ii(0) = 0, lf(0) = [], ¬ finp(σ), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ n0. lf(n0) = (σ to ii(n0)).l, ∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1) ⊦ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1)) |
ii(0) = 0, lf(0) = [], ∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n0. lf(n0) = nf to ii(n0), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ (nf from ii(n)) to # nextnli0(lf(n), n) = nextnli0(lf(n), n) ⊦ ∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1)
Used simplifier rules: ⊦ ⌜x⌝ = ⌜x0⌝ ↔ x = x0; (s) ⊦ ⌜nf⌝ to n = ⌜nf to n⌝ ; (s) ⊦ ⌜nf⌝ from n = ⌜nf from n⌝ ; (s) ⊦ ⌜x⌝ .l = x; (s) ⊦ ¬ finp(⌜nf⌝ ); (s) stream-inf-forward: ⊦ ¬ finp(σ) → (∃ nf. ⌜nf⌝ = σ); (forward) from specification stream-basic ⊦ ¬ ∞ < n∞; (s) ⊦ ¬ finp(σ) → # σ = ∞; (s)
| ii(0) = 0, lf(0) = [], ∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n0. lf(n0) = nf to ii(n0), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ (nf from ii(n)) to # nextnli0(lf(n), n) = nextnli0(lf(n), n) ⊦ ∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1) |
ii(0) = 0, lf(0) = [], ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ (nf from ii(n)) to # nextnli0(lf(n), n) = nextnli0(lf(n), n), ∀ n0. lf(n0) = nf to ii(n0), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1) ⊦ ∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1)
Used terms: n1
| ii(0) = 0, lf(0) = [], ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ (nf from ii(n)) to # nextnli0(lf(n), n) = nextnli0(lf(n), n), ∀ n0. lf(n0) = nf to ii(n0), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1) ⊦ ∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1) |
ii(0) = 0, lf(0) = [], ii(m) < ii(m + 1), n1 < ii(m + 1), ii(m) ≤ n1, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ (nf from ii(n)) to # nextnli0(lf(n), n) = nextnli0(lf(n), n), ∀ n0. lf(n0) = nf to ii(n0), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦ ∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1)
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic
| ii(0) = 0, lf(0) = [], ii(m) < ii(m + 1), n1 < ii(m + 1), ii(m) ≤ n1, ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ (nf from ii(n)) to # nextnli0(lf(n), n) = nextnli0(lf(n), n), ∀ n0. lf(n0) = nf to ii(n0), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦ ∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1) |
Used terms: m
| ii(0) = 0, lf(0) = [], (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ ⊦ ∀ n0. lf(n0) = (σ to ii(n0)).l, ii(n0) ≤ ii(n0 + 1) ∧ ¬ # σ < ⌜ii(n0 + 1)⌝ ∧ σ to ii(n0 + 1) = ⌜nextnli((σ to ii(n0)).l, n0)⌝ ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1)) |
ii(0) = 0, lf(0) = [], lf(n2) ≠ (σ to ii(n2)).l, (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦ ii(n0) ≤ ii(n0 + 1) ∧ ¬ # σ < ⌜ii(n0 + 1)⌝ ∧ σ to ii(n0 + 1) = ⌜nextnli((σ to ii(n0)).l, n0)⌝ ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1))
| ii(0) = 0, lf(0) = [], lf(n2) ≠ (σ to ii(n2)).l, (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦ ii(n0) ≤ ii(n0 + 1) ∧ ¬ # σ < ⌜ii(n0 + 1)⌝ ∧ σ to ii(n0 + 1) = ⌜nextnli((σ to ii(n0)).l, n0)⌝ ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∃ m. ii(m) ≤ n1 ∧ n1 < ii(m + 1)) |
ii(0) = 0, lf(0) = [], lf(n2) ≠ (σ to ii(n2)).l, (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ ⊦
| ii(0) = 0, lf(0) = [], lf(n2) ≠ (σ to ii(n2)).l, (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ ⊦ |
ii(0) = 0, lf(0) = [], lf(n0 +1) ≠ (σ to ii(n0 +1)).l, (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ ii, lf, σ, n, nextnli0, nextnli. ¬ ( ii(0) = 0 ∧ lf(0) = [] ∧ lf(n0) ≠ (σ to ii(n0)).l ∧ (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)) ∧ (∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0)) ∧ (∀ n. lf(n + 1) = nextnli(lf(n), n)) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ )) ⊦
Used simplifier rules: nat freely generated by 0, +1;; ⊦ σ to 0 = []; (s) ⊦ [].l = []; (s)
| ii(0) = 0, lf(0) = [], lf(n0 +1) ≠ (σ to ii(n0 +1)).l, (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ ii, lf, σ, n, nextnli0, nextnli. ¬ ( ii(0) = 0 ∧ lf(0) = [] ∧ lf(n0) ≠ (σ to ii(n0)).l ∧ (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)) ∧ (∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0)) ∧ (∀ n. lf(n + 1) = nextnli(lf(n), n)) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ )) ⊦ |
ii(0) = 0, lf(0) = [], lf(n0 + 1) ≠ (σ to ii(n0 + 1)).l, (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ ii0, lf0, σ0, n1, nextnli1, nextnli2. ii0(0) ≠ 0 ∨ lf0(0) ≠ [] ∨ lf0(n0) = (σ0 to ii0(n0)).l ∨ ¬ (finp(σ0) ⊃ # σ0 = ⌜ii0(n1)⌝ ∧ (∀ m. n1 ≤ m → nextnli1(lf0(m), m) = [] ∧ ii0(m) = ii0(n1));∀ n. ∃ m. ii0(m) ≤ n ∧ n < ii0(m + 1)) ∨ ¬(∀ x0, n0. nextnli2(x0, n0) = x0 + nextnli1(x0, n0)) ∨ ¬(∀ n. lf0(n + 1) = nextnli2(lf0(n), n)) ∨ ¬(∀ m, n. m ≤ n → ii0(m) ≤ ii0(n)) ∨ ¬ (∀ n. ii0(n + 1) = ii0(n) + # nextnli1(lf0(n), n) ∧ ¬ # σ0 < ⌜ii0(n + 1)⌝ ∧ (σ0 from ii0(n)) to # nextnli1(lf0(n), n) = ⌜nextnli1(lf0(n), n)⌝ ) ⊦
Used simplifier rules: ⊦ m +1 = m + 1; (s)
| ii(0) = 0, lf(0) = [], lf(n0 + 1) ≠ (σ to ii(n0 + 1)).l, (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ ii0, lf0, σ0, n1, nextnli1, nextnli2. ii0(0) ≠ 0 ∨ lf0(0) ≠ [] ∨ lf0(n0) = (σ0 to ii0(n0)).l ∨ ¬ (finp(σ0) ⊃ # σ0 = ⌜ii0(n1)⌝ ∧ (∀ m. n1 ≤ m → nextnli1(lf0(m), m) = [] ∧ ii0(m) = ii0(n1));∀ n. ∃ m. ii0(m) ≤ n ∧ n < ii0(m + 1)) ∨ ¬(∀ x0, n0. nextnli2(x0, n0) = x0 + nextnli1(x0, n0)) ∨ ¬(∀ n. lf0(n + 1) = nextnli2(lf0(n), n)) ∨ ¬(∀ m, n. m ≤ n → ii0(m) ≤ ii0(n)) ∨ ¬ (∀ n. ii0(n + 1) = ii0(n) + # nextnli1(lf0(n), n) ∧ ¬ # σ0 < ⌜ii0(n + 1)⌝ ∧ (σ0 from ii0(n)) to # nextnli1(lf0(n), n) = ⌜nextnli1(lf0(n), n)⌝ ) ⊦ |
ii(0) = 0, lf(0) = [], lf(n0 + 1) ≠ (σ to ii(n0 + 1)).l, (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ii(0) ≠ 0 ∨ lf(0) ≠ [] ∨ lf(n0) = (σ to ii(n0)).l ∨ ¬ (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)) ∨ ¬(∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0)) ∨ ¬(∀ n. lf(n + 1) = nextnli(lf(n), n)) ∨ ¬(∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∨ ¬ (∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ ) ⊦
Used terms: ii, lf, σ, n, nextnli0, nextnli
| ii(0) = 0, lf(0) = [], lf(n0 + 1) ≠ (σ to ii(n0 + 1)).l, (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ , ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ii(0) ≠ 0 ∨ lf(0) ≠ [] ∨ lf(n0) = (σ to ii(n0)).l ∨ ¬ (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)) ∨ ¬(∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0)) ∨ ¬(∀ n. lf(n + 1) = nextnli(lf(n), n)) ∨ ¬(∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∨ ¬ (∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ ) ⊦ |
ii(0) = 0, lf(0) = [], lf(n0) = (σ to ii(n0)).l, lf(n0 + 1) ≠ (σ to ii(n0 + 1)).l, (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ ⊦
| ii(0) = 0, lf(0) = [], lf(n0) = (σ to ii(n0)).l, lf(n0 + 1) ≠ (σ to ii(n0 + 1)).l, (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. ii(n + 1) = ii(n) + # nextnli0(lf(n), n) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ (σ from ii(n)) to # nextnli0(lf(n), n) = ⌜nextnli0(lf(n), n)⌝ ⊦ |
ii(0) = 0, ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0), lf(n0) = (σ to ii(n0)).l, lf(0) = [], (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , lf(n0 + 1) ≠ (σ to ii(n0 + 1)).l, ¬ # σ < ⌜ii(n0 + 1)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦
Used terms: n0
| ii(0) = 0, ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0), lf(n0) = (σ to ii(n0)).l, lf(0) = [], (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , lf(n0 + 1) ≠ (σ to ii(n0 + 1)).l, ¬ # σ < ⌜ii(n0 + 1)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦ |
ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0), ii(0) = 0, lf(0) = [], lf(n0) = (σ to ii(n0)).l, (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , lf(n0 + 1) ≠ (σ to ii(n0 + 1)).l, ¬ # σ < ⌜ii(n0 + 1)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦
| ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0), ii(0) = 0, lf(0) = [], lf(n0) = (σ to ii(n0)).l, (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , lf(n0 + 1) ≠ (σ to ii(n0 + 1)).l, ¬ # σ < ⌜ii(n0 + 1)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ n. lf(n + 1) = nextnli(lf(n), n), ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦ |
ii(0) = 0, ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0), lf(n0) = (σ to ii(n0)).l, lf(0) = [], lf(n0 + 1) = nextnli(lf(n0), n0), (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , lf(n0 + 1) ≠ (σ to ii(n0 + 1)).l, ¬ # σ < ⌜ii(n0 + 1)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦
Used terms: n0
| ii(0) = 0, ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0), lf(n0) = (σ to ii(n0)).l, lf(0) = [], lf(n0 + 1) = nextnli(lf(n0), n0), (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , lf(n0 + 1) ≠ (σ to ii(n0 + 1)).l, ¬ # σ < ⌜ii(n0 + 1)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0) ⊦ |
ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0), ii(0) = 0, lf(n0 + 1) = nextnli(lf(n0), n0), lf(0) = [], lf(n0) = (σ to ii(n0)).l, (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , nextnli(lf(n0), n0) ≠ (σ to ii(n0 + 1)).l, ¬ # σ < ⌜ii(n0 + 1)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦
| ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0), ii(0) = 0, lf(n0 + 1) = nextnli(lf(n0), n0), lf(0) = [], lf(n0) = (σ to ii(n0)).l, (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , nextnli(lf(n0), n0) ≠ (σ to ii(n0 + 1)).l, ¬ # σ < ⌜ii(n0 + 1)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ x0, n0. nextnli(x0, n0) = x0 + nextnli0(x0, n0), ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦ |
ii(0) = 0, ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0), lf(n0) = (σ to ii(n0)).l, lf(0) = [], lf(n0 + 1) = nextnli(lf(n0), n0), nextnli(lf(n0), n0) = lf(n0) + nextnli0(lf(n0), n0), (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , nextnli(lf(n0), n0) ≠ (σ to ii(n0 + 1)).l, ¬ # σ < ⌜ii(n0 + 1)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦
Used terms: lf(n0), n0
| ii(0) = 0, ii(n0 + 1) = ii(n0) + # nextnli0(lf(n0), n0), lf(n0) = (σ to ii(n0)).l, lf(0) = [], lf(n0 + 1) = nextnli(lf(n0), n0), nextnli(lf(n0), n0) = lf(n0) + nextnli0(lf(n0), n0), (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , nextnli(lf(n0), n0) ≠ (σ to ii(n0 + 1)).l, ¬ # σ < ⌜ii(n0 + 1)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦ |
ii(0) = 0, lf(n0 + 1) = nextnli(lf(n0), n0), lf(0) = [], lf(n0) = (σ to ii(n0)).l, nextnli(lf(n0), n0) = lf(n0) + nextnli0(lf(n0), n0), (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , nextnli(lf(n0), n0) ≠ (σ to ii(n0) + # nextnli0(lf(n0), n0)).l, ¬ # σ < ⌜ii(n0) + # nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦
| ii(0) = 0, lf(n0 + 1) = nextnli(lf(n0), n0), lf(0) = [], lf(n0) = (σ to ii(n0)).l, nextnli(lf(n0), n0) = lf(n0) + nextnli0(lf(n0), n0), (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , nextnli(lf(n0), n0) ≠ (σ to ii(n0) + # nextnli0(lf(n0), n0)).l, ¬ # σ < ⌜ii(n0) + # nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦ |
ii(0) = 0, lf(n0) = (σ to ii(n0)).l, lf(0) = [], lf(n0 + 1) = nextnli(lf(n0), n0), nextnli(lf(n0), n0) = lf(n0) + nextnli0(lf(n0), n0), (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , nextnli(lf(n0), n0) ≠ (σ to ii(n0) + # nextnli0(lf(n0), n0)).l, ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s)
| ii(0) = 0, lf(n0) = (σ to ii(n0)).l, lf(0) = [], lf(n0 + 1) = nextnli(lf(n0), n0), nextnli(lf(n0), n0) = lf(n0) + nextnli0(lf(n0), n0), (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , nextnli(lf(n0), n0) ≠ (σ to ii(n0) + # nextnli0(lf(n0), n0)).l, ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦ |
ii(0) = 0, lf(n0 + 1) = lf(n0) + nextnli0(lf(n0), n0), lf(0) = [], lf(n0) = (σ to ii(n0)).l, (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , lf(n0) + nextnli0(lf(n0), n0) ≠ (σ to ii(n0) + # nextnli0(lf(n0), n0)).l, ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦
| ii(0) = 0, lf(n0 + 1) = lf(n0) + nextnli0(lf(n0), n0), lf(0) = [], lf(n0) = (σ to ii(n0)).l, (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , lf(n0) + nextnli0(lf(n0), n0) ≠ (σ to ii(n0) + # nextnli0(lf(n0), n0)).l, ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦ |
ii(0) = 0, lf(n0) = (σ to ii(n0)).l, lf(0) = [], lf(n0 + 1) = lf(n0) + nextnli0(lf(n0), n0), (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , lf(n0 + 1) ≠ (σ to ii(n0) + # nextnli0(lf(n0), n0)).l, ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦
| ii(0) = 0, lf(n0) = (σ to ii(n0)).l, lf(0) = [], lf(n0 + 1) = lf(n0) + nextnli0(lf(n0), n0), (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , lf(n0 + 1) ≠ (σ to ii(n0) + # nextnli0(lf(n0), n0)).l, ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦ |
ii(0) = 0, lf(0) = [], lf(n0) = (σ to ii(n0)).l, (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , lf(n0) + nextnli0(lf(n0), n0) ≠ (σ to ii(n0) + # nextnli0(lf(n0), n0)).l, ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦
| ii(0) = 0, lf(0) = [], lf(n0) = (σ to ii(n0)).l, (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , lf(n0) + nextnli0(lf(n0), n0) ≠ (σ to ii(n0) + # nextnli0(lf(n0), n0)).l, ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦ |
⊦ x = y ↔ # x = # y ∧ (∀ n. n < # x → x[n] = y[n])
ii(0) = 0, lf(n0) = (σ to ii(n0)).l, lf(0) = [], (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), #(lf(n0) + nextnli0(lf(n0), n0)) ≠ # (σ to ii(n0) + # nextnli0(lf(n0), n0)).l ∨ (∃ n. ¬(n < #(lf(n0) + nextnli0(lf(n0), n0)) → (lf(n0) + nextnli0(lf(n0), n0))[n] = (σ to ii(n0) + # nextnli0(lf(n0), n0)).l[n])) ⊦
Used terms: (σ to ii(n0) + # nextnli0(lf(n0), n0)).l, lf(n0) + nextnli0(lf(n0), n0)
| ⊦ x = y ↔ # x = # y ∧ (∀ n. n < # x → x[n] = y[n]) |
| ii(0) = 0, lf(n0) = (σ to ii(n0)).l, lf(0) = [], (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), #(lf(n0) + nextnli0(lf(n0), n0)) ≠ # (σ to ii(n0) + # nextnli0(lf(n0), n0)).l ∨ (∃ n. ¬(n < #(lf(n0) + nextnli0(lf(n0), n0)) → (lf(n0) + nextnli0(lf(n0), n0))[n] = (σ to ii(n0) + # nextnli0(lf(n0), n0)).l[n])) ⊦ |
ii(0) = 0, lf(0) = [], lf(n0) = (σ to ii(n0)).l, (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), # lf(n0) ≠ ii(n0) ∨ ¬(n1 < # lf(n0) + # nextnli0(lf(n0), n0) → (lf(n0) + nextnli0(lf(n0), n0))[n1] = (σ to ii(n0) + # nextnli0(lf(n0), n0)).l[n1]) ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ #(x + y) = # x + # y; (s) c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ m + n = m + n0 ↔ n = n0; (s) ¬ # σ < ⌜n⌝ ⊦ # (σ to n).l = n; (s) ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s)
| ii(0) = 0, lf(0) = [], lf(n0) = (σ to ii(n0)).l, (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), # lf(n0) ≠ ii(n0) ∨ ¬(n1 < # lf(n0) + # nextnli0(lf(n0), n0) → (lf(n0) + nextnli0(lf(n0), n0))[n1] = (σ to ii(n0) + # nextnli0(lf(n0), n0)).l[n1]) ⊦ |
⊦ x = y ↔ # x = # y ∧ (∀ n. n < # x → x[n] = y[n])
# lf(n0) = # (σ to ii(n0)).l, ii(0) = 0, lf(0) = [], (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. n < # lf(n0) → lf(n0)[n] = (σ to ii(n0)).l[n], # lf(n0) ≠ ii(n0) ∨ ¬(n1 < # lf(n0) + # nextnli0(lf(n0), n0) → (lf(n0) + nextnli0(lf(n0), n0))[n1] = (σ to ii(n0) + # nextnli0(lf(n0), n0)).l[n1]) ⊦
Used terms: (σ to ii(n0)).l, lf(n0)
| ⊦ x = y ↔ # x = # y ∧ (∀ n. n < # x → x[n] = y[n]) |
| # lf(n0) = # (σ to ii(n0)).l, ii(0) = 0, lf(0) = [], (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n. n < # lf(n0) → lf(n0)[n] = (σ to ii(n0)).l[n], # lf(n0) ≠ ii(n0) ∨ ¬(n1 < # lf(n0) + # nextnli0(lf(n0), n0) → (lf(n0) + nextnli0(lf(n0), n0))[n1] = (σ to ii(n0) + # nextnli0(lf(n0), n0)).l[n1]) ⊦ |
# lf(n0) = ii(n0), ii(0) = 0, lf(0) = [], (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , (lf(n0) + nextnli0(lf(n0), n0))[n1] ≠ σ[n1], n1 < ii(n0) + # nextnli0(lf(n0), n0), ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2], ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦
Used simplifier rules: m < n, ¬ # σ < ⌜n⌝ ⊦ (σ to n).l[m] = σ[m]; (s) c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s) ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic 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 ⊦ ¬ m + n < m; (s) ⊦ ⌜n⌝ + ⌜m⌝ < ⌜n0⌝ ↔ n + m < n0; (s) ⊦ # x = 0 ↔ x = []; (s) lels-trans: ⊦ ¬ n∞1 < n∞ ∧ n∞1 < n∞2 → n∞ < n∞2; (forward) from specification nat-inf lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic ⊦ m ≤ n → (n < m ↔ false); (s) fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat ⊦ m < n ↔ ¬ n ≤ m; (ss) ¬ # σ < ⌜n⌝ ⊦ # (σ to n).l = n; (s)
| # lf(n0) = ii(n0), ii(0) = 0, lf(0) = [], (σ from ii(n0)) to # nextnli0(lf(n0), n0) = ⌜nextnli0(lf(n0), n0)⌝ , (lf(n0) + nextnli0(lf(n0), n0))[n1] ≠ σ[n1], n1 < ii(n0) + # nextnli0(lf(n0), n0), ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2], ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦ |
⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n])
#((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = # ⌜nextnli0(lf(n0), n0)⌝ , # lf(n0) = ii(n0), ii(0) = 0, lf(0) = [], (lf(n0) + nextnli0(lf(n0), n0))[n1] ≠ σ[n1], n1 < ii(n0) + # nextnli0(lf(n0), n0), ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2], ∀ n. ⌜n⌝ < #((σ from ii(n0)) to # nextnli0(lf(n0), n0)) → ((σ from ii(n0)) to # nextnli0(lf(n0), n0))[n] = ⌜nextnli0(lf(n0), n0)⌝ [n] ⊦
Used terms: ⌜nextnli0(lf(n0), n0)⌝ , (σ from ii(n0)) to # nextnli0(lf(n0), n0)
| ⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0[n] = σ1[n]) |
| #((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = # ⌜nextnli0(lf(n0), n0)⌝ , # lf(n0) = ii(n0), ii(0) = 0, lf(0) = [], (lf(n0) + nextnli0(lf(n0), n0))[n1] ≠ σ[n1], n1 < ii(n0) + # nextnli0(lf(n0), n0), ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2], ∀ n. ⌜n⌝ < #((σ from ii(n0)) to # nextnli0(lf(n0), n0)) → ((σ from ii(n0)) to # nextnli0(lf(n0), n0))[n] = ⌜nextnli0(lf(n0), n0)⌝ [n] ⊦ |
#((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = ⌜# nextnli0(lf(n0), n0)⌝ , # lf(n0) = ii(n0), ii(0) = 0, lf(0) = [], (lf(n0) + nextnli0(lf(n0), n0))[n1] ≠ σ[n1], n1 < ii(n0) + # nextnli0(lf(n0), n0), ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2], ∀ n2. n2 < # nextnli0(lf(n0), n0) → ((σ from ii(n0)) to # nextnli0(lf(n0), n0))[n2] = nextnli0(lf(n0), n0)[n2] ⊦
Used simplifier rules: ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) ⊦ ⌜x⌝ [n] = x[n]; (s) ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s)
| #((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = ⌜# nextnli0(lf(n0), n0)⌝ , # lf(n0) = ii(n0), ii(0) = 0, lf(0) = [], (lf(n0) + nextnli0(lf(n0), n0))[n1] ≠ σ[n1], n1 < ii(n0) + # nextnli0(lf(n0), n0), ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2], ∀ n2. n2 < # nextnli0(lf(n0), n0) → ((σ from ii(n0)) to # nextnli0(lf(n0), n0))[n2] = nextnli0(lf(n0), n0)[n2] ⊦ |
⊦ n < # x → (x + y)[n] = x[n]
# lf(n0) = ii(n0), #((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = ⌜# nextnli0(lf(n0), n0)⌝ , ii(0) = 0, lf(0) = [], (lf(n0) + nextnli0(lf(n0), n0))[n1] ≠ σ[n1], n1 < ii(n0) + # nextnli0(lf(n0), n0), ¬ n1 < # lf(n0), ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n2. n2 < # nextnli0(lf(n0), n0) → ((σ from ii(n0)) to # nextnli0(lf(n0), n0))[n2] = nextnli0(lf(n0), n0)[n2], ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2], ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦
# lf(n0) = ii(n0), #((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = ⌜# nextnli0(lf(n0), n0)⌝ , ii(0) = 0, lf(0) = [], lf(n0)[n1] ≠ σ[n1], n1 < ii(n0) + # nextnli0(lf(n0), n0), n1 < # lf(n0), ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n2. n2 < # nextnli0(lf(n0), n0) → ((σ from ii(n0)) to # nextnli0(lf(n0), n0))[n2] = nextnli0(lf(n0), n0)[n2], ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2], ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦
Used terms: n1, nextnli0(lf(n0), n0), lf(n0)
| ⊦ n < # x → (x + y)[n] = x[n] |
| # lf(n0) = ii(n0), #((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = ⌜# nextnli0(lf(n0), n0)⌝ , ii(0) = 0, lf(0) = [], (lf(n0) + nextnli0(lf(n0), n0))[n1] ≠ σ[n1], n1 < ii(n0) + # nextnli0(lf(n0), n0), ¬ n1 < # lf(n0), ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n2. n2 < # nextnli0(lf(n0), n0) → ((σ from ii(n0)) to # nextnli0(lf(n0), n0))[n2] = nextnli0(lf(n0), n0)[n2], ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2], ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦ |
# lf(n0) = ii(n0), #((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = ⌜# nextnli0(lf(n0), n0)⌝ , ii(0) = 0, lf(0) = [], nextnli0(lf(n0), n0)[n1 - ii(n0)] ≠ σ[n1], nextnli0(lf(n0), n0) ≠ [], n1 < ii(n0) + # nextnli0(lf(n0), n0), ii(n0) ≤ n1, ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n2. n2 < # nextnli0(lf(n0), n0) → ((σ from ii(n0)) to # nextnli0(lf(n0), n0))[n2] = nextnli0(lf(n0), n0)[n2], ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2], ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ # x = 0 ↔ x = []; (s) ⊦ m < m + n ↔ n ≠ 0; (s) fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat ⊦ m < n ↔ ¬ n ≤ m; (ss) a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ ¬ n < # x → (x + y)[n] = y[n - # x]; (s)
| # lf(n0) = ii(n0), #((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = ⌜# nextnli0(lf(n0), n0)⌝ , ii(0) = 0, lf(0) = [], nextnli0(lf(n0), n0)[n1 - ii(n0)] ≠ σ[n1], nextnli0(lf(n0), n0) ≠ [], n1 < ii(n0) + # nextnli0(lf(n0), n0), ii(n0) ≤ n1, ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n2. n2 < # nextnli0(lf(n0), n0) → ((σ from ii(n0)) to # nextnli0(lf(n0), n0))[n2] = nextnli0(lf(n0), n0)[n2], ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2], ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦ |
#((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = ⌜# nextnli0(lf(n0), n0)⌝ , # lf(n0) = ii(n0), ii(0) = 0, lf(0) = [], n1 = n3 + ii(n0), nextnli0(lf(n0), n0)[n3] ≠ σ[n1], nextnli0(lf(n0), n0) ≠ [], n1 < ii(n0) + # nextnli0(lf(n0), n0), ii(n0) ≤ n1, ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2], ∀ n2. n2 < # nextnli0(lf(n0), n0) → ((σ from ii(n0)) to # nextnli0(lf(n0), n0))[n2] = nextnli0(lf(n0), n0)[n2] ⊦
Used simplifier rules: n ≤ m ⊦ n0 = m - n ↔ m = n0 + n; (elim) Used terms: n1, ii(n0), n3
| #((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = ⌜# nextnli0(lf(n0), n0)⌝ , # lf(n0) = ii(n0), ii(0) = 0, lf(0) = [], n1 = n3 + ii(n0), nextnli0(lf(n0), n0)[n3] ≠ σ[n1], nextnli0(lf(n0), n0) ≠ [], n1 < ii(n0) + # nextnli0(lf(n0), n0), ii(n0) ≤ n1, ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2], ∀ n2. n2 < # nextnli0(lf(n0), n0) → ((σ from ii(n0)) to # nextnli0(lf(n0), n0))[n2] = nextnli0(lf(n0), n0)[n2] ⊦ |
#((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = ⌜# nextnli0(lf(n0), n0)⌝ , # lf(n0) = ii(n0), ii(0) = 0, lf(0) = [], nextnli0(lf(n0), n0)[n3] ≠ σ[n3 + ii(n0)], nextnli0(lf(n0), n0) ≠ [], n3 < # nextnli0(lf(n0), n0), ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2], ∀ n2. n2 < # nextnli0(lf(n0), n0) → ((σ from ii(n0)) to # nextnli0(lf(n0), n0))[n2] = nextnli0(lf(n0), n0)[n2] ⊦
Used simplifier rules: ⊦ # x = 0 ↔ x = []; (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 + n < m + n0 ↔ n < n0; (s) ⊦ m ≤ m + n; (s)
| #((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = ⌜# nextnli0(lf(n0), n0)⌝ , # lf(n0) = ii(n0), ii(0) = 0, lf(0) = [], nextnli0(lf(n0), n0)[n3] ≠ σ[n3 + ii(n0)], nextnli0(lf(n0), n0) ≠ [], n3 < # nextnli0(lf(n0), n0), ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2], ∀ n2. n2 < # nextnli0(lf(n0), n0) → ((σ from ii(n0)) to # nextnli0(lf(n0), n0))[n2] = nextnli0(lf(n0), n0)[n2] ⊦ |
# lf(n0) = ii(n0), #((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = ⌜# nextnli0(lf(n0), n0)⌝ , ii(0) = 0, lf(0) = [], nextnli0(lf(n0), n0)[n3] ≠ σ[n3 + ii(n0)], nextnli0(lf(n0), n0) ≠ [], n3 < # nextnli0(lf(n0), n0), ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , n3 < # nextnli0(lf(n0), n0) → ((σ from ii(n0)) to # nextnli0(lf(n0), n0))[n3] = nextnli0(lf(n0), n0)[n3], (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2], ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦
Used terms: n3
| # lf(n0) = ii(n0), #((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = ⌜# nextnli0(lf(n0), n0)⌝ , ii(0) = 0, lf(0) = [], nextnli0(lf(n0), n0)[n3] ≠ σ[n3 + ii(n0)], nextnli0(lf(n0), n0) ≠ [], n3 < # nextnli0(lf(n0), n0), ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , n3 < # nextnli0(lf(n0), n0) → ((σ from ii(n0)) to # nextnli0(lf(n0), n0))[n3] = nextnli0(lf(n0), n0)[n3], (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2], ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦ |
#((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = ⌜# nextnli0(lf(n0), n0)⌝ , # lf(n0) = ii(n0), ((σ from ii(n0)) to # nextnli0(lf(n0), n0))[n3] = nextnli0(lf(n0), n0)[n3], ii(0) = 0, lf(0) = [], nextnli0(lf(n0), n0)[n3] ≠ σ[n3 + ii(n0)], nextnli0(lf(n0), n0) ≠ [], n3 < # nextnli0(lf(n0), n0), ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2] ⊦
| #((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = ⌜# nextnli0(lf(n0), n0)⌝ , # lf(n0) = ii(n0), ((σ from ii(n0)) to # nextnli0(lf(n0), n0))[n3] = nextnli0(lf(n0), n0)[n3], ii(0) = 0, lf(0) = [], nextnli0(lf(n0), n0)[n3] ≠ σ[n3 + ii(n0)], nextnli0(lf(n0), n0) ≠ [], n3 < # nextnli0(lf(n0), n0), ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2] ⊦ |
m < n, ¬ # σ < ⌜n⌝ ⊦ (σ to n)[m] = σ[m]
# lf(n0) = ii(n0), #((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = ⌜# nextnli0(lf(n0), n0)⌝ , ((σ from ii(n0)) to # nextnli0(lf(n0), n0))[n3] = nextnli0(lf(n0), n0)[n3], ii(0) = 0, lf(0) = [], nextnli0(lf(n0), n0)[n3] ≠ σ[n3 + ii(n0)], nextnli0(lf(n0), n0) ≠ [], n3 < # nextnli0(lf(n0), n0), ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2], ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦ n3 < # nextnli0(lf(n0), n0) ∧ ¬ #(σ from ii(n0)) < ⌜# nextnli0(lf(n0), n0)⌝
# lf(n0) = ii(n0), #((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = ⌜# nextnli0(lf(n0), n0)⌝ , (σ from ii(n0))[n3] = nextnli0(lf(n0), n0)[n3], ii(0) = 0, lf(0) = [], nextnli0(lf(n0), n0)[n3] ≠ σ[n3 + ii(n0)], nextnli0(lf(n0), n0) ≠ [], n3 < # nextnli0(lf(n0), n0), ¬ #(σ from ii(n0)) < ⌜# nextnli0(lf(n0), n0)⌝ , ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2], ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦
Used terms: n3, # nextnli0(lf(n0), n0), σ from ii(n0)
| m < n, ¬ # σ < ⌜n⌝ ⊦ (σ to n)[m] = σ[m] |
| # lf(n0) = ii(n0), #((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = ⌜# nextnli0(lf(n0), n0)⌝ , ((σ from ii(n0)) to # nextnli0(lf(n0), n0))[n3] = nextnli0(lf(n0), n0)[n3], ii(0) = 0, lf(0) = [], nextnli0(lf(n0), n0)[n3] ≠ σ[n3 + ii(n0)], nextnli0(lf(n0), n0) ≠ [], n3 < # nextnli0(lf(n0), n0), ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2], ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦ n3 < # nextnli0(lf(n0), n0) ∧ ¬ #(σ from ii(n0)) < ⌜# nextnli0(lf(n0), n0)⌝ |
#((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = ⌜# nextnli0(lf(n0), n0)⌝ , # lf(n0) = ii(n0), ((σ from ii(n0)) to # nextnli0(lf(n0), n0))[n3] = nextnli0(lf(n0), n0)[n3], ii(0) = 0, lf(0) = [], nextnli0(lf(n0), n0)[n3] ≠ σ[n3 + ii(n0)], nextnli0(lf(n0), n0) ≠ [], n3 < # nextnli0(lf(n0), n0), #(σ from ii(n0)) < ⌜# nextnli0(lf(n0), n0)⌝ , ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2] ⊦
| #((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = ⌜# nextnli0(lf(n0), n0)⌝ , # lf(n0) = ii(n0), ((σ from ii(n0)) to # nextnli0(lf(n0), n0))[n3] = nextnli0(lf(n0), n0)[n3], ii(0) = 0, lf(0) = [], nextnli0(lf(n0), n0)[n3] ≠ σ[n3 + ii(n0)], nextnli0(lf(n0), n0) ≠ [], n3 < # nextnli0(lf(n0), n0), #(σ from ii(n0)) < ⌜# nextnli0(lf(n0), n0)⌝ , ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2] ⊦ |
⊦ ⌜n⌝ < # σ ∧ finp(σ) → #(σ from n) = ⌜(# σ).n - n⌝
Used simplifier rules: stream-fin-forward: ⊦ finp(σ) → (∃ x. ⌜x⌝ = σ); (forward) from specification stream-basic ⊦ ⌜n⌝ .n = n; (s) ⊦ m ≤ n ↔ ¬ n < m; (ss) ⊦ m < n → ¬ n < m; (s) n0 ≤ n ⊦ n - n0 < m ↔ n < m + n0; (s) ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) ⊦ ⌜n⌝ < ⌜m⌝ + ⌜n0⌝ ↔ n < m + n0; (s) ⊦ m < n ↔ ¬ n ≤ m; (ss) c: ⊦ m + n = n + m; from specification nat-basic ⊦ m < n → (n ≤ m ↔ false); (s) add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf lele-trans: ⊦ ¬ n∞1 < n∞ ∧ ¬ n∞2 < n∞1 → ¬ n∞2 < n∞; (forward) from specification nat-inf ⊦ m + m0 ≤ m ↔ m0 = 0; (s) ⊦ # x = 0 ↔ x = []; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ ⌜m⌝ < ∞; (s) ⊦ ¬ finp(σ) → # σ = ∞; (s) stream-inf-forward: ⊦ ¬ finp(σ) → (∃ nf. ⌜nf⌝ = σ); (forward) from specification stream-basic m < n, ¬ # σ < ⌜n⌝ ⊦ (σ to n)[m] = σ[m]; (s) ⊦ # ⌜nf⌝ = ∞; (s) ⊦ ¬ ∞ < n∞; (s) ¬ # σ < ⌜n⌝ ⊦ #(σ to n) = ⌜n⌝ ; (s) ⊦ ⌜n⌝ = ⌜n0⌝ ↔ n = n0; (s) ⊦ ⌜nf⌝ from n = ⌜nf from n⌝ ; (s) ⊦ ((nf from n))(m) = nf(m + n); (s) ⊦ ⌜nf⌝ [n] = nf(n); (s) Used terms: ii(n0), σ
| ⊦ ⌜n⌝ < # σ ∧ finp(σ) → #(σ from n) = ⌜(# σ).n - n⌝ |
| # lf(n0) = ii(n0), #((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = ⌜# nextnli0(lf(n0), n0)⌝ , (σ from ii(n0))[n3] = nextnli0(lf(n0), n0)[n3], ii(0) = 0, lf(0) = [], nextnli0(lf(n0), n0)[n3] ≠ σ[n3 + ii(n0)], nextnli0(lf(n0), n0) ≠ [], n3 < # nextnli0(lf(n0), n0), ¬ #(σ from ii(n0)) < ⌜# nextnli0(lf(n0), n0)⌝ , ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2], ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦ |
# lf(n0) = ii(n0), (σ from ii(n0))[n3] = nextnli0(lf(n0), n0)[n3], ii(0) = 0, lf(0) = [], nextnli0(lf(n0), n0)[n3] ≠ σ[n3 + ii(n0)], nextnli0(lf(n0), n0) ≠ [], n3 < # nextnli0(lf(n0), n0), ¬ #(σ from ii(n0)) < ⌜# nextnli0(lf(n0), n0)⌝ , ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2] ⊦
Used simplifier rules: ⊦ ⌜n⌝ = ⌜n0⌝ ↔ n = n0; (s) ¬ # σ < ⌜n⌝ ⊦ #(σ to n) = ⌜n⌝ ; (s)
| # lf(n0) = ii(n0), (σ from ii(n0))[n3] = nextnli0(lf(n0), n0)[n3], ii(0) = 0, lf(0) = [], nextnli0(lf(n0), n0)[n3] ≠ σ[n3 + ii(n0)], nextnli0(lf(n0), n0) ≠ [], n3 < # nextnli0(lf(n0), n0), ¬ #(σ from ii(n0)) < ⌜# nextnli0(lf(n0), n0)⌝ , ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ m, n. m ≤ n → ii(m) ≤ ii(n), ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2] ⊦ |
⊦ ¬ # σ < ⌜n⌝ ∧ finp(σ) → #(σ from n) = ⌜(# σ).n - n⌝
Used simplifier rules: fle: ⊦ m < n ∧ n ≤ n0 → m < n0; (forward) from specification nat stream-fin-forward: ⊦ finp(σ) → (∃ x. ⌜x⌝ = σ); (forward) from specification stream-basic n0 ≤ n ⊦ m < n - n0 ↔ m + n0 < n; (s) ⊦ ⌜n⌝ .n = n; (s) ⊦ m ≤ n ↔ ¬ n < m; (ss) n0 ≤ n ⊦ m ≤ n - n0 ↔ m + n0 ≤ n; (s) ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) ⊦ ⌜n⌝ < ⌜m⌝ + ⌜n0⌝ ↔ n < m + n0; (s) c: ⊦ m + n = n + m; from specification nat-basic add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic ⊦ ⌜x⌝ from n = ⌜x from n⌝ ; (s) ⊦ # ⌜x⌝ = ⌜# x⌝ ; (s) ⊦ ⌜n⌝ = ⌜n0⌝ ↔ n = n0; (s) ⊦ m < n ↔ ¬ n ≤ m; (ss) ⊦ m ≤ n → (n < m ↔ false); (s) m + m0 < # x ⊦ (x from m)[m0] = x[m + m0]; (s) ⊦ m < n → n ≠ 0; (s) ⊦ ⌜x⌝ [n] = x[n]; (s) lels-trans: ⊦ ¬ n∞1 < n∞ ∧ n∞1 < n∞2 → n∞ < n∞2; (forward) from specification nat-inf ⊦ ⌜n⌝ + ⌜m⌝ < ⌜n0⌝ ↔ n + m < n0; (s) ⊦ ¬ m + n < m; (s) ⊦ ¬ # σ < ⌜n⌝ → (#(σ from n) < ⌜n0⌝ ↔ # σ < ⌜n + n0⌝ ); (s) ⊦ ⌜m + n⌝ = ⌜m⌝ + ⌜n⌝ ; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ ¬ finp(σ) → # σ = ∞; (s) ⊦ ¬ ∞ < n∞; (s) stream-inf-forward: ⊦ ¬ finp(σ) → (∃ nf. ⌜nf⌝ = σ); (forward) from specification stream-basic ⊦ ⌜nf⌝ from n = ⌜nf from n⌝ ; (s) ⊦ ((nf from n))(m) = nf(m + n); (s) ⊦ ⌜nf⌝ [n] = nf(n); (s) Used terms: ii(n0), σ
| ⊦ ¬ # σ < ⌜n⌝ ∧ finp(σ) → #(σ from n) = ⌜(# σ).n - n⌝ |
| # lf(n0) = ii(n0), #((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = ⌜# nextnli0(lf(n0), n0)⌝ , ii(0) = 0, lf(0) = [], lf(n0)[n1] ≠ σ[n1], n1 < ii(n0) + # nextnli0(lf(n0), n0), n1 < # lf(n0), ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n2. n2 < # nextnli0(lf(n0), n0) → ((σ from ii(n0)) to # nextnli0(lf(n0), n0))[n2] = nextnli0(lf(n0), n0)[n2], ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2], ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦ |
# lf(n0) = ii(n0), #((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = ⌜# nextnli0(lf(n0), n0)⌝ , ii(0) = 0, lf(0) = [], lf(n0)[n1] ≠ σ[n1], n1 < ii(n0) + # nextnli0(lf(n0), n0), n1 < ii(n0), ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n2. n2 < # nextnli0(lf(n0), n0) → ((σ from ii(n0)) to # nextnli0(lf(n0), n0))[n2] = nextnli0(lf(n0), n0)[n2], ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2], ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic
| # lf(n0) = ii(n0), #((σ from ii(n0)) to # nextnli0(lf(n0), n0)) = ⌜# nextnli0(lf(n0), n0)⌝ , ii(0) = 0, lf(0) = [], lf(n0)[n1] ≠ σ[n1], n1 < ii(n0) + # nextnli0(lf(n0), n0), n1 < ii(n0), ¬ # σ < ⌜ii(n0)⌝ + ⌜# nextnli0(lf(n0), n0)⌝ , (finp(σ) ⊃ # σ = ⌜ii(n)⌝ ∧ (∀ m. n ≤ m → nextnli0(lf(m), m) = [] ∧ ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∀ n2. n2 < # nextnli0(lf(n0), n0) → ((σ from ii(n0)) to # nextnli0(lf(n0), n0))[n2] = nextnli0(lf(n0), n0)[n2], ∀ n2. n2 < ii(n0) → lf(n0)[n2] = σ[n2], ∀ m, n. m ≤ n → ii(m) ≤ ii(n) ⊦ |
Used terms: n1
| ∀ x, n. x ⊑ nextnli(x, n) ⊦ ∀ x, n. ∃ y. nextnli(x, n) = x + y, ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)) |
∀ x, n. x ⊑ nextnli(x, n) ⊦ ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∃ y. nextnli(x, n) = x + y
| ∀ x, n. x ⊑ nextnli(x, n) ⊦ ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∃ y. nextnli(x, n) = x + y |
x ⊑ nextnli(x, n) ⊦ ∃ y. nextnli(x, n) = x + y, ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1))
Used terms: x, n
| x ⊑ nextnli(x, n) ⊦ ∃ y. nextnli(x, n) = x + y, ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)) |
⊦ x ⊑ y ↔ (∃ z. x + z = y)
∃ z. x + z = nextnli(x, n) ⊦ ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∃ y. nextnli(x, n) = x + y
Used terms: nextnli(x, n), x
| ⊦ x ⊑ y ↔ (∃ z. x + z = y) |
| ∃ z. x + z = nextnli(x, n) ⊦ ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)), ∃ y. nextnli(x, n) = x + y |
x + x0 = nextnli(x, n) ⊦ ∃ y. nextnli(x, n) = x + y, ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1))
| x + x0 = nextnli(x, n) ⊦ ∃ y. nextnli(x, n) = x + y, ∃ σ, ii. ii(0) = 0 ∧ (∀ n. ii(n) ≤ ii(n + 1) ∧ ¬ # σ < ⌜ii(n + 1)⌝ ∧ σ to ii(n + 1) = ⌜nextnli((σ to ii(n)).l, n)⌝ ) ∧ (∀ m, n. m ≤ n → ii(m) ≤ ii(n)) ∧ (finp(σ) ⊃ ∃ n. # σ = ⌜ii(n)⌝ ∧ ⌜nextnli(σ.l, n)⌝ = σ ∧ (∀ m. n ≤ m → ii(m) = ii(n));∀ n. ∃ m. ii(m) ≤ n ∧ n < ii(m + 1)) |
Used terms: x0
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.