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