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

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:
ad ⊦ a ∈ y → perm(x + (y -1l a), (x + y) -1l a) A User Theorem
del1-01 ⊦ a ≠ b → #oc(a, x -1l b) = #oc(a, x) A User Theorem
oc-dups ⊦ n < #oc(a, x) ∧ ¬ dups(x) → #oc(a, x) = 1 A User Theorem
app-end-beg ⊦ perm(x0 + z, z + y1) ↔ perm(x0, y1) A User Theorem
perm-dups-02 ⊦ ¬ dups(x) ∧ dups(y) → ¬ perm(x, y + z) A User Theorem
sym-02 ⊦ ¬ perm(x, y) → ¬ perm(y, x) A User Theorem
perm-switch ⊦ m < # y ∧ n < # y ∧ a = y[n] ∧ b = y[m] → (perm(x, (y[m := a])[n := b]) ↔ perm(x, y)) A User Theorem
empty-01 ⊦ perm([], y) ↔ y = [] A User Theorem
trans ⊦ perm(x, y) ∧ perm(y, z) → perm(x, z) A User Theorem
del1 ⊦ a ∈ x → #oc(a, x -1l a) = #oc(a, x) -1 A User Theorem
notin ⊦ ¬ a ∈ x → #oc(a, x) = 0 A User Theorem
filter ⊦ perm(x, x0) ∧ perm(y, y0) → perm(filter(x, y), filter(x0, y0)) A User Theorem
perm-mklist ⊦ perm(x, mklist(a, n)) ↔ x = mklist(a, n) A User Theorem
perm-shift-in2 ⊦ perm(x, y + z + a ') → perm(x, y + a ' + z) A User Theorem
app-all-beg ⊦ perm(x, x + y) ↔ y = [] A User Theorem
oc ⊦ x ⊆m y → ¬ #oc(a, y) < #oc(a, x) A User Theorem
rec-01 ⊦ perm(x + a ' + x0, y) ↔ a ∈ y ∧ perm(x + x0, y -1l a) A User Theorem
oc-del-01 ⊦ a ∈ y → #oc(a, (x + y) -1l a) = #oc(a, x + y) -1 A User Theorem
perm-rev ⊦ perm(x, rev(x)) A User Theorem
app-in-end ⊦ perm(x0 + z + x1, y0 + z) ↔ perm(x0 + x1, y0) A User Theorem
one ⊦ #oc(a, a ') = 1 A User Theorem
perm-e ⊦ perm([], []) A User Theorem
perm-rmcommon-end-end ⊦ perm(x0 + z, y0 + z) ↔ perm(x0, y0) A User Theorem
oc-diff ⊦ a ∈ y → #oc(a, x \ y) = 0 A User Theorem
papp-03 ⊦ perm(x, x0) → (perm(x + y, x0 + y0) ↔ perm(y, y0)) A User Theorem
shift-03 ⊦ perm(x + a ' + x0, y) ↔ perm(a ' + x + x0, y) A User Theorem
ocs-dups-ex ⊦ dups(x) ↔ (∃ a. a ∈ x ∧ #oc(a, x) > 1) A User Theorem
perm-rmcommon-beg-end ⊦ perm(z + x1, y0 + z) ↔ perm(x1, y0) A User Theorem
ocs-del1 ⊦ 1 < #oc(a, x) → a ∈ x -1l a A User Theorem
sub-del ⊦ #oc(a, x) ≤ #oc(a, y) → (x ⊆m y ↔ x -l a ⊆m y -l a) A User Theorem
rec ⊦ a ≠ b → (perm(a ' + x, b ' + y) ↔ a ∈ y ∧ b ∈ x ∧ perm(x -1l b, y -1l a)) A User Theorem
diff ⊦ perm(x, x0) ∧ perm(y, y0) → perm(x \ y, x0 \ y0) A User Theorem
app-end-all ⊦ perm(x + y, y) ↔ x = [] A User Theorem
subapp-03 ⊦ x ⊆m x0 → x ⊆m y + x0 A User Theorem
perm-del ⊦ perm(x, y) → (perm(x -1l a, z) ↔ perm(y -1l a, z)) A User Theorem
perm-del-01 ⊦ perm(x -l a, z) ∧ perm(x, y) → (perm(y -l a, z) ↔ true) A User Theorem
perm-com2 ⊦ perm(x, y + z) → perm(x, z + y) A User Theorem
subempty ⊦ [] ⊆m x A User Theorem
in-05 ⊦ a ∈ x → #oc(a, x) ≠ 0 A User Theorem
ocs-del1-if ⊦ #oc(a, x -1l b) = (a ≠ b ∨ ¬ b ∈ x ⊃ #oc(a, x);#oc(a, x) -1) A User Theorem
sym ⊦ perm(x, y) ↔ perm(y, x) A User Theorem
oc-filt ⊦ a ∈ y → #oc(a, filter(x, y)) = #oc(a, x) A User Theorem
subdel-02 ⊦ x -1l a ⊆m y ↔ x -l a ⊆m y -l a ∧ #oc(a, x) ≤ #oc(a, y) + 1 A User Theorem
subdel ⊦ x ⊆m y -1l a → (x ⊆m y ↔ true) A User Theorem
cons ⊦ perm(a ' + x, a ' + y) ↔ perm(x, y) A User Theorem
app-attach ⊦ perm(x + a ', y + a ') ↔ perm(x, y) A User Theorem
app-beg-beg ⊦ perm(x + y, x + z) ↔ perm(y, z) A User Theorem
ref ⊦ perm(x, x) A User Theorem
perm-rmv-in-list ⊦ perm(x + a ' + y, x0 + a ' + y0) ↔ perm(x + y, x0 + y0) A User Theorem
in-02 ⊦ perm(a ' + x, b ' + y) ∧ a ≠ b → a ∈ y A User Theorem
perm-common-prefix ⊦ perm(x, y + z1) → (perm(x, y + z2) ↔ perm(z1, z2)) A User Theorem
ocs-del-del1 ⊦ #oc(a, x) = 1 → x -l a = x -1l a A User Theorem
app-beg-all ⊦ perm(x + y, x) ↔ y = [] A User Theorem
ocs-put-02 ⊦ x[m] = a ∧ a ≠ b ∧ m < # x → #oc(a, x[m := b]) = #oc(a, x) -1 A User Theorem
subperm-01 ⊦ x ⊆ y ∧ perm(y, y0) → x ⊆ y0 A User Theorem
ocone ⊦ a ∈ x → (#oc(a, x) ≤ 1 ↔ #oc(a, x) = 1) A User Theorem
perm-com1 ⊦ perm(x + y, z) → perm(y + x, z) A User Theorem
shift-02 ⊦ perm(x + x0, y) ↔ perm(x0 + x, y) A User Theorem
ocs-mklist ⊦ x = mklist(a, #oc(a, x)) ↔ x -l a = [] A User Theorem
ocnodups-01 ⊦ ¬ dups(x) → (1 ≤ #oc(a, x) ↔ a ∈ x) A User Theorem
sym-01 ⊦ perm(x, y) → perm(y, x) A User Theorem
perm-last-rec ⊦ perm(x, y + a ') ↔ a ∈ x ∧ perm(x -1l a, y) A User Theorem
perm-rev-02 ⊦ perm(rev(x), y) ↔ perm(x, y) A User Theorem
size-perm# x = # y, ¬ dups(x), ∀ a. a ∈ x → a ∈ y ⊦ perm(x, y) A User Theorem
perm-dups-01 ⊦ dups(x) ∧ ¬ dups(y) → ¬ perm(x, y) A User Theorem
empty ⊦ perm(x, []) ↔ x = [] A User Theorem
app-in-beg ⊦ perm(x0 + z + x1, z + y1) ↔ perm(x0 + x1, y1) A User Theorem
perm-one ⊦ perm(x, a ') ↔ x = a ' A User Theorem
perm-rmv-in ⊦ perm(x + (a + y), x0 + (a + y0)) ↔ perm(x + y, x0 + y0) A User Theorem
perm-rec ⊦ perm(y, z + a ' + x) ↔ a ∈ y ∧ perm(y -1l a, z + x) A User Theorem
perm-put ⊦ n < # y → (perm(x, y[n := a]) ↔ a ∈ x ∧ perm(x -1l a, y -1l y[n])) A User Theorem
app-beg-in ⊦ perm(z + x1, y0 + z + y1) ↔ perm(x1, y0 + y1) A User Theorem
perm-shift-out2 ⊦ perm(x, y + a ' + z) → perm(x, y + z + a ') A User Theorem
perm-rmcommon-beg-beg ⊦ perm(z + x1, z + y1) ↔ perm(x1, y1) A User Theorem
subapp-02 ⊦ x ⊆m x0 → x ⊆m x0 + y A User Theorem
a ⊦ perm(x, y) → perm(z + x, z + y) A User Theorem
adjoin ⊦ perm(x, y) → perm(x ++ a, y ++ a) A User Theorem
perm-same-prefix ⊦ perm(y, z) ↔ (∃ x, y0, z0. y = x + y0 ∧ z = x + z0 ∧ perm(y0, z0)) A User Theorem
nodups∀ a. a ∈ x ↔ a ∈ y, ¬ dups(x), ¬ dups(y) ⊦ perm(x, y) A User Theorem
in-04 ⊦ perm(x, y) ∧ a ∈ x → a ∈ y A User Theorem
subrec ⊦ a ' + x ⊆m y ↔ a ∈ y ∧ x ⊆m y -1l a A User Theorem
perm-all ⊦ perm(x, y) ↔ (∀ a. a ∈ x ∨ a ∈ y → #oc(a, x) = #oc(a, y)) A User Theorem
papp-02perm(x, x0), perm(x + y, y0 + x0) ⊦ perm(y, y0) A User Theorem
perm-put-del1 ⊦ n < # y → perm(y[n := a] -1l a, y -1l y[n]) A User Theorem
in ⊦ a ∈ y ∧ ¬ a ∈ x → ¬ perm(x, y) A User Theorem
del-02 ⊦ perm(x -1l a, y -1l a) ∧ a ∈ x ∧ a ∈ y → perm(x, y) A User Theorem
ocs-del-length ⊦ a ≠ b → #oc(a, x -l b) = #oc(a, x) A User Theorem
subdel-01 ⊦ x ⊆m y + (y0 -1l a) ∧ a ∈ y0 → x ⊆m (y + y0) -1l a A User Theorem
perm-rev-01 ⊦ perm(x, rev(y)) ↔ perm(x, y) A User Theorem
oc-filt-01 ⊦ ¬ a ∈ y → #oc(a, filter(x, y)) = 0 A User Theorem
in-01 ⊦ ¬ a ∈ x → ¬ perm(x, a ' + y) A User Theorem
oc-del ⊦ ¬ #oc(a, x) < #oc(a, x -1l b) A User Theorem
perm-r ⊦ y ≠ [] → ¬ perm([], y) A User Theorem
del-05 ⊦ perm(x, x -1l a) ↔ ¬ a ∈ x A User Theorem
ocappend ⊦ #oc(a, x + y) = #oc(a, x) + #oc(a, y) A User Theorem
subsize ⊦ x ⊆m y → # x ≤ # y A User Theorem
oc-adjoin ⊦ a ≠ b → #oc(a, x ++ b) = #oc(a, x) A User Theorem
ocs-del ⊦ #oc(a, x -l a) = 0 A User Theorem
perm-dups-03 ⊦ ¬ dups(x) ∧ dups(z) → ¬ perm(x, y + z) A User Theorem
app-in-in ⊦ perm(x0 + z + x1, y0 + z + y1) ↔ perm(x0 + x1, y0 + y1) A User Theorem
ocnodups ⊦ n ≤ #oc(a, x) ∧ ¬ dups(x) → n ≤ 1 A User Theorem
ocs-same-length-mklist ⊦ #oc(a, x) = # x ↔ x = mklist(a, # x) A User Theorem
subperm ⊦ x ⊆ y ∧ perm(x, x0) → x0 ⊆ y A User Theorem
oc-n ⊦ a ≠ b → #oc(a, b ' + x) = #oc(a, x) An Axiom
perm ⊦ perm(x, y) ↔ x ⊆m y ∧ y ⊆m x An Axiom
oc-e ⊦ #oc(a, []) = 0 An Axiom
shift-01 ⊦ perm(x + a ' + y, a ' + x + y) A User Theorem
del-in ⊦ a ∈ x ∧ a ∈ y → (perm(x -1l a, y -1l a) ↔ perm(x, y)) A User Theorem
oc-del-02 ⊦ #oc(a0, x) ≤ #oc(a0, y) → ¬ #oc(a0, y -1l a) < #oc(a0, x -1l a) A User Theorem
perm-dupsperm(x, y), ¬ dups(x) ⊦ ¬ dups(y) A User Theorem
pappperm(x, x0), perm(y, y0) ⊦ perm(x + y, x0 + y0) A User Theorem
app-all-end ⊦ perm(y, x + y) ↔ x = [] A User Theorem
subrec-01 ⊦ x ⊆m a ' + y ↔ #oc(a, x) ≤ #oc(a, y) + 1 ∧ x -1l a ⊆m y A User Theorem
ocs-put-01 ⊦ x[m] ≠ a ∧ a ≠ b ∧ m < # x → #oc(a, x[m := b]) = #oc(a, x) A User Theorem
perm-mklist-del ⊦ ¬ a ∈ y → (perm(x, mklist(a, #oc(a, x)) + y) ↔ perm(x -l a, y)) A User Theorem
c ⊦ perm(x, y + z) → perm(x0 + x, y + x0 + z) A User Theorem
shift ⊦ perm(x + y, y + x) A User Theorem
in-sym ⊦ a ∈ x ∧ ¬ a ∈ y → ¬ perm(x, y) A User Theorem
one-01 ⊦ a ≠ b → #oc(a, b ') = 0 A User Theorem
ocs-not-more ⊦ ¬ # x < #oc(a, x) A User Theorem
l ⊦ perm(x, y) → (# x = # y ↔ true) A User Theorem
neq ⊦ perm(x, y) ∧ ¬ perm(x0, y) → x ≠ x0 A User Theorem
delapp ⊦ perm(x + y, y -1l a) ↔ x = [] ∧ ¬ a ∈ y A User Theorem
oc-diff-01 ⊦ ¬ a ∈ y → #oc(a, x \ y) = #oc(a, x) A User Theorem
subapp ⊦ x ⊆m x0 ∧ y ⊆m y0 → x + y ⊆m x0 + y0 A User Theorem
app-end-end ⊦ perm(x + y, z + y) ↔ perm(x, z) A User Theorem
subdel-03 ⊦ x ⊆m y -1l a ↔ x -l a ⊆m y -l a ∧ (#oc(a, x) < #oc(a, y) ∨ ¬ a ∈ x) A User Theorem
perm-rmdup-rev ⊦ perm(x, rmdup(rev(y))) ↔ perm(x, rmdup(y)) A User Theorem
app-beg-end ⊦ perm(x + y, z + x) ↔ perm(y, z) A User Theorem
del ⊦ perm(x, a ' + y) ↔ a ∈ x ∧ perm(x -1l a, y) A User Theorem
perm-swapm < # x, n < # x ⊦ perm((x[n := x[m]])[m := x[n]], y) ↔ perm(x, y) A User Theorem
del-04 ⊦ perm(x, y) → perm(x -1l a, y -1l a) A User Theorem
perm-common-postfix ⊦ perm(x, z1 + y) → (perm(x, z2 + y) ↔ perm(z1, z2)) A User Theorem
in-03 ⊦ perm(a ' + x, b ' + y) ∧ a ≠ b → b ∈ x A User Theorem
in-put ⊦ 1 < #oc(a, x) ∧ m < # x → a ∈ x[m := b] A User Theorem
subapp-01 ⊦ x ⊆m x0 ∧ y ⊆m y0 → y + x ⊆m x0 + y0 A User Theorem
papp-01perm(x, x0), perm(y, y0) ⊦ perm(x + y, y0 + x0) A User Theorem
msubset ⊦ x ⊆m y ↔ (∀ a. #oc(a, x) ≤ #oc(a, y)) An Axiom
perm-del-in ⊦ a ∈ y → ¬ perm(x -l a, y) A User Theorem
app-end-in ⊦ perm(x0 + z, y0 + z + y1) ↔ perm(x0, y0 + y1) A User Theorem
rest ⊦ a ' + x ⊆m b ' + x ↔ a = b A User Theorem
ocs-same-length-all ⊦ #oc(a, x) = # x ↔ (∀ b. b ∈ x → b = a) A User Theorem
del-01 ⊦ perm(a ' + x, y) ↔ a ∈ y ∧ perm(x, y -1l a) A User Theorem
ocs-put ⊦ x[m] ≠ a ∧ m < # x → #oc(a, x[m := a]) = #oc(a, x) + 1 A User Theorem
oc-zero ⊦ #oc(a, x) = 0 ↔ ¬ a ∈ x A User Theorem
ocs-sw ⊦ m < # x ∧ n < # x → #oc(a, (x[m := x[n]])[n := x[m]]) = #oc(a, x) A User Theorem
oc-y ⊦ #oc(a, a ' + x) = #oc(a, x) + 1 An Axiom