| ⊦ writersOk(p, writers) ∧ oneMember(t, l, writers) ∧ noPending(t, p) → writersOk(p, writers(l := writers(l) -- t)) |
noPending(t, p), oneMember(t, l, writers), writersOk(p, writers), ¬ writersOk(p, writers(l := writers(l) -- t)) ⊦
| noPending(t, p), oneMember(t, l, writers), writersOk(p, writers), ¬ writersOk(p, writers(l := writers(l) -- t)) ⊦ |
∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l. p(l) | t = [] ⊦ (t0 ∈ (l = l0 ⊃ writers(l0) -- t;writers(l0)) → l1 ≠ l0 → ¬ t0 ∈ (l = l1 ⊃ writers(l1) -- t;writers(l1))) ∧ (¬ t0 ∈ (l = l0 ⊃ writers(l0) -- t;writers(l0)) → p(l0) |W | t0 = [])
Used simplifier rules: oneWriter: ⊦ oneMember(t, l, tsf) ↔ (∀ l0. t ∈ tsf(l0) ↔ l0 = l); noPending: ⊦ noPending(t, p) ↔ (∀ l. p(l) | t = []); writersOk: ⊦ writersOk(p, writers) ↔ (∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []));
| ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l. p(l) | t = [] ⊦ (t0 ∈ (l = l0 ⊃ writers(l0) -- t;writers(l0)) → l1 ≠ l0 → ¬ t0 ∈ (l = l1 ⊃ writers(l1) -- t;writers(l1))) ∧ (¬ t0 ∈ (l = l0 ⊃ writers(l0) -- t;writers(l0)) → p(l0) |W | t0 = []) |
l1 ≠ l0, t0 ∈ (l = l1 ⊃ writers(l1) -- t;writers(l1)), t0 ∈ (l = l0 ⊃ writers(l0) -- t;writers(l0)), ∀ l. p(l) | t = [], ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []) ⊦
p(l0) |W | t0 ≠ [], ¬ t0 ∈ (l = l0 ⊃ writers(l0) -- t;writers(l0)), ∀ l. p(l) | t = [], ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []) ⊦
| l1 ≠ l0, t0 ∈ (l = l1 ⊃ writers(l1) -- t;writers(l1)), t0 ∈ (l = l0 ⊃ writers(l0) -- t;writers(l0)), ∀ l. p(l) | t = [], ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []) ⊦ |
# (l = l1 ⊃ writers(l1) -- t;writers(l1)) ≠ 0, # (l = l0 ⊃ writers(l0) -- t;writers(l0)) ≠ 0, (l = l1 ⊃ writers(l1) -- t;writers(l1)) ≠ ∅, (l = l0 ⊃ writers(l0) -- t;writers(l0)) ≠ ∅, l1 ≠ l0, t0 ∈ (l = l1 ⊃ writers(l1) -- t;writers(l1)), t0 ∈ (l = l0 ⊃ writers(l0) -- t;writers(l0)), ∀ l. p(l) | t = [], ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []) ⊦
Used simplifier rules: size-zero-01: ⊦ s ≠ ∅ → # s ≠ 0; (forward) from specification set-basic ne-01: ⊦ a ∈ s → s ≠ ∅; (forward) from specification set-basic
| # (l = l1 ⊃ writers(l1) -- t;writers(l1)) ≠ 0, # (l = l0 ⊃ writers(l0) -- t;writers(l0)) ≠ 0, (l = l1 ⊃ writers(l1) -- t;writers(l1)) ≠ ∅, (l = l0 ⊃ writers(l0) -- t;writers(l0)) ≠ ∅, l1 ≠ l0, t0 ∈ (l = l1 ⊃ writers(l1) -- t;writers(l1)), t0 ∈ (l = l0 ⊃ writers(l0) -- t;writers(l0)), ∀ l. p(l) | t = [], ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []) ⊦ |
l = l1, #(writers(l1) -- t) ≠ 0, # (l = l0 ⊃ writers(l0) -- t;writers(l0)) ≠ 0, (l = l1 ⊃ writers(l1) -- t;writers(l1)) ≠ ∅, (l = l0 ⊃ writers(l0) -- t;writers(l0)) ≠ ∅, l1 ≠ l0, t0 ∈ (l = l0 ⊃ writers(l0) -- t;writers(l0)), t0 ∈ (l = l1 ⊃ writers(l1) -- t;writers(l1)), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l. p(l) | t = [] ⊦
# writers(l1) ≠ 0, # (l = l0 ⊃ writers(l0) -- t;writers(l0)) ≠ 0, (l = l1 ⊃ writers(l1) -- t;writers(l1)) ≠ ∅, (l = l0 ⊃ writers(l0) -- t;writers(l0)) ≠ ∅, l ≠ l1, l1 ≠ l0, t0 ∈ (l = l0 ⊃ writers(l0) -- t;writers(l0)), t0 ∈ (l = l1 ⊃ writers(l1) -- t;writers(l1)), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l. p(l) | t = [] ⊦
| l = l1, #(writers(l1) -- t) ≠ 0, # (l = l0 ⊃ writers(l0) -- t;writers(l0)) ≠ 0, (l = l1 ⊃ writers(l1) -- t;writers(l1)) ≠ ∅, (l = l0 ⊃ writers(l0) -- t;writers(l0)) ≠ ∅, l1 ≠ l0, t0 ∈ (l = l0 ⊃ writers(l0) -- t;writers(l0)), t0 ∈ (l = l1 ⊃ writers(l1) -- t;writers(l1)), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l. p(l) | t = [] ⊦ |
# writers(l1) ≠ 0, # writers(l0) ≠ 0, #(writers(l1) -- t) ≠ 0, l1 ≠ l0, t0 ≠ t, writers(l0) ≠ ∅, writers(l1) ≠ ∅ ++ t, writers(l1) ≠ ∅, t0 ∈ writers(l0), t0 ∈ writers(l1), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l0. t ∈ writers(l0) ↔ l0 = l1, ∀ l. p(l) | t = [] ⊦
Used simplifier rules: ⊦ s -- a = ∅ ↔ s = ∅ ∨ s = ∅ ++ a; (s) size-zero: ⊦ # s ≠ 0 → s ≠ ∅; (forward) from specification set-basic size-zero-01: ⊦ s ≠ ∅ → # s ≠ 0; (forward) from specification set-basic ne-01: ⊦ a ∈ s → s ≠ ∅; (forward) from specification set-basic ⊦ a ∈ s -- a0 ↔ a ≠ a0 ∧ a ∈ s; (s)
| # writers(l1) ≠ 0, # writers(l0) ≠ 0, #(writers(l1) -- t) ≠ 0, l1 ≠ l0, t0 ≠ t, writers(l0) ≠ ∅, writers(l1) ≠ ∅ ++ t, writers(l1) ≠ ∅, t0 ∈ writers(l0), t0 ∈ writers(l1), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l0. t ∈ writers(l0) ↔ l0 = l1, ∀ l. p(l) | t = [] ⊦ |
# writers(l1) ≠ 0, # writers(l0) ≠ 0, #(writers(l1) -- t) ≠ 0, l1 ≠ l0, t0 ≠ t, writers(l0) ≠ ∅, writers(l1) ≠ ∅ ++ t, writers(l1) ≠ ∅, t0 ∈ writers(l1), t0 ∈ writers(l0), t0 ∈ writers(l1) → (∀ l0. l0 ≠ l1 → ¬ t0 ∈ writers(l0)), ¬ t0 ∈ writers(l1) → p(l1) |W | t0 = [], ∀ l. p(l) | t = [], ∀ l0. t ∈ writers(l0) ↔ l0 = l1, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []) ⊦
Used terms: l1, t0
| # writers(l1) ≠ 0, # writers(l0) ≠ 0, #(writers(l1) -- t) ≠ 0, l1 ≠ l0, t0 ≠ t, writers(l0) ≠ ∅, writers(l1) ≠ ∅ ++ t, writers(l1) ≠ ∅, t0 ∈ writers(l1), t0 ∈ writers(l0), t0 ∈ writers(l1) → (∀ l0. l0 ≠ l1 → ¬ t0 ∈ writers(l0)), ¬ t0 ∈ writers(l1) → p(l1) |W | t0 = [], ∀ l. p(l) | t = [], ∀ l0. t ∈ writers(l0) ↔ l0 = l1, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []) ⊦ |
# writers(l1) ≠ 0, # writers(l0) ≠ 0, #(writers(l1) -- t) ≠ 0, l1 ≠ l0, t0 ≠ t, writers(l0) ≠ ∅, writers(l1) ≠ ∅ ++ t, writers(l1) ≠ ∅, t0 ∈ writers(l0), t0 ∈ writers(l1), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l0. t ∈ writers(l0) ↔ l0 = l1, ∀ l. p(l) | t = [], ∀ l0. l0 ≠ l1 → ¬ t0 ∈ writers(l0) ⊦
| # writers(l1) ≠ 0, # writers(l0) ≠ 0, #(writers(l1) -- t) ≠ 0, l1 ≠ l0, t0 ≠ t, writers(l0) ≠ ∅, writers(l1) ≠ ∅ ++ t, writers(l1) ≠ ∅, t0 ∈ writers(l0), t0 ∈ writers(l1), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l0. t ∈ writers(l0) ↔ l0 = l1, ∀ l. p(l) | t = [], ∀ l0. l0 ≠ l1 → ¬ t0 ∈ writers(l0) ⊦ |
Used terms: l0
| # writers(l1) ≠ 0, # (l = l0 ⊃ writers(l0) -- t;writers(l0)) ≠ 0, (l = l1 ⊃ writers(l1) -- t;writers(l1)) ≠ ∅, (l = l0 ⊃ writers(l0) -- t;writers(l0)) ≠ ∅, l ≠ l1, l1 ≠ l0, t0 ∈ (l = l0 ⊃ writers(l0) -- t;writers(l0)), t0 ∈ (l = l1 ⊃ writers(l1) -- t;writers(l1)), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l. p(l) | t = [] ⊦ |
# writers(l1) ≠ 0, # (l = l0 ⊃ writers(l0) -- t;writers(l0)) ≠ 0, (l = l0 ⊃ writers(l0) -- t;writers(l0)) ≠ ∅, l ≠ l1, l1 ≠ l0, writers(l1) ≠ ∅, t0 ∈ (l = l0 ⊃ writers(l0) -- t;writers(l0)), t0 ∈ writers(l1), ∀ l. p(l) | t = [], ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []) ⊦
Used simplifier rules: size-zero-01: ⊦ s ≠ ∅ → # s ≠ 0; (forward) from specification set-basic ne-01: ⊦ a ∈ s → s ≠ ∅; (forward) from specification set-basic
| # writers(l1) ≠ 0, # (l = l0 ⊃ writers(l0) -- t;writers(l0)) ≠ 0, (l = l0 ⊃ writers(l0) -- t;writers(l0)) ≠ ∅, l ≠ l1, l1 ≠ l0, writers(l1) ≠ ∅, t0 ∈ (l = l0 ⊃ writers(l0) -- t;writers(l0)), t0 ∈ writers(l1), ∀ l. p(l) | t = [], ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []) ⊦ |
l = l0, #(writers(l0) -- t) ≠ 0, # writers(l1) ≠ 0, (l = l0 ⊃ writers(l0) -- t;writers(l0)) ≠ ∅, l ≠ l1, l1 ≠ l0, writers(l1) ≠ ∅, t0 ∈ writers(l1), t0 ∈ (l = l0 ⊃ writers(l0) -- t;writers(l0)), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l. p(l) | t = [] ⊦
# writers(l0) ≠ 0, # writers(l1) ≠ 0, (l = l0 ⊃ writers(l0) -- t;writers(l0)) ≠ ∅, l ≠ l0, l ≠ l1, l1 ≠ l0, writers(l1) ≠ ∅, t0 ∈ writers(l1), t0 ∈ (l = l0 ⊃ writers(l0) -- t;writers(l0)), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l. p(l) | t = [] ⊦
| l = l0, #(writers(l0) -- t) ≠ 0, # writers(l1) ≠ 0, (l = l0 ⊃ writers(l0) -- t;writers(l0)) ≠ ∅, l ≠ l1, l1 ≠ l0, writers(l1) ≠ ∅, t0 ∈ writers(l1), t0 ∈ (l = l0 ⊃ writers(l0) -- t;writers(l0)), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l. p(l) | t = [] ⊦ |
# writers(l0) ≠ 0, # writers(l1) ≠ 0, #(writers(l0) -- t) ≠ 0, l1 ≠ l0, t0 ≠ t, writers(l0) ≠ ∅ ++ t, writers(l0) ≠ ∅, writers(l1) ≠ ∅, t0 ∈ writers(l0), t0 ∈ writers(l1), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l1. t ∈ writers(l1) ↔ l1 = l0, ∀ l. p(l) | t = [] ⊦
Used simplifier rules: ⊦ s -- a = ∅ ↔ s = ∅ ∨ s = ∅ ++ a; (s) size-zero: ⊦ # s ≠ 0 → s ≠ ∅; (forward) from specification set-basic size-zero-01: ⊦ s ≠ ∅ → # s ≠ 0; (forward) from specification set-basic ne-01: ⊦ a ∈ s → s ≠ ∅; (forward) from specification set-basic ⊦ a ∈ s -- a0 ↔ a ≠ a0 ∧ a ∈ s; (s)
| # writers(l0) ≠ 0, # writers(l1) ≠ 0, #(writers(l0) -- t) ≠ 0, l1 ≠ l0, t0 ≠ t, writers(l0) ≠ ∅ ++ t, writers(l0) ≠ ∅, writers(l1) ≠ ∅, t0 ∈ writers(l0), t0 ∈ writers(l1), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l1. t ∈ writers(l1) ↔ l1 = l0, ∀ l. p(l) | t = [] ⊦ |
# writers(l0) ≠ 0, # writers(l1) ≠ 0, #(writers(l0) -- t) ≠ 0, l1 ≠ l0, t0 ≠ t, writers(l0) ≠ ∅ ++ t, writers(l0) ≠ ∅, writers(l1) ≠ ∅, t0 ∈ writers(l1), t0 ∈ writers(l0), t0 ∈ writers(l1) → (∀ l0. l0 ≠ l1 → ¬ t0 ∈ writers(l0)), ¬ t0 ∈ writers(l1) → p(l1) |W | t0 = [], ∀ l. p(l) | t = [], ∀ l1. t ∈ writers(l1) ↔ l1 = l0, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []) ⊦
Used terms: l1, t0
| # writers(l0) ≠ 0, # writers(l1) ≠ 0, #(writers(l0) -- t) ≠ 0, l1 ≠ l0, t0 ≠ t, writers(l0) ≠ ∅ ++ t, writers(l0) ≠ ∅, writers(l1) ≠ ∅, t0 ∈ writers(l1), t0 ∈ writers(l0), t0 ∈ writers(l1) → (∀ l0. l0 ≠ l1 → ¬ t0 ∈ writers(l0)), ¬ t0 ∈ writers(l1) → p(l1) |W | t0 = [], ∀ l. p(l) | t = [], ∀ l1. t ∈ writers(l1) ↔ l1 = l0, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []) ⊦ |
# writers(l0) ≠ 0, # writers(l1) ≠ 0, #(writers(l0) -- t) ≠ 0, l1 ≠ l0, t0 ≠ t, writers(l0) ≠ ∅ ++ t, writers(l0) ≠ ∅, writers(l1) ≠ ∅, t0 ∈ writers(l0), t0 ∈ writers(l1), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l1. t ∈ writers(l1) ↔ l1 = l0, ∀ l. p(l) | t = [], ∀ l0. l0 ≠ l1 → ¬ t0 ∈ writers(l0) ⊦
| # writers(l0) ≠ 0, # writers(l1) ≠ 0, #(writers(l0) -- t) ≠ 0, l1 ≠ l0, t0 ≠ t, writers(l0) ≠ ∅ ++ t, writers(l0) ≠ ∅, writers(l1) ≠ ∅, t0 ∈ writers(l0), t0 ∈ writers(l1), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l1. t ∈ writers(l1) ↔ l1 = l0, ∀ l. p(l) | t = [], ∀ l0. l0 ≠ l1 → ¬ t0 ∈ writers(l0) ⊦ |
Used terms: l0
| # writers(l0) ≠ 0, # writers(l1) ≠ 0, (l = l0 ⊃ writers(l0) -- t;writers(l0)) ≠ ∅, l ≠ l0, l ≠ l1, l1 ≠ l0, writers(l1) ≠ ∅, t0 ∈ writers(l1), t0 ∈ (l = l0 ⊃ writers(l0) -- t;writers(l0)), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l. p(l) | t = [] ⊦ |
# writers(l0) ≠ 0, # writers(l1) ≠ 0, l ≠ l0, l ≠ l1, l1 ≠ l0, writers(l1) ≠ ∅, writers(l0) ≠ ∅, t0 ∈ writers(l1), t0 ∈ writers(l0), ∀ l. p(l) | t = [], ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []) ⊦
Used simplifier rules: size-zero-01: ⊦ s ≠ ∅ → # s ≠ 0; (forward) from specification set-basic ne-01: ⊦ a ∈ s → s ≠ ∅; (forward) from specification set-basic
| # writers(l0) ≠ 0, # writers(l1) ≠ 0, l ≠ l0, l ≠ l1, l1 ≠ l0, writers(l1) ≠ ∅, writers(l0) ≠ ∅, t0 ∈ writers(l1), t0 ∈ writers(l0), ∀ l. p(l) | t = [], ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []) ⊦ |
# writers(l0) ≠ 0, # writers(l1) ≠ 0, l ≠ l0, l ≠ l1, l1 ≠ l0, writers(l1) ≠ ∅, writers(l0) ≠ ∅, t0 ∈ writers(l0), t0 ∈ writers(l1), t0 ∈ writers(l0) → (∀ l1. l1 ≠ l0 → ¬ t0 ∈ writers(l1)), ¬ t0 ∈ writers(l0) → p(l0) |W | t0 = [], ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l. p(l) | t = [] ⊦
Used terms: l0, t0
| # writers(l0) ≠ 0, # writers(l1) ≠ 0, l ≠ l0, l ≠ l1, l1 ≠ l0, writers(l1) ≠ ∅, writers(l0) ≠ ∅, t0 ∈ writers(l0), t0 ∈ writers(l1), t0 ∈ writers(l0) → (∀ l1. l1 ≠ l0 → ¬ t0 ∈ writers(l1)), ¬ t0 ∈ writers(l0) → p(l0) |W | t0 = [], ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l. p(l) | t = [] ⊦ |
# writers(l0) ≠ 0, # writers(l1) ≠ 0, l ≠ l0, l ≠ l1, l1 ≠ l0, writers(l1) ≠ ∅, writers(l0) ≠ ∅, t0 ∈ writers(l1), t0 ∈ writers(l0), ∀ l. p(l) | t = [], ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l1. l1 ≠ l0 → ¬ t0 ∈ writers(l1) ⊦
| # writers(l0) ≠ 0, # writers(l1) ≠ 0, l ≠ l0, l ≠ l1, l1 ≠ l0, writers(l1) ≠ ∅, writers(l0) ≠ ∅, t0 ∈ writers(l1), t0 ∈ writers(l0), ∀ l. p(l) | t = [], ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l1. l1 ≠ l0 → ¬ t0 ∈ writers(l1) ⊦ |
Used terms: l1
| p(l0) |W | t0 ≠ [], ¬ t0 ∈ (l = l0 ⊃ writers(l0) -- t;writers(l0)), ∀ l. p(l) | t = [], ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []) ⊦ |
l = l0, p(l0) |W | t0 ≠ [], ¬ t0 ∈ writers(l0) -- t, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l. p(l) | t = [] ⊦
l ≠ l0, p(l0) |W | t0 ≠ [], ¬ t0 ∈ writers(l0), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l. p(l) | t = [] ⊦
| l = l0, p(l0) |W | t0 ≠ [], ¬ t0 ∈ writers(l0) -- t, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l. p(l) | t = [] ⊦ |
p(l0) |W | t0 ≠ [], ∀ l. p(l) | t = [], ∀ l1. t ∈ writers(l1) ↔ l1 = l0, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []) ⊦ t0 ≠ t ∧ t0 ∈ writers(l0)
Used simplifier rules: ⊦ a ∈ s -- a0 ↔ a ≠ a0 ∧ a ∈ s; (s)
| p(l0) |W | t0 ≠ [], ∀ l. p(l) | t = [], ∀ l1. t ∈ writers(l1) ↔ l1 = l0, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []) ⊦ t0 ≠ t ∧ t0 ∈ writers(l0) |
t0 = t, p(l0) |W | t0 ≠ [], ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l1. t ∈ writers(l1) ↔ l1 = l0, ∀ l. p(l) | t = [] ⊦
p(l0) |W | t0 ≠ [], ¬ t0 ∈ writers(l0), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l1. t ∈ writers(l1) ↔ l1 = l0, ∀ l. p(l) | t = [] ⊦
| t0 = t, p(l0) |W | t0 ≠ [], ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l1. t ∈ writers(l1) ↔ l1 = l0, ∀ l. p(l) | t = [] ⊦ |
p(l0) |W | t ≠ [], ∀ l. p(l) | t = [], ∀ l1. t ∈ writers(l1) ↔ l1 = l0, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []) ⊦
| p(l0) |W | t ≠ [], ∀ l. p(l) | t = [], ∀ l1. t ∈ writers(l1) ↔ l1 = l0, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []) ⊦ |
p(l0) | t = [], p(l0) |W | t ≠ [], ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l1. t ∈ writers(l1) ↔ l1 = l0 ⊦
Used terms: l0
| p(l0) | t = [], p(l0) |W | t ≠ [], ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l1. t ∈ writers(l1) ↔ l1 = l0 ⊦ |
⊦ x = [] ↔ ¬(∃ a. a ∈ x)
p(l0) | t = [], ∀ l1. t ∈ writers(l1) ↔ l1 = l0, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∃ a. a ∈ p(l0) |W | t ⊦
Used terms: p(l0) |W | t
| ⊦ x = [] ↔ ¬(∃ a. a ∈ x) |
| p(l0) | t = [], ∀ l1. t ∈ writers(l1) ↔ l1 = l0, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∃ a. a ∈ p(l0) |W | t ⊦ |
p(l0) | t = [], fow ∈ p(l0) |W | t, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l1. t ∈ writers(l1) ↔ l1 = l0 ⊦
| p(l0) | t = [], fow ∈ p(l0) |W | t, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l1. t ∈ writers(l1) ↔ l1 = l0 ⊦ |
⊦ x = [] ↔ ¬(∃ a. a ∈ x)
fow ∈ p(l0) |W | t, ∀ l1. t ∈ writers(l1) ↔ l1 = l0, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ a. ¬ a ∈ p(l0) | t ⊦
Used terms: p(l0) | t
| ⊦ x = [] ↔ ¬(∃ a. a ∈ x) |
| fow ∈ p(l0) |W | t, ∀ l1. t ∈ writers(l1) ↔ l1 = l0, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ a. ¬ a ∈ p(l0) | t ⊦ |
fow ∈ p(l0) |W | t, ¬ fow ∈ p(l0) | t, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l1. t ∈ writers(l1) ↔ l1 = l0 ⊦
Used terms: fow
| fow ∈ p(l0) |W | t, ¬ fow ∈ p(l0) | t, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l1. t ∈ writers(l1) ↔ l1 = l0 ⊦ |
⊦ fowl | t = fowl.filter(λ fow. fow.tid = t)
fow ∈ p(l0) |W | t, ¬ fow ∈ p(l0).filter(λ fow. fow.tid = t), ∀ l1. t ∈ writers(l1) ↔ l1 = l0, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []) ⊦
Used terms: p(l0), t
| ⊦ fowl | t = fowl.filter(λ fow. fow.tid = t) |
| fow ∈ p(l0) |W | t, ¬ fow ∈ p(l0).filter(λ fow. fow.tid = t), ∀ l1. t ∈ writers(l1) ↔ l1 = l0, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []) ⊦ |
fow ∈ p(l0) |W | t, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l1. t ∈ writers(l1) ↔ l1 = l0 ⊦ fow ∈ p(l0) ∧ fow.tid = t
Used simplifier rules: ⊦ a ∈ x.filter(p) ↔ a ∈ x ∧ p(a); (s)
| fow ∈ p(l0) |W | t, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l1. t ∈ writers(l1) ↔ l1 = l0 ⊦ fow ∈ p(l0) ∧ fow.tid = t |
⊦ fowl | t = fowl.filter(λ fow. fow.tid = t)
fow ∈ p(l0) |W.filter(λ fow. fow.tid = t), ∀ l1. t ∈ writers(l1) ↔ l1 = l0, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []) ⊦ fow ∈ p(l0) ∧ fow.tid = t
Used terms: p(l0) |W, t
| ⊦ fowl | t = fowl.filter(λ fow. fow.tid = t) |
| fow ∈ p(l0) |W.filter(λ fow. fow.tid = t), ∀ l1. t ∈ writers(l1) ↔ l1 = l0, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []) ⊦ fow ∈ p(l0) ∧ fow.tid = t |
fow ∈ p(l0) |W, ¬ fow ∈ p(l0), ∀ l1. fow.tid ∈ writers(l1) ↔ l1 = l0, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []) ⊦
Used simplifier rules: ⊦ a ∈ x.filter(p) ↔ a ∈ x ∧ p(a); (s)
| fow ∈ p(l0) |W, ¬ fow ∈ p(l0), ∀ l1. fow.tid ∈ writers(l1) ↔ l1 = l0, ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []) ⊦ |
⊦ fowl |W = fowl.filter(λ fow. fow.W?)
Used simplifier rules: ⊦ a ∈ x.filter(p) ↔ a ∈ x ∧ p(a); (s) Used terms: p(l0)
| ⊦ fowl |W = fowl.filter(λ fow. fow.W?) |
| p(l0) |W | t0 ≠ [], ¬ t0 ∈ writers(l0), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l1. t ∈ writers(l1) ↔ l1 = l0, ∀ l. p(l) | t = [] ⊦ |
Used terms: l0, t0
| l ≠ l0, p(l0) |W | t0 ≠ [], ¬ t0 ∈ writers(l0), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = []), ∀ l0. t ∈ writers(l0) ↔ l0 = l, ∀ l. p(l) | t = [] ⊦ |
Used terms: l0, t0
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.