[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 list-del

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:
nodups-rmposnodups ⊦ ¬ dups(x) → (dups(x -p n) ↔ false) A User Theorem
put-sw-in ⊦ m < # x ∧ n < # x → (a ∈ (x[m := x[n]])[n := x[m]] ↔ a ∈ x) A User Theorem
sub-zerorec-01n < # x ⊦ sublist(0, n + 1, x) = x.head + sublist(0, n, x.tail) A User Theorem
lastn-length-01 ⊦ n ≤ # x → # lastn(n, x) = n A User Theorem
firstN-in ⊦ ¬ a ∈ x ∧ n ≤ # x → ¬ a ∈ firstn(n, x) A User Theorem
lastn-lastn ⊦ lastn(n, lastn(n, x)) = lastn(n, x) A User Theorem
dups ⊦ dups(x -1l a) → dups(x) A User Theorem
put-in ⊦ a ≠ x[m] ∧ m < # x → (a ∈ x[m := b] ↔ a = b ∨ a ∈ x) A User Theorem
lastn-firstn-in ⊦ lastn(n, x) = y ∧ ¬ a ∈ y ∧ a ∈ x ∧ n ≤ # x → a ∈ firstn(# x - n, x) A User Theorem
in-01-01 ⊦ a ∈ x -1l b → a ∈ x A User Theorem
firstn-one-02 ⊦ firstn(1, a ') = a ' A User Theorem
firstrestex ⊦ n < # x ↔ x = firstn(n, x) + restn(n, x) ∧ n < # x A User Theorem
lastn-mklist ⊦ m ≤ n → lastn(m, mklist(a, n)) = mklist(a, m) A User Theorem
firstn-length-04 ⊦ n ≤ # x → # firstn(n, x) = n A User Theorem
st ⊦ (x -1l a) -1l b = (x -1l b) -1l a ↔ true A User Theorem
notin-03 ⊦ ¬ a ∈ x → pos(a, x) = # x A User Theorem
sublist-good ⊦ sublist(# x, # y, x + y + z) = y A User Theorem
del-one-simpa ≠ b ⊦ (* a) ' -l (* b) = a ' A User Theorem
firstn-length ⊦ x = firstn(n, y) + a ' + z → (# x ≥ n + 1 ↔ true) A User Theorem
firstn-restn-in ⊦ n ≤ # x → (a ∈ x ↔ a ∈ firstn(n, x) ∨ a ∈ restn(n, x)) A User Theorem
size-del-nodups ⊦ ¬ dups(x) ∧ a ∈ x → #(x -l a) = # x - 1 A User Theorem
sublist-restn-01 ⊦ m + n + m0 ≤ # x → sublist(m, n, restn(m0, x)) = sublist(m + m0, n, x) A User Theorem
sublist-move ⊦ n + m ≤ m0 ∧ n0 + m0 ≤ # x → sublist(n, m, sublist(n0, m0, x)) = sublist(n0 + n, m, x) A User Theorem
rest-one ⊦ restn(1, a ' + x) = x A User Theorem
rev-get ⊦ n < # x → rev(x)[n] = x[# x - n + 1] A User Theorem
sw ⊦ (x -l a) -l b = (x -l b) -l a A User Theorem
del1-del ⊦ (x -1l a) -l a = x -l a A User Theorem
firstN-in-01 ⊦ ¬ a ∈ x ∧ n < # x → ¬ a ∈ firstn(n, x) A User Theorem
get-in ⊦ m < # x → (x[m] ∈ x ↔ true) A User Theorem
from-rest ⊦ a ∈ x → frome(x, a) = restn(pos(a, x), x) A User Theorem
fromE-yes ⊦ frome(a ' + x, a) = a ' + x An Axiom
lastN-rec ⊦ lastn(n + 1, x) = lastn(n, x.butlast) + x.last An Axiom
del1-first ⊦ x.head = a ∧ x ≠ [] → a ' + (x -1l a) = x A User Theorem
lastN-in ⊦ ¬ a ∈ x ∧ n < # x → ¬ a ∈ lastn(n, x) A User Theorem
lastN-append-01 ⊦ n ≤ # y → lastn(n, x + y) = lastn(n, y) A User Theorem
restn-restn ⊦ m + n ≤ # x → restn(m, restn(n, x)) = restn(m + n, x) A User Theorem
get-append-grt-02 ⊦ (x + y)[n + # x] = y[n] A User Theorem
firstN-num-recn ≠ 0 ⊦ firstn((* n), a ' + x) = a ' + firstn(n -1, x) A User Theorem
put-rec ⊦ n ≠ 0 ∧ x ≠ [] → x[n := a] = x.head ' + x.tail[n -1 := a] A User Theorem
del-n ⊦ a ≠ b → (b ' + x) -l a = b ' + (x -l a) An Axiom
sublist-mklist ⊦ n + m ≤ m0 → sublist(n, m, mklist(a, m0)) = mklist(a, m) A User Theorem
restn-at ⊦ m + n < # x → restn(m, x)[n] = x[m + n] A User Theorem
lastn-neq-02 ⊦ # y ≠ n → lastn(n + 1, x) ≠ a ' + y A User Theorem
delete-one-le ⊦ #(x -1l a) ≤ # x A User Theorem
put-one ⊦ a '[0 := b] = b ' A User Theorem
del-e ⊦ [] -l a = [] An Axiom
restN-rec ⊦ restn(n + 1, x) = restn(n, x.tail) An Axiom
restn-rest ⊦ restn(n, x).tail = restn(n + 1, x) A User Theorem
rest-sub ⊦ n ≤ # x → restn(n, x) = sublist(n, # x - n, x) A User Theorem
firstn-app ⊦ firstn(# x + n, x + y) = x + firstn(n, y) A User Theorem
one ⊦ a ' -l a = [] A User Theorem
firstN-lastN ⊦ n ≤ # x → firstn(# x - n, x) + lastn(n, x) = x A User Theorem
firstn-butlast ⊦ x = firstn(# x - 1 + # z, x) + a ' + z → firstn(# x - # z, x).butlast = firstn(# x - 1 + # z, x) A User Theorem
rest-append ⊦ n + m ≤ # x → restn(n, x + y) = restn(n, x) + y A User Theorem
firstn-append ⊦ x = firstn(n, x) + a ' + y → firstn(n + 1, x) = firstn(n, x) + a ' A User Theorem
num-lastN0 < n ⊦ lastn((* n), x + a ') = lastn(n -1, x) + a ' A User Theorem
sublist-append-02-01 ⊦ # x ≤ m ∧ m ≤ # x + # y → sublist(0, m, x + y) = x + sublist(0, m - # x, y) A User Theorem
restN-all ⊦ restn(# x, x) = [] A User Theorem
lastn-firstn-in-01 ⊦ lastn(n, x) = y ∧ ¬ a ∈ y ∧ a ∈ x ∧ n ≤ # x ∧ m = # x - n → a ∈ firstn(m, x) A User Theorem
sub-zerolen ⊦ sublist(n, 0, x) = [] A User Theorem
lastN-append ⊦ n = # y → lastn(n, x + y) = y A User Theorem
get-mklist-01 ⊦ m < n → mklist(a, n)[m] = a A User Theorem
first-all-01 ⊦ # x = n → firstn(n, x) = x A User Theorem
delpos-rec ⊦ (a ' + x) -p (n + 1) = a + (x -p n) An Axiom
lastN-exn ≤ # x ⊦ ∃ y. x = y + lastn(n, x) ∧ # y = # x - n A User Theorem
get-last-nonempty ⊦ n = # x - 1 ∧ 0 < # x → x[n] = x.last A User Theorem
inl-01 ⊦ a ∈ x → ¬ # x ≤ pos(a, x) A User Theorem
put-last ⊦ n = # x → (x + a ')[n := b] = x + b ' A User Theorem
restn-nonempty ⊦ n < # x → restn(n, a ' + x) ≠ [] A User Theorem
restn-apprec ⊦ restn(m, restn(n, x)) = restn(m + n, x) A User Theorem
in-05 ⊦ ¬ a ∈ y -1l b ∧ a ∈ y → a = b A User Theorem
put-firstn-restn ⊦ n < # x → x[n := a] = firstn(n, x) + a ' + restn(n + 1, x) A User Theorem
sublist-length-03 ⊦ # x = h ∧ h = l + n → # sublist(l, n, x + x0) = n A User Theorem
get-succ ⊦ (a ' + x)[n + 1] = x[n] A User Theorem
get-app ⊦ (x + a ' + y)[# x] = a A User Theorem
del-del1-switch ⊦ a ≠ b → (x -1l a) -l b = (x -l b) -1l a A User Theorem
get-restn ⊦ m + n < # x → restn(n, x)[m] = x[m + n] A User Theorem
put-in-01 ⊦ m < # x → (a ∈ x[m := b] ↔ a = b ∨ a ∈ x -1l x[m]) A User Theorem
lastN-in-01 ⊦ ¬ a ∈ x ∧ n ≤ # x → ¬ a ∈ lastn(n, x) A User Theorem
sublist-two-numm1 ≤ # x, n + n1 ≤ m1 ⊦ sublist((* n), (* n1), sublist(0, (* m1), x)) = sublist(n, n1, x) A User Theorem
size-rmdup-del ⊦ a ∈ x → # rmdup(x -l a) = # rmdup(x) - 1 A User Theorem
put-zero-01 ⊦ x ≠ [] → x[0 := a] = a ' + x.tail A User Theorem
put-rec-02 ⊦ n ≠ 0 → (a ' + x)[n := b] = a ' + x[n -1 := b] A User Theorem
firstN-dups-03 ⊦ n ≤ # y ∧ ¬ dups(x + y) → ¬ dups(x + firstn(n, y)) A User Theorem
one-03 ⊦ a '[0] = a A User Theorem
lastN-rest-01 ⊦ # x = n + 1 → lastn(n, x) = x.tail A User Theorem
lastn-neq ⊦ n ≤ # x ∧ ¬ a ∈ x → lastn(n, x) ≠ a ' + y A User Theorem
firstN-rec-01 ⊦ n ≠ 0 → firstn(n, a ' + x) = a ' + firstn(n -1, x) A User Theorem
get-nodups ⊦ m < # x ∧ n < # x ∧ ¬ dups(x) → (x[m] = x[n] ↔ m = n) A User Theorem
sublist-prefix ⊦ n ≤ n1 ∧ n1 + m0 < # x → (sublist(m0, n + 1, x) ⊑ sublist(m0, n1 + 1, x) ↔ true) A User Theorem
len-01 ⊦ ¬ # x < pos(a, x) A User Theorem
get-append-grt ⊦ ¬ n < # x → (x + y)[n] = y[n - # x] A User Theorem
in-02 ⊦ ¬ a ∈ x -l a A User Theorem
get ⊦ a ∈ x → x[pos(a, x)] = a A User Theorem
dups-first-last-split ⊦ n ≤ # x → (dups(x) ↔ dups(firstn(n, x) + lastn(# x - n, x))) A User Theorem
delpos-base ⊦ (a ' + x) -p 0 = x An Axiom
weak-firstN-rec ⊦ firstn(n + 1, a ' + x) = a + firstn(n, x) A User Theorem
rest-rest1 ⊦ x.tail = restn(1, x) A User Theorem
restN-zero ⊦ restn(0, x) = x An Axiom
rest-mklist-02 ⊦ restn(m, mklist(a, m) + mklist(a, n)) = mklist(a, n) A User Theorem
sublist-is-restn ⊦ # x = h ∧ h = l + n → sublist(l, n, x + x0) = restn(l, x) A User Theorem
app-01 ⊦ ¬ a ∈ x → (x + y) -1l a = x + (y -1l a) A User Theorem
lastn-neq-01 ⊦ n ≤ # x ∧ a ∈ y ∧ ¬ a ∈ x → lastn(n, x) ≠ b ' + y A User Theorem
lastn-mklist-03 ⊦ lastn(n, mklist(a, n)) = mklist(a, n) A User Theorem
first-mklist-03 ⊦ firstn(m, mklist(a, n) + mklist(a, m)) = mklist(a, m) A User Theorem
sublist-rec-01n ≤ # x, n ≠ 0 ⊦ sublist(0, n, x) = x.head ' + sublist(0, n -1, x.tail) A User Theorem
put-app-right ⊦ # x ≤ n → (x + y)[n := a] = x + y[n - # x := a] A User Theorem
pos-get-01 ⊦ ¬ dups(x) ∧ x[n] = a ∧ n < # x → pos(a, x) = n A User Theorem
sublist-def ⊦ sublist(m, n, x) = firstn(n, restn(m, x)) An Axiom
pos-y ⊦ pos(a, a ' + x) = 0 An Axiom
firstn-app-exact ⊦ n = # x → firstn(n, x + y) = x A User Theorem
rmdup-last ⊦ rmdup(x + a ') = rmdup(x -l a) + a ' A User Theorem
put-succ ⊦ (b ' + x)[n + 1 := a] = b + x[n := a] A User Theorem
firstN-rec ⊦ firstn(n + 1, x) = x.head + firstn(n, x.tail) An Axiom
sublist-append-02 ⊦ # x ≤ m → sublist(0, m, x + y) = x + sublist(0, m - # x, y) A User Theorem
restN-dups ⊦ ¬ dups(x) ∧ n ≤ # x → ¬ dups(restn(n, x)) A User Theorem
get-last-01 ⊦ (a + x)[# x] = (a + x).last A User Theorem
sub-rec-01m + n < # x ⊦ sublist(m + 1, n, x) = sublist(m, n, x.tail) A User Theorem
fromE-no ⊦ a ≠ b → frome(a ' + x, b) = frome(x, b) An Axiom
sublist-last ⊦ m0 + n < # x → sublist(m0, n + 1, x).last = x[m0 + n] A User Theorem
lastN-blastN ⊦ n ≤ # x → butlastn(n, x) + lastn(n, x) = x A User Theorem
pos-equal ⊦ a ∈ x ∧ pos(a, x) = n → (pos(b, x) = n ↔ a = b) A User Theorem
firstn-prefix-03 ⊦ # x = (1 + # z) + n0 ∧ a ' + z ⊒ x → (firstn(n0, x) ⊑ x ↔ true) A User Theorem
rmdup-del1-del ⊦ rmdup(x) -1l a = rmdup(x -l a) A User Theorem
map-get ⊦ n < # x → (x map f)[n] = f(x[n]) A User Theorem
elim-lastn-butlastn ⊦ n ≤ # x → (y = butlastn(n, x) ∧ z = lastn(n, x) ↔ x = y + z ∧ # z = n) A User Theorem
firstN-zero ⊦ firstn(0, x) = [] An Axiom
del-rev ⊦ rev(x) -l a = rev(x -l a) A User Theorem
lastN-all ⊦ n = # x → lastn(n, x) = x A User Theorem
sw-02 ⊦ (x -1l a) -1l b = (x -1l b) -1l a A User Theorem
lastn-neq-04 ⊦ n ≤ # x ∧ b ∈ y ∧ ¬ b ∈ x → lastn(n, x) ≠ a ' + y A User Theorem
del1-e ⊦ [] -1l a = [] An Axiom
del1-n ⊦ a ≠ b → (b ' + x) -1l a = b ' + (x -1l a) An Axiom
firstN-in-03 ⊦ ¬ a ∈ x ∧ n < # x → ¬ a ∈ firstn(# x - n, x) A User Theorem
restN-len ⊦ restn(# x, x + y) = y A User Theorem
rest-one-01 ⊦ restn(1, a ') = [] A User Theorem
rest-lenn ≤ # x ⊦ # restn(n, x) = # x - n A User Theorem
rest-app ⊦ # x ≤ m → restn(m, x + y) = restn(m - # x, y) A User Theorem
get-last-04 ⊦ (a ' + x + y)[# x] = (a ' + x).last A User Theorem
weak-restN-rec ⊦ restn(n + 1, a ' + x) = restn(n, x) A User Theorem
firstn-restn ⊦ firstn(m, restn(n, x)) = sublist(n, m, x) A User Theorem
in-del ⊦ a ∈ x → (a ∈ x -l b ↔ a ≠ b) A User Theorem
rmpos-in ⊦ ¬ dups(x) ∧ n < # x → (a ∈ x -p n ↔ a ≠ x[n] ∧ a ∈ x) A User Theorem
blastN-firstN ⊦ n ≤ # x → butlastn(n, x) = firstn(# x - n, x) A User Theorem
firstn-one-01 ⊦ x ≠ [] → firstn(1, x) = x.head ' A User Theorem
sublist-mklist-02 ⊦ m ≤ m0 → sublist(0, m, mklist(a, m0)) = mklist(a, m) A User Theorem
restn-last ⊦ n < # x → restn(n, x).last = x.last A User Theorem
delete-one-nls ⊦ ¬ # x < #(x -1l a) A User Theorem
del-rev-01 ⊦ rev(x -l a) = rev(x) -l a A User Theorem
del-del ⊦ (x -l a) -l a = x -l a A User Theorem
firstn-two ⊦ firstn(2, a ' + b ') = a ' + b ' A User Theorem
sublist-lenrec-01 ⊦ n < # x → sublist(0, n + 1, x) = sublist(0, n, x) + x[n] A User Theorem
firstn-length-03 ⊦ n < # x → # firstn(n, x) = n A User Theorem
restn-nonempty-2 ⊦ n < # x → restn(n, x) ≠ [] A User Theorem
delete-dups ⊦ ¬ dups(x) → ¬ dups(x -l a) A User Theorem
restn-less ⊦ n < # x → restn(n, x) = x[n] + restn(n +1, x) A User Theorem
lastN-zero ⊦ lastn(0, x) = [] An Axiom
len ⊦ pos(a, x) ≤ # x A User Theorem
first-append ⊦ m ≤ # x → firstn(m, x + y) = firstn(m, x) A User Theorem
del1-del-switch ⊦ a ≠ b → (x -l a) -1l b = (x -1l b) -l a A User Theorem
sublist-firsteq ⊦ sublist(0, n, x) = a ' + y ↔ n = # y + 1 ∧ x.head = a ∧ sublist(0, n -1, x.tail) = y A User Theorem
put-one-01 ⊦ (a ' + b ')[1 := a0] = a ' + a0 ' A User Theorem
firstn-last-rec ⊦ n ≠ 0 ∧ n ≤ # x → firstn(n, x) = firstn(n -1, x) + x[n -1] A User Theorem
sub-rec ⊦ sublist(m + 1, n, x) = sublist(m, n, x.tail) A User Theorem
firstn-twice ⊦ n ≤ # x → firstn(n, firstn(n, x)) = firstn(n, x) A User Theorem
dups-def ⊦ dups(x) ↔ (∃ m, n. m < # x ∧ n < # x ∧ m ≠ n ∧ x[m] = x[n]) A User Theorem
first-mklist-02 ⊦ firstn(m, mklist(a, m) + mklist(a, n)) = mklist(a, m) A User Theorem
lastn-lastn-01 ⊦ m ≤ n → lastn(m, lastn(n, x)) = lastn(m, x) A User Theorem
lastn-restn ⊦ m + n ≤ # x → lastn(m, restn(n, x)) = lastn(m, x) A User Theorem
del-append ⊦ (x + y) -l a = (x -l a) + (y -l a) A User Theorem
sublist-rec ⊦ x ≠ [] ∧ n ≠ 0 → sublist(0, n, x) = x.head ' + sublist(0, n -1, x.tail) A User Theorem
sublist-empty ⊦ sublist(m, n, x) = [] ↔ n = 0 A User Theorem
firstn-restn-eq ⊦ n ≤ # x → firstn(n, x) + restn(n, x) = x A User Theorem
first-length ⊦ # firstn(n, x) = n A User Theorem
dups-01 ⊦ ¬ dups(y) → ¬ b ∈ y -1l b A User Theorem
firstn-app-02 ⊦ m ≤ # x + # y ∧ # x ≤ m → firstn(m, x + y) = x + firstn(m - # x, y) A User Theorem
del-y ⊦ (a ' + x) -l a = x -l a An Axiom
lastn-length ⊦ # lastn(n, x) = n A User Theorem
get-append-less ⊦ n < # x → (x + y)[n] = x[n] A User Theorem
firstn-last-01 ⊦ x = firstn(# x - 1 + # z, x) + a ' + z → firstn(# x - # z, x).last = a A User Theorem
firstn-prefix-02 ⊦ # x = n0 + # z ∧ z ⊒ x → (firstn(n0, x) ⊑ x ↔ true) A User Theorem
in-04 ⊦ a ∈ x ∧ a ≠ b → a ∈ x -1l b A User Theorem
del1-empty ⊦ x ≠ [] → (x -1l a = [] ↔ x = a ') A User Theorem
rest-mklist ⊦ m ≤ n → restn(m, mklist(a, n)) = mklist(a, n - m) A User Theorem
lastN-rec-02 ⊦ n < # x → lastn(n, x) = lastn(n, x.tail) A User Theorem
l-02 ⊦ # x + # y = #(y -1l a) ↔ x = [] ∧ ¬ a ∈ y A User Theorem
delnr-one ⊦ a ' -p 0 = [] A User Theorem
restn-size-last ⊦ restn(# x, a ' + x) = (a ' + x).last ' A User Theorem
sublist-one ⊦ m < # x → sublist(m, 1, x) = x[m] ' A User Theorem
del-rmdup-length-nle ⊦ ¬ # rmdup(a ' + x) ≤ # rmdup(x -l a) A User Theorem
in-02-01 ⊦ ¬ a ∈ x → x -1l a = x A User Theorem
get-last-03 ⊦ (x + a ')[# x] = a A User Theorem
sublist-length ⊦ m + n ≤ # x → # sublist(m, n, x) = n A User Theorem
del-rmdup ⊦ rmdup(x -l a) = rmdup(x) -l a A User Theorem
at-last ⊦ x ≠ [] → x[# x - 1] = x.last A User Theorem
firstN-dups ⊦ n < # x ∧ ¬ dups(x + y) → ¬ dups(firstn(n, x) + y) A User Theorem
get-last2 ⊦ (a ' + x)[# x] = (a ' + x).last A User Theorem
lastn-one ⊦ lastn(1, x) = x.last ' A User Theorem
in ⊦ a ∈ x ∧ a ≠ b → a ∈ x -l b A User Theorem
get-zero ⊦ (a ' + x)[0] = a A User Theorem
rest-in ⊦ a ∈ restn(n, x) ∧ n ≤ # x → a ∈ x A User Theorem
put-del1-in ⊦ x[m] ≠ a ∧ m < # x → (a ∈ x[m := a] -1l a ↔ a ∈ x) A User Theorem
firstN-dups-02 ⊦ n ≤ # x ∧ ¬ dups(x + y) → ¬ dups(firstn(n, x) + y) A User Theorem
firstn-length-02 ⊦ x = firstn(# x - 1 + # z, x) + a ' + z → (# x - # z = 0 ↔ false) A User Theorem
one-01-01 ⊦ a ≠ b → a ' -1l b = a ' A User Theorem
del1-y ⊦ (a ' + x) -1l a = x An Axiom
firstN-in-05 ⊦ a ∈ firstn(n, x) ∧ n < # x → a ∈ x A User Theorem
elim-firstn-restn ⊦ n ≤ # x → (y = firstn(n, x) ∧ z = restn(n, x) ↔ x = y + z ∧ # y = n) A User Theorem
rest-two-01 ⊦ restn(2, a ' + b ') = [] A User Theorem
lastn-rec ⊦ n ≠ 0 → lastn(n, x) = lastn(n -1, x.butlast) + x.last A User Theorem
del-length ⊦ ¬ # x < #(x -l a) A User Theorem
sublist-num-01n ≠ 0 ⊦ sublist(0, (* n), a ' + x) = a ' + sublist(0, n -1, x) A User Theorem
sublist-append-04 ⊦ n + n0 + n1 ≤ # x → sublist(n, n0, x) + sublist(n + n0, n1, x) = sublist(n, n0 + n1, x) A User Theorem
firstn-at-in-dups ⊦ ¬ dups(x) ∧ n < # x → ¬ x[n] ∈ firstn(n, x) A User Theorem
sublist-length-02 ⊦ m + n = n0 ∧ n0 + n1 = # x → # sublist(m, n, x) = n A User Theorem
firstn-butlast-intro ⊦ n < # x → firstn(n, x) = firstn(n, x.butlast) A User Theorem
sublist-mklist-01 ⊦ n + m ≤ m0 → sublist(n, m, mklist(a, m0) + x) = mklist(a, m) A User Theorem
list-select-not-first ⊦ x = a ' + x0 → x[m + 1] = x0[m] A User Theorem
restN-append ⊦ n ≤ # x → restn(n, x + y) = restn(n, x) + y A User Theorem
in-01 ⊦ a ∈ x -l b → a ∈ x ∧ a ≠ b A User Theorem
put-zero ⊦ (b ' + x)[0 := a] = a + x A User Theorem
firstn-allprefix ⊦ # x0 = n ∧ x0 ⊑ x2 → firstn(n, x2) = x0 A User Theorem
sublist-append-01-01 ⊦ # x ≤ n ∧ n + m ≤ # x + # y → sublist(n, m, x + y) = sublist(n - # x, m, y) A User Theorem
firstN-dups-05 ⊦ n < # x ∧ ¬ dups(x) → ¬ dups(firstn(n, x)) A User Theorem
app ⊦ a ∈ x → (x + y) -1l a = (x -1l a) + y A User Theorem
sublist-recstart ⊦ l + n + 1 ≤ # x → sublist(l, n + 1, x) = x[l] ' + sublist(l + 1, n, x) A User Theorem
lastN-rest ⊦ n < # x → lastn(n, x.tail) = lastn(n, x) A User Theorem
rest-two ⊦ restn(2, a ' + b ' + x) = x A User Theorem
in-del-new ⊦ a ∈ x -l b ↔ a ∈ x ∧ a ≠ b A User Theorem
restn-prefix ⊦ # x = n → restn(n, x + x0) = x0 A User Theorem
get-numrecn ≠ 0 ⊦ (a ' + x)[(* n)] = x[n -1] A User Theorem
from-notin ⊦ ¬ a ∈ x → frome(x, a) = [] A User Theorem
sublist-restn ⊦ m + n + m0 < # x → sublist(m, n, restn(m0, x)) = sublist(m + m0, n, x) A User Theorem
firstN-len ⊦ firstn(# x, x + y) = x A User Theorem
first-numn ≠ 0 ⊦ firstn((* n), x) = x.head ' + firstn(n -1, x.tail) A User Theorem
firstn-last ⊦ m ≠ 0 ∧ m ≤ # x → firstn(m, x).last = x[m -1] A User Theorem
lastn-mklist-02 ⊦ lastn(n + 1, x + b ' + mklist(a, n)) = b ' + mklist(a, n) A User Theorem
get-mklist ⊦ (a ' + mklist(a, m))[m] = a A User Theorem
append-mod ⊦ # x ≤ n ∧ n < # x + # x0 → ((x + x0)[n := a] = x + x1 ↔ x0[n - # x := a] = x1) A User Theorem
sublist-part ⊦ # x = n0 + m0 → firstn(m0, x) + firstn(n0, restn(m0, x)) = x A User Theorem
in-get ⊦ a ∈ x ↔ (∃ n. n < # x ∧ x[n] = a) A User Theorem
rest-mklist-01 ⊦ m + m0 ≤ n → restn(m, mklist(a, n)) = mklist(a, n - m) A User Theorem
lastN-dups ⊦ ¬ dups(x) ∧ n < # x → ¬ dups(lastn(n, x)) A User Theorem
sw-01 ⊦ (x -l a) -l b = (x -l b) -l a ↔ true A User Theorem
sub-zero ⊦ sublist(0, # x, x) = x A User Theorem
rest-empty ⊦ # x = n → restn(n, x) = [] A User Theorem
sublist-restn-02 ⊦ n + m = # x → sublist(n, m, x) = restn(n, x) A User Theorem
restn-firstn ⊦ m ≤ n ∧ m + n ≤ # x → restn(m, firstn(n, x)) = firstn(n - m, restn(m, x)) A User Theorem
rest-mklist-04 ⊦ restn(m, mklist(a, m)) = [] A User Theorem
firstn-app-01 ⊦ # x ≤ n → firstn(n, x + y) = x + firstn(n - # x, y) A User Theorem
lastN-rec-01 ⊦ lastn(n + 1, x + a ') = lastn(n, x) + a ' A User Theorem
first-all ⊦ firstn(# x, x) = x A User Theorem
sublist-num ⊦ sublist((* m), (* n), x) = firstn(n, restn(m, x)) A User Theorem
sublist-append ⊦ n + m ≤ # x → sublist(n, m, x + y) = sublist(n, m, x) A User Theorem
firstn-prefix ⊦ n ≤ # x → (firstn(n, x) ⊑ x ↔ true) A User Theorem
sub-len-01 ⊦ n ≤ # x → # sublist(0, n, x + y) = n A User Theorem
first-sub ⊦ firstn(n, x) = sublist(0, n, x) A User Theorem
sublist-append-01 ⊦ # x ≤ n → sublist(n, m, x + y) = sublist(n - # x, m, y) A User Theorem
firstN-in-02 ⊦ ¬ a ∈ x ∧ n ≤ # x → ¬ a ∈ firstn(# x - n, x) A User Theorem
sublist-length-01 ⊦ # x0 = n2 + n0 → # sublist(0, n0, x0) = n0 A User Theorem
pos-get ⊦ ¬ dups(x) ∧ n < # x → pos(x[n], x) = n A User Theorem
sub-len ⊦ n ≤ # x → # sublist(0, n, x) = n A User Theorem
del1-in ⊦ a ≠ b → (a ∈ x -1l b ↔ a ∈ x) A User Theorem
del-rmdup-01 ⊦ rmdup(x) -l a = rmdup(x -l a) A User Theorem
sublist-all ⊦ # x = n → sublist(0, n, x) = x A User Theorem
firstn-firstn ⊦ m ≤ n ∧ n ≤ # x → firstn(m, firstn(n, x)) = firstn(m, x) A User Theorem
get-butlast ⊦ n < # x → (x + a ')[n] = x[n] A User Theorem
sublist-first-skip ⊦ n2 ≤ # x ∧ n + n1 ≤ n2 → sublist(n, n1, firstn(n2, x)) = sublist(n, n1, x) A User Theorem
sublist-at ⊦ n0 < n ∧ m + n ≤ # x → sublist(m, n, x)[n0] = x[m + n0] A User Theorem
first-append-01 ⊦ n + m ≤ # x → firstn(m, restn(n, x) + y) = firstn(m, restn(n, x)) A User Theorem
del-n-simpa ≠ b ⊦ ((* a) ' + x) -l (* b) = a ' + (x -l b) A User Theorem
one-01 ⊦ a ' -1l a = [] A User Theorem
sub-zerozero ⊦ sublist(0, 0, x) = [] A User Theorem
l ⊦ a ∈ x → #(x -1l a) = (# x)-1 A User Theorem
firstn-last-eq ⊦ n ≤ # x → firstn(n, x) + lastn(# x - n, x) = x A User Theorem
possize-notin ⊦ pos(a, x) = # x ↔ ¬ a ∈ x A User Theorem
restn-empty ⊦ n ≤ # x → (restn(n, x) = [] ↔ n = # x) A User Theorem
sublist-last-01m + n ≤ # x ⊦ n ≠ 0 → sublist(m, n, x).last = x[m + n - 1] A User Theorem
put-in-02 ⊦ m < # x → a ∈ x[m := a] A User Theorem
pos-n ⊦ a ≠ b → pos(a, b ' + x) = pos(a, x) + 1 An Axiom
rmpos-get ⊦ n + 1 < # x ∧ m < # x → (x -p m)[n] = (n < m ⊃ x[n];x[n + 1]) A User Theorem
firstN-dups-04 ⊦ n ≤ # x ∧ ¬ dups(x) → ¬ dups(firstn(n, x)) A User Theorem
first-mklist ⊦ m ≤ n → firstn(m, mklist(a, n)) = mklist(a, m) A User Theorem
delpos-in ⊦ a ∈ x -p n → (a ∈ x ↔ true) A User Theorem
firstN-empty ⊦ firstn(n, x) = [] ↔ n = 0 A User Theorem
first-mklist-01 ⊦ m + m0 ≤ n → firstn(m, mklist(a, n)) = mklist(a, m) A User Theorem
pos-e ⊦ pos(a, []) = 0 An Axiom
firstn-first ⊦ n ≠ 0 ∧ x ≠ [] → firstn(n, x).head = x.head A User Theorem
app-05-neg ⊦ ¬ a ∈ x → pos(a, x + y) = pos(a, y) + # x A User Theorem
delpos-atsizeid ⊦ x -p # x = x A User Theorem
put-butlast ⊦ n < # x → (x + a ')[n := b] = x[n := b] + a ' A User Theorem
restn-firstn-better ⊦ m ≤ n ∧ n ≤ # x → restn(m, firstn(n, x)) = firstn(n - m, restn(m, x)) A User Theorem
firstn-one ⊦ firstn(1, a ' + x) = a ' A User Theorem
lastn-restn-01n ≤ # x ⊦ lastn(n, x) = restn(# x - n, x) A User Theorem
pos-one ⊦ pos(a, a ') = 0 A User Theorem
sub-zerorec ⊦ x ≠ [] → sublist(0, n + 1, x) = x.head + sublist(0, n, x.tail) A User Theorem
lastn-mklist-01 ⊦ lastn(n, x + mklist(a, n)) = mklist(a, n) A User Theorem
rmpos-size ⊦ n < # x → #(x -p n) = # x - 1 A User Theorem
rmtoobigpos ⊦ # x ≤ n → x -p n = x A User Theorem
lastn-app ⊦ # y ≤ n → lastn(n, x + y) = lastn(n - # y, x) + y A User Theorem
in-03 ⊦ ¬ a ∈ x → x -l a = x A User Theorem
lastn-one-01 ⊦ lastn(1, a ') = a ' A User Theorem
get-firstn ⊦ n < m ∧ m ≤ # x → firstn(m, x)[n] = x[n] A User Theorem
firstn-append-01 ⊦ x = firstn(# x - 1 + # z, x) + a ' + z → (x = firstn(# x - # z, x) + z ↔ true) A User Theorem
firstN-lastN-in ⊦ n ≤ # x ∧ a ∈ x ∧ ¬ a ∈ lastn(n, x) → (a ∈ firstn(# x - n, x) ↔ true) A User Theorem
restn-app ⊦ restn(# x + n, x + y) = restn(n, y) A User Theorem
get-last ⊦ n = # x → (x + a ')[n] = a A User Theorem
l-01 ⊦ # x = #(x -1l a) ↔ ¬ a ∈ x A User Theorem
lastN-dups-01 ⊦ ¬ dups(x) ∧ n ≤ # x → ¬ dups(lastn(n, x)) A User Theorem
first-mklist-04 ⊦ firstn(m, mklist(a, m)) = mklist(a, m) A User Theorem
rest-rec ⊦ 0 < n → restn(n, x) = restn(n -1, x.tail) A User Theorem
firstN-lastN-in-01 ⊦ n < # x ∧ a ∈ x ∧ ¬ a ∈ lastn(n, x) → (a ∈ firstn(# x - n, x) ↔ true) A User Theorem
rest-mklist-03 ⊦ restn(m, mklist(a, n) + mklist(a, m)) = mklist(a, n) A User Theorem
put-app-left ⊦ n < # x → (x + y)[n := a] = x[n := a] + y A User Theorem
del-del1-nodups ⊦ ¬ dups(x) → x -l a = x -1l a A User Theorem
get-add-numn ≠ 0 ⊦ (a ' + x)[m + (* n)] = x[m + (n - 1)] A User Theorem
firstn-prefix-01 ⊦ x = firstn(n, x) + z → (firstn(n, x) ⊑ x ↔ true) A User Theorem
sublist-one-01 ⊦ sublist(0, 1, a ') = a ' A User Theorem
firstN-dups-01 ⊦ n < # y ∧ ¬ dups(x + y) → ¬ dups(x + firstn(n, y)) A User Theorem
restn-first-get ⊦ n < # x → restn(n, x).head = x[n] A User Theorem
firstn-prefix-04 ⊦ # x = (1 + # z) + n0 → (firstn(1 + n0, x) ⊑ x ↔ true) A User Theorem
app-05 ⊦ a ∈ x → pos(a, x + y) = pos(a, x) A User Theorem
rest-in-01 ⊦ a ∈ restn(n, x) ∧ ¬ a ∈ x → ¬ n ≤ # x A User Theorem
inl ⊦ a ∈ x → pos(a, x) < # x A User Theorem
sublist-append-03 ⊦ sublist(0, # x, x + y) = x A User Theorem
firstN-in-04 ⊦ a ∈ firstn(n, x) ∧ n ≤ # x → a ∈ x A User Theorem
delpos-empty ⊦ [] -p n = [] An Axiom
sublist-lenrec ⊦ m + n < # x → sublist(m, n + 1, x) = sublist(m, n, x) + x[m + n] A User Theorem
fromE-empty ⊦ frome([], a) = [] An Axiom
firstn-length-01 ⊦ x = firstn(n, x) + a ' + z → (# x > # z ↔ true) A User Theorem
lastN-empty ⊦ lastn(n, x) = [] ↔ n = 0 A User Theorem