| ⊦ rely(a, rs, f, g, rs0, f0, g0) → ((a[hP] * true)[rs, f, g] ↔ (a[hP] * true)[rs0, f0, g0]) |
¬((a[hP] * true)[rs, f, g] ↔ (a[hP] * true)[rs0, f0, g0]), rely(a, rs, f, g, rs0, f0, g0) ⊦
| ¬((a[hP] * true)[rs, f, g] ↔ (a[hP] * true)[rs0, f0, g0]), rely(a, rs, f, g, rs0, f0, g0) ⊦ |
¬((a[hP] * true)[rs, f, g] ↔ (a[hP] * true)[rs0, f0, g0]), ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦
Used simplifier rules: rely: ⊦ rely(a, rs0, f0, g0, rs1, f1, g1) ↔ (∀ r. (g0(r) = a ∧ r ∈ rs0 ↔ g1(r) = a ∧ r ∈ rs1) ∧ (g0(r) = a ∧ r ∈ rs0 → f0(r) = f1(r)));
| ¬((a[hP] * true)[rs, f, g] ↔ (a[hP] * true)[rs0, f0, g0]), ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦ |
(a[hP] * true)[rs, f, g], ¬ (a[hP] * true)[rs0, f0, g0], ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦
(a[hP] * true)[rs0, f0, g0], ¬ (a[hP] * true)[rs, f, g], ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦
| (a[hP] * true)[rs, f, g], ¬ (a[hP] * true)[rs0, f0, g0], ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦ |
⊦ (hR0 * hR1)[rs, f, g] ↔ (∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ hR0[rs0, f, g] ∧ hR1[rs1, f, g])
¬ (a[hP] * true)[rs0, f0, g0], ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ a[hP][rs0, f, g] ∧ true[rs1, f, g] ⊦
Used terms: rs, true, g, a[hP], f
| ⊦ (hR0 * hR1)[rs, f, g] ↔ (∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ hR0[rs0, f, g] ∧ hR1[rs1, f, g]) |
| ¬ (a[hP] * true)[rs0, f0, g0], ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ a[hP][rs0, f, g] ∧ true[rs1, f, g] ⊦ |
rs1 ∩ rs2 = ∅, a[hP][rs1, f, g], ¬ (a[hP] * true)[rs0, f0, g0], ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)) ⊦
Used simplifier rules: ⊦ true[rs, f, g]; (s)
| rs1 ∩ rs2 = ∅, a[hP][rs1, f, g], ¬ (a[hP] * true)[rs0, f0, g0], ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)) ⊦ |
⊦ (hR0 * hR1)[rs, f, g] ↔ (∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ hR0[rs0, f, g] ∧ hR1[rs1, f, g])
rs1 ∩ rs2 = ∅, a[hP][rs1, f, g], ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ∀ rs1, rs2. ¬(rs1 ∪ rs2 = rs0 ∧ rs1 ∩ rs2 = ∅ ∧ a[hP][rs1, f0, g0] ∧ true[rs2, f0, g0]) ⊦
Used terms: rs0, true, g0, a[hP], f0
| ⊦ (hR0 * hR1)[rs, f, g] ↔ (∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ hR0[rs0, f, g] ∧ hR1[rs1, f, g]) |
| rs1 ∩ rs2 = ∅, a[hP][rs1, f, g], ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ∀ rs1, rs2. ¬(rs1 ∪ rs2 = rs0 ∧ rs1 ∩ rs2 = ∅ ∧ a[hP][rs1, f0, g0] ∧ true[rs2, f0, g0]) ⊦ |
rs1 ∩ rs2 = ∅, a[hP][rs1, f, g], ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ∀ rs, rs3. rs ∪ rs3 ≠ rs0 ∨ rs ∩ rs3 ≠ ∅ ∨ ¬ a[hP][rs, f0, g0] ⊦
Used simplifier rules: ⊦ true[rs, f, g]; (s)
| rs1 ∩ rs2 = ∅, a[hP][rs1, f, g], ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ∀ rs, rs3. rs ∪ rs3 ≠ rs0 ∨ rs ∩ rs3 ≠ ∅ ∨ ¬ a[hP][rs, f0, g0] ⊦ |
rs1 ∩ rs2 = ∅, a[hP][rs1, f, g], ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), rs1 ∪ (rs0 \ rs1) ≠ rs0 ∨ rs1 ∩ (rs0 \ rs1) ≠ ∅ ∨ ¬ a[hP][rs1, f0, g0] ⊦
Used terms: rs1, rs0 \ rs1
| rs1 ∩ rs2 = ∅, a[hP][rs1, f, g], ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), rs1 ∪ (rs0 \ rs1) ≠ rs0 ∨ rs1 ∩ (rs0 \ rs1) ≠ ∅ ∨ ¬ a[hP][rs1, f0, g0] ⊦ |
rs1 ∩ rs2 = ∅, a[hP][rs1, f, g], ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), rs1 ∪ (rs0 \ rs1) ≠ rs0 ∨ ¬ a[hP][rs1, f0, g0] ⊦
Used simplifier rules: int-c: ⊦ s ∩ s0 = s0 ∩ s; from specification set-union[refset] int-a: ⊦ (s ∩ s0) ∩ s1 = s ∩ s0 ∩ s1; from specification set-union[refset] ⊦ (s \ s0) ∩ s0 = ∅; (s)
| rs1 ∩ rs2 = ∅, a[hP][rs1, f, g], ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), rs1 ∪ (rs0 \ rs1) ≠ rs0 ∨ ¬ a[hP][rs1, f0, g0] ⊦ |
rs1 ∩ rs2 = ∅, rs1 ∪ (rs0 \ rs1) ≠ rs0, a[hP][rs1, f, g], ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)) ⊦
rs1 ∩ rs2 = ∅, a[hP][rs1, f, g], ¬ a[hP][rs1, f0, g0], ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)) ⊦
| rs1 ∩ rs2 = ∅, rs1 ∪ (rs0 \ rs1) ≠ rs0, a[hP][rs1, f, g], ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)) ⊦ |
rs1 ∩ rs2 = ∅, rs1 ∪ (rs0 \ rs1) ≠ rs0, a[hP][rs1, f, g], ¬ rs1 ⊆ rs0, ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)) ⊦
Used simplifier rules: ⊦ s ⊆ s0 → s ∪ (s0 \ s) = s0; (s) una: ⊦ (s ∪ s0) ∪ s1 = s ∪ s0 ∪ s1; from specification set-union[refset] unc: ⊦ s ∪ s0 = s0 ∪ s; from specification set-union[refset] Used formulas: rs1 ⊆ rs0
| rs1 ∩ rs2 = ∅, rs1 ∪ (rs0 \ rs1) ≠ rs0, a[hP][rs1, f, g], ¬ rs1 ⊆ rs0, ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)) ⊦ |
⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g))
rs1 ∩ rs2 = ∅, rs1 ∪ (rs0 \ rs1) ≠ rs0, a[hP](mk(rs1, f, g)), ¬ rs1 ⊆ rs0, ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)) ⊦
Used terms: g, f, rs1, a[hP]
| ⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g)) |
| rs1 ∩ rs2 = ∅, rs1 ∪ (rs0 \ rs1) ≠ rs0, a[hP](mk(rs1, f, g)), ¬ rs1 ⊆ rs0, ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)) ⊦ |
⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a)
rs1 ∩ rs2 = ∅, rs1 ∪ (rs0 \ rs1) ≠ rs0, hP(mk(rs1, f)), ¬ rs1 ⊆ rs0, ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ∀ r. r ∈ rs1 → g(r) = a ⊦
Used terms: a, hP, rs1, g, f
| ⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a) |
| rs1 ∩ rs2 = ∅, rs1 ∪ (rs0 \ rs1) ≠ rs0, hP(mk(rs1, f)), ¬ rs1 ⊆ rs0, ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ∀ r. r ∈ rs1 → g(r) = a ⊦ |
rs1 ∩ rs2 = ∅, rs1 ∪ (rs0 \ rs1) ≠ rs0, hP(mk(rs1, f)), ¬ rs1 ⊆ rs0, ∀ r. r ∈ rs1 → g(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)) ⊦
| rs1 ∩ rs2 = ∅, rs1 ∪ (rs0 \ rs1) ≠ rs0, hP(mk(rs1, f)), ¬ rs1 ⊆ rs0, ∀ r. r ∈ rs1 → g(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)) ⊦ |
⊦ s1 ⊆ s2 ↔ (∀ a. a ∈ s1 → a ∈ s2)
rs1 ∩ rs2 = ∅, rs1 ∪ (rs0 \ rs1) ≠ rs0, hP(mk(rs1, f)), ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ∀ r. r ∈ rs1 → g(r) = a, ∃ r. ¬(r ∈ rs1 → r ∈ rs0) ⊦
Used terms: rs0, rs1
| ⊦ s1 ⊆ s2 ↔ (∀ a. a ∈ s1 → a ∈ s2) |
| rs1 ∩ rs2 = ∅, rs1 ∪ (rs0 \ rs1) ≠ rs0, hP(mk(rs1, f)), ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ∀ r. r ∈ rs1 → g(r) = a, ∃ r. ¬(r ∈ rs1 → r ∈ rs0) ⊦ |
rs1 ∩ rs2 = ∅, rs1 ∪ (rs0 \ rs1) ≠ rs0, hP(mk(rs1, f)), r ∈ rs1, ¬ r ∈ rs0, ∀ r. r ∈ rs1 → g(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)) ⊦
| rs1 ∩ rs2 = ∅, rs1 ∪ (rs0 \ rs1) ≠ rs0, hP(mk(rs1, f)), r ∈ rs1, ¬ r ∈ rs0, ∀ r. r ∈ rs1 → g(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)) ⊦ |
g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0, rs1 ∩ rs2 = ∅, rs1 ∪ (rs0 \ rs1) ≠ rs0, hP(mk(rs1, f)), r ∈ rs1, ¬ r ∈ rs0, g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r), ∀ r. r ∈ rs1 → g(r) = a ⊦
Used terms: r
| g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0, rs1 ∩ rs2 = ∅, rs1 ∪ (rs0 \ rs1) ≠ rs0, hP(mk(rs1, f)), r ∈ rs1, ¬ r ∈ rs0, g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r), ∀ r. r ∈ rs1 → g(r) = a ⊦ |
rs1 ∩ rs2 = ∅, g(r) ≠ a, rs1 ∪ (rs0 \ rs1) ≠ rs0, hP(mk(rs1, f)), r ∈ rs1, r ∈ rs1 ∪ rs2, ¬ r ∈ rs0, ∀ r. r ∈ rs1 → g(r) = a ⊦
Used simplifier rules: unc: ⊦ s ∪ s0 = s0 ∪ s; from specification set-union[refset] una: ⊦ (s ∪ s0) ∪ s1 = s ∪ s0 ∪ s1; from specification set-union[refset] ⊦ a ∈ s ∪ s0 ↔ ¬(¬ a ∈ s ∧ ¬ a ∈ s0); (ss)
| rs1 ∩ rs2 = ∅, g(r) ≠ a, rs1 ∪ (rs0 \ rs1) ≠ rs0, hP(mk(rs1, f)), r ∈ rs1, r ∈ rs1 ∪ rs2, ¬ r ∈ rs0, ∀ r. r ∈ rs1 → g(r) = a ⊦ |
Used terms: r
| rs1 ∩ rs2 = ∅, a[hP][rs1, f, g], ¬ a[hP][rs1, f0, g0], ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)) ⊦ |
⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g))
rs1 ∩ rs2 = ∅, a[hP](mk(rs1, f, g)), ¬ a[hP][rs1, f0, g0], ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)) ⊦
Used terms: g, f, rs1, a[hP]
| ⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g)) |
| rs1 ∩ rs2 = ∅, a[hP](mk(rs1, f, g)), ¬ a[hP][rs1, f0, g0], ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)) ⊦ |
⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g))
rs1 ∩ rs2 = ∅, a[hP](mk(rs1, f, g)), ¬ a[hP](mk(rs1, f0, g0)), ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)) ⊦
Used terms: g0, f0, rs1, a[hP]
| ⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g)) |
| rs1 ∩ rs2 = ∅, a[hP](mk(rs1, f, g)), ¬ a[hP](mk(rs1, f0, g0)), ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)) ⊦ |
⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a)
rs1 ∩ rs2 = ∅, a[hP](mk(rs1, f, g)), ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ¬ hP(mk(rs1, f0)) ∨ (∃ r. ¬(r ∈ rs1 → g0(r) = a)) ⊦
Used terms: a, hP, rs1, g0, f0
| ⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a) |
| rs1 ∩ rs2 = ∅, a[hP](mk(rs1, f, g)), ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ¬ hP(mk(rs1, f0)) ∨ (∃ r. ¬(r ∈ rs1 → g0(r) = a)) ⊦ |
rs1 ∩ rs2 = ∅, a[hP](mk(rs1, f, g)), ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ¬ hP(mk(rs1, f0)) ∨ ¬(r ∈ rs1 → g0(r) = a) ⊦
| rs1 ∩ rs2 = ∅, a[hP](mk(rs1, f, g)), ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ¬ hP(mk(rs1, f0)) ∨ ¬(r ∈ rs1 → g0(r) = a) ⊦ |
⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a)
rs1 ∩ rs2 = ∅, hP(mk(rs1, f)), ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ∀ r. r ∈ rs1 → g(r) = a, ¬ hP(mk(rs1, f0)) ∨ ¬(r ∈ rs1 → g0(r) = a) ⊦
Used terms: a, hP, rs1, g, f
| ⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a) |
| rs1 ∩ rs2 = ∅, hP(mk(rs1, f)), ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ∀ r. r ∈ rs1 → g(r) = a, ¬ hP(mk(rs1, f0)) ∨ ¬(r ∈ rs1 → g0(r) = a) ⊦ |
rs1 ∩ rs2 = ∅, hP(mk(rs1, f)), ∀ r. r ∈ rs1 → g(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ¬ hP(mk(rs1, f0)) ∨ ¬(r ∈ rs1 → g0(r) = a) ⊦
| rs1 ∩ rs2 = ∅, hP(mk(rs1, f)), ∀ r. r ∈ rs1 → g(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ¬ hP(mk(rs1, f0)) ∨ ¬(r ∈ rs1 → g0(r) = a) ⊦ |
rs1 ∩ rs2 = ∅, hP(mk(rs1, f)), ¬ hP(mk(rs1, f0)), ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ∀ r. r ∈ rs1 → g(r) = a ⊦
rs1 ∩ rs2 = ∅, g0(r) ≠ a, hP(mk(rs1, f)), r ∈ rs1, ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ∀ r. r ∈ rs1 → g(r) = a ⊦
| rs1 ∩ rs2 = ∅, hP(mk(rs1, f)), ¬ hP(mk(rs1, f0)), ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ∀ r. r ∈ rs1 → g(r) = a ⊦ |
rs1 ∩ rs2 = ∅, mk(rs1, f0) ≠ mk(rs1, f), hP(mk(rs1, f)), ¬ hP(mk(rs1, f0)), ∀ r. r ∈ rs1 → g(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)) ⊦
Used formulas: mk(rs1, f0) = mk(rs1, f)
| rs1 ∩ rs2 = ∅, mk(rs1, f0) ≠ mk(rs1, f), hP(mk(rs1, f)), ¬ hP(mk(rs1, f0)), ∀ r. r ∈ rs1 → g(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)) ⊦ |
⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r]))
rs1 ∩ rs2 = ∅, hP(mk(rs1, f)), ¬ hP(mk(rs1, f0)), ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ∀ r. r ∈ rs1 → g(r) = a, ∃ r. ¬((r ∈ mk(rs1, f0) ↔ r ∈ mk(rs1, f)) ∧ (r ∈ mk(rs1, f0) → mk(rs1, f0)[r] = mk(rs1, f)[r])) ⊦
Used terms: mk(rs1, f), mk(rs1, f0)
| ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r])) |
| rs1 ∩ rs2 = ∅, hP(mk(rs1, f)), ¬ hP(mk(rs1, f0)), ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ∀ r. r ∈ rs1 → g(r) = a, ∃ r. ¬((r ∈ mk(rs1, f0) ↔ r ∈ mk(rs1, f)) ∧ (r ∈ mk(rs1, f0) → mk(rs1, f0)[r] = mk(rs1, f)[r])) ⊦ |
rs1 ∩ rs2 = ∅, f0(r) ≠ f(r), hP(mk(rs1, f)), r ∈ rs1, ¬ hP(mk(rs1, f0)), ∀ r. r ∈ rs1 → g(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)) ⊦
Used simplifier rules: ⊦ r ∈ rs → mk(rs, f)[r] = f(r); (s) ⊦ r ∈ mk(rs, f) ↔ r ∈ rs; (s)
| rs1 ∩ rs2 = ∅, f0(r) ≠ f(r), hP(mk(rs1, f)), r ∈ rs1, ¬ hP(mk(rs1, f0)), ∀ r. r ∈ rs1 → g(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)) ⊦ |
g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0, rs1 ∩ rs2 = ∅, f0(r) ≠ f(r), hP(mk(rs1, f)), r ∈ rs1, ¬ hP(mk(rs1, f0)), g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r), ∀ r. r ∈ rs1 → g(r) = a ⊦
Used terms: r
| g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0, rs1 ∩ rs2 = ∅, f0(r) ≠ f(r), hP(mk(rs1, f)), r ∈ rs1, ¬ hP(mk(rs1, f0)), g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r), ∀ r. r ∈ rs1 → g(r) = a ⊦ |
rs1 ∩ rs2 = ∅, f0(r) ≠ f(r), g(r) ≠ a, hP(mk(rs1, f)), r ∈ rs1, r ∈ rs1 ∪ rs2, ¬ hP(mk(rs1, f0)), ∀ r. r ∈ rs1 → g(r) = a ⊦ g0(r) = a ∧ r ∈ rs0
Used simplifier rules: unc: ⊦ s ∪ s0 = s0 ∪ s; from specification set-union[refset] una: ⊦ (s ∪ s0) ∪ s1 = s ∪ s0 ∪ s1; from specification set-union[refset] ⊦ a ∈ s ∪ s0 ↔ ¬(¬ a ∈ s ∧ ¬ a ∈ s0); (ss)
| rs1 ∩ rs2 = ∅, f0(r) ≠ f(r), g(r) ≠ a, hP(mk(rs1, f)), r ∈ rs1, r ∈ rs1 ∪ rs2, ¬ hP(mk(rs1, f0)), ∀ r. r ∈ rs1 → g(r) = a ⊦ g0(r) = a ∧ r ∈ rs0 |
Used terms: r
| rs1 ∩ rs2 = ∅, g0(r) ≠ a, hP(mk(rs1, f)), r ∈ rs1, ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ∀ r. r ∈ rs1 → g(r) = a ⊦ |
rs1 ∩ rs2 = ∅, g0(r) ≠ a, hP(mk(rs1, f)), r ∈ rs1, ∀ r. r ∈ rs1 → g(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)) ⊦
| rs1 ∩ rs2 = ∅, g0(r) ≠ a, hP(mk(rs1, f)), r ∈ rs1, ∀ r. r ∈ rs1 → g(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)) ⊦ |
g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0, rs1 ∩ rs2 = ∅, g0(r) ≠ a, hP(mk(rs1, f)), r ∈ rs1, g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r), ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ∀ r. r ∈ rs1 → g(r) = a ⊦
Used terms: r
| g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0, rs1 ∩ rs2 = ∅, g0(r) ≠ a, hP(mk(rs1, f)), r ∈ rs1, g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r), ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ∀ r. r ∈ rs1 → g(r) = a ⊦ |
rs1 ∩ rs2 = ∅, g(r) ≠ a, g0(r) ≠ a, hP(mk(rs1, f)), r ∈ rs1, r ∈ rs1 ∪ rs2, ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ∀ r. r ∈ rs1 → g(r) = a ⊦
Used simplifier rules: unc: ⊦ s ∪ s0 = s0 ∪ s; from specification set-union[refset] una: ⊦ (s ∪ s0) ∪ s1 = s ∪ s0 ∪ s1; from specification set-union[refset] ⊦ a ∈ s ∪ s0 ↔ ¬(¬ a ∈ s ∧ ¬ a ∈ s0); (ss)
| rs1 ∩ rs2 = ∅, g(r) ≠ a, g0(r) ≠ a, hP(mk(rs1, f)), r ∈ rs1, r ∈ rs1 ∪ rs2, ∀ r. (g(r) = a ∧ r ∈ rs1 ∪ rs2 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs1 ∪ rs2 → f(r) = f0(r)), ∀ r. r ∈ rs1 → g(r) = a ⊦ |
Used terms: r
| (a[hP] * true)[rs0, f0, g0], ¬ (a[hP] * true)[rs, f, g], ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦ |
⊦ (hR0 * hR1)[rs, f, g] ↔ (∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ hR0[rs0, f, g] ∧ hR1[rs1, f, g])
¬ (a[hP] * true)[rs, f, g], ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∃ rs1, rs2. rs1 ∪ rs2 = rs0 ∧ rs1 ∩ rs2 = ∅ ∧ a[hP][rs1, f0, g0] ∧ true[rs2, f0, g0] ⊦
Used terms: rs0, true, g0, a[hP], f0
| ⊦ (hR0 * hR1)[rs, f, g] ↔ (∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ hR0[rs0, f, g] ∧ hR1[rs1, f, g]) |
| ¬ (a[hP] * true)[rs, f, g], ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∃ rs1, rs2. rs1 ∪ rs2 = rs0 ∧ rs1 ∩ rs2 = ∅ ∧ a[hP][rs1, f0, g0] ∧ true[rs2, f0, g0] ⊦ |
rs1 ∩ rs2 = ∅, a[hP][rs1, f0, g0], ¬ (a[hP] * true)[rs, f, g], ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦
Used simplifier rules: ⊦ true[rs, f, g]; (s)
| rs1 ∩ rs2 = ∅, a[hP][rs1, f0, g0], ¬ (a[hP] * true)[rs, f, g], ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦ |
⊦ (hR0 * hR1)[rs, f, g] ↔ (∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ hR0[rs0, f, g] ∧ hR1[rs1, f, g])
rs1 ∩ rs2 = ∅, a[hP][rs1, f0, g0], ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∀ rs0, rs1. ¬(rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ a[hP][rs0, f, g] ∧ true[rs1, f, g]) ⊦
Used terms: rs, true, g, a[hP], f
| ⊦ (hR0 * hR1)[rs, f, g] ↔ (∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ hR0[rs0, f, g] ∧ hR1[rs1, f, g]) |
| rs1 ∩ rs2 = ∅, a[hP][rs1, f0, g0], ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∀ rs0, rs1. ¬(rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ a[hP][rs0, f, g] ∧ true[rs1, f, g]) ⊦ |
rs1 ∩ rs2 = ∅, a[hP][rs1, f0, g0], ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∀ rs0, rs3. rs0 ∪ rs3 ≠ rs ∨ rs0 ∩ rs3 ≠ ∅ ∨ ¬ a[hP][rs0, f, g] ⊦
Used simplifier rules: ⊦ true[rs, f, g]; (s)
| rs1 ∩ rs2 = ∅, a[hP][rs1, f0, g0], ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∀ rs0, rs3. rs0 ∪ rs3 ≠ rs ∨ rs0 ∩ rs3 ≠ ∅ ∨ ¬ a[hP][rs0, f, g] ⊦ |
rs1 ∩ rs2 = ∅, a[hP][rs1, f0, g0], ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), rs1 ∪ (rs \ rs1) ≠ rs ∨ rs1 ∩ (rs \ rs1) ≠ ∅ ∨ ¬ a[hP][rs1, f, g] ⊦
Used terms: rs1, rs \ rs1
| rs1 ∩ rs2 = ∅, a[hP][rs1, f0, g0], ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), rs1 ∪ (rs \ rs1) ≠ rs ∨ rs1 ∩ (rs \ rs1) ≠ ∅ ∨ ¬ a[hP][rs1, f, g] ⊦ |
rs1 ∩ rs2 = ∅, a[hP][rs1, f0, g0], ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), rs1 ∪ (rs \ rs1) ≠ rs ∨ ¬ a[hP][rs1, f, g] ⊦
Used simplifier rules: int-c: ⊦ s ∩ s0 = s0 ∩ s; from specification set-union[refset] int-a: ⊦ (s ∩ s0) ∩ s1 = s ∩ s0 ∩ s1; from specification set-union[refset] ⊦ (s \ s0) ∩ s0 = ∅; (s)
| rs1 ∩ rs2 = ∅, a[hP][rs1, f0, g0], ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), rs1 ∪ (rs \ rs1) ≠ rs ∨ ¬ a[hP][rs1, f, g] ⊦ |
rs1 ∩ rs2 = ∅, rs1 ∪ (rs \ rs1) ≠ rs, a[hP][rs1, f0, g0], ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦
rs1 ∩ rs2 = ∅, a[hP][rs1, f0, g0], ¬ a[hP][rs1, f, g], ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦
| rs1 ∩ rs2 = ∅, rs1 ∪ (rs \ rs1) ≠ rs, a[hP][rs1, f0, g0], ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦ |
rs1 ∩ rs2 = ∅, rs1 ∪ (rs \ rs1) ≠ rs, a[hP][rs1, f0, g0], ¬ rs1 ⊆ rs, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦
Used simplifier rules: ⊦ s ⊆ s0 → s ∪ (s0 \ s) = s0; (s) una: ⊦ (s ∪ s0) ∪ s1 = s ∪ s0 ∪ s1; from specification set-union[refset] unc: ⊦ s ∪ s0 = s0 ∪ s; from specification set-union[refset] Used formulas: rs1 ⊆ rs
| rs1 ∩ rs2 = ∅, rs1 ∪ (rs \ rs1) ≠ rs, a[hP][rs1, f0, g0], ¬ rs1 ⊆ rs, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦ |
⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g))
rs1 ∩ rs2 = ∅, rs1 ∪ (rs \ rs1) ≠ rs, a[hP](mk(rs1, f0, g0)), ¬ rs1 ⊆ rs, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦
Used terms: g0, f0, rs1, a[hP]
| ⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g)) |
| rs1 ∩ rs2 = ∅, rs1 ∪ (rs \ rs1) ≠ rs, a[hP](mk(rs1, f0, g0)), ¬ rs1 ⊆ rs, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦ |
⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a)
rs1 ∩ rs2 = ∅, rs1 ∪ (rs \ rs1) ≠ rs, hP(mk(rs1, f0)), ¬ rs1 ⊆ rs, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∀ r. r ∈ rs1 → g0(r) = a ⊦
Used terms: a, hP, rs1, g0, f0
| ⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a) |
| rs1 ∩ rs2 = ∅, rs1 ∪ (rs \ rs1) ≠ rs, hP(mk(rs1, f0)), ¬ rs1 ⊆ rs, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∀ r. r ∈ rs1 → g0(r) = a ⊦ |
rs1 ∩ rs2 = ∅, rs1 ∪ (rs \ rs1) ≠ rs, hP(mk(rs1, f0)), ¬ rs1 ⊆ rs, ∀ r. r ∈ rs1 → g0(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦
| rs1 ∩ rs2 = ∅, rs1 ∪ (rs \ rs1) ≠ rs, hP(mk(rs1, f0)), ¬ rs1 ⊆ rs, ∀ r. r ∈ rs1 → g0(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦ |
⊦ s1 ⊆ s2 ↔ (∀ a. a ∈ s1 → a ∈ s2)
rs1 ∩ rs2 = ∅, rs1 ∪ (rs \ rs1) ≠ rs, hP(mk(rs1, f0)), ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∀ r. r ∈ rs1 → g0(r) = a, ∃ r. ¬(r ∈ rs1 → r ∈ rs) ⊦
Used terms: rs, rs1
| ⊦ s1 ⊆ s2 ↔ (∀ a. a ∈ s1 → a ∈ s2) |
| rs1 ∩ rs2 = ∅, rs1 ∪ (rs \ rs1) ≠ rs, hP(mk(rs1, f0)), ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∀ r. r ∈ rs1 → g0(r) = a, ∃ r. ¬(r ∈ rs1 → r ∈ rs) ⊦ |
rs1 ∩ rs2 = ∅, rs1 ∪ (rs \ rs1) ≠ rs, hP(mk(rs1, f0)), r ∈ rs1, ¬ r ∈ rs, ∀ r. r ∈ rs1 → g0(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦
| rs1 ∩ rs2 = ∅, rs1 ∪ (rs \ rs1) ≠ rs, hP(mk(rs1, f0)), r ∈ rs1, ¬ r ∈ rs, ∀ r. r ∈ rs1 → g0(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦ |
g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2, rs1 ∩ rs2 = ∅, rs1 ∪ (rs \ rs1) ≠ rs, hP(mk(rs1, f0)), r ∈ rs1, ¬ r ∈ rs, g(r) = a ∧ r ∈ rs → f(r) = f0(r), ∀ r. r ∈ rs1 → g0(r) = a ⊦
Used terms: r
| g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2, rs1 ∩ rs2 = ∅, rs1 ∪ (rs \ rs1) ≠ rs, hP(mk(rs1, f0)), r ∈ rs1, ¬ r ∈ rs, g(r) = a ∧ r ∈ rs → f(r) = f0(r), ∀ r. r ∈ rs1 → g0(r) = a ⊦ |
rs1 ∩ rs2 = ∅, g0(r) ≠ a, rs1 ∪ (rs \ rs1) ≠ rs, hP(mk(rs1, f0)), r ∈ rs1, r ∈ rs1 ∪ rs2, ¬ r ∈ rs, ∀ r. r ∈ rs1 → g0(r) = a ⊦
Used simplifier rules: unc: ⊦ s ∪ s0 = s0 ∪ s; from specification set-union[refset] una: ⊦ (s ∪ s0) ∪ s1 = s ∪ s0 ∪ s1; from specification set-union[refset] ⊦ a ∈ s ∪ s0 ↔ ¬(¬ a ∈ s ∧ ¬ a ∈ s0); (ss)
| rs1 ∩ rs2 = ∅, g0(r) ≠ a, rs1 ∪ (rs \ rs1) ≠ rs, hP(mk(rs1, f0)), r ∈ rs1, r ∈ rs1 ∪ rs2, ¬ r ∈ rs, ∀ r. r ∈ rs1 → g0(r) = a ⊦ |
Used terms: r
| rs1 ∩ rs2 = ∅, a[hP][rs1, f0, g0], ¬ a[hP][rs1, f, g], ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦ |
⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g))
rs1 ∩ rs2 = ∅, a[hP][rs1, f0, g0], ¬ a[hP](mk(rs1, f, g)), ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦
Used terms: g, f, rs1, a[hP]
| ⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g)) |
| rs1 ∩ rs2 = ∅, a[hP][rs1, f0, g0], ¬ a[hP](mk(rs1, f, g)), ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦ |
⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g))
rs1 ∩ rs2 = ∅, a[hP](mk(rs1, f0, g0)), ¬ a[hP](mk(rs1, f, g)), ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦
Used terms: g0, f0, rs1, a[hP]
| ⊦ hR[rs, f, g] ↔ hR(mk(rs, f, g)) |
| rs1 ∩ rs2 = ∅, a[hP](mk(rs1, f0, g0)), ¬ a[hP](mk(rs1, f, g)), ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦ |
⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a)
rs1 ∩ rs2 = ∅, hP(mk(rs1, f0)), ¬ a[hP](mk(rs1, f, g)), ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∀ r. r ∈ rs1 → g0(r) = a ⊦
Used terms: a, hP, rs1, g0, f0
| ⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a) |
| rs1 ∩ rs2 = ∅, hP(mk(rs1, f0)), ¬ a[hP](mk(rs1, f, g)), ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∀ r. r ∈ rs1 → g0(r) = a ⊦ |
rs1 ∩ rs2 = ∅, hP(mk(rs1, f0)), ¬ a[hP](mk(rs1, f, g)), ∀ r. r ∈ rs1 → g0(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦
| rs1 ∩ rs2 = ∅, hP(mk(rs1, f0)), ¬ a[hP](mk(rs1, f, g)), ∀ r. r ∈ rs1 → g0(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦ |
⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a)
rs1 ∩ rs2 = ∅, hP(mk(rs1, f0)), ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∀ r. r ∈ rs1 → g0(r) = a, ¬ hP(mk(rs1, f)) ∨ (∃ r. ¬(r ∈ rs1 → g(r) = a)) ⊦
Used terms: a, hP, rs1, g, f
| ⊦ a[hP](mk(rs, f, g)) ↔ hP(mk(rs, f)) ∧ (∀ r. r ∈ rs → g(r) = a) |
| rs1 ∩ rs2 = ∅, hP(mk(rs1, f0)), ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∀ r. r ∈ rs1 → g0(r) = a, ¬ hP(mk(rs1, f)) ∨ (∃ r. ¬(r ∈ rs1 → g(r) = a)) ⊦ |
rs1 ∩ rs2 = ∅, hP(mk(rs1, f0)), ∀ r. r ∈ rs1 → g0(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ¬ hP(mk(rs1, f)) ∨ ¬(r ∈ rs1 → g(r) = a) ⊦
| rs1 ∩ rs2 = ∅, hP(mk(rs1, f0)), ∀ r. r ∈ rs1 → g0(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ¬ hP(mk(rs1, f)) ∨ ¬(r ∈ rs1 → g(r) = a) ⊦ |
rs1 ∩ rs2 = ∅, hP(mk(rs1, f0)), ¬ hP(mk(rs1, f)), ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∀ r. r ∈ rs1 → g0(r) = a ⊦
rs1 ∩ rs2 = ∅, g(r) ≠ a, hP(mk(rs1, f0)), r ∈ rs1, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∀ r. r ∈ rs1 → g0(r) = a ⊦
| rs1 ∩ rs2 = ∅, hP(mk(rs1, f0)), ¬ hP(mk(rs1, f)), ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∀ r. r ∈ rs1 → g0(r) = a ⊦ |
rs1 ∩ rs2 = ∅, mk(rs1, f0) ≠ mk(rs1, f), hP(mk(rs1, f0)), ¬ hP(mk(rs1, f)), ∀ r. r ∈ rs1 → g0(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦
Used formulas: mk(rs1, f0) = mk(rs1, f)
| rs1 ∩ rs2 = ∅, mk(rs1, f0) ≠ mk(rs1, f), hP(mk(rs1, f0)), ¬ hP(mk(rs1, f)), ∀ r. r ∈ rs1 → g0(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦ |
⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r]))
rs1 ∩ rs2 = ∅, hP(mk(rs1, f0)), ¬ hP(mk(rs1, f)), ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∀ r. r ∈ rs1 → g0(r) = a, ∃ r. ¬((r ∈ mk(rs1, f0) ↔ r ∈ mk(rs1, f)) ∧ (r ∈ mk(rs1, f0) → mk(rs1, f0)[r] = mk(rs1, f)[r])) ⊦
Used terms: mk(rs1, f), mk(rs1, f0)
| ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r])) |
| rs1 ∩ rs2 = ∅, hP(mk(rs1, f0)), ¬ hP(mk(rs1, f)), ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∀ r. r ∈ rs1 → g0(r) = a, ∃ r. ¬((r ∈ mk(rs1, f0) ↔ r ∈ mk(rs1, f)) ∧ (r ∈ mk(rs1, f0) → mk(rs1, f0)[r] = mk(rs1, f)[r])) ⊦ |
rs1 ∩ rs2 = ∅, f0(r) ≠ f(r), hP(mk(rs1, f0)), r ∈ rs1, ¬ hP(mk(rs1, f)), ∀ r. r ∈ rs1 → g0(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦
Used simplifier rules: ⊦ r ∈ rs → mk(rs, f)[r] = f(r); (s) ⊦ r ∈ mk(rs, f) ↔ r ∈ rs; (s)
| rs1 ∩ rs2 = ∅, f0(r) ≠ f(r), hP(mk(rs1, f0)), r ∈ rs1, ¬ hP(mk(rs1, f)), ∀ r. r ∈ rs1 → g0(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦ |
rs1 ∩ rs2 = ∅, f0(r) ≠ f(r), hP(mk(rs1, f0)), r ∈ rs1, ¬ hP(mk(rs1, f)), r ∈ rs1 → g0(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∀ r. r ∈ rs1 → g0(r) = a ⊦
Used terms: r
| rs1 ∩ rs2 = ∅, f0(r) ≠ f(r), hP(mk(rs1, f0)), r ∈ rs1, ¬ hP(mk(rs1, f)), r ∈ rs1 → g0(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∀ r. r ∈ rs1 → g0(r) = a ⊦ |
rs1 ∩ rs2 = ∅, f0(r) ≠ f(r), hP(mk(rs1, f0)), r ∈ rs1, ¬ hP(mk(rs1, f)), ∀ r0. (g(r0) = g0(r) ∧ r0 ∈ rs ↔ g0(r0) = g0(r) ∧ r0 ∈ rs1 ∪ rs2) ∧ (g(r0) = g0(r) ∧ r0 ∈ rs → f(r0) = f0(r0)), ∀ r0. r0 ∈ rs1 → g0(r0) = g0(r) ⊦
| rs1 ∩ rs2 = ∅, f0(r) ≠ f(r), hP(mk(rs1, f0)), r ∈ rs1, ¬ hP(mk(rs1, f)), ∀ r0. (g(r0) = g0(r) ∧ r0 ∈ rs ↔ g0(r0) = g0(r) ∧ r0 ∈ rs1 ∪ rs2) ∧ (g(r0) = g0(r) ∧ r0 ∈ rs → f(r0) = f0(r0)), ∀ r0. r0 ∈ rs1 → g0(r0) = g0(r) ⊦ |
Used simplifier rules: ⊦ a ∈ s ∪ s0 ↔ ¬(¬ a ∈ s ∧ ¬ a ∈ s0); (ss) una: ⊦ (s ∪ s0) ∪ s1 = s ∪ s0 ∪ s1; from specification set-union[refset] unc: ⊦ s ∪ s0 = s0 ∪ s; from specification set-union[refset] Used terms: r
| rs1 ∩ rs2 = ∅, g(r) ≠ a, hP(mk(rs1, f0)), r ∈ rs1, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∀ r. r ∈ rs1 → g0(r) = a ⊦ |
rs1 ∩ rs2 = ∅, g(r) ≠ a, hP(mk(rs1, f0)), r ∈ rs1, ∀ r. r ∈ rs1 → g0(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦
| rs1 ∩ rs2 = ∅, g(r) ≠ a, hP(mk(rs1, f0)), r ∈ rs1, ∀ r. r ∈ rs1 → g0(r) = a, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦ |
g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2, rs1 ∩ rs2 = ∅, g(r) ≠ a, hP(mk(rs1, f0)), r ∈ rs1, g(r) = a ∧ r ∈ rs → f(r) = f0(r), ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∀ r. r ∈ rs1 → g0(r) = a ⊦
Used terms: r
| g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2, rs1 ∩ rs2 = ∅, g(r) ≠ a, hP(mk(rs1, f0)), r ∈ rs1, g(r) = a ∧ r ∈ rs → f(r) = f0(r), ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∀ r. r ∈ rs1 → g0(r) = a ⊦ |
rs1 ∩ rs2 = ∅, g(r) ≠ a, g0(r) ≠ a, hP(mk(rs1, f0)), r ∈ rs1, r ∈ rs1 ∪ rs2, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∀ r. r ∈ rs1 → g0(r) = a ⊦
Used simplifier rules: unc: ⊦ s ∪ s0 = s0 ∪ s; from specification set-union[refset] una: ⊦ (s ∪ s0) ∪ s1 = s ∪ s0 ∪ s1; from specification set-union[refset] ⊦ a ∈ s ∪ s0 ↔ ¬(¬ a ∈ s ∧ ¬ a ∈ s0); (ss)
| rs1 ∩ rs2 = ∅, g(r) ≠ a, g0(r) ≠ a, hP(mk(rs1, f0)), r ∈ rs1, r ∈ rs1 ∪ rs2, ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs1 ∪ rs2) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)), ∀ r. r ∈ rs1 → g0(r) = a ⊦ |
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.