| ¬ r ∈ rs, r ≠ null ⊦ hP[rs, f] ↔ (r =>_ * hP)[rs ++ r, f] |
¬(hP[rs, f] ↔ (r =>_ * hP)[rs ++ r, f]), r ≠ null, ¬ r ∈ rs ⊦
| ¬(hP[rs, f] ↔ (r =>_ * hP)[rs ++ r, f]), r ≠ null, ¬ r ∈ rs ⊦ |
¬(hP(mk(rs, f)) ↔ ((r =>_ * hP))(mk(rs ++ r, f))), r ≠ null, ¬ r ∈ rs ⊦
Used simplifier rules: apply: ⊦ hP[rs, f] ↔ hP(mk(rs, f));
| ¬(hP(mk(rs, f)) ↔ ((r =>_ * hP))(mk(rs ++ r, f))), r ≠ null, ¬ r ∈ rs ⊦ |
¬ r ∈ h, r ≠ null ⊦ hP(h) ↔ ((r =>_ * hP))(h ++ r)
hP(mk(rs, f)) ↔ ((r =>_ * hP))(mk(rs, f) ++ r), ¬(hP(mk(rs, f)) ↔ ((r =>_ * hP))(mk(rs ++ r, f))), r ≠ null, ¬ r ∈ rs ⊦
Used simplifier rules: in-mk: ⊦ r ∈ mk(rs, f) ↔ r ∈ rs; Used terms: r, mk(rs, f), hP
| ¬ r ∈ h, r ≠ null ⊦ hP(h) ↔ ((r =>_ * hP))(h ++ r) |
| hP(mk(rs, f)) ↔ ((r =>_ * hP))(mk(rs, f) ++ r), ¬(hP(mk(rs, f)) ↔ ((r =>_ * hP))(mk(rs ++ r, f))), r ≠ null, ¬ r ∈ rs ⊦ |
¬(((r =>_ * hP))(mk(rs, f) ++ r) ↔ ((r =>_ * hP))(mk(rs ++ r, f))), r ≠ null, ¬ r ∈ rs ⊦
| ¬(((r =>_ * hP))(mk(rs, f) ++ r) ↔ ((r =>_ * hP))(mk(rs ++ r, f))), r ≠ null, ¬ r ∈ rs ⊦ |
⊦ ((r =>_ * hP))(h) ↔ ((r => o1 * hP))(h[r, o1]) ∧ r ∈ h
¬(((r =>_ * hP))(mk(rs, f) ++ r) ↔ ((r => f(r) * hP))(mk(rs ++ r, f)[r, f(r)]) ∧ r ∈ mk(rs ++ r, f)), r ≠ null, ¬ r ∈ rs ⊦
Used terms: f(r), mk(rs ++ r, f), hP, r
| ⊦ ((r =>_ * hP))(h) ↔ ((r => o1 * hP))(h[r, o1]) ∧ r ∈ h |
| ¬(((r =>_ * hP))(mk(rs, f) ++ r) ↔ ((r => f(r) * hP))(mk(rs ++ r, f)[r, f(r)]) ∧ r ∈ mk(rs ++ r, f)), r ≠ null, ¬ r ∈ rs ⊦ |
¬(((r =>_ * hP))(mk(rs, f) ++ r) ↔ ((r => f(r) * hP))(mk(rs ++ r, f)[r, f(r)])), r ≠ null, ¬ r ∈ rs ⊦
Used simplifier rules: in-mk: ⊦ r ∈ mk(rs, f) ↔ r ∈ rs; ⊦ ¬ a ∈ s → (a ∈ s ++ b ↔ a = b); (s)
| ¬(((r =>_ * hP))(mk(rs, f) ++ r) ↔ ((r => f(r) * hP))(mk(rs ++ r, f)[r, f(r)])), r ≠ null, ¬ r ∈ rs ⊦ |
⊦ ((r =>_ * hP))(h) ↔ ((r => o1 * hP))(h[r, o1]) ∧ r ∈ h
¬(((r => f(r) * hP))((mk(rs, f) ++ r)[r, f(r)]) ∧ r ∈ mk(rs, f) ++ r ↔ ((r => f(r) * hP))(mk(rs ++ r, f)[r, f(r)])), r ≠ null, ¬ r ∈ rs ⊦
Used terms: f(r), mk(rs, f) ++ r, hP, r
| ⊦ ((r =>_ * hP))(h) ↔ ((r => o1 * hP))(h[r, o1]) ∧ r ∈ h |
| ¬(((r => f(r) * hP))((mk(rs, f) ++ r)[r, f(r)]) ∧ r ∈ mk(rs, f) ++ r ↔ ((r => f(r) * hP))(mk(rs ++ r, f)[r, f(r)])), r ≠ null, ¬ r ∈ rs ⊦ |
¬(((r => f(r) * hP))((mk(rs, f) ++ r)[r, f(r)]) ↔ ((r => f(r) * hP))(mk(rs ++ r, f)[r, f(r)])), r ≠ null, ¬ r ∈ rs ⊦
Used simplifier rules: in-mk: ⊦ r ∈ mk(rs, f) ↔ r ∈ rs; r0 ≠ null, ¬ r0 ∈ h ⊦ r ∈ h ++ r0 ↔ r = r0 ∨ r ∈ h; (s)
| ¬(((r => f(r) * hP))((mk(rs, f) ++ r)[r, f(r)]) ↔ ((r => f(r) * hP))(mk(rs ++ r, f)[r, f(r)])), r ≠ null, ¬ r ∈ rs ⊦ |
⊦ ((r => o * hP))(h) ↔ hP(h -- r) ∧ r ∈ h ∧ h[r] = o
¬ ( hP((mk(rs, f) ++ r)[r, f(r)] -- r) ∧ r ∈ (mk(rs, f) ++ r)[r, f(r)] ∧ (mk(rs, f) ++ r)[r, f(r)][r] = f(r) ↔ ((r => f(r) * hP))(mk(rs ++ r, f)[r, f(r)])), r ≠ null, ¬ r ∈ rs ⊦
Used terms: (mk(rs, f) ++ r)[r, f(r)], hP, f(r), r
| ⊦ ((r => o * hP))(h) ↔ hP(h -- r) ∧ r ∈ h ∧ h[r] = o |
| ¬ ( hP((mk(rs, f) ++ r)[r, f(r)] -- r) ∧ r ∈ (mk(rs, f) ++ r)[r, f(r)] ∧ (mk(rs, f) ++ r)[r, f(r)][r] = f(r) ↔ ((r => f(r) * hP))(mk(rs ++ r, f)[r, f(r)])), r ≠ null, ¬ r ∈ rs ⊦ |
¬(hP(mk(rs, f)) ↔ ((r => f(r) * hP))(mk(rs ++ r, f)[r, f(r)])), r ≠ null, ¬ r ∈ rs ⊦
Used simplifier rules: in-mk: ⊦ r ∈ mk(rs, f) ↔ r ∈ rs; r0 ≠ null, ¬ r0 ∈ h ⊦ r ∈ h ++ r0 ↔ r = r0 ∨ r ∈ h; (s) ⊦ h[r0, o][r] = (r = r0 ∧ r0 ∈ h ⊃ o;h[r]); (s) ⊦ r ∈ h[r0, o] ↔ r ∈ h; (s) ¬ r ∈ h, r ≠ null ⊦ (h ++ r) -- r = h; (s) r ∈ h ⊦ h[r, o] -- r = h -- r; (s)
| ¬(hP(mk(rs, f)) ↔ ((r => f(r) * hP))(mk(rs ++ r, f)[r, f(r)])), r ≠ null, ¬ r ∈ rs ⊦ |
⊦ ((r => o * hP))(h) ↔ hP(h -- r) ∧ r ∈ h ∧ h[r] = o
¬(hP(mk(rs, f)) ↔ hP(mk(rs ++ r, f)[r, f(r)] -- r) ∧ r ∈ mk(rs ++ r, f)[r, f(r)] ∧ mk(rs ++ r, f)[r, f(r)][r] = f(r)), r ≠ null, ¬ r ∈ rs ⊦
Used terms: mk(rs ++ r, f)[r, f(r)], hP, f(r), r
| ⊦ ((r => o * hP))(h) ↔ hP(h -- r) ∧ r ∈ h ∧ h[r] = o |
| ¬(hP(mk(rs, f)) ↔ hP(mk(rs ++ r, f)[r, f(r)] -- r) ∧ r ∈ mk(rs ++ r, f)[r, f(r)] ∧ mk(rs ++ r, f)[r, f(r)][r] = f(r)), r ≠ null, ¬ r ∈ rs ⊦ |
¬(hP(mk(rs, f)) ↔ hP(mk(rs ++ r, f) -- r)), r ≠ null, ¬ r ∈ rs ⊦
Used simplifier rules: in-mk: ⊦ r ∈ mk(rs, f) ↔ r ∈ rs; ⊦ ¬ a ∈ s → (a ∈ s ++ b ↔ a = b); (s) ⊦ h[r0, o][r] = (r = r0 ∧ r0 ∈ h ⊃ o;h[r]); (s) ⊦ r ∈ h[r0, o] ↔ r ∈ h; (s) r ∈ h ⊦ h[r, o] -- r = h -- r; (s)
| ¬(hP(mk(rs, f)) ↔ hP(mk(rs ++ r, f) -- r)), r ≠ null, ¬ r ∈ rs ⊦ |
mk(rs ++ r, f) -- r ≠ mk(rs, f), ¬(hP(mk(rs, f)) ↔ hP(mk(rs ++ r, f) -- r)), r ≠ null, ¬ r ∈ rs ⊦
Used formulas: mk(rs ++ r, f) -- r = mk(rs, f)
| mk(rs ++ r, f) -- r ≠ mk(rs, f), ¬(hP(mk(rs, f)) ↔ hP(mk(rs ++ r, f) -- r)), r ≠ null, ¬ r ∈ rs ⊦ |
⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r]))
¬(hP(mk(rs, f)) ↔ hP(mk(rs ++ r, f) -- r)), r ≠ null, ¬ r ∈ rs, ∃ r0. ¬((r0 ∈ mk(rs ++ r, f) -- r ↔ r0 ∈ mk(rs, f)) ∧ (r0 ∈ mk(rs ++ r, f) -- r → (mk(rs ++ r, f) -- r)[r0] = mk(rs, f)[r0])) ⊦
Used terms: mk(rs, f), mk(rs ++ r, f) -- r
| ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r])) |
| ¬(hP(mk(rs, f)) ↔ hP(mk(rs ++ r, f) -- r)), r ≠ null, ¬ r ∈ rs, ∃ r0. ¬((r0 ∈ mk(rs ++ r, f) -- r ↔ r0 ∈ mk(rs, f)) ∧ (r0 ∈ mk(rs ++ r, f) -- r → (mk(rs ++ r, f) -- r)[r0] = mk(rs, f)[r0])) ⊦ |
¬(hP(mk(rs, f)) ↔ hP(mk(rs ++ r, f) -- r)), (mk(rs ++ r, f) -- r)[r0] ≠ f(r0), r ≠ null, r0 ∈ rs, ¬ r ∈ rs ⊦
Used simplifier rules: in-mk: ⊦ r ∈ mk(rs, f) ↔ r ∈ rs; at-mk: ⊦ r ∈ rs → mk(rs, f)[r] = f(r); ⊦ a ≠ b → (a ∈ s ++ b ↔ a ∈ s); (s) ⊦ r ∈ h -- r0 ↔ r ≠ r0 ∧ r ∈ h; (s) ⊦ a ∈ s → a ∈ s ++ b; (s)
| ¬(hP(mk(rs, f)) ↔ hP(mk(rs ++ r, f) -- r)), (mk(rs ++ r, f) -- r)[r0] ≠ f(r0), r ≠ null, r0 ∈ rs, ¬ r ∈ rs ⊦ |
r ∈ h ⊦ r ≠ r0 → (h -- r0)[r] = h[r]
¬(hP(mk(rs, f)) ↔ hP(mk(rs ++ r, f) -- r)), mk(rs ++ r, f)[r0] ≠ f(r0), r ≠ null, r0 ≠ r, r0 ∈ rs, r0 ∈ mk(rs ++ r, f), ¬ r ∈ rs ⊦
Used simplifier rules: in-mk: ⊦ r ∈ mk(rs, f) ↔ r ∈ rs; ⊦ a ≠ b → (a ∈ s ++ b ↔ a ∈ s); (s) Used terms: r0, r, mk(rs ++ r, f)
| r ∈ h ⊦ r ≠ r0 → (h -- r0)[r] = h[r] |
| ¬(hP(mk(rs, f)) ↔ hP(mk(rs ++ r, f) -- r)), mk(rs ++ r, f)[r0] ≠ f(r0), r ≠ null, r0 ≠ r, r0 ∈ rs, r0 ∈ mk(rs ++ r, f), ¬ r ∈ rs ⊦ |
¬(hP(mk(rs, f)) ↔ hP(mk(rs ++ r, f) -- r)), mk(rs ++ r, f)[r0] ≠ f(r0), r ≠ null, r0 ≠ r, r0 ∈ rs, ¬ r ∈ rs ⊦
Used simplifier rules: in-mk: ⊦ r ∈ mk(rs, f) ↔ r ∈ rs; ⊦ a ∈ s → a ∈ s ++ b; (s)
| ¬(hP(mk(rs, f)) ↔ hP(mk(rs ++ r, f) -- r)), mk(rs ++ r, f)[r0] ≠ f(r0), r ≠ null, r0 ≠ r, r0 ∈ rs, ¬ r ∈ rs ⊦ |
Used simplifier rules: at-mk: ⊦ r ∈ rs → mk(rs, f)[r] = f(r); ⊦ a ∈ s → a ∈ s ++ b; (s) Used formulas: r0 ∈ rs ++ r
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.