[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-last

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:
mk-len ⊦ # mklist(a, n) = n A User Theorem
prefix-rec-01 ⊦ a ' + x ⊑ y ↔ y ≠ [] ∧ a = y.head ∧ x ⊑ y.tail A User Theorem
lapp-01 ⊦ (x + a ' + y).last = (a ' + y).last A User Theorem
prefix-equality ⊦ x = y ↔ x ⊑ y ∧ y ⊑ x A User Theorem
lin ⊦ true → ¬ x.last ∈ x.tail → x = [] ∨ x.tail = [] A User Theorem
prefix-eq ⊦ x ⊑ y → (y ⊑ x ↔ x = y) A User Theorem
splitlasteqy ≠ [] ⊦ x + a ' = y ↔ x = y.butlast ∧ a = y.last A User Theorem
prefix-more ⊦ ¬ x + a ' + y ⊑ x A User Theorem
postfix-app-03 ⊦ x + y ⊑ x + z ↔ y ⊑ z A User Theorem
mk-zero ⊦ mklist(a, 0) = [] An Axiom
mk-two-01 ⊦ mklist(a, 2) = a ' + a ' A User Theorem
consmklist-last ⊦ (a ' + mklist(a, n)).last = a A User Theorem
mk-head ⊦ n ≠ 0 → (mklist(a, n) + x).head = a A User Theorem
mk-inj ⊦ m ≠ 0 → (mklist(a, m) = mklist(b, n) ↔ a = b ∧ m = n) A User Theorem
rev-rewrite ⊦ rev(x) = y ↔ x = rev(y) A User Theorem
prefix-app-04 ⊦ x + y ⊑ z → x ⊑ z A User Theorem
postfix-app-06 ⊦ x + a ' ⊒ y + b ' ↔ a = b ∧ x ⊒ y A User Theorem
mklist-rmdup ⊦ ¬ a ∈ x ∧ n ≠ 0 → rmdup(x + mklist(a, n)) = rmdup(x) + a ' A User Theorem
postfix-reflexivity ⊦ x ⊒ x A User Theorem
butlast-eq ⊦ x ≠ [] → (x.butlast + a ' = x ↔ a = x.last) A User Theorem
postfix-one ⊦ x ⊒ a ' ↔ x = [] ∨ x = a ' A User Theorem
butlast-def ⊦ (x + a ').butlast = x A User Theorem
postfix-rec ⊦ x ≠ [] ∧ y ≠ [] → (x ⊒ y ↔ x.last = y.last ∧ x.butlast ⊒ y.butlast) A User Theorem
prefix-trans ⊦ x ⊑ y ∧ y ⊑ z → x ⊑ z A User Theorem
revert-last ⊦ a ' + rev(x) = rev(x + a ') A User Theorem
fillfirst-longer ⊦ n ≤ # x → fillfirst(n, a, x) = x An Axiom
lapp-04 ⊦ a ' + x = y + b ' ∧ a ≠ b → x.last = b A User Theorem
postfix-is-lessOrEqual ⊦ x ⊒ y ↔ x = y ∨ x < y A User Theorem
butlast-lastx ≠ [] ⊦ x.butlast + x.last ' = x A User Theorem
splitlasteq-01y ≠ [] ⊦ y = x + a ' ↔ x = y.butlast ∧ a = y.last A User Theorem
rev-disjoint ⊦ disj(x, rev(y)) ↔ disj(x, y) A User Theorem
prefix-in-02 ⊦ a ∈ x ∧ x ⊑ y → a ∈ y A User Theorem
blastN-all ⊦ butlastn(# x, x) = [] A User Theorem
mk-plus ⊦ mklist(a, m + n) = mklist(a, m) + mklist(a, n) A User Theorem
rev-in ⊦ a ∈ rev(x) ↔ a ∈ x A User Theorem
prefix-split-strongerx ⊑ y + z, ¬ x ⊑ y ⊦ ∃ x0. x = y + x0 ∧ x0 ⊑ z A User Theorem
last-elimx ≠ [] ⊦ a = x.last ∧ y = x.butlast ↔ x = y + a ' A User Theorem
l-03 ⊦ x ≠ [] ∧ x.tail ≠ [] → x.tail.last = x.last A User Theorem
mk-butlast ⊦ m ≠ 0 → (x + mklist(a, m)).butlast = x + mklist(a, m - 1) A User Theorem
prefix-longer ⊦ ¬ x + a ' ⊑ x A User Theorem
lthree ⊦ y ≠ [] → (x + y + z).last = (y + z).last A User Theorem
rev-one ⊦ rev(a ') = a ' A User Theorem
postfix-trans ⊦ x ⊒ x0 ∧ x0 ⊒ y → x ⊒ y A User Theorem
rev-disjoint-01 ⊦ disj(rev(x), y) ↔ disj(x, y) A User Theorem
lin-02 ⊦ x.last = a ∧ x ≠ [] → a ∈ x A User Theorem
prefix-app-01 ⊦ x + y ⊑ x ↔ y = [] A User Theorem
prefix-butlast-append ⊦ x ≠ [] → (x ⊑ x.butlast + a ' ↔ a = x.last) A User Theorem
bnotempty ⊦ 1 < # x → x.butlast ≠ [] A User Theorem
blastN-len ⊦ n ≤ # x → # butlastn(n, x) = # x - n A User Theorem
postfix-rec-right ⊦ x ⊒ a ' + y ↔ x = a ' + y ∨ x ⊒ y A User Theorem
l-06 ⊦ x = x.head ' → x.last = x.head A User Theorem
mk-inj-01 ⊦ mklist(a, m) = mklist(a, n) ↔ m = n A User Theorem
postfix-in-02 ⊦ a ∈ x ∧ x ⊒ y → (a ∈ y ↔ true) A User Theorem
last-sizeone ⊦ # x = 1 → (y + x).last = x.head A User Theorem
prefix-same-01 ⊦ x = y + a ' + z → y + a ' ⊑ x A User Theorem
rev-r ⊦ rev(a ' + x) = rev(x) + a An Axiom
last-def ⊦ (x + a ').last = a A User Theorem
last ⊦ x ≠ [] → x.butlast + x.last = x A User Theorem
prefix-empty ⊦ x ⊑ [] ↔ x = [] A User Theorem
bin-02 ⊦ ¬ a ∈ x.butlast ∧ a ∈ x → a = x.last A User Theorem
prefix-self ⊦ x ⊑ x A User Theorem
blastN-mklist ⊦ butlastn(n, x + mklist(a, n)) = x A User Theorem
mk-two ⊦ mklist(a, n + 2) = a ' + a ' + mklist(a, n) A User Theorem
prefix-rec-03 ⊦ a ' + x ⊑ b ' + y ↔ a = b ∧ x ⊑ y A User Theorem
prefix-longer-01 ⊦ # y < # x → ¬ x ⊑ y A User Theorem
prefix-size-eq ⊦ # x0 = # x1 → (x0 ⊑ x1 ↔ x0 = x1) A User Theorem
postfix-tail-01 ⊦ x ≠ [] ∧ x ⊒ y → x.tail ⊒ y A User Theorem
prefix ⊦ x ⊑ y ↔ (∃ z. x + z = y) An Axiom
butlast-one ⊦ a '.butlast = [] An Axiom
postfix ⊦ x ⊒ y ↔ (∃ z. z + x = y) An Axiom
butlast-rec ⊦ (a ' + b ' + x).butlast = a ' + (b ' + x).butlast An Axiom
mk-last ⊦ mklist(a, n) + a ' = a ' + mklist(a, n) A User Theorem
lin-01 ⊦ x.last ∈ x ↔ x ≠ [] A User Theorem
postfix-empty-02 ⊦ ¬ x + a ' ⊒ [] A User Theorem
postfix-empty ⊦ [] ⊒ x A User Theorem
fillfirst-fill ⊦ # x < n → fillfirst(n, a, x) = mklist(a, n - # x) + x An Axiom
postfix-one-less ⊦ a ' + x ⊒ y → (x ⊒ y ↔ true) A User Theorem
mk-last-02 ⊦ n ≠ 0 → mklist(a, n) = mklist(a, n -1) + a ' A User Theorem
mklist-rmdup-01 ⊦ n ≠ 0 → rmdup(mklist(a, n)) = a ' A User Theorem
lb-01 ⊦ # x.butlast < # x ↔ x ≠ [] A User Theorem
mklist-split-intro ⊦ n ≤ m → mklist(a, m) = mklist(a, m - n) + mklist(a, n) A User Theorem
postfix-app ⊦ x + y ⊒ z → y ⊒ z A User Theorem
bin ⊦ (x + a ' + y).butlast = x + (a ' + y).butlast A User Theorem
postfix-app-02 ⊦ y + x ⊒ z + x ↔ y ⊒ z A User Theorem
rev-dups ⊦ dups(rev(x)) ↔ dups(x) A User Theorem
blastn-app-1 ⊦ butlastn(1, x + a ') = x A User Theorem
rev-mklist ⊦ rev(mklist(a, n)) = mklist(a, n) A User Theorem
prefix-empty-03 ⊦ ¬ x + a ' + y ⊑ [] A User Theorem
blastN-rec-01 ⊦ n ≤ # x → butlastn(n, a ' + x) = a ' + butlastn(n, x) A User Theorem
rev-app ⊦ rev(x + y) = rev(y) + rev(x) A User Theorem
prefix-app-03 ⊦ x + y + z ⊑ y ↔ x = [] ∧ z = [] A User Theorem
mk-butlast-01 ⊦ m ≠ 0 → mklist(a, m).butlast = mklist(a, m - 1) A User Theorem
le-leq-one-empty-or-head-equal-last ⊦ # x ≤ 1 → x = [] ∨ x.head = x.last A User Theorem
prefix-nil ⊦ [] ⊑ x A User Theorem
postfix-app-05 ⊦ b ' + x ⊒ (y + b ') + x A User Theorem
revert-equal ⊦ rev(x) = rev(y) ↔ x = y A User Theorem
lapp-03 ⊦ (a ' + x + b ' + y).last = (b ' + y).last A User Theorem
prefix-in-01 ⊦ ¬ a ∈ y → ¬ x + a ' + x0 ⊑ y A User Theorem
last-rec ⊦ (b ' + a ' + x).last = (a ' + x).last An Axiom
prefix-intro ⊦ ¬ x ⊑ y ∧ # x ≤ # y → x + x0 ≠ y + y0 A User Theorem
prefix-in ⊦ x + a ' ⊑ y → (a ∈ y ↔ true) A User Theorem
rev-empty ⊦ rev(x) = [] ↔ x = [] A User Theorem
b-02 ⊦ (a ' + x).butlast = [] ↔ x = [] A User Theorem
mklist-last ⊦ mklist(a, n) + a ' = mklist(a, n + 1) A User Theorem
postfix-more ⊦ ¬ x + a ' + y ⊒ x A User Theorem
rev-e ⊦ rev([]) = [] An Axiom
l-02 ⊦ x ≠ [] → (a ' + x).last = x.last A User Theorem
prefix-attach ⊦ ¬ x ⊑ y → (x ⊑ y + a ' ↔ y + a ' = x) A User Theorem
lb ⊦ x ≠ [] → # x.butlast = # x - 1 A User Theorem
prefix-ex ⊦ ¬ x ⊑ y → (x ⊑ y + z ↔ (∃ x0. x = y + x0 ∧ x0 ⊑ z)) A User Theorem
postfix-in-01 ⊦ a ∈ x ∧ ¬ a ∈ y → ¬ x ⊒ y A User Theorem
prefix-one ⊦ a ' ⊑ b ' + x ↔ a = b A User Theorem
prefix-splitx ⊑ y + z, ¬ x ⊑ y ⊦ ∃ x0. y + x0 = x A User Theorem
prefix-rec ⊦ x ≠ [] → (x ⊑ a ' + y ↔ x.head = a ∧ x.tail ⊑ y) A User Theorem
prefix-app-size-eq ⊦ # x0 = # x1 → (x0 ⊑ x1 + x2 ↔ x0 = x1) A User Theorem
blastN-all-01n = # x ⊦ butlastn(n, x) = [] A User Theorem
prefix-rec-02 ⊦ b ' + x ⊑ b ' + y ↔ x ⊑ y A User Theorem
blapp ⊦ x ≠ [] → (x.butlast = y ↔ x = y + x.last ') A User Theorem
prefix-same ⊦ x + a ' ⊑ x + a ' + y A User Theorem
mk-succ ⊦ mklist(a, n + 1) = a ' + mklist(a, n) An Axiom
butlast-len ⊦ # (a ' + x).butlast = # x A User Theorem
postfix-splitx ⊒ y + z, ¬ x ⊒ z ⊦ ∃ x0. x0 + z = x A User Theorem
l-in ⊦ a ∈ x → (b ' + x).last = x.last A User Theorem
mk-elem ⊦ a ∈ mklist(b, n) → a = b A User Theorem
butlast-last-01 ⊦ x.last = a ∧ x ≠ [] → x.butlast + a ' = x A User Theorem
mklist-append ⊦ mklist(a, m) + mklist(a, n) = mklist(a, m + n) A User Theorem
postfix-tail ⊦ x ≠ [] → x.tail ⊒ x A User Theorem
mk-last-01-01 ⊦ m ≠ 0 → (x + mklist(a, m)).last = a A User Theorem
bin-01x ≠ [] ⊦ a ∈ x.butlast → a ∈ x A User Theorem
lapp-02 ⊦ y ≠ [] → (a ' + x + y).last = y.last A User Theorem
postfix-app-04 ⊦ x = (y + a ') + z → a ' + z ⊒ x A User Theorem
mk-tail ⊦ n ≠ 0 → mklist(a, n).tail = mklist(a, n -1) A User Theorem
postfix-in ⊦ a ∈ x ∧ x ⊒ y → a ∈ y A User Theorem
last-one ⊦ a '.last = a An Axiom
lapp-05 ⊦ a ' + b ' + x = y + a ' → (b ' + x).last = a A User Theorem
mk-rec ⊦ m ≠ 0 → mklist(a, m) = a + mklist(a, m - 1) A User Theorem
mk-tail-01 ⊦ m ≠ 0 → (mklist(a, m) + x).tail = mklist(a, m -1) + x A User Theorem
mklist-one ⊦ mklist(a, 1) = a ' A User Theorem
lapp ⊦ y ≠ [] → (x + y).last = y.last A User Theorem
prefix-butlast ⊦ x0 ≠ [] ∧ x0 ⊑ x1 → x0.butlast ⊑ x1 A User Theorem
mk-last-01 ⊦ m ≠ 0 → mklist(a, m).last = a A User Theorem
postfix-empty-01 ⊦ ¬ a ' + x ⊒ [] A User Theorem
prefix-one-01 ⊦ x ⊑ a ' ↔ x = [] ∨ x = a ' A User Theorem
mk-one ⊦ m ≠ 0 → (mklist(a, m) + x = a ' ↔ m = 1 ∧ x = []) A User Theorem
nodups-butlastn ⊦ ¬ dups(x) ∧ n ≤ # x → (dups(butlastn(n, x)) ↔ false) A User Theorem
prefix-in-03 ⊦ a ' + x ⊑ y → (a ∈ y ↔ true) A User Theorem
l-04 ⊦ x ≠ [] → x.tail.last ≠ x.last → x = x.head ' A User Theorem
last-01 ⊦ (a ' + x + b ').last = b A User Theorem
last-exa ≠ x.last, a ∈ x ⊦ ∃ y, z. x = y + a ' + z ∧ z ≠ [] A User Theorem
rev-rev-identity ⊦ rev(rev(x)) = x A User Theorem
postfix-app-01 ⊦ x ⊒ y + x A User Theorem
blast-head ⊦ a ∈ x.butlast ∧ x ≠ [] → x.butlast.head = x.head A User Theorem
mk-one-01 ⊦ mklist(a, n) = a ' ↔ n = 1 A User Theorem
postfix-in-03 ⊦ a ' + x ⊒ y → (a ∈ y ↔ true) A User Theorem
prefix-app-02 ⊦ x + y ⊑ y ↔ x = [] A User Theorem
mk-empty ⊦ mklist(a, m) = [] ↔ m = 0 A User Theorem
mk-head-01 ⊦ m ≠ 0 → mklist(a, m).head = a A User Theorem
blastN-rec ⊦ n ≠ 0 → butlastn(n, x + a ') = butlastn(n -1, x) A User Theorem
b-01 ⊦ x ≠ [] → (x.butlast = [] ↔ x = x.head ') A User Theorem
postfix-more-01 ⊦ ¬ a ' + x ⊒ x A User Theorem
bc ⊦ x ≠ [] → (a ' + x).butlast = a ' + x.butlast A User Theorem
bl ⊦ (a ' + x).butlast + (a ' + x).last ' + y = a ' + x + y A User Theorem
blastn-len-0 ⊦ # x = n0 + n1 → # butlastn(n0, x) = n1 A User Theorem
prefix-app ⊦ ¬ x ⊑ y + z → ¬ x ⊑ y A User Theorem
rev-length ⊦ # rev(x) = # x A User Theorem
postfix-length ⊦ x ⊒ y → # x ≤ # y A User Theorem
butlastN-base ⊦ butlastn(0, x) = x An Axiom
l-01 ⊦ x ≠ [] ∧ x.tail = [] → x.last = x.head A User Theorem
butlastN-rec ⊦ butlastn(n + 1, x) = butlastn(n, x.butlast) An Axiom
bapp ⊦ y ≠ [] → (x + y).butlast = x + y.butlast A User Theorem
prefix-app-05 ⊦ x ⊑ x + y A User Theorem
postfix-same ⊦ x + a ' ⊒ y + a ' ↔ x ⊒ y A User Theorem
postfix-empty-03 ⊦ x ⊒ [] ↔ x = [] A User Theorem
mk-in ⊦ a ∈ mklist(a, m) ↔ m ≠ 0 A User Theorem
postfix-split-strongerx ⊒ y + z, ¬ x ⊒ z ⊦ ∃ x0. x0 + z = x ∧ x0 ⊒ y A User Theorem
prefix-notin ⊦ a ∈ x ∧ ¬ a ∈ y → ¬ x ⊑ y A User Theorem
rev-tail ⊦ x ≠ [] → (rev(x) + y).tail = rev(x).tail + y A User Theorem