| ⊦ (a[r => o] * hR)[rs, f, g] → (g(r) = a ↔ true) |
¬(g(r) = a ↔ true), (a[r => o] * hR)[rs, f, g] ⊦
| ¬(g(r) = a ↔ true), (a[r => o] * hR)[rs, f, g] ⊦ |
g(r) ≠ a, (a[r => o] * hR)[rs, f, g] ⊦
| g(r) ≠ a, (a[r => o] * hR)[rs, f, g] ⊦ |
⊦ (hR0 * hR1)[rs, f, g] ↔ (∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ hR0[rs0, f, g] ∧ hR1[rs1, f, g])
g(r) ≠ a, ∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ a[r => o][rs0, f, g] ∧ hR[rs1, f, g] ⊦
Used terms: rs, hR, g, a[r => o], f
| ⊦ (hR0 * hR1)[rs, f, g] ↔ (∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ hR0[rs0, f, g] ∧ hR1[rs1, f, g]) |
| g(r) ≠ a, ∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ a[r => o][rs0, f, g] ∧ hR[rs1, f, g] ⊦ |
rs0 ∩ rs1 = ∅, g(r) ≠ a, a[r => o][rs0, f, g], hR[rs1, f, g] ⊦
| rs0 ∩ rs1 = ∅, g(r) ≠ a, a[r => o][rs0, f, g], hR[rs1, f, g] ⊦ |
⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g))
rs0 ∩ rs1 = ∅, g(r) ≠ a, hR[rs1, f, g], a[r => o](mk(rs0, f, g)) ⊦
Used terms: g, f, rs0, a[r => o]
| ⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g)) |
| rs0 ∩ rs1 = ∅, g(r) ≠ a, hR[rs1, f, g], a[r => o](mk(rs0, f, g)) ⊦ |
⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a)
rs0 ∩ rs1 = ∅, g(r) ≠ a, ((r => o))(mk(rs0, f)), hR[rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a ⊦
Used terms: a, r => o, rs0, g, f
| ⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a) |
| rs0 ∩ rs1 = ∅, g(r) ≠ a, ((r => o))(mk(rs0, f)), hR[rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a ⊦ |
rs0 ∩ rs1 = ∅, g(r) ≠ a, ((r => o))(mk(rs0, f)), hR[rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a ⊦
| rs0 ∩ rs1 = ∅, g(r) ≠ a, ((r => o))(mk(rs0, f)), hR[rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a ⊦ |
⊦ ((r => o))(h) ↔ h = (∅ ++ r)[r, o] ∧ r ≠ null
mk(rs0, f) = (∅ ++ r)[r, o], rs0 ∩ rs1 = ∅, g(r) ≠ a, r ≠ null, hR[rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a ⊦
Used terms: mk(rs0, f), o, r
| ⊦ ((r => o))(h) ↔ h = (∅ ++ r)[r, o] ∧ r ≠ null |
| mk(rs0, f) = (∅ ++ r)[r, o], rs0 ∩ rs1 = ∅, g(r) ≠ a, r ≠ null, hR[rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a ⊦ |
mk(rs0, f) = (∅ ++ r)[r, o], rs0 ∩ rs1 = ∅, g(r) ≠ a, r ≠ null, hR[rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a ⊦
| mk(rs0, f) = (∅ ++ r)[r, o], rs0 ∩ rs1 = ∅, g(r) ≠ a, r ≠ null, hR[rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a ⊦ |
⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r]))
rs0 ∩ rs1 = ∅, g(r) ≠ a, r ≠ null, hR[rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ mk(rs0, f) ↔ r0 ∈ (∅ ++ r)[r, o]) ∧ (r0 ∈ mk(rs0, f) → mk(rs0, f)[r0] = (∅ ++ r)[r, o][r0]) ⊦
Used terms: (∅ ++ r)[r, o], mk(rs0, f)
| ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r])) |
| rs0 ∩ rs1 = ∅, g(r) ≠ a, r ≠ null, hR[rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ mk(rs0, f) ↔ r0 ∈ (∅ ++ r)[r, o]) ∧ (r0 ∈ mk(rs0, f) → mk(rs0, f)[r0] = (∅ ++ r)[r, o][r0]) ⊦ |
rs0 ∩ rs1 = ∅, g(r) ≠ a, r ≠ null, hR[rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ rs0 ↔ r0 = r) ∧ (r0 ∈ rs0 → f(r0) = (r0 = r ⊃ o;(∅ ++ r)[r0])) ⊦
Used simplifier rules: r0 ≠ null, ¬ r0 ∈ h ⊦ r ∈ h ++ r0 ↔ r = r0 ∨ r ∈ h; (s) ⊦ ¬ r ∈ ∅; (s) ⊦ h[r0, o][r] = (r = r0 ∧ r0 ∈ h ⊃ o;h[r]); (s) ⊦ r ∈ rs → mk(rs, f)[r] = f(r); (s) ⊦ r ∈ mk(rs, f) ↔ r ∈ rs; (s) ⊦ r ∈ h[r0, o] ↔ r ∈ h; (s)
| rs0 ∩ rs1 = ∅, g(r) ≠ a, r ≠ null, hR[rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ rs0 ↔ r0 = r) ∧ (r0 ∈ rs0 → f(r0) = (r0 = r ⊃ o;(∅ ++ r)[r0])) ⊦ |
r ∈ rs0 ↔ r = r, rs0 ∩ rs1 = ∅, g(r) ≠ a, r ≠ null, hR[rs1, f, g], r ∈ rs0 → f(r) = (r = r ⊃ o;(∅ ++ r)[r]), ∀ r0. (r0 ∈ rs0 ↔ r0 = r) ∧ (r0 ∈ rs0 → f(r0) = (r0 = r ⊃ o;(∅ ++ r)[r0])), ∀ r. r ∈ rs0 → g(r) = a ⊦
Used terms: r
| r ∈ rs0 ↔ r = r, rs0 ∩ rs1 = ∅, g(r) ≠ a, r ≠ null, hR[rs1, f, g], r ∈ rs0 → f(r) = (r = r ⊃ o;(∅ ++ r)[r]), ∀ r0. (r0 ∈ rs0 ↔ r0 = r) ∧ (r0 ∈ rs0 → f(r0) = (r0 = r ⊃ o;(∅ ++ r)[r0])), ∀ r. r ∈ rs0 → g(r) = a ⊦ |
rs0 ∩ rs1 = ∅, g(r) ≠ a, r ≠ null, hR[rs1, f, g], r ∈ rs0, ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ rs0 → r0 = r) ∧ (r0 ∈ rs0 → f(r0) = (r0 = r ⊃ f(r);(∅ ++ r)[r0])) ⊦
| rs0 ∩ rs1 = ∅, g(r) ≠ a, r ≠ null, hR[rs1, f, g], r ∈ rs0, ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ rs0 → r0 = r) ∧ (r0 ∈ rs0 → f(r0) = (r0 = r ⊃ f(r);(∅ ++ r)[r0])) ⊦ |
Used terms: 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.