| as ∩ log.toSet = ∅ ⊦ replay-safe(log, fs \ as, ri) ↔ replay-safe(log, fs, ri) |
as ∩ (adr + log0).toSet = ∅, ∀ as, fs, ri. as ∩ log0.toSet = ∅ → (replay-safe(log0, fs \ as, ri) ↔ replay-safe(log0, fs, ri)) ⊦ replay-safe(adr + log0, fs \ as, ri) ↔ replay-safe(adr + log0, fs, ri)
Used simplifier rules: replay-safe-empty: ⊦ replay-safe([], fs, fi);%address-list freely generated by [], +;;% ⊦ [].toSet = ∅; (s)% ⊦ as ∩ ∅ = ∅; (s)%int-a: ⊦ (as ∩ as0) ∩ as1 = as ∩ as0 ∩ as1; from specification set-union[node-store]%int-c: ⊦ as ∩ as0 = as0 ∩ as; from specification set-union[node-store]