| ⊦ perm(x -l a, z) ∧ perm(x, y) → (perm(y -l a, z) ↔ true) |
¬(perm(y -l a, z) ↔ true), perm(x -l a, z), perm(x, y) ⊦
| ¬(perm(y -l a, z) ↔ true), perm(x -l a, z), perm(x, y) ⊦ |
perm(x, y), perm(x -l a, z), perm(y, x), perm(z, x -l a), ¬ perm(y -l a, z) ⊦
Used simplifier rules: neq: ⊦ perm(x, y) ∧ ¬ perm(x0, y) → x ≠ x0; sym-02: ⊦ ¬ perm(x, y) → ¬ perm(y, x); neq: ⊦ perm(x, y) ∧ ¬ perm(x0, y) → x ≠ x0; sym-02: ⊦ ¬ perm(x, y) → ¬ perm(y, x); trans: ⊦ perm(x, y) ∧ perm(y, z) → perm(x, z); sym-01: ⊦ perm(x, y) → perm(y, x); ref: ⊦ perm(x, x);
| perm(x, y), perm(x -l a, z), perm(y, x), perm(z, x -l a), ¬ perm(y -l a, z) ⊦ |
⊦ perm(x, y) ↔ (∀ a. a ∈ x ∨ a ∈ y → #oc(a, x) = #oc(a, y))
perm(z, x -l a), perm(y, x), perm(x -l a, z), perm(x, y), ∃ a0. ¬(a0 ∈ y -l a ∨ a0 ∈ z → #oc(a0, y -l a) = #oc(a0, z)) ⊦
Used terms: z, y -l a
| ⊦ perm(x, y) ↔ (∀ a. a ∈ x ∨ a ∈ y → #oc(a, x) = #oc(a, y)) |
| perm(z, x -l a), perm(y, x), perm(x -l a, z), perm(x, y), ∃ a0. ¬(a0 ∈ y -l a ∨ a0 ∈ z → #oc(a0, y -l a) = #oc(a0, z)) ⊦ |
#oc(a0, y -l a) ≠ #oc(a0, z), perm(x, y), perm(x -l a, z), perm(y, x), perm(z, x -l a), a0 ∈ y -l a ∨ a0 ∈ z ⊦
| #oc(a0, y -l a) ≠ #oc(a0, z), perm(x, y), perm(x -l a, z), perm(y, x), perm(z, x -l a), a0 ∈ y -l a ∨ a0 ∈ z ⊦ |
⊦ a ≠ b → #oc(a, x -l b) = #oc(a, x)
#oc(a0, y) ≠ #oc(a0, z), a0 ≠ a, perm(z, x -l a), perm(y, x), perm(x -l a, z), perm(x, y), a0 ∈ y -l a ∨ a0 ∈ z ⊦
Used simplifier rules: ocs-del: ⊦ #oc(a, x -l a) = 0; oc-zero: ⊦ #oc(a, x) = 0 ↔ ¬ a ∈ x; perm-del-in: ⊦ a ∈ y → ¬ perm(x -l a, y); Used terms: a, y, a0
| ⊦ a ≠ b → #oc(a, x -l b) = #oc(a, x) |
| #oc(a0, y) ≠ #oc(a0, z), a0 ≠ a, perm(z, x -l a), perm(y, x), perm(x -l a, z), perm(x, y), a0 ∈ y -l a ∨ a0 ∈ z ⊦ |
#oc(a0, y) ≠ #oc(a0, z), a0 ≠ a, perm(x, y), perm(x -l a, z), perm(y, x), perm(z, x -l a), a0 ∈ y -l a ∨ a0 ∈ z ⊦
| #oc(a0, y) ≠ #oc(a0, z), a0 ≠ a, perm(x, y), perm(x -l a, z), perm(y, x), perm(z, x -l a), a0 ∈ y -l a ∨ a0 ∈ z ⊦ |
⊦ perm(x, y) ↔ (∀ a. a ∈ x ∨ a ∈ y → #oc(a, x) = #oc(a, y))
#oc(a0, y) ≠ #oc(a0, z), a0 ≠ a, perm(z, x -l a), perm(x -l a, z), perm(x, y), ∀ a. a ∈ y ∨ a ∈ x → #oc(a, y) = #oc(a, x), a0 ∈ y -l a ∨ a0 ∈ z ⊦
Used terms: x, y
| ⊦ perm(x, y) ↔ (∀ a. a ∈ x ∨ a ∈ y → #oc(a, x) = #oc(a, y)) |
| #oc(a0, y) ≠ #oc(a0, z), a0 ≠ a, perm(z, x -l a), perm(x -l a, z), perm(x, y), ∀ a. a ∈ y ∨ a ∈ x → #oc(a, y) = #oc(a, x), a0 ∈ y -l a ∨ a0 ∈ z ⊦ |
#oc(a0, y) ≠ #oc(a0, z), a0 ≠ a, perm(x, y), perm(x -l a, z), perm(z, x -l a), a0 ∈ y ∨ a0 ∈ x → #oc(a0, y) = #oc(a0, x), a0 ∈ y -l a ∨ a0 ∈ z ⊦
Used terms: a0
| #oc(a0, y) ≠ #oc(a0, z), a0 ≠ a, perm(x, y), perm(x -l a, z), perm(z, x -l a), a0 ∈ y ∨ a0 ∈ x → #oc(a0, y) = #oc(a0, x), a0 ∈ y -l a ∨ a0 ∈ z ⊦ |
⊦ a ∈ x -l b ↔ a ∈ x ∧ a ≠ b
#oc(a0, y) ≠ #oc(a0, z), a0 ≠ a, perm(z, x -l a), perm(x -l a, z), perm(x, y), a0 ∈ y ∨ a0 ∈ x → #oc(a0, y) = #oc(a0, x), a0 ∈ y ∧ a0 ≠ a ∨ a0 ∈ z ⊦
Used terms: a, y, a0
| ⊦ a ∈ x -l b ↔ a ∈ x ∧ a ≠ b |
| #oc(a0, y) ≠ #oc(a0, z), a0 ≠ a, perm(z, x -l a), perm(x -l a, z), perm(x, y), a0 ∈ y ∨ a0 ∈ x → #oc(a0, y) = #oc(a0, x), a0 ∈ y ∧ a0 ≠ a ∨ a0 ∈ z ⊦ |
#oc(a0, y) ≠ #oc(a0, z), a0 ≠ a, perm(x, y), perm(x -l a, z), perm(z, x -l a), a0 ∈ y ∨ a0 ∈ x → #oc(a0, y) = #oc(a0, x), a0 ∈ y ∨ a0 ∈ z ⊦
| #oc(a0, y) ≠ #oc(a0, z), a0 ≠ a, perm(x, y), perm(x -l a, z), perm(z, x -l a), a0 ∈ y ∨ a0 ∈ x → #oc(a0, y) = #oc(a0, x), a0 ∈ y ∨ a0 ∈ z ⊦ |
⊦ perm(x, y) ↔ (∀ a. a ∈ x ∨ a ∈ y → #oc(a, x) = #oc(a, y))
#oc(a0, y) ≠ #oc(a0, z), a0 ≠ a, perm(x -l a, z), perm(x, y), a0 ∈ y ∨ a0 ∈ x → #oc(a0, y) = #oc(a0, x), ∀ a0. a0 ∈ z ∨ a0 ∈ x -l a → #oc(a0, z) = #oc(a0, x -l a), a0 ∈ y ∨ a0 ∈ z ⊦
Used terms: x -l a, z
| ⊦ perm(x, y) ↔ (∀ a. a ∈ x ∨ a ∈ y → #oc(a, x) = #oc(a, y)) |
| #oc(a0, y) ≠ #oc(a0, z), a0 ≠ a, perm(x -l a, z), perm(x, y), a0 ∈ y ∨ a0 ∈ x → #oc(a0, y) = #oc(a0, x), ∀ a0. a0 ∈ z ∨ a0 ∈ x -l a → #oc(a0, z) = #oc(a0, x -l a), a0 ∈ y ∨ a0 ∈ z ⊦ |
#oc(a0, y) ≠ #oc(a0, z), a0 ≠ a, perm(x, y), perm(x -l a, z), a0 ∈ y ∨ a0 ∈ x → #oc(a0, y) = #oc(a0, x), a0 ∈ z ∨ a0 ∈ x -l a → #oc(a0, z) = #oc(a0, x -l a), a0 ∈ y ∨ a0 ∈ z ⊦
Used terms: a0
| #oc(a0, y) ≠ #oc(a0, z), a0 ≠ a, perm(x, y), perm(x -l a, z), a0 ∈ y ∨ a0 ∈ x → #oc(a0, y) = #oc(a0, x), a0 ∈ z ∨ a0 ∈ x -l a → #oc(a0, z) = #oc(a0, x -l a), a0 ∈ y ∨ a0 ∈ z ⊦ |
#oc(a0, y) ≠ #oc(a0, z), a0 ≠ a, perm(x -l a, z), perm(x, y), a0 ∈ y ∨ a0 ∈ x → #oc(a0, y) = #oc(a0, x), a0 ∈ z ∨ a0 ∈ x → #oc(a0, z) = #oc(a0, x), a0 ∈ y ∨ a0 ∈ z ⊦
Used simplifier rules: ocs-del-length: ⊦ a ≠ b → #oc(a, x -l b) = #oc(a, x); ⊦ a ∈ x -l b ↔ a ∈ x ∧ a ≠ b; (ws)
| #oc(a0, y) ≠ #oc(a0, z), a0 ≠ a, perm(x -l a, z), perm(x, y), a0 ∈ y ∨ a0 ∈ x → #oc(a0, y) = #oc(a0, x), a0 ∈ z ∨ a0 ∈ x → #oc(a0, z) = #oc(a0, x), a0 ∈ y ∨ a0 ∈ z ⊦ |
Used simplifier rules: notin: ⊦ ¬ a ∈ x → #oc(a, x) = 0; in-05: ⊦ a ∈ x → #oc(a, x) ≠ 0; notin: ⊦ ¬ a ∈ x → #oc(a, x) = 0; in-05: ⊦ a ∈ x → #oc(a, x) ≠ 0;
The following image shows the proof tree of sequent calculus. The proved goal is at the bottom. You can click on the nodes to view additional rules. See here for details on colors in a proof tree.