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