| ⊦ a ≠ (st(a := d)).min → (st(a := d)).butmin = st.butmin(a := d) |
(st(a := d)).butmin ≠ st.butmin(a := d), a ≠ (st(a := d)).min ⊦
| (st(a := d)).butmin ≠ st.butmin(a := d), a ≠ (st(a := d)).min ⊦ |
st(a := d) -- (st(a := d)).min ≠ (st -- st.min)(a := d), a ≠ (st(a := d)).min ⊦
Used simplifier rules: Butmin: ⊦ st.butmin = st -- st.min;
| st(a := d) -- (st(a := d)).min ≠ (st -- st.min)(a := d), a ≠ (st(a := d)).min ⊦ |
⊦ st1 = st2 ↔ (∀ a. (a ∈ st1 ↔ a ∈ st2) ∧ st1(a) = st2(a))
a ≠ (st(a := d)).min, ∃ a0. ¬((a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ (st -- st.min)(a := d)) ∧ (st(a := d) -- (st(a := d)).min)(a0) = (st -- st.min)(a := d)(a0)) ⊦
Used terms: st(a := d) -- (st(a := d)).min, (st -- st.min)(a := d)
| ⊦ st1 = st2 ↔ (∀ a. (a ∈ st1 ↔ a ∈ st2) ∧ st1(a) = st2(a)) |
| a ≠ (st(a := d)).min, ∃ a0. ¬((a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ (st -- st.min)(a := d)) ∧ (st(a := d) -- (st(a := d)).min)(a0) = (st -- st.min)(a := d)(a0)) ⊦ |
a ≠ (st(a := d)).min ⊦ (a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ (st -- st.min)(a := d)) ∧ (st(a := d) -- (st(a := d)).min)(a0) = (st -- st.min)(a := d)(a0)
| a ≠ (st(a := d)).min ⊦ (a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ (st -- st.min)(a := d)) ∧ (st(a := d) -- (st(a := d)).min)(a0) = (st -- st.min)(a := d)(a0) |
a ≠ (st(a := d)).min, a0 ≠ a ⊦ (a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ (st -- st.min)(a := d)) ∧ (st(a := d) -- (st(a := d)).min)(a0) = (st -- st.min)(a := d)(a0)
Used simplifier rules: ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (ws) ⊦ a ∈ st(a := d); (s) ⊦ a ≠ b → (st -- b)(a) = st(a); (s) ⊦ st(a := d)(a) = d; (s) Used formulas: a0 = a
| a ≠ (st(a := d)).min, a0 ≠ a ⊦ (a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ (st -- st.min)(a := d)) ∧ (st(a := d) -- (st(a := d)).min)(a0) = (st -- st.min)(a := d)(a0) |
a ≠ (st(a := d)).min, a0 ≠ a ⊦ (a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ st -- st.min) ∧ (st(a := d) -- (st(a := d)).min)(a0) = (st -- st.min)(a0)
Used simplifier rules: ⊦ a ≠ b → st(b := d)(a) = st(a); (s) ⊦ a ≠ b → (a ∈ st(b := d) ↔ a ∈ st); (s)
| a ≠ (st(a := d)).min, a0 ≠ a ⊦ (a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ st -- st.min) ∧ (st(a := d) -- (st(a := d)).min)(a0) = (st -- st.min)(a0) |
⊦ a ≠ b → (st -- b)(a) = st(a)
a0 = (st(a := d)).min, a ≠ (st(a := d)).min, a0 ≠ a ⊦ (a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ st -- st.min) ∧ (st(a := d) -- (st(a := d)).min)(a0) = (st -- st.min)(a0)
a ≠ (st(a := d)).min, a0 ≠ (st(a := d)).min, a0 ≠ a ⊦ (a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ st -- st.min) ∧ st(a := d)(a0) = (st -- st.min)(a0)
Used terms: a0, (st(a := d)).min, st(a := d)
| ⊦ a ≠ b → (st -- b)(a) = st(a) |
| a0 = (st(a := d)).min, a ≠ (st(a := d)).min, a0 ≠ a ⊦ (a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ st -- st.min) ∧ (st(a := d) -- (st(a := d)).min)(a0) = (st -- st.min)(a0) |
(st(a := d)).min ≠ st.min, (st(a := d)).min ≠ a, st.min < (st(a := d)).min, (st(a := d)).min ∈ st ⊦
Used simplifier rules: Min-min: ⊦ a ∈ st → ¬ a < st.min; inf: ⊦ a ∈ st → a ∈ st.keys; Keys: ⊦ a ∈ st.keys ↔ a ∈ st; ⊦ a ≠ b → (a < b ↔ ¬ b < a); (ss) ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (ws) ⊦ ¬ a ∈ st → st(a) = ∅(a); (s) ⊦ (st -- a)(a) = ∅(a); (s) ⊦ ¬ a ∈ st -- a; (s)
| (st(a := d)).min ≠ st.min, (st(a := d)).min ≠ a, st.min < (st(a := d)).min, (st(a := d)).min ∈ st ⊦ |
(st(a := d)).min ≠ st.min, (st(a := d)).min ≠ a, st ≠ ∅, st.min < (st(a := d)).min, (st(a := d)).min ∈ st ⊦
Used simplifier rules: min: ⊦ (∅(a := d)).min = a; Used formulas: st = ∅
| (st(a := d)).min ≠ st.min, (st(a := d)).min ≠ a, st ≠ ∅, st.min < (st(a := d)).min, (st(a := d)).min ∈ st ⊦ |
(st(a := d)).min ≠ a, (st(a := d)).min ≠ st.keys.min, st ≠ ∅, st.keys.min < (st(a := d)).min, (st(a := d)).min ∈ st, st.keys.min ∈ st ⊦
Used simplifier rules: Min-in: ⊦ st ≠ ∅ → st.min ∈ st; Min-min: ⊦ a ∈ st → ¬ a < st.min; inf: ⊦ a ∈ st → a ∈ st.keys; Keys: ⊦ a ∈ st.keys ↔ a ∈ st; min-def: ⊦ st ≠ ∅ → st.min = st.keys.min; ⊦ ¬ a < a; (s)
| (st(a := d)).min ≠ a, (st(a := d)).min ≠ st.keys.min, st ≠ ∅, st.keys.min < (st(a := d)).min, (st(a := d)).min ∈ st, st.keys.min ∈ st ⊦ |
⊦ a ≠ (st(a := d)).min → (st(a := d)).min = st.min
Used simplifier rules: min-def: ⊦ st ≠ ∅ → st.min = st.keys.min; Used terms: d, a, st
| ⊦ a ≠ (st(a := d)).min → (st(a := d)).min = st.min |
| a ≠ (st(a := d)).min, a0 ≠ (st(a := d)).min, a0 ≠ a ⊦ (a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ st -- st.min) ∧ st(a := d)(a0) = (st -- st.min)(a0) |
a ≠ (st(a := d)).min, a0 ≠ (st(a := d)).min, a0 ≠ a ⊦ (a0 ∈ st ↔ a0 ∈ st -- st.min) ∧ st(a0) = (st -- st.min)(a0)
Used simplifier rules: ⊦ a ≠ b → st(b := d)(a) = st(a); (s) ⊦ a ≠ b → (a ∈ st(b := d) ↔ a ∈ st); (s) ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (ws)
| a ≠ (st(a := d)).min, a0 ≠ (st(a := d)).min, a0 ≠ a ⊦ (a0 ∈ st ↔ a0 ∈ st -- st.min) ∧ st(a0) = (st -- st.min)(a0) |
⊦ a ≠ b → (st -- b)(a) = st(a)
a0 = st.min, a ≠ (st(a := d)).min, a0 ≠ (st(a := d)).min, a0 ≠ a ⊦ (a0 ∈ st ↔ a0 ∈ st -- st.min) ∧ st(a0) = (st -- st.min)(a0)
Used simplifier rules: ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (ws) Used terms: a0, st.min, st
| ⊦ a ≠ b → (st -- b)(a) = st(a) |
| a0 = st.min, a ≠ (st(a := d)).min, a0 ≠ (st(a := d)).min, a0 ≠ a ⊦ (a0 ∈ st ↔ a0 ∈ st -- st.min) ∧ st(a0) = (st -- st.min)(a0) |
st.min ≠ a, st.min ≠ (st(a := d)).min, a ≠ (st(a := d)).min, st.min ∈ st ⊦
Used simplifier rules: Min-min: ⊦ a ∈ st → ¬ a < st.min; inf: ⊦ a ∈ st → a ∈ st.keys; Keys: ⊦ a ∈ st.keys ↔ a ∈ st; ⊦ ¬ a < a; (s) ⊦ ¬ a ∈ st → st(a) = ∅(a); (s) ⊦ ¬ a ∈ st → st -- a = st; (s) ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (ws)
| st.min ≠ a, st.min ≠ (st(a := d)).min, a ≠ (st(a := d)).min, st.min ∈ st ⊦ |
st.min ≠ a, st.min ≠ (st(a := d)).min, a ≠ (st(a := d)).min, st ≠ ∅, st.min ∈ st ⊦
Used simplifier rules: min: ⊦ (∅(a := d)).min = a; Used formulas: st = ∅
| st.min ≠ a, st.min ≠ (st(a := d)).min, a ≠ (st(a := d)).min, st ≠ ∅, st.min ∈ st ⊦ |
st.keys.min ≠ (st(a := d)).min, st.keys.min ≠ a, a ≠ (st(a := d)).min, st ≠ ∅, st.keys.min ∈ st ⊦
Used simplifier rules: Min-min: ⊦ a ∈ st → ¬ a < st.min; inf: ⊦ a ∈ st → a ∈ st.keys; Min-in: ⊦ st ≠ ∅ → st.min ∈ st; Keys: ⊦ a ∈ st.keys ↔ a ∈ st; min-def: ⊦ st ≠ ∅ → st.min = st.keys.min; ⊦ ¬ a < a; (s)
| st.keys.min ≠ (st(a := d)).min, st.keys.min ≠ a, a ≠ (st(a := d)).min, st ≠ ∅, st.keys.min ∈ st ⊦ |
⊦ a ≠ (st(a := d)).min → (st(a := d)).min = st.min
Used simplifier rules: min-def: ⊦ st ≠ ∅ → st.min = st.keys.min; Used terms: d, a, st
| ⊦ a ≠ (st(a := d)).min → (st(a := d)).min = st.min |
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.