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