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