| a ∈ st ⊦ ∃ st0. ¬ a ∈ st0 ∧ st = st0(a := st(a)) |
a ∈ st0(a0 := d), ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a0 := d)(a))
Used simplifier rules: gen: ⊦ ; In-empty: ⊦ ¬ a ∈ ∅;
| a ∈ st0(a0 := d), ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a0 := d)(a)) |
⊦ a ∈ st(b := d) ↔ a = b ∨ a ∈ st
∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))), a = a0 ∨ a ∈ st0 ⊦ ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a0 := d)(a))
Used terms: d, a0, st0, a
| ⊦ a ∈ st(b := d) ↔ a = b ∨ a ∈ st |
| ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))), a = a0 ∨ a ∈ st0 ⊦ ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a0 := d)(a)) |
a = a0, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a0 := d)(a))
a ∈ st0, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a0 := d)(a))
| a = a0, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a0 := d)(a)) |
∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st1. ¬ a0 ∈ st1 ∧ st0(a0 := d) = st1(a0 := d)
Used simplifier rules: At-same: ⊦ st(a := d)(a) = d;
| ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st1. ¬ a0 ∈ st1 ∧ st0(a0 := d) = st1(a0 := d) |
∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))), a0 ∈ st0 → (∃ st1. ¬ a0 ∈ st1 ∧ st0 = st1(a0 := st0(a0))) ⊦ ∃ st1. ¬ a0 ∈ st1 ∧ st0(a0 := d) = st1(a0 := d)
Used terms: a0
| ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))), a0 ∈ st0 → (∃ st1. ¬ a0 ∈ st1 ∧ st0 = st1(a0 := st0(a0))) ⊦ ∃ st1. ¬ a0 ∈ st1 ∧ st0(a0 := d) = st1(a0 := d) |
∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))), a0 ∈ st0 → ¬ a0 ∈ st1 ∧ st0 = st1(a0 := st0(a0)) ⊦ ∃ st1. ¬ a0 ∈ st1 ∧ st0(a0 := d) = st1(a0 := d)
| ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))), a0 ∈ st0 → ¬ a0 ∈ st1 ∧ st0 = st1(a0 := st0(a0)) ⊦ ∃ st1. ¬ a0 ∈ st1 ∧ st0(a0 := d) = st1(a0 := d) |
a0 ∈ st0, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))), a0 ∈ st0 → ¬ a0 ∈ st1 ∧ st0 = st1(a0 := st0(a0)) ⊦ ∃ st1. ¬ a0 ∈ st1 ∧ st0(a0 := d) = st1(a0 := d)
Used simplifier rules: inj-put: ⊦ ¬ a ∈ st ∧ ¬ a ∈ st0 → (st(a := d) = st0(a := d) ↔ st = st0); Used formulas: a0 ∈ st0
| a0 ∈ st0, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))), a0 ∈ st0 → ¬ a0 ∈ st1 ∧ st0 = st1(a0 := st0(a0)) ⊦ ∃ st1. ¬ a0 ∈ st1 ∧ st0(a0 := d) = st1(a0 := d) |
st0 = st1(a0 := st0(a0)), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st1. ¬ a0 ∈ st1 ∧ st0(a0 := d) = st1(a0 := d)
| st0 = st1(a0 := st0(a0)), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st1. ¬ a0 ∈ st1 ∧ st0(a0 := d) = st1(a0 := d) |
st0 = st1(a0 := st0(a0)), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ¬ a0 ∈ st1 ∧ st0(a0 := d) = st1(a0 := d), ∃ st1. ¬ a0 ∈ st1 ∧ st0(a0 := d) = st1(a0 := d)
Used terms: st1
| st0 = st1(a0 := st0(a0)), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ¬ a0 ∈ st1 ∧ st0(a0 := d) = st1(a0 := d), ∃ st1. ¬ a0 ∈ st1 ∧ st0(a0 := d) = st1(a0 := d) |
st0 = st1(a0 := st0(a0)), st0(a0 := d) ≠ st1(a0 := d), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st1. ¬ a0 ∈ st1 ∧ st0(a0 := d) = st1(a0 := d)
| st0 = st1(a0 := st0(a0)), st0(a0 := d) ≠ st1(a0 := d), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st1. ¬ a0 ∈ st1 ∧ st0(a0 := d) = st1(a0 := d) |
Used simplifier rules: insins: ⊦ st(a := d0)(a := d) = st(a := d); inj-put: ⊦ ¬ a ∈ st ∧ ¬ a ∈ st0 → (st(a := d) = st0(a := d) ↔ st = st0);
| a ∈ st0, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a0 := d)(a)) |
a ∈ st0, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))), a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a0 := d)(a))
Used terms: a
| a ∈ st0, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))), a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a0 := d)(a)) |
st0 = st1(a := st0(a)), a ∈ st0, ¬ a ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a0 := d)(a))
| st0 = st1(a := st0(a)), a ∈ st0, ¬ a ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a0 := d)(a)) |
⊦ a ≠ b → st(b := d)(a) = st(a)
a = a0, st0 = st1(a := st0(a)), a ∈ st0, ¬ a ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a0 := d)(a))
st0 = st1(a := st0(a)), a ≠ a0, a ∈ st0, ¬ a ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a))
Used terms: a, d, a0, st0
| ⊦ a ≠ b → st(b := d)(a) = st(a) |
| a = a0, st0 = st1(a := st0(a)), a ∈ st0, ¬ a ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a0 := d)(a)) |
st0 = st1(a0 := st0(a0)), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d)
Used simplifier rules: At-same: ⊦ st(a := d)(a) = d;
| st0 = st1(a0 := st0(a0)), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d) |
st0 = st1(a0 := st0(a0)), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ¬ a0 ∈ st1 ∧ st0(a0 := d) = st1(a0 := d), ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d)
Used terms: st1
| st0 = st1(a0 := st0(a0)), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ¬ a0 ∈ st1 ∧ st0(a0 := d) = st1(a0 := d), ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d) |
st0 = st1(a0 := st0(a0)), st0(a0 := d) ≠ st1(a0 := d), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d)
| st0 = st1(a0 := st0(a0)), st0(a0 := d) ≠ st1(a0 := d), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d) |
⊦ st1 = st2 ↔ (∀ a. (a ∈ st1 ↔ a ∈ st2) ∧ st1(a) = st2(a))
st0 = st1(a0 := st0(a0)), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))), ∃ a. ¬((a ∈ st0(a0 := d) ↔ a ∈ st1(a0 := d)) ∧ st0(a0 := d)(a) = st1(a0 := d)(a)) ⊦ ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d)
Used terms: st1(a0 := d), st0(a0 := d)
| ⊦ st1 = st2 ↔ (∀ a. (a ∈ st1 ↔ a ∈ st2) ∧ st1(a) = st2(a)) |
| st0 = st1(a0 := st0(a0)), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))), ∃ a. ¬((a ∈ st0(a0 := d) ↔ a ∈ st1(a0 := d)) ∧ st0(a0 := d)(a) = st1(a0 := d)(a)) ⊦ ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d) |
st0 = st1(a0 := st0(a0)), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ (a ∈ st0(a0 := d) ↔ a ∈ st1(a0 := d)) ∧ st0(a0 := d)(a) = st1(a0 := d)(a), ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d)
| st0 = st1(a0 := st0(a0)), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ (a ∈ st0(a0 := d) ↔ a ∈ st1(a0 := d)) ∧ st0(a0 := d)(a) = st1(a0 := d)(a), ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d) |
st0 = st1(a0 := st0(a0)), ¬(a ∈ st0(a0 := d) ↔ a ∈ st1(a0 := d)), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d)
st0 = st1(a0 := st0(a0)), st0(a0 := d)(a) ≠ st1(a0 := d)(a), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d)
| st0 = st1(a0 := st0(a0)), ¬(a ∈ st0(a0 := d) ↔ a ∈ st1(a0 := d)), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d) |
⊦ a ∈ st(b := d) ↔ a = b ∨ a ∈ st
st0 = st1(a0 := st0(a0)), ¬(a = a0 ∨ a ∈ st0 ↔ a ∈ st1(a0 := d)), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d)
Used terms: d, a0, st0, a
| ⊦ a ∈ st(b := d) ↔ a = b ∨ a ∈ st |
| st0 = st1(a0 := st0(a0)), ¬(a = a0 ∨ a ∈ st0 ↔ a ∈ st1(a0 := d)), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d) |
st0 = st1(a0 := st0(a0)), ¬(a ∈ st0 ↔ a ∈ st1(a0 := d)), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d)
| st0 = st1(a0 := st0(a0)), ¬(a ∈ st0 ↔ a ∈ st1(a0 := d)), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d) |
st0 = st1(a0 := st0(a0)), a ∈ st0, a0 ∈ st0, ¬ a ∈ st1(a0 := d), ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d)
st0 = st1(a0 := st0(a0)), a ∈ st1(a0 := d), a0 ∈ st0, ¬ a ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d)
| st0 = st1(a0 := st0(a0)), a ∈ st0, a0 ∈ st0, ¬ a ∈ st1(a0 := d), ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d) |
Used simplifier rules: In-insert: ⊦ a ∈ st(b := d) ↔ a = b ∨ a ∈ st;
| st0 = st1(a0 := st0(a0)), a ∈ st1(a0 := d), a0 ∈ st0, ¬ a ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d) |
Used simplifier rules: In-insert: ⊦ a ∈ st(b := d) ↔ a = b ∨ a ∈ st;
| st0 = st1(a0 := st0(a0)), st0(a0 := d)(a) ≠ st1(a0 := d)(a), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d) |
⊦ a ≠ b → st(b := d)(a) = st(a)
st0 = st1(a0 := st0(a0)), a ≠ a0, st0(a) ≠ st1(a0 := d)(a), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d)
Used simplifier rules: At-same: ⊦ st(a := d)(a) = d; Used terms: a, d, a0, st0
| ⊦ a ≠ b → st(b := d)(a) = st(a) |
| st0 = st1(a0 := st0(a0)), a ≠ a0, st0(a) ≠ st1(a0 := d)(a), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d) |
st0 = st1(a0 := st0(a0)), a ≠ a0, st0(a) ≠ st1(a), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d)
Used simplifier rules: At-other: ⊦ a ≠ b → st(b := d)(a) = st(a);
| st0 = st1(a0 := st0(a0)), a ≠ a0, st0(a) ≠ st1(a), a0 ∈ st0, ¬ a0 ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st. ¬ a0 ∈ st ∧ st0(a0 := d) = st(a0 := d) |
Used simplifier rules: At-other: ⊦ a ≠ b → st(b := d)(a) = st(a);
| st0 = st1(a := st0(a)), a ≠ a0, a ∈ st0, ¬ a ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a)) |
st0 = st1(a := st0(a)), a ≠ a0, a ∈ st0, ¬ a ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a))
| st0 = st1(a := st0(a)), a ≠ a0, a ∈ st0, ¬ a ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a)) |
st0 = st1(a := st0(a)), a ≠ a0, a ∈ st0, ¬ a ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ¬ a ∈ st1(a0 := d) ∧ st0(a0 := d) = st1(a0 := d)(a := st0(a)), ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a))
Used terms: st1(a0 := d)
| st0 = st1(a := st0(a)), a ≠ a0, a ∈ st0, ¬ a ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ¬ a ∈ st1(a0 := d) ∧ st0(a0 := d) = st1(a0 := d)(a := st0(a)), ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a)) |
st0 = st1(a := st0(a)), a ≠ a0, st0(a0 := d) ≠ st1(a0 := d)(a := st0(a)), a ∈ st0, ¬ a ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a))
Used simplifier rules: In-insert: ⊦ a ∈ st(b := d) ↔ a = b ∨ a ∈ st;
| st0 = st1(a := st0(a)), a ≠ a0, st0(a0 := d) ≠ st1(a0 := d)(a := st0(a)), a ∈ st0, ¬ a ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a)) |
⊦ st1 = st2 ↔ (∀ a. (a ∈ st1 ↔ a ∈ st2) ∧ st1(a) = st2(a))
st0 = st1(a := st0(a)), a ≠ a0, a ∈ st0, ¬ a ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))), ∃ a1. ¬((a1 ∈ st0(a0 := d) ↔ a1 ∈ st1(a0 := d)(a := st0(a))) ∧ st0(a0 := d)(a1) = st1(a0 := d)(a := st0(a))(a1)) ⊦ ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a))
Used terms: st1(a0 := d)(a := st0(a)), st0(a0 := d)
| ⊦ st1 = st2 ↔ (∀ a. (a ∈ st1 ↔ a ∈ st2) ∧ st1(a) = st2(a)) |
| st0 = st1(a := st0(a)), a ≠ a0, a ∈ st0, ¬ a ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))), ∃ a1. ¬((a1 ∈ st0(a0 := d) ↔ a1 ∈ st1(a0 := d)(a := st0(a))) ∧ st0(a0 := d)(a1) = st1(a0 := d)(a := st0(a))(a1)) ⊦ ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a)) |
st0 = st1(a := st0(a)), a ≠ a0, a ∈ st0, ¬ a ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ (a1 ∈ st0(a0 := d) ↔ a1 ∈ st1(a0 := d)(a := st0(a))) ∧ st0(a0 := d)(a1) = st1(a0 := d)(a := st0(a))(a1), ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a))
| st0 = st1(a := st0(a)), a ≠ a0, a ∈ st0, ¬ a ∈ st1, ∀ a. a ∈ st0 → (∃ st1. ¬ a ∈ st1 ∧ st0 = st1(a := st0(a))) ⊦ (a1 ∈ st0(a0 := d) ↔ a1 ∈ st1(a0 := d)(a := st0(a))) ∧ st0(a0 := d)(a1) = st1(a0 := d)(a := st0(a))(a1), ∃ st1. ¬ a ∈ st1 ∧ st0(a0 := d) = st1(a := st0(a)) |
a ≠ a0, a ∈ st1(a := st0(a)), ¬ a ∈ st1, ∀ a0. a0 ∈ st1(a := st0(a)) → (∃ st. ¬ a0 ∈ st ∧ st1(a := st0(a)) = st(a0 := st1(a := st0(a))(a0))) ⊦ (a1 ∈ st1(a := st0(a))(a0 := d) ↔ a1 ∈ st1(a0 := d)(a := st1(a := st0(a))(a))) ∧ st1(a := st0(a))(a0 := d)(a1) = st1(a0 := d)(a := st1(a := st0(a))(a))(a1), ∃ st. ¬ a ∈ st ∧ st1(a := st0(a))(a0 := d) = st(a := st1(a := st0(a))(a))
| a ≠ a0, a ∈ st1(a := st0(a)), ¬ a ∈ st1, ∀ a0. a0 ∈ st1(a := st0(a)) → (∃ st. ¬ a0 ∈ st ∧ st1(a := st0(a)) = st(a0 := st1(a := st0(a))(a0))) ⊦ (a1 ∈ st1(a := st0(a))(a0 := d) ↔ a1 ∈ st1(a0 := d)(a := st1(a := st0(a))(a))) ∧ st1(a := st0(a))(a0 := d)(a1) = st1(a0 := d)(a := st1(a := st0(a))(a))(a1), ∃ st. ¬ a ∈ st ∧ st1(a := st0(a))(a0 := d) = st(a := st1(a := st0(a))(a)) |
a ≠ a0, ¬ a ∈ st1, ∀ a0. a0 ∈ st1(a := st0(a)) → (∃ st. ¬ a0 ∈ st ∧ st1(a := st0(a)) = st(a0 := st1(a := st0(a))(a0))) ⊦ (a1 ∈ st1(a := st0(a))(a0 := d) ↔ a1 ∈ st1(a0 := d)(a := st0(a))) ∧ st1(a := st0(a))(a0 := d)(a1) = st1(a0 := d)(a := st0(a))(a1), ∃ st. ¬ a ∈ st ∧ st1(a := st0(a))(a0 := d) = st(a := st0(a))
Used simplifier rules: In-insert: ⊦ a ∈ st(b := d) ↔ a = b ∨ a ∈ st; At-same: ⊦ st(a := d)(a) = d;
| a ≠ a0, ¬ a ∈ st1, ∀ a0. a0 ∈ st1(a := st0(a)) → (∃ st. ¬ a0 ∈ st ∧ st1(a := st0(a)) = st(a0 := st1(a := st0(a))(a0))) ⊦ (a1 ∈ st1(a := st0(a))(a0 := d) ↔ a1 ∈ st1(a0 := d)(a := st0(a))) ∧ st1(a := st0(a))(a0 := d)(a1) = st1(a0 := d)(a := st0(a))(a1), ∃ st. ¬ a ∈ st ∧ st1(a := st0(a))(a0 := d) = st(a := st0(a)) |
a ≠ a0, a1 ≠ a0, ¬ a ∈ st1, ∀ a0. a0 ∈ st1(a := st0(a)) → (∃ st. ¬ a0 ∈ st ∧ st1(a := st0(a)) = st(a0 := st1(a := st0(a))(a0))) ⊦ (a1 ∈ st1(a := st0(a))(a0 := d) ↔ a1 ∈ st1(a0 := d)(a := st0(a))) ∧ st1(a := st0(a))(a0 := d)(a1) = st1(a0 := d)(a := st0(a))(a1), ∃ st. ¬ a ∈ st ∧ st1(a := st0(a))(a0 := d) = st(a := st0(a))
Used simplifier rules: in-neq: ⊦ a ≠ b → (a ∈ st(b := d) ↔ a ∈ st); At-other: ⊦ a ≠ b → st(b := d)(a) = st(a); At-same: ⊦ st(a := d)(a) = d; In-insert: ⊦ a ∈ st(b := d) ↔ a = b ∨ a ∈ st; Used formulas: a1 = a0
| a ≠ a0, a1 ≠ a0, ¬ a ∈ st1, ∀ a0. a0 ∈ st1(a := st0(a)) → (∃ st. ¬ a0 ∈ st ∧ st1(a := st0(a)) = st(a0 := st1(a := st0(a))(a0))) ⊦ (a1 ∈ st1(a := st0(a))(a0 := d) ↔ a1 ∈ st1(a0 := d)(a := st0(a))) ∧ st1(a := st0(a))(a0 := d)(a1) = st1(a0 := d)(a := st0(a))(a1), ∃ st. ¬ a ∈ st ∧ st1(a := st0(a))(a0 := d) = st(a := st0(a)) |
a ≠ a0, a1 ≠ a0, ¬ a ∈ st1, ∀ a0. a0 ∈ st1(a := st0(a)) → (∃ st. ¬ a0 ∈ st ∧ st1(a := st0(a)) = st(a0 := st1(a := st0(a))(a0))) ⊦ (a1 ∈ st1(a := st0(a)) ↔ a1 ∈ st1(a0 := d)(a := st0(a))) ∧ st1(a := st0(a))(a1) = st1(a0 := d)(a := st0(a))(a1), ∃ st. ¬ a ∈ st ∧ st1(a := st0(a))(a0 := d) = st(a := st0(a))
Used simplifier rules: in-neq: ⊦ a ≠ b → (a ∈ st(b := d) ↔ a ∈ st); At-other: ⊦ a ≠ b → st(b := d)(a) = st(a);
| a ≠ a0, a1 ≠ a0, ¬ a ∈ st1, ∀ a0. a0 ∈ st1(a := st0(a)) → (∃ st. ¬ a0 ∈ st ∧ st1(a := st0(a)) = st(a0 := st1(a := st0(a))(a0))) ⊦ (a1 ∈ st1(a := st0(a)) ↔ a1 ∈ st1(a0 := d)(a := st0(a))) ∧ st1(a := st0(a))(a1) = st1(a0 := d)(a := st0(a))(a1), ∃ st. ¬ a ∈ st ∧ st1(a := st0(a))(a0 := d) = st(a := st0(a)) |
Used simplifier rules: At-same: ⊦ st(a := d)(a) = d; In-insert: ⊦ a ∈ st(b := d) ↔ a = b ∨ a ∈ st; In-insert: ⊦ a ∈ st(b := d) ↔ a = b ∨ a ∈ st; in-neq: ⊦ a ≠ b → (a ∈ st(b := d) ↔ a ∈ st); At-other: ⊦ a ≠ b → st(b := d)(a) = st(a); Used formulas: a1 = 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.