| ⊦ alldisjointp(ts, f) → ( alldisjointp(ts, f0) ↔ (∀ tid1, tid2, np. (tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f(tid1) → ¬ np ∈ f(tid2)) → tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f0(tid1) → ¬ np ∈ f0(tid2))) |
alldisjointp(ts, f) ⊦ alldisjointp(ts, f0) ↔ (∀ tid1, tid2, np. (tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f(tid1) → ¬ np ∈ f(tid2)) → tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f0(tid1) → ¬ np ∈ f0(tid2))
| alldisjointp(ts, f) ⊦ alldisjointp(ts, f0) ↔ (∀ tid1, tid2, np. (tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f(tid1) → ¬ np ∈ f(tid2)) → tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f0(tid1) → ¬ np ∈ f0(tid2)) |
∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f(tid2) ⊦ (∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f0(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f0(tid2)) ↔ (∀ tid1, tid2, np. (np ∈ f(tid1) → ¬ np ∈ f(tid2)) → tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f0(tid1) → ¬ np ∈ f0(tid2))
Used simplifier rules: alldisjointp-def: ⊦ alldisjointp(ts, f) ↔ (∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f(tid2));
| ∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f(tid2) ⊦ (∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f0(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f0(tid2)) ↔ (∀ tid1, tid2, np. (np ∈ f(tid1) → ¬ np ∈ f(tid2)) → tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f0(tid1) → ¬ np ∈ f0(tid2)) |
∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f(tid2), ∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f0(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f0(tid2) ⊦ ∀ tid1, tid2, np. (np ∈ f(tid1) → ¬ np ∈ f(tid2)) → tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f0(tid1) → ¬ np ∈ f0(tid2)
∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f(tid2), ∀ tid1, tid2, np. (np ∈ f(tid1) → ¬ np ∈ f(tid2)) → tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f0(tid1) → ¬ np ∈ f0(tid2) ⊦ ∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f0(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f0(tid2)
| ∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f(tid2), ∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f0(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f0(tid2) ⊦ ∀ tid1, tid2, np. (np ∈ f(tid1) → ¬ np ∈ f(tid2)) → tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f0(tid1) → ¬ np ∈ f0(tid2) |
# ts ≠ 0, tid1 ≠ tid2, ts ≠ ∅, np ∈ f0(tid1), tid2 ∈ ts, tid1 ∈ ts, np ∈ f0(tid2), np ∈ f(tid1) → ¬ np ∈ f(tid2), ∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f(tid2), ∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f0(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f0(tid2) ⊦
Used simplifier rules: size-zero-01: ⊦ s ≠ ∅ → # s ≠ 0; (forward) from specification set-basic[tidset-npset] ne-01: ⊦ a ∈ s → s ≠ ∅; (forward) from specification set-basic[tidset-npset]
| # ts ≠ 0, tid1 ≠ tid2, ts ≠ ∅, np ∈ f0(tid1), tid2 ∈ ts, tid1 ∈ ts, np ∈ f0(tid2), np ∈ f(tid1) → ¬ np ∈ f(tid2), ∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f(tid2), ∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f0(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f0(tid2) ⊦ |
Used terms: tid1, tid2, np
| ∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f(tid2), ∀ tid1, tid2, np. (np ∈ f(tid1) → ¬ np ∈ f(tid2)) → tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f0(tid1) → ¬ np ∈ f0(tid2) ⊦ ∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f0(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f0(tid2) |
# ts ≠ 0, tid1 ≠ tid2, ts ≠ ∅, np ∈ f0(tid1), tid2 ∈ ts, tid1 ∈ ts, np ∈ f0(tid2), ∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f(tid2), ∀ tid1, tid2, np. (np ∈ f(tid1) → ¬ np ∈ f(tid2)) → tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f0(tid1) → ¬ np ∈ f0(tid2) ⊦
Used simplifier rules: size-zero-01: ⊦ s ≠ ∅ → # s ≠ 0; (forward) from specification set-basic[tidset-npset] ne-01: ⊦ a ∈ s → s ≠ ∅; (forward) from specification set-basic[tidset-npset]
| # ts ≠ 0, tid1 ≠ tid2, ts ≠ ∅, np ∈ f0(tid1), tid2 ∈ ts, tid1 ∈ ts, np ∈ f0(tid2), ∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f(tid2), ∀ tid1, tid2, np. (np ∈ f(tid1) → ¬ np ∈ f(tid2)) → tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f0(tid1) → ¬ np ∈ f0(tid2) ⊦ |
# ts ≠ 0, tid1 ≠ tid2, ts ≠ ∅, np ∈ f0(tid2), tid1 ∈ ts, tid2 ∈ ts, np ∈ f0(tid1), (np ∈ f(tid1) → ¬ np ∈ f(tid2)) → tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f0(tid1) → ¬ np ∈ f0(tid2), ∀ tid1, tid2, np. (np ∈ f(tid1) → ¬ np ∈ f(tid2)) → tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f0(tid1) → ¬ np ∈ f0(tid2), ∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f(tid2) ⊦
Used terms: tid1, tid2, np
| # ts ≠ 0, tid1 ≠ tid2, ts ≠ ∅, np ∈ f0(tid2), tid1 ∈ ts, tid2 ∈ ts, np ∈ f0(tid1), (np ∈ f(tid1) → ¬ np ∈ f(tid2)) → tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f0(tid1) → ¬ np ∈ f0(tid2), ∀ tid1, tid2, np. (np ∈ f(tid1) → ¬ np ∈ f(tid2)) → tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f0(tid1) → ¬ np ∈ f0(tid2), ∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f(tid2) ⊦ |
# ts ≠ 0, tid1 ≠ tid2, ts ≠ ∅, np ∈ f0(tid1), tid2 ∈ ts, tid1 ∈ ts, np ∈ f0(tid2), np ∈ f(tid2), np ∈ f(tid1), ∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f(tid2), ∀ tid1, tid2, np. (np ∈ f(tid1) → ¬ np ∈ f(tid2)) → tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f0(tid1) → ¬ np ∈ f0(tid2) ⊦
| # ts ≠ 0, tid1 ≠ tid2, ts ≠ ∅, np ∈ f0(tid1), tid2 ∈ ts, tid1 ∈ ts, np ∈ f0(tid2), np ∈ f(tid2), np ∈ f(tid1), ∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f(tid2), ∀ tid1, tid2, np. (np ∈ f(tid1) → ¬ np ∈ f(tid2)) → tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f0(tid1) → ¬ np ∈ f0(tid2) ⊦ |
Used terms: tid1, tid2, np
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.