| ⊦ a = (st(a := d0)).min ∧ ¬ a ∈ st → (st(a := d)).butmin = st |
a = (st(a := d0)).min, (st(a := d)).butmin ≠ st, ¬ a ∈ st ⊦
| a = (st(a := d0)).min, (st(a := d)).butmin ≠ st, ¬ a ∈ st ⊦ |
a = (st(a := d0)).min, st(a := d) -- (st(a := d)).min ≠ st, ¬ a ∈ st ⊦
Used simplifier rules: Butmin: ⊦ st.butmin = st -- st.min;
| a = (st(a := d0)).min, st(a := d) -- (st(a := d)).min ≠ st, ¬ a ∈ st ⊦ |
⊦ st1 = st2 ↔ (∀ a. (a ∈ st1 ↔ a ∈ st2) ∧ st1(a) = st2(a))
a = (st(a := d0)).min, ¬ a ∈ st, ∃ a0. ¬((a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ st) ∧ (st(a := d) -- (st(a := d)).min)(a0) = st(a0)) ⊦
Used terms: st(a := d) -- (st(a := d)).min, st
| ⊦ st1 = st2 ↔ (∀ a. (a ∈ st1 ↔ a ∈ st2) ∧ st1(a) = st2(a)) |
| a = (st(a := d0)).min, ¬ a ∈ st, ∃ a0. ¬((a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ st) ∧ (st(a := d) -- (st(a := d)).min)(a0) = st(a0)) ⊦ |
a = (st(a := d0)).min, ¬ a ∈ st ⊦ (a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ st) ∧ (st(a := d) -- (st(a := d)).min)(a0) = st(a0)
| a = (st(a := d0)).min, ¬ a ∈ st ⊦ (a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ st) ∧ (st(a := d) -- (st(a := d)).min)(a0) = st(a0) |
⊦ a ≠ b → (st -- b)(a) = st(a)
a = (st(a := d0)).min, a0 = (st(a := d)).min, ¬ a ∈ st ⊦ (a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ st) ∧ (st(a := d) -- (st(a := d)).min)(a0) = st(a0)
a = (st(a := d0)).min, a0 ≠ (st(a := d)).min, ¬ a ∈ st ⊦ (a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ st) ∧ st(a := d)(a0) = st(a0)
Used terms: a0, (st(a := d)).min, st(a := d)
| ⊦ a ≠ b → (st -- b)(a) = st(a) |
| a = (st(a := d0)).min, a0 = (st(a := d)).min, ¬ a ∈ st ⊦ (a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ st) ∧ (st(a := d) -- (st(a := d)).min)(a0) = st(a0) |
a = (st(a := d0)).min, ¬ a ∈ st ⊦ ((st(a := d)).min ∈ st(a := d) -- (st(a := d)).min ↔ (st(a := d)).min ∈ st) ∧ ∅((st(a := d)).min) = st((st(a := d)).min)
Used simplifier rules: ⊦ (st -- a)(a) = ∅(a); (s)
| a = (st(a := d0)).min, ¬ a ∈ st ⊦ ((st(a := d)).min ∈ st(a := d) -- (st(a := d)).min ↔ (st(a := d)).min ∈ st) ∧ ∅((st(a := d)).min) = st((st(a := d)).min) |
Used simplifier rules: min-put-01: ⊦ (st(a := d)).min = a → (st(a := d0)).min = a; min-put-01: ⊦ (st(a := d)).min = a → (st(a := d0)).min = a; ⊦ ¬ a ∈ st → st(a) = ∅(a); (s) ⊦ st(a := d) -- a = st -- a; (s) ⊦ ¬ a ∈ st → st -- a = st; (s)
| a = (st(a := d0)).min, a0 ≠ (st(a := d)).min, ¬ a ∈ st ⊦ (a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ st) ∧ st(a := d)(a0) = st(a0) |
a = (st(a := d0)).min, a0 ≠ (st(a := d)).min, ¬ a ∈ st ⊦ (a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ st) ∧ st(a := d)(a0) = st(a0)
| a = (st(a := d0)).min, a0 ≠ (st(a := d)).min, ¬ a ∈ st ⊦ (a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ st) ∧ st(a := d)(a0) = st(a0) |
a = (st(a := d0)).min, a0 = a, a0 ≠ (st(a := d)).min, ¬ a ∈ st ⊦ (a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ st) ∧ st(a := d)(a0) = st(a0)
a = (st(a := d0)).min, a0 ≠ a, a0 ≠ (st(a := d)).min, ¬ a ∈ st ⊦ (a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ st) ∧ st(a := d)(a0) = st(a0)
Used formulas: a0 = a
| a = (st(a := d0)).min, a0 = a, a0 ≠ (st(a := d)).min, ¬ a ∈ st ⊦ (a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ st) ∧ st(a := d)(a0) = st(a0) |
a = (st(a := d0)).min, a ≠ (st(a := d)).min, ¬ a ∈ st ⊦ ¬ a ∈ st(a := ∅(a)) -- (st(a := ∅(a))).min ∧ d = ∅(a)
Used simplifier rules: ⊦ ¬ a ∈ st → st(a) = ∅(a); (s) ⊦ st(a := d)(a) = d; (s)
| a = (st(a := d0)).min, a ≠ (st(a := d)).min, ¬ a ∈ st ⊦ ¬ a ∈ st(a := ∅(a)) -- (st(a := ∅(a))).min ∧ d = ∅(a) |
⊦ st ≠ ∅ → st.min = st.keys.min
a = (st(a := d0)).keys.min, st(a := d0) ≠ ∅, a ≠ (st(a := d)).min, ¬ a ∈ st ⊦ ¬ a ∈ st(a := ∅(a)) -- (st(a := ∅(a))).min ∧ d = ∅(a)
Used simplifier rules: ⊦ st(a := d) ≠ ∅; (s) Used terms: st(a := d0)
| ⊦ st ≠ ∅ → st.min = st.keys.min |
| a = (st(a := d0)).keys.min, st(a := d0) ≠ ∅, a ≠ (st(a := d)).min, ¬ a ∈ st ⊦ ¬ a ∈ st(a := ∅(a)) -- (st(a := ∅(a))).min ∧ d = ∅(a) |
a = (st.keys ++ a).min, a ≠ (st(a := d)).min, ¬ a ∈ st ⊦ ¬ a ∈ st(a := ∅(a)) -- (st(a := ∅(a))).min ∧ d = ∅(a)
Used simplifier rules: insert-03: ⊦ (st(a := d)).keys = st.keys ++ a; ⊦ st(a := d) ≠ ∅; (s)
| a = (st.keys ++ a).min, a ≠ (st(a := d)).min, ¬ a ∈ st ⊦ ¬ a ∈ st(a := ∅(a)) -- (st(a := ∅(a))).min ∧ d = ∅(a) |
⊦ st ≠ ∅ → st.min = st.keys.min
Used simplifier rules: insert-03: ⊦ (st(a := d)).keys = st.keys ++ a; ⊦ st(a := d) ≠ ∅; (s) Used terms: st(a := d)
| ⊦ st ≠ ∅ → st.min = st.keys.min |
| a = (st(a := d0)).min, a0 ≠ a, a0 ≠ (st(a := d)).min, ¬ a ∈ st ⊦ (a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ st) ∧ st(a := d)(a0) = st(a0) |
a = (st(a := d0)).min, ¬(a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ st), a0 ≠ a, a0 ≠ (st(a := d)).min, ¬ a ∈ st ⊦
Used simplifier rules: ⊦ a ≠ b → st(b := d)(a) = st(a); (s)
| a = (st(a := d0)).min, ¬(a0 ∈ st(a := d) -- (st(a := d)).min ↔ a0 ∈ st), a0 ≠ a, a0 ≠ (st(a := d)).min, ¬ a ∈ st ⊦ |
Used simplifier rules: min-put-01: ⊦ (st(a := d)).min = a → (st(a := d0)).min = a; min-put-01: ⊦ (st(a := d)).min = a → (st(a := d0)).min = a; ⊦ st(a := d) -- a = st -- a; (s) ⊦ ¬ a ∈ st → st -- a = st; (s)
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.