| ⊦ cf(r) = a × r0 → ((o[r =>_] * hR)[rs, cf, af] ↔ (o[r => a × r0] * hR)[rs, cf, af]) |
cf(r) = a × r0, ¬((o[r =>_] * hR)[rs, cf, af] ↔ (o[r => a × r0] * hR)[rs, cf, af]) ⊦
| cf(r) = a × r0, ¬((o[r =>_] * hR)[rs, cf, af] ↔ (o[r => a × r0] * hR)[rs, cf, af]) ⊦ |
cf(r) = a × r0, ¬((o[r =>_] * hR)[rs, cf, af] ↔ (o[r => a × r0] * hR)[rs, cf, af]) ⊦
| cf(r) = a × r0, ¬((o[r =>_] * hR)[rs, cf, af] ↔ (o[r => a × r0] * hR)[rs, cf, af]) ⊦ |
⊦ r =>_ = _∃(λ o. r => o)
cf(r) = a × r0, ¬((o[_∃(λ o. r => o)] * hR)[rs, cf, af] ↔ (o[r => a × r0] * hR)[rs, cf, af]) ⊦
Used terms: r
| ⊦ r =>_ = _∃(λ o. r => o) |
| cf(r) = a × r0, ¬((o[_∃(λ o. r => o)] * hR)[rs, cf, af] ↔ (o[r => a × r0] * hR)[rs, cf, af]) ⊦ |
cf(r) = a × r0 ⊦ (∃ _o. (o[r => _o] * hR)[rs, cf, af]) ↔ (o[r => a × r0] * hR)[rs, cf, af]
Used simplifier rules: sep-com: ⊦ hP0 * hP1 = hP1 * hP0; from specification heap-sep[heap-aux-inst] sep-ass: ⊦ (hP0 * hP1) * hP2 = hP0 * hP1 * hP2; from specification heap-sep[heap-aux-inst] ⊦ (_∃ oaR * hR)[rs, f, g] ↔ (∃ o, a. (oaR(o, a) * hR)[rs, f, g]); (s) ⊦ a[_∃ ohP] = _∃(λ o, a0. a[ohP(o)]); (s)
| cf(r) = a × r0 ⊦ (∃ _o. (o[r => _o] * hR)[rs, cf, af]) ↔ (o[r => a × r0] * hR)[rs, cf, af] |
cf(r) = a × r0, ¬ (o[r => a × r0] * hR)[rs, cf, af], ∃ _o. (o[r => _o] * hR)[rs, cf, af] ⊦
cf(r) = a × r0, (o[r => a × r0] * hR)[rs, cf, af] ⊦ ∃ _o. (o[r => _o] * hR)[rs, cf, af]
| cf(r) = a × r0, ¬ (o[r => a × r0] * hR)[rs, cf, af], ∃ _o. (o[r => _o] * hR)[rs, cf, af] ⊦ |
cf(r) = a × r0, (o[r => _o] * hR)[rs, cf, af], ¬ (o[r => a × r0] * hR)[rs, cf, af] ⊦
| cf(r) = a × r0, (o[r => _o] * hR)[rs, cf, af], ¬ (o[r => a × r0] * hR)[rs, cf, af] ⊦ |
⊦ (hR0 * hR1)[rs, f, g] ↔ (∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ hR0[rs0, f, g] ∧ hR1[rs1, f, g])
cf(r) = a × r0, ¬ (o[r => a × r0] * hR)[rs, cf, af], ∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ o[r => _o][rs0, cf, af] ∧ hR[rs1, cf, af] ⊦
Used terms: cf, rs, hR, af, o[r => _o]
| ⊦ (hR0 * hR1)[rs, f, g] ↔ (∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ hR0[rs0, f, g] ∧ hR1[rs1, f, g]) |
| cf(r) = a × r0, ¬ (o[r => a × r0] * hR)[rs, cf, af], ∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ o[r => _o][rs0, cf, af] ∧ hR[rs1, cf, af] ⊦ |
cf(r) = a × r0, rs0 ∩ rs1 = ∅, o[r => _o][rs0, cf, af], hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af] ⊦
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, o[r => _o][rs0, cf, af], hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af] ⊦ |
⊦ hR0[rs0, f, g] ∧ hR1[rs1, f, g] ∧ rs0 ∩ rs1 = ∅ → (hR0 * hR1)[rs0 ∪ rs1, f, g]
cf(r) = a × r0, rs0 ∩ rs1 = ∅, hR[rs1, cf, af], o[r => _o][rs0, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af] ⊦ o[r => a × r0][rs0, cf, af] ∧ hR[rs1, cf, af] ∧ rs0 ∩ rs1 = ∅
Used terms: cf, rs0, hR, af, o[r => a × r0], rs1
| ⊦ hR0[rs0, f, g] ∧ hR1[rs1, f, g] ∧ rs0 ∩ rs1 = ∅ → (hR0 * hR1)[rs0 ∪ rs1, f, g] |
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, hR[rs1, cf, af], o[r => _o][rs0, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af] ⊦ o[r => a × r0][rs0, cf, af] ∧ hR[rs1, cf, af] ∧ rs0 ∩ rs1 = ∅ |
cf(r) = a × r0, rs0 ∩ rs1 = ∅, o[r => _o][rs0, cf, af], hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ¬ o[r => a × r0][rs0, cf, af] ⊦
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, o[r => _o][rs0, cf, af], hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ¬ o[r => a × r0][rs0, cf, af] ⊦ |
⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g))
cf(r) = a × r0, rs0 ∩ rs1 = ∅, hR[rs1, cf, af], o[r => _o][rs0, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ¬ o[r => a × r0](mk(rs0, cf, af)) ⊦
Used terms: o[r => a × r0], rs0, cf, af
| ⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g)) |
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, hR[rs1, cf, af], o[r => _o][rs0, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ¬ o[r => a × r0](mk(rs0, cf, af)) ⊦ |
⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a)
cf(r) = a × r0, rs0 ∩ rs1 = ∅, o[r => _o][rs0, cf, af], hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ¬ ((r => a × r0))(mk(rs0, cf)) ∨ (∃ r. ¬(r ∈ rs0 → af(r) = o)) ⊦
Used terms: cf, o, r => a × r0, rs0, af
| ⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a) |
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, o[r => _o][rs0, cf, af], hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ¬ ((r => a × r0))(mk(rs0, cf)) ∨ (∃ r. ¬(r ∈ rs0 → af(r) = o)) ⊦ |
cf(r) = a × r0, rs0 ∩ rs1 = ∅, hR[rs1, cf, af], o[r => _o][rs0, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ¬ ((r => a × r0))(mk(rs0, cf)) ∨ ¬(r1 ∈ rs0 → af(r1) = o) ⊦
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, hR[rs1, cf, af], o[r => _o][rs0, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ¬ ((r => a × r0))(mk(rs0, cf)) ∨ ¬(r1 ∈ rs0 → af(r1) = o) ⊦ |
⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g))
cf(r) = a × r0, rs0 ∩ rs1 = ∅, o[r => _o](mk(rs0, cf, af)), hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ¬ ((r => a × r0))(mk(rs0, cf)) ∨ ¬(r1 ∈ rs0 → af(r1) = o) ⊦
Used terms: o[r => _o], rs0, cf, af
| ⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g)) |
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, o[r => _o](mk(rs0, cf, af)), hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ¬ ((r => a × r0))(mk(rs0, cf)) ∨ ¬(r1 ∈ rs0 → af(r1) = o) ⊦ |
⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a)
cf(r) = a × r0, rs0 ∩ rs1 = ∅, ((r => _o))(mk(rs0, cf)), hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o, ¬ ((r => a × r0))(mk(rs0, cf)) ∨ ¬(r1 ∈ rs0 → af(r1) = o) ⊦
Used terms: cf, o, r => _o, rs0, af
| ⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a) |
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, ((r => _o))(mk(rs0, cf)), hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o, ¬ ((r => a × r0))(mk(rs0, cf)) ∨ ¬(r1 ∈ rs0 → af(r1) = o) ⊦ |
cf(r) = a × r0, rs0 ∩ rs1 = ∅, ((r => _o))(mk(rs0, cf)), hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o, ¬ ((r => a × r0))(mk(rs0, cf)) ∨ ¬(r1 ∈ rs0 → af(r1) = o) ⊦
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, ((r => _o))(mk(rs0, cf)), hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o, ¬ ((r => a × r0))(mk(rs0, cf)) ∨ ¬(r1 ∈ rs0 → af(r1) = o) ⊦ |
cf(r) = a × r0, rs0 ∩ rs1 = ∅, ((r => _o))(mk(rs0, cf)), hR[rs1, cf, af], ¬ ((r => a × r0))(mk(rs0, cf)), ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o ⊦
cf(r) = a × r0, rs0 ∩ rs1 = ∅, af(r1) ≠ o, ((r => _o))(mk(rs0, cf)), hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o ⊦
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, ((r => _o))(mk(rs0, cf)), hR[rs1, cf, af], ¬ ((r => a × r0))(mk(rs0, cf)), ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o ⊦ |
⊦ ((r => o))(h) ↔ h = (∅ ++ r)[r, o] ∧ r ≠ null
cf(r) = a × r0, rs0 ∩ rs1 = ∅, ((r => _o))(mk(rs0, cf)), hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o, mk(rs0, cf) ≠ (∅ ++ r)[r, a × r0] ∨ r = null ⊦
Used terms: mk(rs0, cf), a × r0, r
| ⊦ ((r => o))(h) ↔ h = (∅ ++ r)[r, o] ∧ r ≠ null |
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, ((r => _o))(mk(rs0, cf)), hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o, mk(rs0, cf) ≠ (∅ ++ r)[r, a × r0] ∨ r = null ⊦ |
cf(r) = a × r0, rs0 ∩ rs1 = ∅, mk(rs0, cf) ≠ (∅ ++ r)[r, a × r0], r ≠ null, ((r => _o))(mk(rs0, cf)), hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o ⊦
Used simplifier rules: ⊦ ¬ false(h); (s) ⊦ ⌜false⌝ = false; (s) ⊦ null => o = ⌜false⌝ ; (s)
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, mk(rs0, cf) ≠ (∅ ++ r)[r, a × r0], r ≠ null, ((r => _o))(mk(rs0, cf)), hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o ⊦ |
⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r]))
cf(r) = a × r0, rs0 ∩ rs1 = ∅, r ≠ null, ((r => _o))(mk(rs0, cf)), hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o, ∃ r1. ¬((r1 ∈ mk(rs0, cf) ↔ r1 ∈ (∅ ++ r)[r, a × r0]) ∧ (r1 ∈ mk(rs0, cf) → mk(rs0, cf)[r1] = (∅ ++ r)[r, a × r0][r1])) ⊦
Used terms: (∅ ++ r)[r, a × r0], mk(rs0, cf)
| ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r])) |
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, r ≠ null, ((r => _o))(mk(rs0, cf)), hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o, ∃ r1. ¬((r1 ∈ mk(rs0, cf) ↔ r1 ∈ (∅ ++ r)[r, a × r0]) ∧ (r1 ∈ mk(rs0, cf) → mk(rs0, cf)[r1] = (∅ ++ r)[r, a × r0][r1])) ⊦ |
cf(r) = a × r0, rs0 ∩ rs1 = ∅, r ≠ null, ((r => _o))(mk(rs0, cf)), hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o ⊦ (r1 ∈ rs0 ↔ r1 = r) ∧ (r1 ∈ rs0 → cf(r1) = (r1 = r ⊃ a × r0;(∅ ++ r)[r1]))
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)
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, r ≠ null, ((r => _o))(mk(rs0, cf)), hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o ⊦ (r1 ∈ rs0 ↔ r1 = r) ∧ (r1 ∈ rs0 → cf(r1) = (r1 = r ⊃ a × r0;(∅ ++ r)[r1])) |
⊦ ((r => o))(h) ↔ h = (∅ ++ r)[r, o] ∧ r ≠ null
cf(r) = a × r0, mk(rs0, cf) = (∅ ++ r)[r, _o], rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o ⊦ (r1 ∈ rs0 ↔ r1 = r) ∧ (r1 ∈ rs0 → cf(r1) = (r1 = r ⊃ a × r0;(∅ ++ r)[r1]))
Used terms: mk(rs0, cf), _o, r
| ⊦ ((r => o))(h) ↔ h = (∅ ++ r)[r, o] ∧ r ≠ null |
| cf(r) = a × r0, mk(rs0, cf) = (∅ ++ r)[r, _o], rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o ⊦ (r1 ∈ rs0 ↔ r1 = r) ∧ (r1 ∈ rs0 → cf(r1) = (r1 = r ⊃ a × r0;(∅ ++ r)[r1])) |
cf(r) = a × r0, mk(rs0, cf) = (∅ ++ r)[r, _o], rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o ⊦ (r1 ∈ rs0 ↔ r1 = r) ∧ (r1 ∈ rs0 → cf(r1) = (r1 = r ⊃ a × r0;(∅ ++ r)[r1]))
| cf(r) = a × r0, mk(rs0, cf) = (∅ ++ r)[r, _o], rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o ⊦ (r1 ∈ rs0 ↔ r1 = r) ∧ (r1 ∈ rs0 → cf(r1) = (r1 = r ⊃ a × r0;(∅ ++ r)[r1])) |
⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r]))
cf(r) = a × r0, rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o, ∀ r0. (r0 ∈ mk(rs0, cf) ↔ r0 ∈ (∅ ++ r)[r, _o]) ∧ (r0 ∈ mk(rs0, cf) → mk(rs0, cf)[r0] = (∅ ++ r)[r, _o][r0]) ⊦ (r1 ∈ rs0 ↔ r1 = r) ∧ (r1 ∈ rs0 → cf(r1) = (r1 = r ⊃ a × r0;(∅ ++ r)[r1]))
Used terms: (∅ ++ r)[r, _o], mk(rs0, cf)
| ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r])) |
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o, ∀ r0. (r0 ∈ mk(rs0, cf) ↔ r0 ∈ (∅ ++ r)[r, _o]) ∧ (r0 ∈ mk(rs0, cf) → mk(rs0, cf)[r0] = (∅ ++ r)[r, _o][r0]) ⊦ (r1 ∈ rs0 ↔ r1 = r) ∧ (r1 ∈ rs0 → cf(r1) = (r1 = r ⊃ a × r0;(∅ ++ r)[r1])) |
cf(r) = a × r0, rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o, ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])) ⊦ (r1 ∈ rs0 ↔ r1 = r) ∧ (r1 ∈ rs0 → cf(r1) = (r1 = r ⊃ a × r0;(∅ ++ r)[r1]))
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)
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o, ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])) ⊦ (r1 ∈ rs0 ↔ r1 = r) ∧ (r1 ∈ rs0 → cf(r1) = (r1 = r ⊃ a × r0;(∅ ++ r)[r1])) |
cf(r) = a × r0, rs0 ∩ rs1 = ∅, ¬(r1 ∈ rs0 ↔ r1 = r), r ≠ null, hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])), ∀ r. r ∈ rs0 → af(r) = o ⊦
cf(r) = a × r0, rs0 ∩ rs1 = ∅, cf(r1) ≠ (r1 = r ⊃ a × r0;(∅ ++ r)[r1]), r ≠ null, hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])), ∀ r. r ∈ rs0 → af(r) = o ⊦
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, ¬(r1 ∈ rs0 ↔ r1 = r), r ≠ null, hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])), ∀ r. r ∈ rs0 → af(r) = o ⊦ |
cf(r) = a × r0, rs0 ∩ rs1 = ∅, r ≠ null, r1 ≠ r, hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o, ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])) ⊦
cf(r) = a × r0, r1 = r, rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ¬ r1 ∈ rs0, ∀ r. r ∈ rs0 → af(r) = o, ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])) ⊦
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, r ≠ null, r1 ≠ r, hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o, ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])) ⊦ |
cf(r) = a × r0, rs0 ∩ rs1 = ∅, r ≠ null, r1 ≠ r, hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])), ∀ r. r ∈ rs0 → af(r) = o ⊦
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, r ≠ null, r1 ≠ r, hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])), ∀ r. r ∈ rs0 → af(r) = o ⊦ |
r0 ∈ rs0 ↔ r0 = r, cf(r) = a × r0, rs0 ∩ rs1 = ∅, r ≠ null, r1 ≠ r, hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], r0 ∈ rs0 → cf(r0) = (r0 = r ⊃ _o;(∅ ++ r)[r0]), ∀ r. r ∈ rs0 → af(r) = o, ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])) ⊦
Used terms: r0
| r0 ∈ rs0 ↔ r0 = r, cf(r) = a × r0, rs0 ∩ rs1 = ∅, r ≠ null, r1 ≠ r, hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], r0 ∈ rs0 → cf(r0) = (r0 = r ⊃ _o;(∅ ++ r)[r0]), ∀ r. r ∈ rs0 → af(r) = o, ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])) ⊦ |
r0 ∈ rs0 ↔ r0 = r, cf(r) = a × r0, rs0 ∩ rs1 = ∅, r ≠ null, r1 ≠ r, hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], r0 = r → a × r = _o, ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])), ∀ r. r ∈ rs0 → af(r) = o ⊦
| r0 ∈ rs0 ↔ r0 = r, cf(r) = a × r0, rs0 ∩ rs1 = ∅, r ≠ null, r1 ≠ r, hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], r0 = r → a × r = _o, ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])), ∀ r. r ∈ rs0 → af(r) = o ⊦ |
Used terms: r1
| cf(r) = a × r0, r1 = r, rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ¬ r1 ∈ rs0, ∀ r. r ∈ rs0 → af(r) = o, ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])) ⊦ |
cf(r) = a × r0, rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ¬ r ∈ rs0, ∀ r. r ∈ rs0 → af(r) = o, ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (∅ ++ r)[r2]) ⊦
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, cf, af], ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ¬ r ∈ rs0, ∀ r. r ∈ rs0 → af(r) = o, ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (∅ ++ r)[r2]) ⊦ |
Used terms: r
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, cf(r1) ≠ (r1 = r ⊃ a × r0;(∅ ++ r)[r1]), r ≠ null, hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])), ∀ r. r ∈ rs0 → af(r) = o ⊦ |
cf(r) = a × r0, rs0 ∩ rs1 = ∅, cf(r1) ≠ (r1 = r ⊃ a × r0;(∅ ++ r)[r1]), r ≠ null, hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o, ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])) ⊦
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, cf(r1) ≠ (r1 = r ⊃ a × r0;(∅ ++ r)[r1]), r ≠ null, hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o, ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])) ⊦ |
cf(r) = a × r0, rs0 ∩ rs1 = ∅, cf(r1) ≠ (∅ ++ r)[r1], r ≠ null, r1 ≠ r, hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])), ∀ r. r ∈ rs0 → af(r) = o ⊦
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, cf(r1) ≠ (∅ ++ r)[r1], r ≠ null, r1 ≠ r, hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])), ∀ r. r ∈ rs0 → af(r) = o ⊦ |
cf(r) = a × r0, rs0 ∩ rs1 = ∅, cf(r1) ≠ (∅ ++ r)[r1], r ≠ null, r1 ≠ r, hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o, ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])) ⊦
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, cf(r1) ≠ (∅ ++ r)[r1], r ≠ null, r1 ≠ r, hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o, ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])) ⊦ |
r0 ∈ rs0 ↔ r0 = r, cf(r) = a × r0, rs0 ∩ rs1 = ∅, cf(r1) ≠ (∅ ++ r)[r1], r ≠ null, r1 ≠ r, hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], r0 ∈ rs0 → cf(r0) = (r0 = r ⊃ _o;(∅ ++ r)[r0]), ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])), ∀ r. r ∈ rs0 → af(r) = o ⊦
Used terms: r0
| r0 ∈ rs0 ↔ r0 = r, cf(r) = a × r0, rs0 ∩ rs1 = ∅, cf(r1) ≠ (∅ ++ r)[r1], r ≠ null, r1 ≠ r, hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], r0 ∈ rs0 → cf(r0) = (r0 = r ⊃ _o;(∅ ++ r)[r0]), ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])), ∀ r. r ∈ rs0 → af(r) = o ⊦ |
r0 ∈ rs0 ↔ r0 = r, cf(r) = a × r0, rs0 ∩ rs1 = ∅, cf(r1) ≠ (∅ ++ r)[r1], r ≠ null, r1 ≠ r, hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], r0 = r → a × r = _o, ∀ r. r ∈ rs0 → af(r) = o, ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])) ⊦
| r0 ∈ rs0 ↔ r0 = r, cf(r) = a × r0, rs0 ∩ rs1 = ∅, cf(r1) ≠ (∅ ++ r)[r1], r ≠ null, r1 ≠ r, hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], r0 = r → a × r = _o, ∀ r. r ∈ rs0 → af(r) = o, ∀ r2. (r2 ∈ rs0 ↔ r2 = r) ∧ (r2 ∈ rs0 → cf(r2) = (r2 = r ⊃ _o;(∅ ++ r)[r2])) ⊦ |
Used terms: r1
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, af(r1) ≠ o, ((r => _o))(mk(rs0, cf)), hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o ⊦ |
cf(r) = a × r0, rs0 ∩ rs1 = ∅, af(r1) ≠ o, ((r => _o))(mk(rs0, cf)), hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o ⊦
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, af(r1) ≠ o, ((r => _o))(mk(rs0, cf)), hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], ∀ r. r ∈ rs0 → af(r) = o ⊦ |
cf(r) = a × r0, rs0 ∩ rs1 = ∅, af(r1) ≠ o, ((r => _o))(mk(rs0, cf)), hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], r0 ∈ rs0 → af(r0) = o, ∀ r. r ∈ rs0 → af(r) = o ⊦
Used terms: r0
| cf(r) = a × r0, rs0 ∩ rs1 = ∅, af(r1) ≠ o, ((r => _o))(mk(rs0, cf)), hR[rs1, cf, af], r1 ∈ rs0, ¬ (o[r => a × r0] * hR)[rs0 ∪ rs1, cf, af], r0 ∈ rs0 → af(r0) = o, ∀ r. r ∈ rs0 → af(r) = o ⊦ |
Used terms: r1
| cf(r) = a × r0, (o[r => a × r0] * hR)[rs, cf, af] ⊦ ∃ _o. (o[r => _o] * hR)[rs, cf, af] |
Used terms: cf(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.