[Imprint][Data Privacy Statement][E-Mail]

Back to main index. View the specification. View theorem base summary, View theorem base listing, the used properties by spec, the dependency list, the symbol table,

Theorem base for Specification stream

This is a listing of all goals defined over the current specification. Axioms are marked yellow, proved theorems green and unproved theorems blue. Click on individual names to get more information on the proof.

Name: Sequent: Type:
to-unwind-end-inf ⊦ nf.take(m + 1) = nf.take(m) + nf(m) ' A User Theorem
inf-take-prefix ⊦ ⌜nf.take(n)⌝ ⊑ ⌜nf⌝ A User Theorem
size-inf-to ⊦ # nf.take(n) = n A User Theorem
to-append-add ⊦ ¬ # σ < ⌜n⌝ ∧ ¬ # σ0 < ⌜n1⌝ → (⌜σ.take(n)⌝ + σ0).take(n1 + n) = σ.take(n) + σ0.take(n1) A User Theorem
from-append-toinffrom ⊦ ¬ # σ < ⌜n⌝ + n∞1 → ⌜σ.take(n)⌝ + σ.drop(n).take(n∞1) = σ.take(⌜n⌝ + n∞1) A User Theorem
toinftoinf-append-add ⊦ ¬ # σ < n∞ ∧ ¬ # σ0 < n∞1 → (σ.take(n∞) + σ0).take(n∞1 + n∞) = σ.take(n∞) + σ0.take(n∞1) A User Theorem
constrrew ⊦ ⌜a + x⌝ = ⌜a '⌝ + ⌜x⌝ A User Theorem
swap-to-from-app ⊦ m ≤ n ∧ ¬ # σ < ⌜n⌝ → (⌜σ.take(n)⌝ + σ0).drop(m) = ⌜σ.drop(m).take(n - m)⌝ + σ0 A User Theorem
appinf-selfun ⊦ ⌜(⌜x⌝ + ⌜nf⌝ ).f⌝ = ⌜x⌝ + ⌜nf⌝ A User Theorem
get-from-inf ⊦ nf.drop(n)(m) = nf(m + n) A User Theorem
append-cancel-l ⊦ ⌜x⌝ + σ0 = ⌜x⌝ + σ1 ↔ σ0 = σ1 A User Theorem
size-empty-equiv ⊦ # σ = ⌜0⌝ ↔ σ = [] A User Theorem
append-from-size-01 ⊦ (⌜x⌝ + σ).drop(# x) = σ A User Theorem
appinf-get-split ⊦ (⌜x⌝ + ⌜nf⌝ ).f(n) = (n < # x ⊃ x(n);nf(n - # x)) A User Theorem
sel-inf ⊦ ⌜nf⌝ (n) = nf(n) An Axiom
infapp-to-eq ⊦ # x ≤ n → (x + nf).take(# x) = x A User Theorem
infapp-one-to-succ ⊦ (a ' + nf).take(n + 1) = a ' + nf.take(n) A User Theorem
ton-fromn ⊦ ¬ # σ < ⌜n⌝ → σ.take(n).drop(n) = [] A User Theorem
toinf-empty-inf ⊦ ⌜nf⌝ .take(n∞) = [] ↔ n∞ = ⌜0⌝ A User Theorem
not-prefix-inf-fin ⊦ ¬ ⌜nf⌝ ⊑ ⌜x⌝ A User Theorem
from-nf ⊦ nf.drop(n) = (λ m. nf(n + m)) An Axiom
to-unwind-end-finm < # x ⊦ x.take(m + 1) = x.take(m) + (x(m))' A User Theorem
get-inftoinf⌜m⌝ < n∞ ⊦ ⌜nf⌝ .take(n∞)(m) = nf(m) A User Theorem
infappone-zero ⊦ (a ' + nf)(0) = a A User Theorem
size-toinf¬ # σ < n∞ ⊦ # σ.take(n∞) = n∞ A User Theorem
to-unwind-end-inf2 ⊦ nf.take(m + 2) = nf.take(m + 1) + nf(m + 1) ' A User Theorem
to-unwind-end⌜n⌝ < # σ ⊦ σ.take(n + 1) = σ.take(n) + (σ(n))' A User Theorem
not-prefix-appinf-fin ⊦ ¬ ⌜x⌝ + ⌜nf⌝ ⊑ ⌜y⌝ A User Theorem
toone-cons ⊦ (⌜a '⌝ + σ).take(1) = a ' A User Theorem
prefix-appendbothfin-listprefix ⊦ ⌜x⌝ + ⌜y⌝ ⊑ ⌜z⌝ ↔ x + y ⊑ z A User Theorem
get-append-notls ⊦ ¬ ⌜m⌝ < # σ → (σ + σ1)(m) = σ1(m - (# σ).n) A User Theorem
prefix-bothfin-listprefix ⊦ ⌜x⌝ ⊑ ⌜y⌝ ↔ x ⊑ y A User Theorem
toinf-to-eq-inf ⊦ ⌜nf⌝ .take(n∞).take(n∞) = ⌜nf⌝ .take(n∞) A User Theorem
append-to-inf-id ⊦ # σ = ∞ → σ + σ0 = σ A User Theorem
toinf-fin ⊦ σ.take(⌜n⌝ ) = ⌜σ.take(n)⌝ An Axiom
infapp-to-eqadd ⊦ # x ≤ n → (x + nf).take(# x + n) = x + nf.take(n) A User Theorem
fin-finlen-tolen ⊦ # x = n → x.take(n) = x A User Theorem
prefix-def ⊦ σ ⊑ σ0 ↔ (∃ σ1. σ + σ1 = σ0) An Axiom
leq-symm ⊦ σ1 ⊑ σ2 ∧ σ2 ⊑ σ1 → σ1 = σ2 A User Theorem
cons-from-num ⊦ n ≠ 0 → (⌜a '⌝ + σ).drop((* n)) = σ.drop(n - 1) A User Theorem
appinf-one-get-zero ⊦ (⌜a '⌝ + ⌜nf⌝ ).f(0) = a A User Theorem
append-two-is-fin ⊦ σ0 + σ = ⌜z⌝ ↔ finp(σ0) ∧ finp(σ) ∧ σ0.l + σ.l = z A User Theorem
less-size-from⌜n⌝ < # σ ⊦ ⌜n0⌝ < # σ.drop(n) ↔ ⌜n0 + n⌝ < # σ A User Theorem
contractinf-from1 ⊦ ⌜nf(0) '⌝ + ⌜nf.drop(1)⌝ = ⌜nf⌝ A User Theorem
append-fininf ⊦ ⌜x⌝ + ⌜nf⌝ = ⌜λ n. (n < # x ⊃ x(n);nf(n - # x))⌝ An Axiom
infapp-assoc ⊦ x + x0 + nf = (x + x0) + nf A User Theorem
to-inf-two ⊦ nf.take(2) = nf(0) ' + nf(1) ' A User Theorem
infapp-get-ls ⊦ n < # x → (x + nf)(n) = x(n) A User Theorem
toone-cons-fin ⊦ (a ' + y).take(1) = a ' A User Theorem
size-succ ⊦ # σ < ⌜n⌝ + ⌜1⌝ ↔ ¬ ⌜n⌝ < # σ A User Theorem
size-fin ⊦ # ⌜x⌝ = ⌜# x⌝ An Axiom
to-to-eq¬ # σ < ⌜n⌝ ⊦ σ.take(n).take(n) = σ.take(n) A User Theorem
modify-fin ⊦ ⌜x⌝ (n := a) = ⌜x(n := a)⌝ An Axiom
tl-inf-1 ⊦ tl(a + ⌜nf⌝ ) = ⌜nf⌝ A User Theorem
infapp-get-eqadd ⊦ (x + nf)(# x + n) = nf(n) A User Theorem
swap-to-from ⊦ m ≤ n ∧ ¬ # σ < ⌜n⌝ → σ.take(n).drop(m) = σ.drop(m).take(n - m) A User Theorem
toinf-inf ⊦ σ.take(∞) = σ An Axiom
append-prefix-fin-is-fin ⊦ σ0 + σ ⊑ ⌜z⌝ ↔ finp(σ0) ∧ finp(σ) ∧ σ0.l + σ.l ⊑ z A User Theorem
append-empty ⊦ σ + [] = σ A User Theorem
append-from-le-01 ⊦ m ≤ # x → (⌜x⌝ + σ).drop(m) = ⌜x.drop(m)⌝ + σ A User Theorem
toinf-to-leq¬ # σ < n∞ ⊦ ¬ n∞ < ⌜m⌝ → σ.take(n∞).take(m) = σ.take(m) A User Theorem
tl-one ⊦ tl(⌜a '⌝ ) = [] A User Theorem
modify-inf ⊦ ⌜nf⌝ (n := a) = ⌜λ m. (m = n ⊃ a;nf(m))⌝ An Axiom
infapp-embed ⊦ ⌜x + nf⌝ = ⌜x⌝ + ⌜nf⌝ A User Theorem
swap-inf-to-from-app ⊦ m ≤ n → (⌜nf.take(n)⌝ + σ0).drop(m) = ⌜nf.drop(m).take(n - m)⌝ + σ0 A User Theorem
appinf-to-le ⊦ n ≤ # x → (⌜x⌝ + ⌜nf⌝ ).f.take(n) = x.take(n) A User Theorem
toinf-to-ls¬ # σ < n∞ ⊦ ⌜m⌝ < n∞ → σ.take(n∞).take(m) = σ.take(m) A User Theorem
append-finfin ⊦ ⌜x + y⌝ = ⌜x⌝ + ⌜y⌝ An Axiom
to-inf-one ⊦ nf.take(1) = nf(0) ' A User Theorem
append-split-fin ⊦ # x = # y → (⌜x⌝ + σ = ⌜y⌝ + σ0 ↔ x = y ∧ σ = σ0) A User Theorem
cons-eq ⊦ ⌜a '⌝ + σ = ⌜a0 '⌝ + σ0 ↔ a = a0 ∧ σ = σ0 A User Theorem
size-inf ⊦ # ⌜nf⌝ = ∞ An Axiom
from-inf ⊦ ⌜nf⌝ .drop(n) = ⌜nf.drop(n)⌝ An Axiom
get-fintoinf¬ ⌜# x⌝ < n∞, ⌜m⌝ < n∞ ⊦ ⌜x⌝ .take(n∞)(m) = x(m) A User Theorem
contractinf-tl ⊦ ⌜nf(0) '⌝ + tl(⌜nf⌝ ) = ⌜nf⌝ A User Theorem
to-plus-from ⊦ ¬ # σ < ⌜n⌝ → ⌜σ.take(n)⌝ + σ.drop(n) = σ A User Theorem
from-succ ⊦ ⌜n⌝ < # σ → σ.drop(n) = σ(n) + σ.drop(n + 1) A User Theorem
ton-fromn-inf ⊦ nf.take(n).drop(n) = [] A User Theorem
from-to-exchange ⊦ ¬ # σ < ⌜m⌝ + ⌜n⌝ → σ.take(m + n).drop(m) = σ.drop(m).take(n) A User Theorem
elim-fromto ⊦ ¬ # σ < ⌜n⌝ → (x = σ.take(n) ∧ σ1 = σ.drop(n) ↔ σ = ⌜x⌝ + σ1 ∧ # x = n) A User Theorem
empty ⊦ ⌜[]⌝ = [] An Axiom
get-inftom < n ⊦ nf.take(n)(m) = nf(m) A User Theorem
tl-fin-1 ⊦ tl(⌜a ' + x⌝ ) = ⌜x⌝ A User Theorem
extensionality ⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ⌜n⌝ < # σ0 → σ0(n) = σ1(n)) A User Theorem
hd-inf ⊦ hd(⌜nf⌝ ) = nf(0) An Axiom
inf-not-to ⊦ ⌜nf⌝ ≠ ⌜σ.take(n)⌝ A User Theorem
fin-size-from ⊦ ¬ # σ < ⌜n⌝ ∧ finp(σ) → # σ.drop(n) = ⌜(# σ).n - n⌝ A User Theorem
toinf-add ⊦ σ.take(⌜n⌝ + ⌜m⌝ ) = ⌜σ.take(n + m)⌝ A User Theorem
append-notsmallersize2 ⊦ σ + σ0 = σ1 → (# σ1 < # σ0 ↔ false) A User Theorem
infapp-from-le ⊦ n ≤ # x → (x + nf).drop(n) = x.drop(n) + nf A User Theorem
append-notsmallersize1 ⊦ σ + σ0 = σ1 → (# σ1 < # σ ↔ false) A User Theorem
appinf-one-get-succ2 ⊦ (⌜a '⌝ + ⌜nf⌝ ).f(n + 2) = nf(n + 1) A User Theorem
nlslen-lslensn-eqlensn ⊦ ⌜n⌝ < # σ ∧ ¬ ⌜n⌝ + ⌜1⌝ < # σ → # σ = ⌜n⌝ + ⌜1⌝ A User Theorem
get-from-01m + m0 < # x ⊦ x.drop(m)(m0) = x(m + m0) A User Theorem
fin-to-to-ls¬ # x < n ⊦ m < n → x.take(n).take(m) = x.take(m) A User Theorem
to-empty4 ⊦ σ ≠ [] → σ.take(1) ≠ [] A User Theorem
append-to-gr-01 ⊦ # x < m → (⌜x⌝ + σ).take(m) = x + σ.take(m - # x) A User Theorem
to-empty3 ⊦ ⌜n⌝ < # σ → σ.take(n + 1) ≠ [] A User Theorem
add-list-fun-def ⊦ x + nf = (λ n. (n < # x ⊃ x(n);nf(n - # x))) An Axiom
hd-fin ⊦ hd(⌜a + x⌝ ) = a An Axiom
appinf-one2-get-zero ⊦ (⌜a '⌝ + ⌜x⌝ + ⌜nf⌝ ).f(0) = a A User Theorem
size-to¬ # σ < ⌜n⌝ ⊦ # σ.take(n) = n A User Theorem
to-empty2 ⊦ ¬ # σ < ⌜n⌝ → (σ.take(n) = [] ↔ n = 0) A User Theorem
appinf-one2-get-succ2 ⊦ (⌜a '⌝ + ⌜x⌝ + ⌜nf⌝ ).f(n + 2) = (⌜x⌝ + ⌜nf⌝ ).f(n + 1) A User Theorem
to-succ3-nf ⊦ nf.take(n + 3) = nf(0) + (λ n. nf(n + 1)).take(n + 2) A User Theorem
get-from-inf-zero ⊦ nf.drop(n)(0) = nf(n) A User Theorem
appinf-one-to-succ2 ⊦ (⌜a '⌝ + ⌜nf⌝ ).f.take(n + 2) = a ' + nf.take(n + 1) A User Theorem
get-finto¬ # x < n, m < n ⊦ x.take(n)(m) = x(m) A User Theorem
tl-lem ⊦ tl(⌜a '⌝ + σ) = σ A User Theorem
append-inf ⊦ ⌜nf⌝ + σ = ⌜nf⌝ An Axiom
get-append3-fin ⊦ (⌜x⌝ + ⌜x0⌝ + ⌜x1⌝ )(m) = (x + x0 + x1)(m) A User Theorem
get-from ⊦ ⌜n⌝ + ⌜m⌝ < # σ → σ.drop(n)(m) = σ(n + m) A User Theorem
hd-lem ⊦ hd(⌜a '⌝ + σ) = a A User Theorem
tl-fin ⊦ tl(⌜a + x⌝ ) = ⌜x⌝ An Axiom
appinf-one2-get-succ ⊦ (⌜a '⌝ + ⌜x⌝ + ⌜nf⌝ ).f(n + 1) = (⌜x⌝ + ⌜nf⌝ ).f(n) A User Theorem
toinf-to-leq-inf ⊦ ¬ n∞ < ⌜m⌝ → ⌜nf⌝ .take(n∞).take(m) = nf.take(m) A User Theorem
append-from-size ⊦ (x + y).drop(# x) = y A User Theorem
appfin-sel-01 ⊦ (⌜x⌝ + ⌜y⌝ + ⌜y0⌝ ).l = x + y + y0 A User Theorem
to-succ-cons ⊦ (⌜a '⌝ + σ).take(n + 1) = a + σ.take(n) A User Theorem
toinf-empty ⊦ n∞ < # σ → (σ.take(n∞) = [] ↔ n∞ = ⌜0⌝ ) A User Theorem
empty-leq ⊦ σ ⊑ [] ↔ σ = [] A User Theorem
one-inf ⊦ ⌜a '⌝ + ⌜nf⌝ = ⌜λ n. (n = 0 ⊃ a;nf(n.-1))⌝ A User Theorem
to-zero ⊦ σ.take(0) = [] A User Theorem
from-fin ⊦ ⌜x⌝ .drop(n) = ⌜x.drop(n)⌝ An Axiom
length-from¬ # x < n ⊦ # x.drop(n) = # x - n A User Theorem
to-succ2-nf ⊦ nf.take(n + 2) = nf(0) + (λ n. nf(n + 1)).take(n + 1) A User Theorem
infapp-from-eqadd ⊦ (x + nf).drop(# x + n) = nf.drop(n) A User Theorem
to-unwind-end-fin2m + 1 < # x ⊦ x.take(m + 2) = x.take(m + 1) + (x(m + 1))' A User Theorem
ton-fromn-fin ⊦ ¬ # x < n → x.take(n).drop(n) = [] A User Theorem
appinf-to-ge-01 ⊦ (⌜x⌝ + ⌜nf⌝ ).f.take(# x + n) = x + nf.take(n) A User Theorem
from-cons-one-fin ⊦ (a ' + x).drop(1) = x A User Theorem
infapp-inj ⊦ # x = # x0 → (x + nf = x0 + nf0 ↔ x = x0 ∧ nf = nf0) A User Theorem
single-to-one ⊦ a '.take(1) = a ' A User Theorem
get-cons-succ ⊦ (⌜a '⌝ + σ)(n + 1) = σ(n) A User Theorem
appinf-one2-to-succ2 ⊦ (⌜a '⌝ + ⌜x⌝ + ⌜nf⌝ ).f.take(n + 2) = a ' + (⌜x⌝ + ⌜nf⌝ ).f.take(n + 1) A User Theorem
append-gr-to ⊦ # σ < ⌜n⌝ → (σ + σ0).take(n) = σ.l + σ0.take(n - # σ.l) A User Theorem
tl-inf ⊦ tl(⌜nf⌝ ) = ⌜λ n. nf(n.+1)⌝ An Axiom
elim-fromto-inf ⊦ x0 = nf.take(n) ∧ nf0 = nf.drop(n) ↔ nf = (⌜x0⌝ + ⌜nf0⌝ ).f ∧ # x0 = n A User Theorem
from-zero ⊦ σ.drop(0) = σ A User Theorem
append-from-addsize-01 ⊦ (⌜x⌝ + σ).drop(m + # x) = σ.drop(m) A User Theorem
infapp-empty ⊦ [] + nf = nf A User Theorem
inf-not-toinf-exceptinf ⊦ ⌜nf⌝ = σ.take(n∞) ↔ n∞ = ∞ ∧ ⌜nf⌝ = σ A User Theorem
empty-append ⊦ [] + σ = σ A User Theorem
appinf-one-get-succ ⊦ (⌜a '⌝ + ⌜nf⌝ ).f(n + 1) = nf(n) A User Theorem
append-to-le-01 ⊦ m ≤ # x → (⌜x⌝ + σ).take(m) = x.take(m) A User Theorem
eq-stream-to-list-3-3 ⊦ ⌜x1⌝ + ⌜x⌝ + ⌜y⌝ = ⌜x2⌝ + ⌜x0⌝ + ⌜z⌝ ↔ x1 + x + y = x2 + x0 + z A User Theorem
appfin-sel ⊦ (⌜x⌝ + ⌜y⌝ ).l = x + y A User Theorem
cons-append ⊦ a + σ = ⌜a '⌝ + σ A User Theorem
leq-trans ⊦ σ ⊑ σ1 ∧ σ1 ⊑ σ2 → σ ⊑ σ2 A User Theorem
toinfto-append-add ⊦ ¬ # σ < n∞ ∧ ¬ # σ0 < ⌜n1⌝ → (σ.take(n∞) + σ0).take(⌜n1⌝ + n∞) = σ.take(n∞) + ⌜σ0.take(n1)⌝ A User Theorem
to-to-leq-inf ⊦ m ≤ n → nf.take(n).take(m) = nf.take(m) A User Theorem
append-from-le ⊦ n ≤ # x → (x + y).drop(n) = x.drop(n) + y A User Theorem
neq-fin-inf-02 ⊦ σ0 + ⌜x⌝ = σ + ⌜nf0⌝ ↔ σ0 = σ + ⌜nf0⌝ A User Theorem
appinf-get-ge-01 ⊦ (⌜x⌝ + ⌜nf⌝ ).f(# x + n) = nf(n) A User Theorem
neq-fin-inf-01 ⊦ ⌜x⌝ ≠ σ + ⌜nf0⌝ A User Theorem
fin-empty ⊦ ⌜x⌝ = [] ↔ x = [] A User Theorem
to-empty ⊦ ⌜n⌝ < # σ → (σ.take(n) = [] ↔ n = 0) A User Theorem
to-is-prefix ⊦ ⌜n⌝ < # σ → ⌜σ.take(n)⌝ ⊑ σ A User Theorem
hd-append ⊦ σ ≠ [] → hd(σ + σ0) = hd(σ) A User Theorem
neq-fin-inf-03 ⊦ σ0 + ⌜x⌝ = ⌜nf0⌝ ↔ σ0 = ⌜nf0⌝ A User Theorem
append-to-size-01 ⊦ (⌜x⌝ + σ).take(# x) = x A User Theorem
prefixself-equal ⊦ σ + σ0 ⊑ σ ↔ σ0 = [] ∨ # σ = ∞ A User Theorem
to-to-leq¬ # σ < ⌜n⌝ ⊦ m ≤ n → σ.take(n).take(m) = σ.take(m) A User Theorem
hd-one ⊦ hd(⌜a '⌝ ) = a A User Theorem
append-to-addsize-01 ⊦ (⌜x⌝ + σ).take(m + # x) = x + σ.take(m) A User Theorem
appinf-one-to-succ ⊦ (⌜a '⌝ + ⌜nf⌝ ).f.take(n + 1) = a ' + nf.take(n) A User Theorem
eq-stream-to-list-3-1 ⊦ ⌜x⌝ + ⌜y⌝ + ⌜z⌝ = ⌜x0⌝ ↔ x + y + z = x0 A User Theorem
eq-stream-to-list-3-2 ⊦ ⌜x1⌝ + ⌜x⌝ + ⌜y⌝ = ⌜x0⌝ + ⌜z⌝ ↔ x1 + x + y = x0 + z A User Theorem
appendend-equal ⊦ σ + σ0 = σ ↔ σ0 = [] ∨ # σ = ∞ A User Theorem
swap-inf-to-from ⊦ m ≤ n → nf.take(n).drop(m) = nf.drop(m).take(n - m) A User Theorem
size-from ⊦ ¬ # σ < ⌜n⌝ → # σ.drop(n) = (# σ = ∞ ⊃ ∞;⌜(# σ).n - n⌝ ) A User Theorem
cons-to-num ⊦ n ≠ 0 → (⌜a '⌝ + σ).take((* n)) = a ' + σ.take(n - 1) A User Theorem
append-assoc ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2 A User Theorem
append-split ⊦ finp(σ) ∧ # σ = # σ1 → (σ + σ0 = σ1 + σ2 ↔ σ = σ1 ∧ σ0 = σ2) A User Theorem
size-from-less ⊦ ¬ # σ < ⌜n⌝ → (# σ.drop(n) < ⌜n0⌝ ↔ # σ < ⌜n + n0⌝ ) A User Theorem
hd-selzero ⊦ σ ≠ [] → hd(σ) = σ(0) A User Theorem
to-plus-from-simp¬ # σ < ⌜n⌝ ⊦ ⌜σ.take(n)⌝ + σ.drop(n) = σ ↔ true A User Theorem
append-from-addsize ⊦ (x1 + x0).drop(n + # x1) = x0.drop(n) A User Theorem
to-empty-fin2 ⊦ n ≤ # x → (x.take(n) = [] ↔ n = 0) A User Theorem
to-plus-from-fin-simp ⊦ ¬ # x < n → (x.take(n) + x.drop(n) = x ↔ true) A User Theorem
infapp-get-eq ⊦ (x + nf)(# x) = nf(0) A User Theorem
infapp-from-gt ⊦ # x < n → (x + nf).drop(n) = nf.drop(n - # x) A User Theorem
extract-empty ⊦ [].l = [] A User Theorem
from-append-add ⊦ ¬ # σ < ⌜n⌝ ∧ ¬ # σ0 < ⌜n1⌝ → (⌜σ.take(n)⌝ + σ0).drop(n1 + n) = σ0.drop(n1) A User Theorem
from-append-tofrom ⊦ ¬ # σ < ⌜n + n1⌝ → σ.take(n) + σ.drop(n).take(n1) = σ.take(n + n1) A User Theorem
appinf-sel ⊦ (⌜x⌝ + ⌜nf⌝ ).f = x + nf A User Theorem
from-succ-cons ⊦ (⌜a '⌝ + σ).drop(n + 1) = σ.drop(n) A User Theorem
appinf-get-le ⊦ n < # x → (⌜x⌝ + ⌜nf⌝ ).f(n) = x(n) A User Theorem
length-to¬ # x < n ⊦ # x.take(n) = n A User Theorem
tl-fin-lem ⊦ tl(⌜a '⌝ + ⌜x⌝ ) = ⌜x⌝ A User Theorem
from-all ⊦ x.drop(# x) = [] A User Theorem
toinf-empty3 ⊦ n∞ < # σ → σ.take(n∞ + ⌜1⌝ ) ≠ [] A User Theorem
size-empty ⊦ # [] = ⌜0⌝ A User Theorem
toinf-empty2 ⊦ ¬ # σ < n∞ → (σ.take(n∞) = [] ↔ n∞ = ⌜0⌝ ) A User Theorem
cons-inf ⊦ a + ⌜nf⌝ = ⌜λ n. (n = 0 ⊃ a;nf(n.-1))⌝ An Axiom
get-cons-zero ⊦ (⌜a '⌝ + σ)(0) = a A User Theorem
from-cons-one ⊦ (⌜a '⌝ + σ).drop(1) = σ A User Theorem
leq-append-right ⊦ σ1 ⊑ σ1 + σ2 A User Theorem
get-append2-fin ⊦ (⌜x⌝ + ⌜x0⌝ )(m) = (x + x0)(m) A User Theorem
to-succ-cons-l-lem ⊦ (a ' + x).take(n + 1) = a + x.take(n) A User Theorem
elim-hd-tl ⊦ σ ≠ [] → (a = hd(σ) ∧ σ0 = tl(σ) ↔ σ = a + σ0) A User Theorem
appinf-to-split ⊦ (⌜x⌝ + ⌜nf⌝ ).f.take(n) = (n ≤ # x ⊃ x.take(n);x + nf.take(n - # x)) A User Theorem
swap-from-to ⊦ ¬ # σ < ⌜m⌝ + ⌜n⌝ → σ.drop(m).take(n) = σ.take(m + n).drop(m) A User Theorem
prefix-inf-id ⊦ # σ = ∞ → (σ ⊑ σ0 ↔ σ = σ0) A User Theorem
toinf-to-eq¬ # σ < n∞ ⊦ σ.take(n∞).take(n∞) = σ.take(n∞) A User Theorem
to-empty-inf ⊦ nf.take(n) = [] ↔ n = 0 A User Theorem
leq-append-left ⊦ σ0 + σ1 ⊑ σ → (σ0 ⊑ σ ↔ true) A User Theorem
to-to-eq-inf ⊦ nf.take(n).take(n) = nf.take(n) A User Theorem
append-toinf-ls ⊦ ¬ # σ < n∞ → (σ + σ0).take(n∞) = σ.take(n∞) A User Theorem
to-unwind-begin⌜n⌝ < # σ ⊦ σ.take(n + 1) = σ(0) + tl(σ).take(n) A User Theorem
size-to-02 ⊦ # ⌜σ.take(n)⌝ = ⌜# σ.take(n)⌝ A User Theorem
get-toinf⌜m⌝ < n∞, ¬ # σ < n∞ ⊦ σ.take(n∞)(m) = σ(m) A User Theorem
get-from-zero ⊦ ⌜n⌝ < # σ → σ.drop(n)(0) = σ(n) A User Theorem
append-fin-inf-fun ⊦ ⌜x⌝ + ⌜nf⌝ = ⌜nf0⌝ ↔ x + nf = nf0 A User Theorem
from-infto-exchange ⊦ ¬ # σ < ⌜m⌝ + n∞ → σ.take(⌜m⌝ + n∞).drop(m) = σ.drop(m).take(n∞) A User Theorem
finlen-tolen-02 ⊦ # σ = ⌜n⌝ → σ.take(n) = σ.l A User Theorem
to-empty-fin ⊦ n < # x → (x.take(n) = [] ↔ n = 0) A User Theorem
cons-fin ⊦ ⌜a + x⌝ = a + ⌜x⌝ An Axiom
to-all ⊦ x.take(# x) = x A User Theorem
lslen-fromnotempty ⊦ ⌜n⌝ < # σ → (σ.drop(n) = [] ↔ false) A User Theorem
infapp-to-le ⊦ n ≤ # x → (x + nf).take(n) = x.take(n) A User Theorem
inf-size-to ⊦ # ⌜nf.take(n)⌝ = ⌜n⌝ A User Theorem
infapp-from-eq ⊦ (x + nf).drop(# x) = nf A User Theorem
from-appfin ⊦ (⌜x⌝ + ⌜y⌝ ).drop(n) = ⌜(x + y).drop(n)⌝ A User Theorem
finlen-tolen ⊦ # σ = ⌜n⌝ → ⌜σ.take(n)⌝ = σ A User Theorem
append-from-gr-01 ⊦ # x < m → (⌜x⌝ + σ).drop(m) = σ.drop(m - # x) A User Theorem
append-from-gr-02 ⊦ # σ0 < ⌜m⌝ → (σ0 + σ).drop(m) = σ.drop(m - (# σ0).n) A User Theorem
toone-one ⊦ ⌜a '⌝ .take(1) = a ' A User Theorem
appinf-one2-to-succ ⊦ (⌜a '⌝ + ⌜x⌝ + ⌜nf⌝ ).f.take(n + 1) = a ' + (⌜x⌝ + ⌜nf⌝ ).f.take(n) A User Theorem
get-append-ls ⊦ ⌜m⌝ < # σ → (σ + σ1)(m) = σ(m) A User Theorem
to-to-ls¬ # σ < ⌜n⌝ ⊦ m < n → σ.take(n).take(m) = σ.take(m) A User Theorem
cons-empty ⊦ ⌜a '⌝ + σ ≠ [] A User Theorem
append-cancel-l-02 ⊦ σ0 + σ = σ0 ↔ σ = [] ∨ ¬ finp(σ0) A User Theorem
from-from-inf ⊦ nf.drop(m).drop(n) = nf.drop(m + n) A User Theorem
toinflen ⊦ # σ = n∞ → σ.take(n∞) = σ A User Theorem
fin-to-to-eq¬ # x < n ⊦ x.take(n).take(n) = x.take(n) A User Theorem
leq-prefix ⊦ σ1 ⊑ σ2 → σ1 = σ2 ∨ (∃ n. ⌜n⌝ < # σ2 ∧ ⌜σ2.take(n)⌝ = σ1) A User Theorem
get-cons-numn ≠ 0 ⊦ (⌜a '⌝ + σ)((* n)) = σ(n - 1) A User Theorem
infapp-to-ge-01 ⊦ (x + nf).take(# x + n) = x + nf.take(n) A User Theorem
to-unwind-end2⌜n⌝ + ⌜1⌝ < # σ ⊦ σ.take(n + 2) = σ.take(n + 1) + (σ(n + 1))' A User Theorem
fin-to-to-leq¬ # x < n ⊦ m ≤ n → x.take(n).take(m) = x.take(m) A User Theorem
extensionality-to ⊦ σ0 = σ1 ↔ # σ0 = # σ1 ∧ (∀ n. ¬ # σ0 < ⌜n⌝ → σ0.take(n) = σ1.take(n)) A User Theorem
leq-refl ⊦ σ ⊑ σ A User Theorem
intrace-expand ⊦ ⌜nf⌝ = nf(0) + ⌜λ n. nf(n + 1)⌝ A User Theorem
append-from-ge-01 ⊦ # x ≤ m → (⌜x⌝ + σ).drop(m) = σ.drop(m - # x) A User Theorem
append-from-ge-02 ⊦ ¬ ⌜m⌝ < # σ0 → (σ0 + σ).drop(m) = σ.drop(m - (# σ0).n) A User Theorem
to-fin ⊦ ⌜x⌝ .take(n) = x.take(n) An Axiom
expand-cons ⊦ σ ≠ [] → (∃ a, σ0. σ = ⌜a '⌝ + σ0) A User Theorem
cons-eq-inf ⊦ ⌜nf⌝ = a0 + σ ↔ nf(0) = a0 ∧ ⌜λ n. nf(n + 1)⌝ = σ A User Theorem
from-nf-zero ⊦ nf.drop(0) = nf A User Theorem
to-from-01⌜n⌝ < # σ ⊦ σ.take(n).drop(n) = [] A User Theorem
appinf-get-ge ⊦ # x ≤ n → (⌜x⌝ + ⌜nf⌝ ).f(n) = nf(n - # x) A User Theorem
prefix-inf-inf-equal ⊦ ⌜nf⌝ ⊑ ⌜nf0⌝ ↔ nf = nf0 A User Theorem
to-inf ⊦ ⌜nf⌝ .take(n) = nf.take(n) An Axiom
to-plus-from-fin ⊦ n ≤ # x → x.take(n) + x.drop(n) = x A User Theorem
prefix-notsmallersize ⊦ σ ⊑ σ0 → (# σ0 < # σ ↔ false) A User Theorem
zero-len ⊦ ⌜0⌝ < # σ ↔ σ ≠ [] A User Theorem
append-eq-inf ⊦ ⌜nf⌝ = σ + ⌜x⌝ ↔ ⌜nf⌝ = σ A User Theorem
appinf-selfun-01 ⊦ ⌜(⌜x⌝ + ⌜y⌝ + ⌜nf⌝ ).f⌝ = ⌜x⌝ + ⌜y⌝ + ⌜nf⌝ A User Theorem
hd-fin-lem ⊦ hd(⌜a '⌝ + ⌜x⌝ ) = a A User Theorem
to-plus-from-inf-simp ⊦ ⌜nf.take(n)⌝ + ⌜nf.drop(n)⌝ = ⌜nf⌝ ↔ true A User Theorem
toone-equalσ ≠ [] ⊦ σ.take(1) = a ' ↔ σ(0) = a A User Theorem
to-zero-nf ⊦ nf.take(0) = [] An Axiom
swap-inf-from-to ⊦ nf.drop(m).take(n) = nf.take(m + n).drop(m) A User Theorem
leq-empty ⊦ [] ⊑ σ A User Theorem
fin-neq-inf ⊦ a + ⌜nf⌝ ≠ ⌜x⌝ A User Theorem
append-le-to ⊦ ¬ # σ < ⌜n⌝ → (σ + σ0).take(n) = σ.take(n) A User Theorem
append-cut1 ⊦ σ + σ1 = σ + σ2 ↔ σ1 = σ2 ∨ # σ = ∞ A User Theorem
size-append ⊦ #(σ + σ1) = # σ + # σ1 A User Theorem
cons-from-addnum ⊦ n ≠ 0 → (⌜a '⌝ + σ).drop((* n) + m) = σ.drop((n - 1) + m) A User Theorem
size-inf-toinf ⊦ # ⌜nf⌝ .take(n∞) = n∞ A User Theorem
get-tom < n, ¬ # σ < ⌜n⌝ ⊦ σ.take(n)(m) = σ(m) A User Theorem
sel-fin ⊦ ⌜x⌝ (n) = x(n) An Axiom
cons-to-addnum ⊦ n ≠ 0 → (⌜a '⌝ + σ).take((* n) + m) = a ' + σ.take((n - 1) + m) A User Theorem
eq-stream-to-list-2-2 ⊦ ⌜x⌝ + ⌜y⌝ = ⌜x0⌝ + ⌜z⌝ ↔ x + y = x0 + z A User Theorem
to-appfin ⊦ (⌜x⌝ + ⌜y⌝ ).take(n) = (x + y).take(n) A User Theorem
fun-nonempty ⊦ [] ≠ ⌜nf⌝ A User Theorem
eq-stream-to-list-2-1 ⊦ ⌜x⌝ + ⌜y⌝ = ⌜z⌝ ↔ x + y = z A User Theorem
infapp-one-to-succ2 ⊦ (a ' + nf).take(n + 2) = a ' + nf.take(n + 1) A User Theorem
append-fin-is-inf ⊦ ⌜x⌝ + σ = ⌜nf⌝ ↔ ¬ finp(σ) ∧ x + σ.f = nf A User Theorem
to-unwind-begin-finm < # x ⊦ x.take(m + 1) = x.head + x.tail.take(m) A User Theorem
from-from ⊦ ¬ # σ < ⌜m + n⌝ → σ.drop(m).drop(n) = σ.drop(m + n) A User Theorem
cons-eq-01 ⊦ ⌜a '⌝ + σ = ⌜a0 '⌝ ↔ a = a0 ∧ σ = [] A User Theorem
to-attach ⊦ ⌜x + a '⌝ .take(# x) = x A User Theorem
to-succ-nf ⊦ nf.take(n + 1) = nf(0) + (λ n. nf(n + 1)).take(n) An Axiom
appinf-to-ge ⊦ # x ≤ n → (⌜x⌝ + ⌜nf⌝ ).f.take(n) = x + nf.take(n - # x) A User Theorem
leq-symm-2 ⊦ σ1 ⊑ σ2 → (σ2 ⊑ σ1 ↔ σ1 = σ2) A User Theorem
infapp-to-ge ⊦ # x ≤ n → (x + nf).take(n) = x + nf.take(n - # x) A User Theorem
leq-append-both ⊦ ⌜x⌝ + σ1 ⊑ ⌜x⌝ + σ2 ↔ σ1 ⊑ σ2 A User Theorem
infapp-get-ge ⊦ # x ≤ n → (x + nf)(n) = nf(n - # x) A User Theorem
from-succ-cons-l-lem ⊦ (a ' + x).drop(n + 1) = x.drop(n) A User Theorem
inf-size-from ⊦ # σ = ∞ → # σ.drop(n) = ∞ A User Theorem
to-plus-from-inf ⊦ ⌜nf.take(n)⌝ + ⌜nf.drop(n)⌝ = ⌜nf⌝ A User Theorem
append-empty-01 ⊦ σ0 + σ1 = [] ↔ σ0 = [] ∧ σ1 = [] A User Theorem
append-from-gt ⊦ # x < n → (x + y).drop(n) = y.drop(n - # x) A User Theorem
size-from-inf ⊦ # ⌜nf⌝ .drop(n) = ∞ A User Theorem