| ⊦ perm(x, x0) ∧ perm(y, y0) → perm(x \ y, x0 \ y0) |
perm(x, x0), perm(y, y0), ¬ perm(x \ y, x0 \ y0) ⊦
| perm(x, x0), perm(y, y0), ¬ perm(x \ y, x0 \ y0) ⊦ |
¬ perm(x \ y, x0 \ y0), ∀ a. #oc(a, x0) ≤ #oc(a, x), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, y) ≤ #oc(a, y0) ⊦
Used simplifier rules: perm: ⊦ perm(x, y) ↔ x ⊆m y ∧ y ⊆m x; msubset: ⊦ x ⊆m y ↔ (∀ a. #oc(a, x) ≤ #oc(a, y)); sym-02: ⊦ ¬ perm(x, y) → ¬ perm(y, x); sym-02: ⊦ ¬ perm(x, y) → ¬ perm(y, x);
| ¬ perm(x \ y, x0 \ y0), ∀ a. #oc(a, x0) ≤ #oc(a, x), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, y) ≤ #oc(a, y0) ⊦ |
⊦ perm(x, y) ↔ x ⊆m y ∧ y ⊆m x
∀ a. #oc(a, y) ≤ #oc(a, y0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, x0) ≤ #oc(a, x), ¬ x \ y ⊆m x0 \ y0 ∨ ¬ x0 \ y0 ⊆m x \ y ⊦
Used terms: x0 \ y0, x \ y
| ⊦ perm(x, y) ↔ x ⊆m y ∧ y ⊆m x |
| ∀ a. #oc(a, y) ≤ #oc(a, y0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, x0) ≤ #oc(a, x), ¬ x \ y ⊆m x0 \ y0 ∨ ¬ x0 \ y0 ⊆m x \ y ⊦ |
∀ a. #oc(a, x0) ≤ #oc(a, x), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, y) ≤ #oc(a, y0), ¬ #oc(a, x \ y) ≤ #oc(a, x0 \ y0) ∨ ¬ #oc(a0, x0 \ y0) ≤ #oc(a0, x \ y) ⊦
Used simplifier rules: msubset: ⊦ x ⊆m y ↔ (∀ a. #oc(a, x) ≤ #oc(a, y));
| ∀ a. #oc(a, x0) ≤ #oc(a, x), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, y) ≤ #oc(a, y0), ¬ #oc(a, x \ y) ≤ #oc(a, x0 \ y0) ∨ ¬ #oc(a0, x0 \ y0) ≤ #oc(a0, x \ y) ⊦ |
¬ #oc(a, x \ y) ≤ #oc(a, x0 \ y0), ∀ a. #oc(a, y) ≤ #oc(a, y0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, x0) ≤ #oc(a, x) ⊦
¬ #oc(a0, x0 \ y0) ≤ #oc(a0, x \ y), ∀ a. #oc(a, y) ≤ #oc(a, y0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, x0) ≤ #oc(a, x) ⊦
| ¬ #oc(a, x \ y) ≤ #oc(a, x0 \ y0), ∀ a. #oc(a, y) ≤ #oc(a, y0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, x0) ≤ #oc(a, x) ⊦ |
¬ a ∈ y, ¬ #oc(a, x \ y) ≤ #oc(a, x0 \ y0), ∀ a. #oc(a, x0) ≤ #oc(a, x), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, y) ≤ #oc(a, y0) ⊦
Used simplifier rules: oc-diff: ⊦ a ∈ y → #oc(a, x \ y) = 0; ⊦ 0 ≤ m; (s) Used formulas: a ∈ y
| ¬ a ∈ y, ¬ #oc(a, x \ y) ≤ #oc(a, x0 \ y0), ∀ a. #oc(a, x0) ≤ #oc(a, x), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, y) ≤ #oc(a, y0) ⊦ |
#oc(a, x0 \ y0) < #oc(a, x), a ∈ x, ¬ a ∈ y, ∀ a. #oc(a, x0) ≤ #oc(a, x), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, y) ≤ #oc(a, y0) ⊦
Used simplifier rules: oc-diff-01: ⊦ ¬ a ∈ y → #oc(a, x \ y) = #oc(a, x); oc-zero: ⊦ #oc(a, x) = 0 ↔ ¬ a ∈ x; f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic ⊦ m ≤ n ↔ ¬ n < m; (ss)
| #oc(a, x0 \ y0) < #oc(a, x), a ∈ x, ¬ a ∈ y, ∀ a. #oc(a, x0) ≤ #oc(a, x), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, y) ≤ #oc(a, y0) ⊦ |
#oc(a, x0 \ y0) < #oc(a, x), a ∈ x, a ∈ y0, ¬ a ∈ y, ∀ a. #oc(a, y) ≤ #oc(a, y0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, x0) ≤ #oc(a, x) ⊦
#oc(a, x0 \ y0) < #oc(a, x), a ∈ x, ¬ a ∈ y0, ¬ a ∈ y, ∀ a. #oc(a, y) ≤ #oc(a, y0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, x0) ≤ #oc(a, x) ⊦
Used formulas: a ∈ y0
| #oc(a, x0 \ y0) < #oc(a, x), a ∈ x, a ∈ y0, ¬ a ∈ y, ∀ a. #oc(a, y) ≤ #oc(a, y0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, x0) ≤ #oc(a, x) ⊦ |
a ∈ y0, a ∈ x, ¬ a ∈ y, ∀ a. #oc(a, x0) ≤ #oc(a, x), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, y) ≤ #oc(a, y0) ⊦
Used simplifier rules: oc-diff: ⊦ a ∈ y → #oc(a, x \ y) = 0; oc-zero: ⊦ #oc(a, x) = 0 ↔ ¬ a ∈ x; ⊦ 0 < m ↔ m ≠ 0; (s)
| a ∈ y0, a ∈ x, ¬ a ∈ y, ∀ a. #oc(a, x0) ≤ #oc(a, x), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, y) ≤ #oc(a, y0) ⊦ |
Used simplifier rules: notin: ⊦ ¬ a ∈ x → #oc(a, x) = 0; oc-zero: ⊦ #oc(a, x) = 0 ↔ ¬ a ∈ x; ⊦ m ≤ 0 ↔ m = 0; (s) Used terms: a
| #oc(a, x0 \ y0) < #oc(a, x), a ∈ x, ¬ a ∈ y0, ¬ a ∈ y, ∀ a. #oc(a, y) ≤ #oc(a, y0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, x0) ≤ #oc(a, x) ⊦ |
#oc(a, x0) < #oc(a, x), a ∈ x, ¬ a ∈ y0, ¬ a ∈ y, ∀ a. #oc(a, x0) ≤ #oc(a, x), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, y) ≤ #oc(a, y0) ⊦
Used simplifier rules: oc-diff-01: ⊦ ¬ a ∈ y → #oc(a, x \ y) = #oc(a, x);
| #oc(a, x0) < #oc(a, x), a ∈ x, ¬ a ∈ y0, ¬ a ∈ y, ∀ a. #oc(a, x0) ≤ #oc(a, x), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, y) ≤ #oc(a, y0) ⊦ |
Used simplifier rules: ⊦ m ≤ n → (n < m ↔ false); (s) Used terms: a
| ¬ #oc(a0, x0 \ y0) ≤ #oc(a0, x \ y), ∀ a. #oc(a, y) ≤ #oc(a, y0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, x0) ≤ #oc(a, x) ⊦ |
¬ a0 ∈ y0, ¬ #oc(a0, x0 \ y0) ≤ #oc(a0, x \ y), ∀ a. #oc(a, x0) ≤ #oc(a, x), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, y) ≤ #oc(a, y0) ⊦
Used simplifier rules: oc-diff: ⊦ a ∈ y → #oc(a, x \ y) = 0; ⊦ 0 ≤ m; (s) Used formulas: a0 ∈ y0
| ¬ a0 ∈ y0, ¬ #oc(a0, x0 \ y0) ≤ #oc(a0, x \ y), ∀ a. #oc(a, x0) ≤ #oc(a, x), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, y) ≤ #oc(a, y0) ⊦ |
#oc(a0, x \ y) < #oc(a0, x0), a0 ∈ x0, ¬ a0 ∈ y0, ∀ a. #oc(a, x0) ≤ #oc(a, x), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, y) ≤ #oc(a, y0) ⊦
Used simplifier rules: oc-diff-01: ⊦ ¬ a ∈ y → #oc(a, x \ y) = #oc(a, x); oc-zero: ⊦ #oc(a, x) = 0 ↔ ¬ a ∈ x; f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic ⊦ m ≤ n ↔ ¬ n < m; (ss)
| #oc(a0, x \ y) < #oc(a0, x0), a0 ∈ x0, ¬ a0 ∈ y0, ∀ a. #oc(a, x0) ≤ #oc(a, x), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, y) ≤ #oc(a, y0) ⊦ |
#oc(a0, x \ y) < #oc(a0, x0), a0 ∈ x0, a0 ∈ y, ¬ a0 ∈ y0, ∀ a. #oc(a, y) ≤ #oc(a, y0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, x0) ≤ #oc(a, x) ⊦
#oc(a0, x \ y) < #oc(a0, x0), a0 ∈ x0, ¬ a0 ∈ y, ¬ a0 ∈ y0, ∀ a. #oc(a, y) ≤ #oc(a, y0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, x0) ≤ #oc(a, x) ⊦
Used formulas: a0 ∈ y
| #oc(a0, x \ y) < #oc(a0, x0), a0 ∈ x0, a0 ∈ y, ¬ a0 ∈ y0, ∀ a. #oc(a, y) ≤ #oc(a, y0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, x0) ≤ #oc(a, x) ⊦ |
a0 ∈ y, a0 ∈ x0, ¬ a0 ∈ y0, ∀ a. #oc(a, x0) ≤ #oc(a, x), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, y) ≤ #oc(a, y0) ⊦
Used simplifier rules: oc-diff: ⊦ a ∈ y → #oc(a, x \ y) = 0; oc-zero: ⊦ #oc(a, x) = 0 ↔ ¬ a ∈ x; ⊦ 0 < m ↔ m ≠ 0; (s)
| a0 ∈ y, a0 ∈ x0, ¬ a0 ∈ y0, ∀ a. #oc(a, x0) ≤ #oc(a, x), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, y) ≤ #oc(a, y0) ⊦ |
Used simplifier rules: notin: ⊦ ¬ a ∈ x → #oc(a, x) = 0; oc-zero: ⊦ #oc(a, x) = 0 ↔ ¬ a ∈ x; ⊦ m ≤ 0 ↔ m = 0; (s) Used terms: a0
| #oc(a0, x \ y) < #oc(a0, x0), a0 ∈ x0, ¬ a0 ∈ y, ¬ a0 ∈ y0, ∀ a. #oc(a, y) ≤ #oc(a, y0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, x0) ≤ #oc(a, x) ⊦ |
#oc(a0, x) < #oc(a0, x0), a0 ∈ x0, ¬ a0 ∈ y, ¬ a0 ∈ y0, ∀ a. #oc(a, x0) ≤ #oc(a, x), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, y) ≤ #oc(a, y0) ⊦
Used simplifier rules: oc-diff-01: ⊦ ¬ a ∈ y → #oc(a, x \ y) = #oc(a, x);
| #oc(a0, x) < #oc(a0, x0), a0 ∈ x0, ¬ a0 ∈ y, ¬ a0 ∈ y0, ∀ a. #oc(a, x0) ≤ #oc(a, x), ∀ a. #oc(a, x) ≤ #oc(a, x0), ∀ a. #oc(a, y0) ≤ #oc(a, y), ∀ a. #oc(a, y) ≤ #oc(a, y0) ⊦ |
Used simplifier rules: ⊦ m ≤ n → (n < m ↔ false); (s) Used terms: a0
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.