| replay(log, fs, fi, fo) = ri ⊖ ro, log-cons(log, fs), node-cons(nd.key, nd), replay-safe(log, fs, fi ⊖ fo), ri-cons(ri, fs) ⊦ replay-cons-strong(fs[adr, nd], ri[nd.key, adr], ro, fi, fo, log + adr ') ↔ replay-one(adr, nd, ri ⊖ ro) = ri[nd.key, adr] ⊖ ro, adr ∈ fs |
replay-log(log, fs, fi ⊖ fo) = ri ⊖ ro, log-cons(log, fs), node-cons(nd.key, nd), replay-safe(log, fs, fi ⊖ fo), ri-cons(ri, fs) ⊦ replay-cons-strong(fs[adr, nd], ri[nd.key, adr], ro, fi, fo, log + adr ') ↔ replay-one(adr, nd, ri ⊖ ro) = ri[nd.key, adr] ⊖ ro, adr ∈ fs
Used simplifier rules: replay: ⊦ replay(log, fs, fi, fo) = replay-log(log, fs, fi ⊖ fo);