| ⊦ replay-safe(log0 + log1, fs, ri) ↔ replay-safe(log0, fs, ri) ∧ replay-safe(log1, fs, replay-log(log0, fs, ri)) |
∀ log1, fs, ri. replay-safe(log + log1, fs, ri) ↔ replay-safe(log, fs, ri) ∧ replay-safe(log1, fs, replay-log(log, fs, ri)) ⊦ replay-safe((adr + log) + log1, fs, ri) ↔ replay-safe(adr + log, fs, ri) ∧ replay-safe(log1, fs, replay-log(adr + log, fs, ri))
Used simplifier rules: replay-safe-empty: ⊦ replay-safe([], fs, fi);%replay-log-empty: ⊦ replay-log([], fs, ri) = ri;%address-list freely generated by [], +;;% ⊦ [] + ax = ax; (s)%a: ⊦ (ax + ax0) + ax1 = ax + ax0 + ax1; from specification list[address-list-set]