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