| ⊦ (a[r => o0] * hR)[rs, f, g] ↔ (a[r => o1] * hR)[rs, f(r; o1), g] ∧ f(r) = o0 |
¬((a[r => o0] * hR)[rs, f, g] ↔ (a[r => o1] * hR)[rs, f(r; o1), g] ∧ f(r) = o0) ⊦
| ¬((a[r => o0] * hR)[rs, f, g] ↔ (a[r => o1] * hR)[rs, f(r; o1), g] ∧ f(r) = o0) ⊦ |
¬((a[r => o0] * hR)[rs, f, g] ↔ (a[r => o1] * hR)[rs, f(r; o1), g] ∧ f(r) = o0) ⊦
| ¬((a[r => o0] * hR)[rs, f, g] ↔ (a[r => o1] * hR)[rs, f(r; o1), g] ∧ f(r) = o0) ⊦ |
(a[r => o0] * hR)[rs, f, g] ⊦ (a[r => o1] * hR)[rs, f(r; o1), g] ∧ f(r) = o0
f(r) = o0, (a[r => o1] * hR)[rs, f(r; o1), g], ¬ (a[r => o0] * hR)[rs, f, g] ⊦
| (a[r => o0] * hR)[rs, f, g] ⊦ (a[r => o1] * hR)[rs, f(r; o1), g] ∧ f(r) = o0 |
⊦ (hR0 * hR1)[rs, f, g] ↔ (∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ hR0[rs0, f, g] ∧ hR1[rs1, f, g])
∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ a[r => o0][rs0, f, g] ∧ hR[rs1, f, g] ⊦ (a[r => o1] * hR)[rs, f(r; o1), g] ∧ f(r) = o0
Used terms: rs, hR, g, a[r => o0], f
| ⊦ (hR0 * hR1)[rs, f, g] ↔ (∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ hR0[rs0, f, g] ∧ hR1[rs1, f, g]) |
| ∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ a[r => o0][rs0, f, g] ∧ hR[rs1, f, g] ⊦ (a[r => o1] * hR)[rs, f(r; o1), g] ∧ f(r) = o0 |
rs0 ∩ rs1 = ∅, a[r => o0][rs0, f, g], hR[rs1, f, g] ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0
| rs0 ∩ rs1 = ∅, a[r => o0][rs0, f, g], hR[rs1, f, g] ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0 |
⊦ hR0[rs0, f, g] ∧ hR1[rs1, f, g] ∧ rs0 ∩ rs1 = ∅ → (hR0 * hR1)[rs0 ∪ rs1, f, g]
rs0 ∩ rs1 = ∅, hR[rs1, f, g], a[r => o0][rs0, f, g] ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0, a[r => o1][rs0, f(r; o1), g] ∧ hR[rs1, f(r; o1), g] ∧ rs0 ∩ rs1 = ∅
rs0 ∩ rs1 = ∅, hR[rs1, f, g], a[r => o0][rs0, f, g], a[r => o1][rs0, f(r; o1), g], hR[rs1, f(r; o1), g] ⊦ true ∧ f(r) = o0
Used terms: rs0, hR, g, a[r => o1], f(r; o1), rs1
| ⊦ hR0[rs0, f, g] ∧ hR1[rs1, f, g] ∧ rs0 ∩ rs1 = ∅ → (hR0 * hR1)[rs0 ∪ rs1, f, g] |
| rs0 ∩ rs1 = ∅, hR[rs1, f, g], a[r => o0][rs0, f, g] ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0, a[r => o1][rs0, f(r; o1), g] ∧ hR[rs1, f(r; o1), g] ∧ rs0 ∩ rs1 = ∅ |
rs0 ∩ rs1 = ∅, a[r => o0][rs0, f, g], hR[rs1, f, g] ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0, a[r => o1][rs0, f(r; o1), g] ∧ hR[rs1, f(r; o1), g]
| rs0 ∩ rs1 = ∅, a[r => o0][rs0, f, g], hR[rs1, f, g] ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0, a[r => o1][rs0, f(r; o1), g] ∧ hR[rs1, f(r; o1), g] |
rs0 ∩ rs1 = ∅, hR[rs1, f, g], a[r => o0][rs0, f, g], ¬ a[r => o1][rs0, f(r; o1), g] ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0
rs0 ∩ rs1 = ∅, hR[rs1, f, g], a[r => o0][rs0, f, g], ¬ hR[rs1, f(r; o1), g] ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0
| rs0 ∩ rs1 = ∅, hR[rs1, f, g], a[r => o0][rs0, f, g], ¬ a[r => o1][rs0, f(r; o1), g] ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0 |
rs0 ∩ rs1 = ∅, a[r => o0][rs0, f, g], hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ¬ a[r => o1][rs0, f(r; o1), g] ⊦
rs0 ∩ rs1 = ∅, f(r) ≠ o0, a[r => o0][rs0, f, g], hR[rs1, f, g], ¬ a[r => o1][rs0, f(r; o1), g] ⊦
| rs0 ∩ rs1 = ∅, a[r => o0][rs0, f, g], hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ¬ a[r => o1][rs0, f(r; o1), g] ⊦ |
⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g))
rs0 ∩ rs1 = ∅, hR[rs1, f, g], a[r => o0][rs0, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ¬ a[r => o1](mk(rs0, f(r; o1), g)) ⊦
Used terms: g, f(r; o1), rs0, a[r => o1]
| ⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g)) |
| rs0 ∩ rs1 = ∅, hR[rs1, f, g], a[r => o0][rs0, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ¬ a[r => o1](mk(rs0, f(r; o1), g)) ⊦ |
⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a)
rs0 ∩ rs1 = ∅, a[r => o0][rs0, f, g], hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ¬ ((r => o1))(mk(rs0, f(r; o1))) ∨ (∃ r. ¬(r ∈ rs0 → g(r) = a)) ⊦
Used terms: a, r => o1, rs0, g, f(r; o1)
| ⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a) |
| rs0 ∩ rs1 = ∅, a[r => o0][rs0, f, g], hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ¬ ((r => o1))(mk(rs0, f(r; o1))) ∨ (∃ r. ¬(r ∈ rs0 → g(r) = a)) ⊦ |
rs0 ∩ rs1 = ∅, hR[rs1, f, g], a[r => o0][rs0, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ¬ ((r => o1))(mk(rs0, f(r; o1))) ∨ ¬(r0 ∈ rs0 → g(r0) = a) ⊦
| rs0 ∩ rs1 = ∅, hR[rs1, f, g], a[r => o0][rs0, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ¬ ((r => o1))(mk(rs0, f(r; o1))) ∨ ¬(r0 ∈ rs0 → g(r0) = a) ⊦ |
⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g))
rs0 ∩ rs1 = ∅, a[r => o0](mk(rs0, f, g)), hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ¬ ((r => o1))(mk(rs0, f(r; o1))) ∨ ¬(r0 ∈ rs0 → g(r0) = a) ⊦
Used terms: g, f, rs0, a[r => o0]
| ⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g)) |
| rs0 ∩ rs1 = ∅, a[r => o0](mk(rs0, f, g)), hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ¬ ((r => o1))(mk(rs0, f(r; o1))) ∨ ¬(r0 ∈ rs0 → g(r0) = a) ⊦ |
⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a)
rs0 ∩ rs1 = ∅, ((r => o0))(mk(rs0, f)), hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a, ¬ ((r => o1))(mk(rs0, f(r; o1))) ∨ ¬(r0 ∈ rs0 → g(r0) = a) ⊦
Used terms: a, r => o0, rs0, g, f
| ⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a) |
| rs0 ∩ rs1 = ∅, ((r => o0))(mk(rs0, f)), hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a, ¬ ((r => o1))(mk(rs0, f(r; o1))) ∨ ¬(r0 ∈ rs0 → g(r0) = a) ⊦ |
rs0 ∩ rs1 = ∅, ((r => o0))(mk(rs0, f)), hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a, ¬ ((r => o1))(mk(rs0, f(r; o1))) ∨ ¬(r0 ∈ rs0 → g(r0) = a) ⊦
| rs0 ∩ rs1 = ∅, ((r => o0))(mk(rs0, f)), hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a, ¬ ((r => o1))(mk(rs0, f(r; o1))) ∨ ¬(r0 ∈ rs0 → g(r0) = a) ⊦ |
rs0 ∩ rs1 = ∅, ((r => o0))(mk(rs0, f)), hR[rs1, f, g], ¬ ((r => o1))(mk(rs0, f(r; o1))), ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦
rs0 ∩ rs1 = ∅, g(r0) ≠ a, ((r => o0))(mk(rs0, f)), hR[rs1, f, g], r0 ∈ rs0, ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦
| rs0 ∩ rs1 = ∅, ((r => o0))(mk(rs0, f)), hR[rs1, f, g], ¬ ((r => o1))(mk(rs0, f(r; o1))), ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦ |
⊦ ((r => o))(h) ↔ h = (∅ ++ r)[r, o] ∧ r ≠ null
rs0 ∩ rs1 = ∅, ((r => o0))(mk(rs0, f)), hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a, mk(rs0, f(r; o1)) ≠ (∅ ++ r)[r, o1] ∨ r = null ⊦
Used terms: mk(rs0, f(r; o1)), o1, r
| ⊦ ((r => o))(h) ↔ h = (∅ ++ r)[r, o] ∧ r ≠ null |
| rs0 ∩ rs1 = ∅, ((r => o0))(mk(rs0, f)), hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a, mk(rs0, f(r; o1)) ≠ (∅ ++ r)[r, o1] ∨ r = null ⊦ |
rs0 ∩ rs1 = ∅, mk(rs0, f(r; o1)) ≠ (∅ ++ r)[r, o1], r ≠ null, ((r => o0))(mk(rs0, f)), hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦
Used simplifier rules: ⊦ ¬ false(h); (s) ⊦ ⌜false⌝ = false; (s) ⊦ null => o = ⌜false⌝ ; (s)
| rs0 ∩ rs1 = ∅, mk(rs0, f(r; o1)) ≠ (∅ ++ r)[r, o1], r ≠ null, ((r => o0))(mk(rs0, f)), hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦ |
⊦ ((r => o))(h) ↔ h = (∅ ++ r)[r, o] ∧ r ≠ null
mk(rs0, f) = (∅ ++ r)[r, o0], rs0 ∩ rs1 = ∅, mk(rs0, f(r; o1)) ≠ (∅ ++ r)[r, o1], r ≠ null, hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦
Used terms: mk(rs0, f), o0, r
| ⊦ ((r => o))(h) ↔ h = (∅ ++ r)[r, o] ∧ r ≠ null |
| mk(rs0, f) = (∅ ++ r)[r, o0], rs0 ∩ rs1 = ∅, mk(rs0, f(r; o1)) ≠ (∅ ++ r)[r, o1], r ≠ null, hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦ |
mk(rs0, f) = (∅ ++ r)[r, o0], rs0 ∩ rs1 = ∅, mk(rs0, f(r; o1)) ≠ (∅ ++ r)[r, o1], r ≠ null, hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦
| mk(rs0, f) = (∅ ++ r)[r, o0], rs0 ∩ rs1 = ∅, mk(rs0, f(r; o1)) ≠ (∅ ++ r)[r, o1], r ≠ null, hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦ |
⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r]))
rs0 ∩ rs1 = ∅, mk(rs0, f(r; o1)) ≠ (∅ ++ r)[r, o1], r ≠ null, hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ mk(rs0, f) ↔ r0 ∈ (∅ ++ r)[r, o0]) ∧ (r0 ∈ mk(rs0, f) → mk(rs0, f)[r0] = (∅ ++ r)[r, o0][r0]) ⊦
Used terms: (∅ ++ r)[r, o0], mk(rs0, f)
| ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r])) |
| rs0 ∩ rs1 = ∅, mk(rs0, f(r; o1)) ≠ (∅ ++ r)[r, o1], r ≠ null, hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ mk(rs0, f) ↔ r0 ∈ (∅ ++ r)[r, o0]) ∧ (r0 ∈ mk(rs0, f) → mk(rs0, f)[r0] = (∅ ++ r)[r, o0][r0]) ⊦ |
rs0 ∩ rs1 = ∅, mk(rs0, f(r; o1)) ≠ (∅ ++ r)[r, o1], r ≠ null, hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ rs0 ↔ r0 = r) ∧ (r0 ∈ rs0 → f(r0) = (r0 = r ⊃ o0;(∅ ++ 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 = ∅, mk(rs0, f(r; o1)) ≠ (∅ ++ r)[r, o1], r ≠ null, hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ rs0 ↔ r0 = r) ∧ (r0 ∈ rs0 → f(r0) = (r0 = r ⊃ o0;(∅ ++ r)[r0])) ⊦ |
⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r]))
rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r0. (r0 ∈ rs0 ↔ r0 = r) ∧ (r0 ∈ rs0 → f(r0) = (r0 = r ⊃ o0;(∅ ++ r)[r0])), ∀ r. r ∈ rs0 → g(r) = a, ∃ r0. ¬((r0 ∈ mk(rs0, f(r; o1)) ↔ r0 ∈ (∅ ++ r)[r, o1]) ∧ (r0 ∈ mk(rs0, f(r; o1)) → mk(rs0, f(r; o1))[r0] = (∅ ++ r)[r, o1][r0])) ⊦
Used terms: (∅ ++ r)[r, o1], mk(rs0, f(r; o1))
| ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r])) |
| rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r0. (r0 ∈ rs0 ↔ r0 = r) ∧ (r0 ∈ rs0 → f(r0) = (r0 = r ⊃ o0;(∅ ++ r)[r0])), ∀ r. r ∈ rs0 → g(r) = a, ∃ r0. ¬((r0 ∈ mk(rs0, f(r; o1)) ↔ r0 ∈ (∅ ++ r)[r, o1]) ∧ (r0 ∈ mk(rs0, f(r; o1)) → mk(rs0, f(r; o1))[r0] = (∅ ++ r)[r, o1][r0])) ⊦ |
rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ rs0 ↔ r0 = r) ∧ (r0 ∈ rs0 → f(r0) = (r0 = r ⊃ o0;(∅ ++ r)[r0])) ⊦ (r0 ∈ rs0 ↔ r0 = r) ∧ (r0 ∈ rs0 → (r = r0 ⊃ o1;f(r0)) = (r0 = r ⊃ o1;(∅ ++ 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 = ∅, r ≠ null, hR[rs1, f, g], ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ rs0 ↔ r0 = r) ∧ (r0 ∈ rs0 → f(r0) = (r0 = r ⊃ o0;(∅ ++ r)[r0])) ⊦ (r0 ∈ rs0 ↔ r0 = r) ∧ (r0 ∈ rs0 → (r = r0 ⊃ o1;f(r0)) = (r0 = r ⊃ o1;(∅ ++ r)[r0])) |
Used terms: r0
| rs0 ∩ rs1 = ∅, g(r0) ≠ a, ((r => o0))(mk(rs0, f)), hR[rs1, f, g], r0 ∈ rs0, ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦ |
rs0 ∩ rs1 = ∅, g(r0) ≠ a, ((r => o0))(mk(rs0, f)), hR[rs1, f, g], r0 ∈ rs0, ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦
| rs0 ∩ rs1 = ∅, g(r0) ≠ a, ((r => o0))(mk(rs0, f)), hR[rs1, f, g], r0 ∈ rs0, ¬ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦ |
Used terms: r0
| rs0 ∩ rs1 = ∅, f(r) ≠ o0, a[r => o0][rs0, f, g], hR[rs1, f, g], ¬ a[r => o1][rs0, f(r; o1), g] ⊦ |
⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g))
rs0 ∩ rs1 = ∅, f(r) ≠ o0, hR[rs1, f, g], a[r => o0](mk(rs0, f, g)), ¬ a[r => o1][rs0, f(r; o1), g] ⊦
Used terms: g, f, rs0, a[r => o0]
| ⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g)) |
| rs0 ∩ rs1 = ∅, f(r) ≠ o0, hR[rs1, f, g], a[r => o0](mk(rs0, f, g)), ¬ a[r => o1][rs0, f(r; o1), g] ⊦ |
⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a)
rs0 ∩ rs1 = ∅, f(r) ≠ o0, ((r => o0))(mk(rs0, f)), hR[rs1, f, g], ¬ a[r => o1][rs0, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦
Used terms: a, r => o0, rs0, g, f
| ⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a) |
| rs0 ∩ rs1 = ∅, f(r) ≠ o0, ((r => o0))(mk(rs0, f)), hR[rs1, f, g], ¬ a[r => o1][rs0, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦ |
rs0 ∩ rs1 = ∅, f(r) ≠ o0, ((r => o0))(mk(rs0, f)), hR[rs1, f, g], ¬ a[r => o1][rs0, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦
| rs0 ∩ rs1 = ∅, f(r) ≠ o0, ((r => o0))(mk(rs0, f)), hR[rs1, f, g], ¬ a[r => o1][rs0, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦ |
⊦ ((r => o))(h) ↔ h = (∅ ++ r)[r, o] ∧ r ≠ null
mk(rs0, f) = (∅ ++ r)[r, o0], rs0 ∩ rs1 = ∅, f(r) ≠ o0, r ≠ null, hR[rs1, f, g], ¬ a[r => o1][rs0, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦
Used terms: mk(rs0, f), o0, r
| ⊦ ((r => o))(h) ↔ h = (∅ ++ r)[r, o] ∧ r ≠ null |
| mk(rs0, f) = (∅ ++ r)[r, o0], rs0 ∩ rs1 = ∅, f(r) ≠ o0, r ≠ null, hR[rs1, f, g], ¬ a[r => o1][rs0, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦ |
mk(rs0, f) = (∅ ++ r)[r, o0], rs0 ∩ rs1 = ∅, f(r) ≠ o0, r ≠ null, hR[rs1, f, g], ¬ a[r => o1][rs0, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦
| mk(rs0, f) = (∅ ++ r)[r, o0], rs0 ∩ rs1 = ∅, f(r) ≠ o0, r ≠ null, hR[rs1, f, g], ¬ a[r => o1][rs0, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦ |
⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r]))
rs0 ∩ rs1 = ∅, f(r) ≠ o0, r ≠ null, hR[rs1, f, g], ¬ a[r => o1][rs0, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ mk(rs0, f) ↔ r0 ∈ (∅ ++ r)[r, o0]) ∧ (r0 ∈ mk(rs0, f) → mk(rs0, f)[r0] = (∅ ++ r)[r, o0][r0]) ⊦
Used terms: (∅ ++ r)[r, o0], mk(rs0, f)
| ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r])) |
| rs0 ∩ rs1 = ∅, f(r) ≠ o0, r ≠ null, hR[rs1, f, g], ¬ a[r => o1][rs0, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ mk(rs0, f) ↔ r0 ∈ (∅ ++ r)[r, o0]) ∧ (r0 ∈ mk(rs0, f) → mk(rs0, f)[r0] = (∅ ++ r)[r, o0][r0]) ⊦ |
rs0 ∩ rs1 = ∅, f(r) ≠ o0, r ≠ null, hR[rs1, f, g], ¬ a[r => o1][rs0, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ rs0 ↔ r0 = r) ∧ (r0 ∈ rs0 → f(r0) = (r0 = r ⊃ o0;(∅ ++ 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 = ∅, f(r) ≠ o0, r ≠ null, hR[rs1, f, g], ¬ a[r => o1][rs0, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ rs0 ↔ r0 = r) ∧ (r0 ∈ rs0 → f(r0) = (r0 = r ⊃ o0;(∅ ++ r)[r0])) ⊦ |
Used terms: r
| rs0 ∩ rs1 = ∅, hR[rs1, f, g], a[r => o0][rs0, f, g], ¬ hR[rs1, f(r; o1), g] ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0 |
⊦ ¬ r ∈ rs → (hR[rs, f(r; o), g] ↔ hR[rs, f, g])
rs0 ∩ rs1 = ∅, a[r => o0][rs0, f, g], hR[rs1, f, g], r ∈ rs1, ¬ hR[rs1, f(r; o1), g] ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0
Used terms: hR, r, rs1, g, f, o1
| ⊦ ¬ r ∈ rs → (hR[rs, f(r; o), g] ↔ hR[rs, f, g]) |
| rs0 ∩ rs1 = ∅, a[r => o0][rs0, f, g], hR[rs1, f, g], r ∈ rs1, ¬ hR[rs1, f(r; o1), g] ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0 |
rs0 ∩ rs1 = ∅, hR[rs1, f, g], a[r => o0][rs0, f, g], r ∈ rs1, ¬ hR[rs1, f(r; o1), g] ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0
| rs0 ∩ rs1 = ∅, hR[rs1, f, g], a[r => o0][rs0, f, g], r ∈ rs1, ¬ hR[rs1, f(r; o1), g] ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0 |
⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g))
rs0 ∩ rs1 = ∅, a[r => o0](mk(rs0, f, g)), hR[rs1, f, g], r ∈ rs1, ¬ hR[rs1, f(r; o1), g] ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0
Used terms: g, f, rs0, a[r => o0]
| ⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g)) |
| rs0 ∩ rs1 = ∅, a[r => o0](mk(rs0, f, g)), hR[rs1, f, g], r ∈ rs1, ¬ hR[rs1, f(r; o1), g] ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0 |
⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a)
rs0 ∩ rs1 = ∅, ((r => o0))(mk(rs0, f)), hR[rs1, f, g], r ∈ rs1, ¬ hR[rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0
Used terms: a, r => o0, rs0, g, f
| ⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a) |
| rs0 ∩ rs1 = ∅, ((r => o0))(mk(rs0, f)), hR[rs1, f, g], r ∈ rs1, ¬ hR[rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0 |
rs0 ∩ rs1 = ∅, ((r => o0))(mk(rs0, f)), hR[rs1, f, g], r ∈ rs1, ¬ hR[rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0
| rs0 ∩ rs1 = ∅, ((r => o0))(mk(rs0, f)), hR[rs1, f, g], r ∈ rs1, ¬ hR[rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0 |
⊦ ((r => o))(h) ↔ h = (∅ ++ r)[r, o] ∧ r ≠ null
mk(rs0, f) = (∅ ++ r)[r, o0], rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f, g], r ∈ rs1, ¬ hR[rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0
Used terms: mk(rs0, f), o0, r
| ⊦ ((r => o))(h) ↔ h = (∅ ++ r)[r, o] ∧ r ≠ null |
| mk(rs0, f) = (∅ ++ r)[r, o0], rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f, g], r ∈ rs1, ¬ hR[rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0 |
mk(rs0, f) = (∅ ++ r)[r, o0], rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f, g], r ∈ rs1, ¬ hR[rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0
| mk(rs0, f) = (∅ ++ r)[r, o0], rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f, g], r ∈ rs1, ¬ hR[rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0 |
⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r]))
rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f, g], r ∈ rs1, ¬ hR[rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ mk(rs0, f) ↔ r0 ∈ (∅ ++ r)[r, o0]) ∧ (r0 ∈ mk(rs0, f) → mk(rs0, f)[r0] = (∅ ++ r)[r, o0][r0]) ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0
Used terms: (∅ ++ r)[r, o0], mk(rs0, f)
| ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r])) |
| rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f, g], r ∈ rs1, ¬ hR[rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ mk(rs0, f) ↔ r0 ∈ (∅ ++ r)[r, o0]) ∧ (r0 ∈ mk(rs0, f) → mk(rs0, f)[r0] = (∅ ++ r)[r, o0][r0]) ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0 |
rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f, g], r ∈ rs1, ¬ hR[rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ rs0 ↔ r0 = r) ∧ (r0 ∈ rs0 → f(r0) = (r0 = r ⊃ o0;(∅ ++ r)[r0])) ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0
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 = ∅, r ≠ null, hR[rs1, f, g], r ∈ rs1, ¬ hR[rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ rs0 ↔ r0 = r) ∧ (r0 ∈ rs0 → f(r0) = (r0 = r ⊃ o0;(∅ ++ r)[r0])) ⊦ (a[r => o1] * hR)[rs0 ∪ rs1, f(r; o1), g] ∧ f(r) = o0 |
Used simplifier rules: int-a: ⊦ (s ∩ s0) ∩ s1 = s ∩ s0 ∩ s1; from specification set-union[refset] int-c: ⊦ s ∩ s0 = s0 ∩ s; from specification set-union[refset] ⊦ s ∩ s0 = ∅ ∧ a ∈ s → (a ∈ s0 ↔ false); (as) Used terms: r
| rs0 ∩ rs1 = ∅, hR[rs1, f, g], a[r => o0][rs0, f, g], a[r => o1][rs0, f(r; o1), g], hR[rs1, f(r; o1), g] ⊦ true ∧ f(r) = o0 |
rs0 ∩ rs1 = ∅, f(r) ≠ o0, hR[rs1, f(r; o1), g], a[r => o1][rs0, f(r; o1), g], a[r => o0][rs0, f, g], hR[rs1, f, g] ⊦
| rs0 ∩ rs1 = ∅, f(r) ≠ o0, hR[rs1, f(r; o1), g], a[r => o1][rs0, f(r; o1), g], a[r => o0][rs0, f, g], hR[rs1, f, g] ⊦ |
⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g))
rs0 ∩ rs1 = ∅, f(r) ≠ o0, hR[rs1, f, g], a[r => o0](mk(rs0, f, g)), a[r => o1][rs0, f(r; o1), g], hR[rs1, f(r; o1), g] ⊦
Used terms: g, f, rs0, a[r => o0]
| ⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g)) |
| rs0 ∩ rs1 = ∅, f(r) ≠ o0, hR[rs1, f, g], a[r => o0](mk(rs0, f, g)), a[r => o1][rs0, f(r; o1), g], hR[rs1, f(r; o1), g] ⊦ |
⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a)
rs0 ∩ rs1 = ∅, f(r) ≠ o0, ((r => o0))(mk(rs0, f)), hR[rs1, f(r; o1), g], a[r => o1][rs0, f(r; o1), g], hR[rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a ⊦
Used terms: a, r => o0, rs0, g, f
| ⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a) |
| rs0 ∩ rs1 = ∅, f(r) ≠ o0, ((r => o0))(mk(rs0, f)), hR[rs1, f(r; o1), g], a[r => o1][rs0, f(r; o1), g], hR[rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a ⊦ |
rs0 ∩ rs1 = ∅, f(r) ≠ o0, ((r => o0))(mk(rs0, f)), hR[rs1, f, g], a[r => o1][rs0, f(r; o1), g], hR[rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦
| rs0 ∩ rs1 = ∅, f(r) ≠ o0, ((r => o0))(mk(rs0, f)), hR[rs1, f, g], a[r => o1][rs0, f(r; o1), g], hR[rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦ |
⊦ ((r => o))(h) ↔ h = (∅ ++ r)[r, o] ∧ r ≠ null
mk(rs0, f) = (∅ ++ r)[r, o0], rs0 ∩ rs1 = ∅, f(r) ≠ o0, r ≠ null, hR[rs1, f(r; o1), g], a[r => o1][rs0, f(r; o1), g], hR[rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a ⊦
Used terms: mk(rs0, f), o0, r
| ⊦ ((r => o))(h) ↔ h = (∅ ++ r)[r, o] ∧ r ≠ null |
| mk(rs0, f) = (∅ ++ r)[r, o0], rs0 ∩ rs1 = ∅, f(r) ≠ o0, r ≠ null, hR[rs1, f(r; o1), g], a[r => o1][rs0, f(r; o1), g], hR[rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a ⊦ |
mk(rs0, f) = (∅ ++ r)[r, o0], rs0 ∩ rs1 = ∅, f(r) ≠ o0, r ≠ null, hR[rs1, f, g], a[r => o1][rs0, f(r; o1), g], hR[rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦
| mk(rs0, f) = (∅ ++ r)[r, o0], rs0 ∩ rs1 = ∅, f(r) ≠ o0, r ≠ null, hR[rs1, f, g], a[r => o1][rs0, f(r; o1), g], hR[rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a ⊦ |
⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r]))
rs0 ∩ rs1 = ∅, f(r) ≠ o0, r ≠ null, hR[rs1, f(r; o1), g], a[r => o1][rs0, f(r; o1), g], hR[rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ mk(rs0, f) ↔ r0 ∈ (∅ ++ r)[r, o0]) ∧ (r0 ∈ mk(rs0, f) → mk(rs0, f)[r0] = (∅ ++ r)[r, o0][r0]) ⊦
Used terms: (∅ ++ r)[r, o0], mk(rs0, f)
| ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r])) |
| rs0 ∩ rs1 = ∅, f(r) ≠ o0, r ≠ null, hR[rs1, f(r; o1), g], a[r => o1][rs0, f(r; o1), g], hR[rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ mk(rs0, f) ↔ r0 ∈ (∅ ++ r)[r, o0]) ∧ (r0 ∈ mk(rs0, f) → mk(rs0, f)[r0] = (∅ ++ r)[r, o0][r0]) ⊦ |
rs0 ∩ rs1 = ∅, f(r) ≠ o0, r ≠ null, hR[rs1, f, g], a[r => o1][rs0, f(r; o1), g], hR[rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ rs0 → r0 = r) ∧ (r0 ∈ rs0 → f(r0) = (r0 = r ⊃ o0;(∅ ++ r)[r0])) ⊦
Used simplifier rules: map-in0: ⊦ a[r => o][rs, f, g] → r ∈ rs; 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 = ∅, f(r) ≠ o0, r ≠ null, hR[rs1, f, g], a[r => o1][rs0, f(r; o1), g], hR[rs1, f(r; o1), g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ rs0 → r0 = r) ∧ (r0 ∈ rs0 → f(r0) = (r0 = r ⊃ o0;(∅ ++ r)[r0])) ⊦ |
Used simplifier rules: map-in0: ⊦ a[r => o][rs, f, g] → r ∈ rs; Used terms: r
| f(r) = o0, (a[r => o1] * hR)[rs, f(r; o1), g], ¬ (a[r => o0] * hR)[rs, f, g] ⊦ |
(a[r => o1] * hR)[rs, f(r; o1), g], ¬ (a[r => f(r)] * hR)[rs, f, g] ⊦
| (a[r => o1] * hR)[rs, f(r; o1), g], ¬ (a[r => f(r)] * hR)[rs, f, g] ⊦ |
⊦ (hR0 * hR1)[rs, f, g] ↔ (∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ hR0[rs0, f, g] ∧ hR1[rs1, f, g])
¬ (a[r => f(r)] * hR)[rs, f, g], ∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ a[r => o1][rs0, f(r; o1), g] ∧ hR[rs1, f(r; o1), g] ⊦
Used terms: rs, hR, g, a[r => o1], f(r; o1)
| ⊦ (hR0 * hR1)[rs, f, g] ↔ (∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ hR0[rs0, f, g] ∧ hR1[rs1, f, g]) |
| ¬ (a[r => f(r)] * hR)[rs, f, g], ∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ a[r => o1][rs0, f(r; o1), g] ∧ hR[rs1, f(r; o1), g] ⊦ |
rs0 ∩ rs1 = ∅, a[r => o1][rs0, f(r; o1), g], hR[rs1, f(r; o1), g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g] ⊦
| rs0 ∩ rs1 = ∅, a[r => o1][rs0, f(r; o1), g], hR[rs1, f(r; o1), g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g] ⊦ |
⊦ hR0[rs0, f, g] ∧ hR1[rs1, f, g] ∧ rs0 ∩ rs1 = ∅ → (hR0 * hR1)[rs0 ∪ rs1, f, g]
rs0 ∩ rs1 = ∅, hR[rs1, f(r; o1), g], a[r => o1][rs0, f(r; o1), g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g] ⊦ a[r => f(r)][rs0, f, g] ∧ hR[rs1, f, g] ∧ rs0 ∩ rs1 = ∅
Used terms: rs0, hR, g, a[r => f(r)], f, rs1
| ⊦ hR0[rs0, f, g] ∧ hR1[rs1, f, g] ∧ rs0 ∩ rs1 = ∅ → (hR0 * hR1)[rs0 ∪ rs1, f, g] |
| rs0 ∩ rs1 = ∅, hR[rs1, f(r; o1), g], a[r => o1][rs0, f(r; o1), g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g] ⊦ a[r => f(r)][rs0, f, g] ∧ hR[rs1, f, g] ∧ rs0 ∩ rs1 = ∅ |
rs0 ∩ rs1 = ∅, a[r => o1][rs0, f(r; o1), g], hR[rs1, f(r; o1), g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g] ⊦ a[r => f(r)][rs0, f, g] ∧ hR[rs1, f, g]
| rs0 ∩ rs1 = ∅, a[r => o1][rs0, f(r; o1), g], hR[rs1, f(r; o1), g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g] ⊦ a[r => f(r)][rs0, f, g] ∧ hR[rs1, f, g] |
⊦ ¬ r ∈ rs → (hR[rs, f(r; o), g] ↔ hR[rs, f, g])
rs0 ∩ rs1 = ∅, hR[rs1, f(r; o1), g], a[r => o1][rs0, f(r; o1), g], r ∈ rs1, ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g] ⊦ a[r => f(r)][rs0, f, g] ∧ hR[rs1, f, g]
rs0 ∩ rs1 = ∅, hR[rs1, f, g], a[r => o1][rs0, f(r; o1), g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1 ⊦ a[r => f(r)][rs0, f, g] ∧ hR[rs1, f, g]
Used terms: hR, r, rs1, g, f, o1
| ⊦ ¬ r ∈ rs → (hR[rs, f(r; o), g] ↔ hR[rs, f, g]) |
| rs0 ∩ rs1 = ∅, hR[rs1, f(r; o1), g], a[r => o1][rs0, f(r; o1), g], r ∈ rs1, ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g] ⊦ a[r => f(r)][rs0, f, g] ∧ hR[rs1, f, g] |
rs0 ∩ rs1 = ∅, a[r => o1][rs0, f(r; o1), g], hR[rs1, f(r; o1), g], r ∈ rs1, ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g] ⊦ a[r => f(r)][rs0, f, g] ∧ hR[rs1, f, g]
| rs0 ∩ rs1 = ∅, a[r => o1][rs0, f(r; o1), g], hR[rs1, f(r; o1), g], r ∈ rs1, ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g] ⊦ a[r => f(r)][rs0, f, g] ∧ hR[rs1, f, g] |
⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g))
rs0 ∩ rs1 = ∅, hR[rs1, f(r; o1), g], a[r => o1](mk(rs0, f(r; o1), g)), r ∈ rs1, ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g] ⊦ a[r => f(r)][rs0, f, g] ∧ hR[rs1, f, g]
Used terms: g, f(r; o1), rs0, a[r => o1]
| ⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g)) |
| rs0 ∩ rs1 = ∅, hR[rs1, f(r; o1), g], a[r => o1](mk(rs0, f(r; o1), g)), r ∈ rs1, ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g] ⊦ a[r => f(r)][rs0, f, g] ∧ hR[rs1, f, g] |
⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a)
rs0 ∩ rs1 = ∅, ((r => o1))(mk(rs0, f(r; o1))), hR[rs1, f(r; o1), g], r ∈ rs1, ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a ⊦ a[r => f(r)][rs0, f, g] ∧ hR[rs1, f, g]
Used terms: a, r => o1, rs0, g, f(r; o1)
| ⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a) |
| rs0 ∩ rs1 = ∅, ((r => o1))(mk(rs0, f(r; o1))), hR[rs1, f(r; o1), g], r ∈ rs1, ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a ⊦ a[r => f(r)][rs0, f, g] ∧ hR[rs1, f, g] |
rs0 ∩ rs1 = ∅, ((r => o1))(mk(rs0, f(r; o1))), hR[rs1, f(r; o1), g], r ∈ rs1, ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a ⊦ a[r => f(r)][rs0, f, g] ∧ hR[rs1, f, g]
| rs0 ∩ rs1 = ∅, ((r => o1))(mk(rs0, f(r; o1))), hR[rs1, f(r; o1), g], r ∈ rs1, ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a ⊦ a[r => f(r)][rs0, f, g] ∧ hR[rs1, f, g] |
⊦ ((r => o))(h) ↔ h = (∅ ++ r)[r, o] ∧ r ≠ null
mk(rs0, f(r; o1)) = (∅ ++ r)[r, o1], rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f(r; o1), g], r ∈ rs1, ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a ⊦ a[r => f(r)][rs0, f, g] ∧ hR[rs1, f, g]
Used terms: mk(rs0, f(r; o1)), o1, r
| ⊦ ((r => o))(h) ↔ h = (∅ ++ r)[r, o] ∧ r ≠ null |
| mk(rs0, f(r; o1)) = (∅ ++ r)[r, o1], rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f(r; o1), g], r ∈ rs1, ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a ⊦ a[r => f(r)][rs0, f, g] ∧ hR[rs1, f, g] |
mk(rs0, f(r; o1)) = (∅ ++ r)[r, o1], rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f(r; o1), g], r ∈ rs1, ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a ⊦ a[r => f(r)][rs0, f, g] ∧ hR[rs1, f, g]
| mk(rs0, f(r; o1)) = (∅ ++ r)[r, o1], rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f(r; o1), g], r ∈ rs1, ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a ⊦ a[r => f(r)][rs0, f, g] ∧ hR[rs1, f, g] |
⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r]))
rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f(r; o1), g], r ∈ rs1, ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ mk(rs0, f(r; o1)) ↔ r0 ∈ (∅ ++ r)[r, o1]) ∧ (r0 ∈ mk(rs0, f(r; o1)) → mk(rs0, f(r; o1))[r0] = (∅ ++ r)[r, o1][r0]) ⊦ a[r => f(r)][rs0, f, g] ∧ hR[rs1, f, g]
Used terms: (∅ ++ r)[r, o1], mk(rs0, f(r; o1))
| ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r])) |
| rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f(r; o1), g], r ∈ rs1, ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ mk(rs0, f(r; o1)) ↔ r0 ∈ (∅ ++ r)[r, o1]) ∧ (r0 ∈ mk(rs0, f(r; o1)) → mk(rs0, f(r; o1))[r0] = (∅ ++ r)[r, o1][r0]) ⊦ a[r => f(r)][rs0, f, g] ∧ hR[rs1, f, g] |
rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f(r; o1), g], r ∈ rs1, ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ rs0 ↔ r0 = r) ∧ (r0 ∈ rs0 → (r = r0 ⊃ o1;f(r0)) = (r0 = r ⊃ o1;(∅ ++ r)[r0])) ⊦ a[r => f(r)][rs0, f, g] ∧ hR[rs1, f, g]
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 = ∅, r ≠ null, hR[rs1, f(r; o1), g], r ∈ rs1, ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ rs0 ↔ r0 = r) ∧ (r0 ∈ rs0 → (r = r0 ⊃ o1;f(r0)) = (r0 = r ⊃ o1;(∅ ++ r)[r0])) ⊦ a[r => f(r)][rs0, f, g] ∧ hR[rs1, f, g] |
Used simplifier rules: int-a: ⊦ (s ∩ s0) ∩ s1 = s ∩ s0 ∩ s1; from specification set-union[refset] int-c: ⊦ s ∩ s0 = s0 ∩ s; from specification set-union[refset] ⊦ s ∩ s0 = ∅ ∧ a ∈ s → (a ∈ s0 ↔ false); (as) Used terms: r
| rs0 ∩ rs1 = ∅, hR[rs1, f, g], a[r => o1][rs0, f(r; o1), g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1 ⊦ a[r => f(r)][rs0, f, g] ∧ hR[rs1, f, g] |
rs0 ∩ rs1 = ∅, a[r => o1][rs0, f(r; o1), g], hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ a[r => f(r)][rs0, f, g], ¬ r ∈ rs1 ⊦
| rs0 ∩ rs1 = ∅, a[r => o1][rs0, f(r; o1), g], hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ a[r => f(r)][rs0, f, g], ¬ r ∈ rs1 ⊦ |
⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g))
rs0 ∩ rs1 = ∅, hR[rs1, f, g], a[r => o1][rs0, f(r; o1), g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ a[r => f(r)](mk(rs0, f, g)), ¬ r ∈ rs1 ⊦
Used terms: g, f, rs0, a[r => f(r)]
| ⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g)) |
| rs0 ∩ rs1 = ∅, hR[rs1, f, g], a[r => o1][rs0, f(r; o1), g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ a[r => f(r)](mk(rs0, f, g)), ¬ r ∈ rs1 ⊦ |
⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g))
rs0 ∩ rs1 = ∅, a[r => o1](mk(rs0, f(r; o1), g)), hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ a[r => f(r)](mk(rs0, f, g)), ¬ r ∈ rs1 ⊦
Used terms: g, f(r; o1), rs0, a[r => o1]
| ⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g)) |
| rs0 ∩ rs1 = ∅, a[r => o1](mk(rs0, f(r; o1), g)), hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ a[r => f(r)](mk(rs0, f, g)), ¬ r ∈ rs1 ⊦ |
⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a)
rs0 ∩ rs1 = ∅, ((r => o1))(mk(rs0, f(r; o1))), hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ a[r => f(r)](mk(rs0, f, g)), ¬ r ∈ rs1, ∀ r. r ∈ rs0 → g(r) = a ⊦
Used terms: a, r => o1, rs0, g, f(r; o1)
| ⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a) |
| rs0 ∩ rs1 = ∅, ((r => o1))(mk(rs0, f(r; o1))), hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ a[r => f(r)](mk(rs0, f, g)), ¬ r ∈ rs1, ∀ r. r ∈ rs0 → g(r) = a ⊦ |
rs0 ∩ rs1 = ∅, ((r => o1))(mk(rs0, f(r; o1))), hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ a[r => f(r)](mk(rs0, f, g)), ¬ r ∈ rs1, ∀ r. r ∈ rs0 → g(r) = a ⊦
| rs0 ∩ rs1 = ∅, ((r => o1))(mk(rs0, f(r; o1))), hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ a[r => f(r)](mk(rs0, f, g)), ¬ r ∈ rs1, ∀ r. r ∈ rs0 → g(r) = a ⊦ |
⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a)
rs0 ∩ rs1 = ∅, ((r => o1))(mk(rs0, f(r; o1))), hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1, ∀ r. r ∈ rs0 → g(r) = a, ¬ ((r => f(r)))(mk(rs0, f)) ∨ (∃ r. ¬(r ∈ rs0 → g(r) = a)) ⊦
Used terms: a, r => f(r), rs0, g, f
| ⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a) |
| rs0 ∩ rs1 = ∅, ((r => o1))(mk(rs0, f(r; o1))), hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1, ∀ r. r ∈ rs0 → g(r) = a, ¬ ((r => f(r)))(mk(rs0, f)) ∨ (∃ r. ¬(r ∈ rs0 → g(r) = a)) ⊦ |
rs0 ∩ rs1 = ∅, ((r => o1))(mk(rs0, f(r; o1))), hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1, ∀ r. r ∈ rs0 → g(r) = a, ¬ ((r => f(r)))(mk(rs0, f)) ∨ ¬(r0 ∈ rs0 → g(r0) = a) ⊦
| rs0 ∩ rs1 = ∅, ((r => o1))(mk(rs0, f(r; o1))), hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1, ∀ r. r ∈ rs0 → g(r) = a, ¬ ((r => f(r)))(mk(rs0, f)) ∨ ¬(r0 ∈ rs0 → g(r0) = a) ⊦ |
⊦ ((r => o))(h) ↔ h = (∅ ++ r)[r, o] ∧ r ≠ null
mk(rs0, f(r; o1)) = (∅ ++ r)[r, o1], rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1, ∀ r. r ∈ rs0 → g(r) = a, ¬ ((r => f(r)))(mk(rs0, f)) ∨ ¬(r0 ∈ rs0 → g(r0) = a) ⊦
Used terms: mk(rs0, f(r; o1)), o1, r
| ⊦ ((r => o))(h) ↔ h = (∅ ++ r)[r, o] ∧ r ≠ null |
| mk(rs0, f(r; o1)) = (∅ ++ r)[r, o1], rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1, ∀ r. r ∈ rs0 → g(r) = a, ¬ ((r => f(r)))(mk(rs0, f)) ∨ ¬(r0 ∈ rs0 → g(r0) = a) ⊦ |
mk(rs0, f(r; o1)) = (∅ ++ r)[r, o1], rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1, ∀ r. r ∈ rs0 → g(r) = a, ¬ ((r => f(r)))(mk(rs0, f)) ∨ ¬(r0 ∈ rs0 → g(r0) = a) ⊦
| mk(rs0, f(r; o1)) = (∅ ++ r)[r, o1], rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1, ∀ r. r ∈ rs0 → g(r) = a, ¬ ((r => f(r)))(mk(rs0, f)) ∨ ¬(r0 ∈ rs0 → g(r0) = a) ⊦ |
⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r]))
rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1, ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ mk(rs0, f(r; o1)) ↔ r0 ∈ (∅ ++ r)[r, o1]) ∧ (r0 ∈ mk(rs0, f(r; o1)) → mk(rs0, f(r; o1))[r0] = (∅ ++ r)[r, o1][r0]), ¬ ((r => f(r)))(mk(rs0, f)) ∨ ¬(r0 ∈ rs0 → g(r0) = a) ⊦
Used terms: (∅ ++ r)[r, o1], mk(rs0, f(r; o1))
| ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r])) |
| rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1, ∀ r. r ∈ rs0 → g(r) = a, ∀ r0. (r0 ∈ mk(rs0, f(r; o1)) ↔ r0 ∈ (∅ ++ r)[r, o1]) ∧ (r0 ∈ mk(rs0, f(r; o1)) → mk(rs0, f(r; o1))[r0] = (∅ ++ r)[r, o1][r0]), ¬ ((r => f(r)))(mk(rs0, f)) ∨ ¬(r0 ∈ rs0 → g(r0) = a) ⊦ |
rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1, ∀ r. r ∈ rs0 → g(r) = a, ∀ r1. (r1 ∈ rs0 ↔ r1 = r) ∧ (r1 ∈ rs0 → (r = r1 ⊃ o1;f(r1)) = (r1 = r ⊃ o1;(∅ ++ r)[r1])), ¬ ((r => f(r)))(mk(rs0, f)) ∨ ¬(r0 ∈ rs0 → g(r0) = a) ⊦
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 = ∅, r ≠ null, hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1, ∀ r. r ∈ rs0 → g(r) = a, ∀ r1. (r1 ∈ rs0 ↔ r1 = r) ∧ (r1 ∈ rs0 → (r = r1 ⊃ o1;f(r1)) = (r1 = r ⊃ o1;(∅ ++ r)[r1])), ¬ ((r => f(r)))(mk(rs0, f)) ∨ ¬(r0 ∈ rs0 → g(r0) = a) ⊦ |
rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f, g], ¬ ((r => f(r)))(mk(rs0, f)), ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1, ∀ r1. (r1 ∈ rs0 ↔ r1 = r) ∧ (r1 ∈ rs0 → (r = r1 ⊃ o1;f(r1)) = (r1 = r ⊃ o1;(∅ ++ r)[r1])), ∀ r. r ∈ rs0 → g(r) = a ⊦
rs0 ∩ rs1 = ∅, g(r0) ≠ a, r ≠ null, hR[rs1, f, g], r0 ∈ rs0, ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1, ∀ r1. (r1 ∈ rs0 ↔ r1 = r) ∧ (r1 ∈ rs0 → (r = r1 ⊃ o1;f(r1)) = (r1 = r ⊃ o1;(∅ ++ r)[r1])), ∀ r. r ∈ rs0 → g(r) = a ⊦
| rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f, g], ¬ ((r => f(r)))(mk(rs0, f)), ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1, ∀ r1. (r1 ∈ rs0 ↔ r1 = r) ∧ (r1 ∈ rs0 → (r = r1 ⊃ o1;f(r1)) = (r1 = r ⊃ o1;(∅ ++ r)[r1])), ∀ r. r ∈ rs0 → g(r) = a ⊦ |
rs0 ∩ rs1 = ∅, mk(rs0, f) ≠ (∅ ++ r)[r, f(r)], r ≠ null, hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1, ∀ r. r ∈ rs0 → g(r) = a, ∀ r1. (r1 ∈ rs0 ↔ r1 = r) ∧ (r1 ∈ rs0 → (r = r1 ⊃ o1;f(r1)) = (r1 = r ⊃ o1;(∅ ++ r)[r1])) ⊦
Used simplifier rules: ⊦ ((r => o))(h) ↔ r ≠ null ∧ h = (∅ ++ r)[r, o]; (ss)
| rs0 ∩ rs1 = ∅, mk(rs0, f) ≠ (∅ ++ r)[r, f(r)], r ≠ null, hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1, ∀ r. r ∈ rs0 → g(r) = a, ∀ r1. (r1 ∈ rs0 ↔ r1 = r) ∧ (r1 ∈ rs0 → (r = r1 ⊃ o1;f(r1)) = (r1 = r ⊃ o1;(∅ ++ r)[r1])) ⊦ |
⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r]))
rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1, ∀ r1. (r1 ∈ rs0 ↔ r1 = r) ∧ (r1 ∈ rs0 → (r = r1 ⊃ o1;f(r1)) = (r1 = r ⊃ o1;(∅ ++ r)[r1])), ∀ r. r ∈ rs0 → g(r) = a, ∃ r0. ¬((r0 ∈ mk(rs0, f) ↔ r0 ∈ (∅ ++ r)[r, f(r)]) ∧ (r0 ∈ mk(rs0, f) → mk(rs0, f)[r0] = (∅ ++ r)[r, f(r)][r0])) ⊦
Used terms: mk(rs0, f), (∅ ++ r)[r, f(r)]
| ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r])) |
| rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1, ∀ r1. (r1 ∈ rs0 ↔ r1 = r) ∧ (r1 ∈ rs0 → (r = r1 ⊃ o1;f(r1)) = (r1 = r ⊃ o1;(∅ ++ r)[r1])), ∀ r. r ∈ rs0 → g(r) = a, ∃ r0. ¬((r0 ∈ mk(rs0, f) ↔ r0 ∈ (∅ ++ r)[r, f(r)]) ∧ (r0 ∈ mk(rs0, f) → mk(rs0, f)[r0] = (∅ ++ r)[r, f(r)][r0])) ⊦ |
rs0 ∩ rs1 = ∅, r ≠ null, hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1, ∀ r. r ∈ rs0 → g(r) = a, ∀ r1. (r1 ∈ rs0 ↔ r1 = r) ∧ (r1 ∈ rs0 → (r = r1 ⊃ o1;f(r1)) = (r1 = r ⊃ o1;(∅ ++ r)[r1])) ⊦ (r0 ∈ rs0 ↔ r0 = r) ∧ (r0 ∈ rs0 → f(r0) = (r0 = r ⊃ f(r);(∅ ++ 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 = ∅, r ≠ null, hR[rs1, f, g], ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1, ∀ r. r ∈ rs0 → g(r) = a, ∀ r1. (r1 ∈ rs0 ↔ r1 = r) ∧ (r1 ∈ rs0 → (r = r1 ⊃ o1;f(r1)) = (r1 = r ⊃ o1;(∅ ++ r)[r1])) ⊦ (r0 ∈ rs0 ↔ r0 = r) ∧ (r0 ∈ rs0 → f(r0) = (r0 = r ⊃ f(r);(∅ ++ r)[r0])) |
Used terms: r0
| rs0 ∩ rs1 = ∅, g(r0) ≠ a, r ≠ null, hR[rs1, f, g], r0 ∈ rs0, ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1, ∀ r1. (r1 ∈ rs0 ↔ r1 = r) ∧ (r1 ∈ rs0 → (r = r1 ⊃ o1;f(r1)) = (r1 = r ⊃ o1;(∅ ++ r)[r1])), ∀ r. r ∈ rs0 → g(r) = a ⊦ |
rs0 ∩ rs1 = ∅, # rs0 ≠ 0, g(r0) ≠ a, r ≠ null, rs0 ≠ ∅, hR[rs1, f, g], r0 ∈ rs0, ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1, ∀ r1. (r1 ∈ rs0 ↔ r1 = r) ∧ (r1 ∈ rs0 → (r = r1 ⊃ o1;f(r1)) = (r1 = r ⊃ o1;(∅ ++ r)[r1])), ∀ r. r ∈ rs0 → g(r) = a ⊦
Used simplifier rules: size-zero-01: ⊦ s ≠ ∅ → # s ≠ 0; (forward) from specification set-basic[refset] ne-01: ⊦ a ∈ s → s ≠ ∅; (forward) from specification set-basic[refset]
| rs0 ∩ rs1 = ∅, # rs0 ≠ 0, g(r0) ≠ a, r ≠ null, rs0 ≠ ∅, hR[rs1, f, g], r0 ∈ rs0, ¬ (a[r => f(r)] * hR)[rs0 ∪ rs1, f, g], ¬ r ∈ rs1, ∀ r1. (r1 ∈ rs0 ↔ r1 = r) ∧ (r1 ∈ rs0 → (r = r1 ⊃ o1;f(r1)) = (r1 = r ⊃ o1;(∅ ++ r)[r1])), ∀ r. r ∈ rs0 → g(r) = a ⊦ |
Used terms: r0
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.