| err = ESUCCESS, ri0 = ri, replay-safe(ax, fs, ri) ⊦ ⟪aubifs_replaylog#(ax, fi, ro, fo, fs, log, boolvar; err, ri)⟫ ((err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → ri = replay-log(ax, fs, ri0))) |
ax = ax0, err = ESUCCESS, ri0 = ri, replay-safe(ax0, fs, ri) ⊦ ⟪while err = ESUCCESS ∧ ax ≠ [] do {/* (replaylog-prog : invariant (err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → (∃ ax0. ax` = ax0 + ax ∧ replay-safe(ax, fs, ri) ∧ ri = replay-log(ax0, fs`, ri`))) wfbound # ax) */; let adr = ax.head in aubifs_replayone#(adr, fi, ro, fo, fs, log, boolvar; err, ri); ax := ax.tail}⟫ ((err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → ri = replay-log(ax0, fs, ri0)))
Used simplifier rules: replaylog: ⊦ ;