| ∀ a. a ∈ st → precise(adP(a, st[a])) ⊦ precise(adP ⊗_ st) |
¬ precise(adP ⊗_ st), ∀ a. a ∈ st → precise(adP(a, st[a])) ⊦
| ¬ precise(adP ⊗_ st), ∀ a. a ∈ st → precise(adP(a, st[a])) ⊦ |
¬ precise(adP ⊗_ st), ∀ a. a ∈ st → precise(adP(a, st[a])), ∀ st0, adP. # st0 < # st → ¬ precise(adP ⊗_ st0) ∧ (∀ a. a ∈ st0 → precise(adP(a, st0[a]))) → false ⊦
Used simplifier rules: <; (wellfounded) Used terms: # st
| ¬ precise(adP ⊗_ st), ∀ a. a ∈ st → precise(adP(a, st[a])), ∀ st0, adP. # st0 < # st → ¬ precise(adP ⊗_ st0) ∧ (∀ a. a ∈ st0 → precise(adP(a, st0[a]))) → false ⊦ |
st ≠ ∅, ¬ precise(adP ⊗_ st), ∀ a. a ∈ st → precise(adP(a, st[a])), ∀ st0, adP. # st0 < # st → ¬ precise(adP ⊗_ st0) ∧ (∀ a. a ∈ st0 → precise(adP(a, st0[a]))) → false ⊦
Used simplifier rules: Sep-emp: ⊦ adP ⊗_ ∅ = emp; ⊦ precise(emp); (s) Used formulas: st = ∅
| st ≠ ∅, ¬ precise(adP ⊗_ st), ∀ a. a ∈ st → precise(adP(a, st[a])), ∀ st0, adP. # st0 < # st → ¬ precise(adP ⊗_ st0) ∧ (∀ a. a ∈ st0 → precise(adP(a, st0[a]))) → false ⊦ |
⊦ st = ∅ ↔ ¬(∃ a, d, st0. st = st0[a, d] ∧ ¬ a ∈ st0)
¬ precise(adP ⊗_ st), ∀ a. a ∈ st → precise(adP(a, st[a])), ∃ a, d, st0. st = st0[a, d] ∧ ¬ a ∈ st0, ∀ st0, adP. # st0 < # st → ¬ precise(adP ⊗_ st0) ∧ (∀ a. a ∈ st0 → precise(adP(a, st0[a]))) → false ⊦
Used terms: st
| ⊦ st = ∅ ↔ ¬(∃ a, d, st0. st = st0[a, d] ∧ ¬ a ∈ st0) |
| ¬ precise(adP ⊗_ st), ∀ a. a ∈ st → precise(adP(a, st[a])), ∃ a, d, st0. st = st0[a, d] ∧ ¬ a ∈ st0, ∀ st0, adP. # st0 < # st → ¬ precise(adP ⊗_ st0) ∧ (∀ a. a ∈ st0 → precise(adP(a, st0[a]))) → false ⊦ |
¬ precise(adP(a, d) * adP ⊗_ st0), ¬ a ∈ st0, ∀ a0. a0 ∈ st0[a, d] → precise(adP(a0, st0[a, d][a0])), ∀ st1, adP. # st1 < # st0[a, d] → ¬ precise(adP ⊗_ st1) ∧ (∀ a. a ∈ st1 → precise(adP(a, st1[a]))) → false ⊦
Used simplifier rules: Sep-ins: ⊦ ¬ a ∈ st → adP ⊗_ st[a, d] = adP(a, d) * adP ⊗_ st;
| ¬ precise(adP(a, d) * adP ⊗_ st0), ¬ a ∈ st0, ∀ a0. a0 ∈ st0[a, d] → precise(adP(a0, st0[a, d][a0])), ∀ st1, adP. # st1 < # st0[a, d] → ¬ precise(adP ⊗_ st1) ∧ (∀ a. a ∈ st1 → precise(adP(a, st1[a]))) → false ⊦ |
⊦ precise(hP0) ∧ precise(hP1) → precise(hP0 * hP1)
¬ precise(adP(a, d) * adP ⊗_ st0), ¬ a ∈ st0, ∀ a0. a0 ∈ st0[a, d] → precise(adP(a0, st0[a, d][a0])), ∀ st1, adP. # st1 < # st0[a, d] → ¬ precise(adP ⊗_ st1) ∧ (∀ a. a ∈ st1 → precise(adP(a, st1[a]))) → false ⊦ precise(adP(a, d)) ∧ precise(adP ⊗_ st0)
Used terms: adP ⊗_ st0, adP(a, d)
| ⊦ precise(hP0) ∧ precise(hP1) → precise(hP0 * hP1) |
| ¬ precise(adP(a, d) * adP ⊗_ st0), ¬ a ∈ st0, ∀ a0. a0 ∈ st0[a, d] → precise(adP(a0, st0[a, d][a0])), ∀ st1, adP. # st1 < # st0[a, d] → ¬ precise(adP ⊗_ st1) ∧ (∀ a. a ∈ st1 → precise(adP(a, st1[a]))) → false ⊦ precise(adP(a, d)) ∧ precise(adP ⊗_ st0) |
¬ precise(adP(a, d) * adP ⊗_ st0), ¬ a ∈ st0, ∀ a0. a0 ∈ st0[a, d] → precise(adP(a0, st0[a, d][a0])), ∀ st1, adP. # st1 < # st0[a, d] → ¬ precise(adP ⊗_ st1) ∧ (∀ a. a ∈ st1 → precise(adP(a, st1[a]))) → false ⊦ precise(adP(a, d)) ∧ precise(adP ⊗_ st0)
| ¬ precise(adP(a, d) * adP ⊗_ st0), ¬ a ∈ st0, ∀ a0. a0 ∈ st0[a, d] → precise(adP(a0, st0[a, d][a0])), ∀ st1, adP. # st1 < # st0[a, d] → ¬ precise(adP ⊗_ st1) ∧ (∀ a. a ∈ st1 → precise(adP(a, st1[a]))) → false ⊦ precise(adP(a, d)) ∧ precise(adP ⊗_ st0) |
¬ precise(adP(a, d) * adP ⊗_ st0), ¬ a ∈ st0, a ∈ st0[a, d] → precise(adP(a, st0[a, d][a])), ∀ a0. a0 ∈ st0[a, d] → precise(adP(a0, st0[a, d][a0])), ∀ st1, adP. # st1 < # st0[a, d] → ¬ precise(adP ⊗_ st1) ∧ (∀ a. a ∈ st1 → precise(adP(a, st1[a]))) → false ⊦ precise(adP(a, d)) ∧ precise(adP ⊗_ st0)
Used terms: a
| ¬ precise(adP(a, d) * adP ⊗_ st0), ¬ a ∈ st0, a ∈ st0[a, d] → precise(adP(a, st0[a, d][a])), ∀ a0. a0 ∈ st0[a, d] → precise(adP(a0, st0[a, d][a0])), ∀ st1, adP. # st1 < # st0[a, d] → ¬ precise(adP ⊗_ st1) ∧ (∀ a. a ∈ st1 → precise(adP(a, st1[a]))) → false ⊦ precise(adP(a, d)) ∧ precise(adP ⊗_ st0) |
precise(adP(a, d)), ¬ precise(adP(a, d) * adP ⊗_ st0), ¬ precise(adP ⊗_ st0), ¬ a ∈ st0, ∀ a0. a0 ∈ st0[a, d] → precise(adP(a0, st0[a, d][a0])), ∀ st1, adP. # st1 < # st0[a, d] → ¬ precise(adP ⊗_ st1) ∧ (∀ a. a ∈ st1 → precise(adP(a, st1[a]))) → false ⊦
Used simplifier rules: ⊦ st[a, d][a] = d; (s) ⊦ a ∈ st[a, d]; (s)
| precise(adP(a, d)), ¬ precise(adP(a, d) * adP ⊗_ st0), ¬ precise(adP ⊗_ st0), ¬ a ∈ st0, ∀ a0. a0 ∈ st0[a, d] → precise(adP(a0, st0[a, d][a0])), ∀ st1, adP. # st1 < # st0[a, d] → ¬ precise(adP ⊗_ st1) ∧ (∀ a. a ∈ st1 → precise(adP(a, st1[a]))) → false ⊦ |
precise(adP(a, d)), ¬ precise(adP(a, d) * adP ⊗_ st0), ¬ precise(adP ⊗_ st0), ¬ a ∈ st0, ∀ a0. a0 ∈ st0[a, d] → precise(adP(a0, st0[a, d][a0])), ∀ st1, adP. # st1 < # st0[a, d] → ¬ precise(adP ⊗_ st1) ∧ (∀ a. a ∈ st1 → precise(adP(a, st1[a]))) → false ⊦ ¬ precise(adP ⊗_ st0) ∧ (∀ a. a ∈ st0 → precise(adP(a, st0[a])))
Used simplifier rules: ⊦ ¬ a ∈ st → # st[a, d] = # st + 1; (s) ⊦ m < n + 1 ↔ ¬ n < m; (s) ⊦ ¬ n < n; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic Used terms: st0, adP
| precise(adP(a, d)), ¬ precise(adP(a, d) * adP ⊗_ st0), ¬ precise(adP ⊗_ st0), ¬ a ∈ st0, ∀ a0. a0 ∈ st0[a, d] → precise(adP(a0, st0[a, d][a0])), ∀ st1, adP. # st1 < # st0[a, d] → ¬ precise(adP ⊗_ st1) ∧ (∀ a. a ∈ st1 → precise(adP(a, st1[a]))) → false ⊦ ¬ precise(adP ⊗_ st0) ∧ (∀ a. a ∈ st0 → precise(adP(a, st0[a]))) |
precise(adP(a, d)), a0 ∈ st0, ¬ precise(adP(a, d) * adP ⊗_ st0), ¬ precise(adP ⊗_ st0), ¬ precise(adP(a0, st0[a0])), ¬ a ∈ st0, ∀ a0. a0 ∈ st0[a, d] → precise(adP(a0, st0[a, d][a0])), ∀ st1, adP. # st1 < # st0[a, d] → ¬ precise(adP ⊗_ st1) ∧ (∀ a. a ∈ st1 → precise(adP(a, st1[a]))) → false ⊦
| precise(adP(a, d)), a0 ∈ st0, ¬ precise(adP(a, d) * adP ⊗_ st0), ¬ precise(adP ⊗_ st0), ¬ precise(adP(a0, st0[a0])), ¬ a ∈ st0, ∀ a0. a0 ∈ st0[a, d] → precise(adP(a0, st0[a, d][a0])), ∀ st1, adP. # st1 < # st0[a, d] → ¬ precise(adP ⊗_ st1) ∧ (∀ a. a ∈ st1 → precise(adP(a, st1[a]))) → false ⊦ |
Used simplifier rules: ⊦ b ∈ st ∧ ¬ a ∈ st → st[a, d][b] = st[b]; (s) ⊦ a ∈ st[b, d] ↔ a = b ∨ a ∈ st; (ws) 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.