| g(r) = a, rely(a, rs, f, g, rs0, f0, g0), r ∈ rs ⊦ g0(r) = a ∧ r ∈ rs0 |
r ∈ rs, ∀ r0. (g(r0) = g(r) ∧ r0 ∈ rs ↔ g0(r0) = g(r) ∧ r0 ∈ rs0) ∧ (g(r0) = g(r) ∧ r0 ∈ rs → f(r0) = f0(r0)) ⊦ # rs = 0, rs = ∅, g0(r) = g(r) ∧ r ∈ rs0
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)));%size-zero-01: ⊦ rs ≠ ∅ → # rs ≠ 0; (forward) from specification set-basic[refset]%ne-01: ⊦ r ∈ rs → rs ≠ ∅; (forward) from specification set-basic[refset]