| ⊦ disjointp(spmx1, spmx2) → (spmx1 ∪ spmx2 ⊆ spmx ↔ spmx1 ⊆ spmx ∧ spmx2 ⊆ spmx) |
¬(spmx1 ∪ spmx2 ⊆ spmx ↔ spmx1 ⊆ spmx ∧ spmx2 ⊆ spmx), disjointp(spmx1, spmx2) ⊦
| ¬(spmx1 ∪ spmx2 ⊆ spmx ↔ spmx1 ⊆ spmx ∧ spmx2 ⊆ spmx), disjointp(spmx1, spmx2) ⊦ |
¬(spmx1 ⊕ spmx2 ⊆ spmx ↔ spmx1 ⊆ spmx ∧ spmx2 ⊆ spmx), ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2 ⊦
Used simplifier rules: union-def: ⊦ sa1 ∪ sa2 = sa1 ⊕ sa2; disjointp-def: ⊦ disjointp(sa1, sa2) ↔ (∀ np. np ∈ sa1 → ¬ np ∈ sa2);
| ¬(spmx1 ⊕ spmx2 ⊆ spmx ↔ spmx1 ⊆ spmx ∧ spmx2 ⊆ spmx), ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2 ⊦ |
⊦ st1 ⊆ st2 ↔ (∀ a. a ∈ st1 → a ∈ st2 ∧ st1[a] = st2[a])
∀ np. np ∈ spmx1 → ¬ np ∈ spmx2 ⊦ (∀ a. a ∈ spmx1 ⊕ spmx2 → a ∈ spmx ∧ (spmx1 ⊕ spmx2)[a] = spmx[a]) ↔ spmx1 ⊆ spmx ∧ spmx2 ⊆ spmx
Used terms: spmx1 ⊕ spmx2, spmx
| ⊦ st1 ⊆ st2 ↔ (∀ a. a ∈ st1 → a ∈ st2 ∧ st1[a] = st2[a]) |
| ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2 ⊦ (∀ a. a ∈ spmx1 ⊕ spmx2 → a ∈ spmx ∧ (spmx1 ⊕ spmx2)[a] = spmx[a]) ↔ spmx1 ⊆ spmx ∧ spmx2 ⊆ spmx |
⊦ st1 ⊆ st2 ↔ (∀ a. a ∈ st1 → a ∈ st2 ∧ st1[a] = st2[a])
∀ np. np ∈ spmx1 → ¬ np ∈ spmx2 ⊦ (∀ a. a ∈ spmx1 ⊕ spmx2 → a ∈ spmx ∧ (spmx1 ⊕ spmx2)[a] = spmx[a]) ↔ (∀ a. a ∈ spmx1 → a ∈ spmx ∧ spmx1[a] = spmx[a]) ∧ spmx2 ⊆ spmx
Used terms: spmx1, spmx
| ⊦ st1 ⊆ st2 ↔ (∀ a. a ∈ st1 → a ∈ st2 ∧ st1[a] = st2[a]) |
| ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2 ⊦ (∀ a. a ∈ spmx1 ⊕ spmx2 → a ∈ spmx ∧ (spmx1 ⊕ spmx2)[a] = spmx[a]) ↔ (∀ a. a ∈ spmx1 → a ∈ spmx ∧ spmx1[a] = spmx[a]) ∧ spmx2 ⊆ spmx |
⊦ st1 ⊆ st2 ↔ (∀ a. a ∈ st1 → a ∈ st2 ∧ st1[a] = st2[a])
∀ np. np ∈ spmx1 → ¬ np ∈ spmx2 ⊦ (∀ a. a ∈ spmx1 ⊕ spmx2 → a ∈ spmx ∧ (spmx1 ⊕ spmx2)[a] = spmx[a]) ↔ (∀ a. a ∈ spmx1 → a ∈ spmx ∧ spmx1[a] = spmx[a]) ∧ (∀ a. a ∈ spmx2 → a ∈ spmx ∧ spmx2[a] = spmx[a])
Used terms: spmx2, spmx
| ⊦ st1 ⊆ st2 ↔ (∀ a. a ∈ st1 → a ∈ st2 ∧ st1[a] = st2[a]) |
| ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2 ⊦ (∀ a. a ∈ spmx1 ⊕ spmx2 → a ∈ spmx ∧ (spmx1 ⊕ spmx2)[a] = spmx[a]) ↔ (∀ a. a ∈ spmx1 → a ∈ spmx ∧ spmx1[a] = spmx[a]) ∧ (∀ a. a ∈ spmx2 → a ∈ spmx ∧ spmx2[a] = spmx[a]) |
∀ np. np ∈ spmx1 → ¬ np ∈ spmx2, ∀ a. a ∈ spmx1 ⊕ spmx2 → a ∈ spmx ∧ (spmx1 ⊕ spmx2)[a] = spmx[a] ⊦ (∀ a. a ∈ spmx1 → a ∈ spmx ∧ spmx1[a] = spmx[a]) ∧ (∀ a. a ∈ spmx2 → a ∈ spmx ∧ spmx2[a] = spmx[a])
∀ np. np ∈ spmx1 → ¬ np ∈ spmx2, ∀ a. a ∈ spmx1 → a ∈ spmx ∧ spmx1[a] = spmx[a], ∀ a. a ∈ spmx2 → a ∈ spmx ∧ spmx2[a] = spmx[a] ⊦ ∀ a. a ∈ spmx1 ⊕ spmx2 → a ∈ spmx ∧ (spmx1 ⊕ spmx2)[a] = spmx[a]
| ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2, ∀ a. a ∈ spmx1 ⊕ spmx2 → a ∈ spmx ∧ (spmx1 ⊕ spmx2)[a] = spmx[a] ⊦ (∀ a. a ∈ spmx1 → a ∈ spmx ∧ spmx1[a] = spmx[a]) ∧ (∀ a. a ∈ spmx2 → a ∈ spmx ∧ spmx2[a] = spmx[a]) |
∀ a. a ∈ spmx1 ⊕ spmx2 → a ∈ spmx ∧ (spmx1 ⊕ spmx2)[a] = spmx[a], ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2 ⊦ (np ∈ spmx1 → np ∈ spmx ∧ spmx1[np] = spmx[np]) ∧ (np0 ∈ spmx2 → np0 ∈ spmx ∧ spmx2[np0] = spmx[np0])
| ∀ a. a ∈ spmx1 ⊕ spmx2 → a ∈ spmx ∧ (spmx1 ⊕ spmx2)[a] = spmx[a], ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2 ⊦ (np ∈ spmx1 → np ∈ spmx ∧ spmx1[np] = spmx[np]) ∧ (np0 ∈ spmx2 → np0 ∈ spmx ∧ spmx2[np0] = spmx[np0]) |
np ∈ spmx1, ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2, ∀ a. a ∈ spmx1 ⊕ spmx2 → a ∈ spmx ∧ (spmx1 ⊕ spmx2)[a] = spmx[a] ⊦ np ∈ spmx ∧ spmx1[np] = spmx[np]
np0 ∈ spmx2, ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2, ∀ a. a ∈ spmx1 ⊕ spmx2 → a ∈ spmx ∧ (spmx1 ⊕ spmx2)[a] = spmx[a] ⊦ np0 ∈ spmx ∧ spmx2[np0] = spmx[np0]
| np ∈ spmx1, ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2, ∀ a. a ∈ spmx1 ⊕ spmx2 → a ∈ spmx ∧ (spmx1 ⊕ spmx2)[a] = spmx[a] ⊦ np ∈ spmx ∧ spmx1[np] = spmx[np] |
Used simplifier rules: ⊦ a ∈ st0 → (st0 ⊕ st1)[a] = st0[a]; (s) ⊦ a ∈ st0 ⊕ st1 ↔ a ∈ st0 ∨ a ∈ st1; (ws) Used terms: np
| np0 ∈ spmx2, ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2, ∀ a. a ∈ spmx1 ⊕ spmx2 → a ∈ spmx ∧ (spmx1 ⊕ spmx2)[a] = spmx[a] ⊦ np0 ∈ spmx ∧ spmx2[np0] = spmx[np0] |
np0 ∈ spmx2, np0 ∈ spmx1 ⊕ spmx2 → np0 ∈ spmx ∧ (spmx1 ⊕ spmx2)[np0] = spmx[np0], ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2 ⊦ np0 ∈ spmx ∧ spmx2[np0] = spmx[np0]
Used terms: np0
| np0 ∈ spmx2, np0 ∈ spmx1 ⊕ spmx2 → np0 ∈ spmx ∧ (spmx1 ⊕ spmx2)[np0] = spmx[np0], ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2 ⊦ np0 ∈ spmx ∧ spmx2[np0] = spmx[np0] |
(spmx1 ⊕ spmx2)[np0] = spmx[np0], spmx2[np0] ≠ spmx[np0], np0 ∈ spmx2, np0 ∈ spmx1 ⊕ spmx2, np0 ∈ spmx, ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2 ⊦
Used simplifier rules: ⊦ a ∈ st0 ⊕ st1 ↔ a ∈ st0 ∨ a ∈ st1; (ws)
| (spmx1 ⊕ spmx2)[np0] = spmx[np0], spmx2[np0] ≠ spmx[np0], np0 ∈ spmx2, np0 ∈ spmx1 ⊕ spmx2, np0 ∈ spmx, ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2 ⊦ |
⊦ a ∈ st0 → (st0 ⊕ st1)[a] = st0[a]
spmx1[np0] = spmx[np0], spmx2[np0] ≠ spmx[np0], np0 ∈ spmx, np0 ∈ spmx1 ⊕ spmx2, np0 ∈ spmx2, np0 ∈ spmx1, ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2 ⊦
Used simplifier rules: ⊦ ¬ a ∈ st0 ∧ a ∈ st1 → (st0 ⊕ st1)[a] = st1[a]; (s) Used terms: spmx1, spmx2, np0
| ⊦ a ∈ st0 → (st0 ⊕ st1)[a] = st0[a] |
| spmx1[np0] = spmx[np0], spmx2[np0] ≠ spmx[np0], np0 ∈ spmx, np0 ∈ spmx1 ⊕ spmx2, np0 ∈ spmx2, np0 ∈ spmx1, ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2 ⊦ |
⊦ a ∈ st0 ⊕ st1 ↔ a ∈ st0 ∨ a ∈ st1
spmx1[np0] = spmx[np0], spmx2[np0] ≠ spmx[np0], np0 ∈ spmx1, np0 ∈ spmx2, np0 ∈ spmx, ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2, np0 ∈ spmx1 ∨ np0 ∈ spmx2 ⊦
Used terms: np0, spmx1, spmx2
| ⊦ a ∈ st0 ⊕ st1 ↔ a ∈ st0 ∨ a ∈ st1 |
| spmx1[np0] = spmx[np0], spmx2[np0] ≠ spmx[np0], np0 ∈ spmx1, np0 ∈ spmx2, np0 ∈ spmx, ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2, np0 ∈ spmx1 ∨ np0 ∈ spmx2 ⊦ |
spmx1[np0] = spmx[np0], spmx2[np0] ≠ spmx[np0], np0 ∈ spmx, np0 ∈ spmx2, np0 ∈ spmx1, ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2 ⊦
| spmx1[np0] = spmx[np0], spmx2[np0] ≠ spmx[np0], np0 ∈ spmx, np0 ∈ spmx2, np0 ∈ spmx1, ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2 ⊦ |
Used terms: np0
| ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2, ∀ a. a ∈ spmx1 → a ∈ spmx ∧ spmx1[a] = spmx[a], ∀ a. a ∈ spmx2 → a ∈ spmx ∧ spmx2[a] = spmx[a] ⊦ ∀ a. a ∈ spmx1 ⊕ spmx2 → a ∈ spmx ∧ (spmx1 ⊕ spmx2)[a] = spmx[a] |
np ∈ spmx1 ⊕ spmx2, ∀ a. a ∈ spmx2 → a ∈ spmx ∧ spmx2[a] = spmx[a], ∀ a. a ∈ spmx1 → a ∈ spmx ∧ spmx1[a] = spmx[a], ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2 ⊦ np ∈ spmx ∧ (spmx1 ⊕ spmx2)[np] = spmx[np]
| np ∈ spmx1 ⊕ spmx2, ∀ a. a ∈ spmx2 → a ∈ spmx ∧ spmx2[a] = spmx[a], ∀ a. a ∈ spmx1 → a ∈ spmx ∧ spmx1[a] = spmx[a], ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2 ⊦ np ∈ spmx ∧ (spmx1 ⊕ spmx2)[np] = spmx[np] |
np ∈ spmx1 ⊕ spmx2, np ∈ spmx2 → np ∈ spmx ∧ spmx2[np] = spmx[np], ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2, ∀ a. a ∈ spmx1 → a ∈ spmx ∧ spmx1[a] = spmx[a] ⊦ np ∈ spmx ∧ (spmx1 ⊕ spmx2)[np] = spmx[np]
Used terms: np
| np ∈ spmx1 ⊕ spmx2, np ∈ spmx2 → np ∈ spmx ∧ spmx2[np] = spmx[np], ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2, ∀ a. a ∈ spmx1 → a ∈ spmx ∧ spmx1[a] = spmx[a] ⊦ np ∈ spmx ∧ (spmx1 ⊕ spmx2)[np] = spmx[np] |
np ∈ spmx1 ⊕ spmx2, np ∈ spmx2 → np ∈ spmx ∧ spmx2[np] = spmx[np], np ∈ spmx1 → np ∈ spmx ∧ spmx1[np] = spmx[np], ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2 ⊦ np ∈ spmx ∧ (spmx1 ⊕ spmx2)[np] = spmx[np]
Used terms: np
| np ∈ spmx1 ⊕ spmx2, np ∈ spmx2 → np ∈ spmx ∧ spmx2[np] = spmx[np], np ∈ spmx1 → np ∈ spmx ∧ spmx1[np] = spmx[np], ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2 ⊦ np ∈ spmx ∧ (spmx1 ⊕ spmx2)[np] = spmx[np] |
⊦ a ∈ st0 ⊕ st1 ↔ a ∈ st0 ∨ a ∈ st1
np ∈ spmx1 → np ∈ spmx ∧ spmx1[np] = spmx[np], np ∈ spmx2 → np ∈ spmx ∧ spmx2[np] = spmx[np], ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2, np ∈ spmx1 ∨ np ∈ spmx2 ⊦ np ∈ spmx ∧ (spmx1 ⊕ spmx2)[np] = spmx[np]
Used terms: np, spmx1, spmx2
| ⊦ a ∈ st0 ⊕ st1 ↔ a ∈ st0 ∨ a ∈ st1 |
| np ∈ spmx1 → np ∈ spmx ∧ spmx1[np] = spmx[np], np ∈ spmx2 → np ∈ spmx ∧ spmx2[np] = spmx[np], ∀ np. np ∈ spmx1 → ¬ np ∈ spmx2, np ∈ spmx1 ∨ np ∈ spmx2 ⊦ np ∈ spmx ∧ (spmx1 ⊕ spmx2)[np] = spmx[np] |
⊦ a ∈ st0 → (st0 ⊕ st1)[a] = st0[a]
Used simplifier rules: ⊦ ¬ a ∈ st0 ∧ a ∈ st1 → (st0 ⊕ st1)[a] = st1[a]; (s) Used terms: spmx1, spmx2, np
| ⊦ a ∈ st0 → (st0 ⊕ st1)[a] = st0[a] |
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.