| ax = ax1, ax2 = ax0, err = ESUCCESS, err0 = ESUCCESS, ri0 = ri1, replay-safe(ax0, fs, ri1), err = ESUCCESS → (∃ ax0. ax2 = ax0 + ax ∧ replay-safe(ax, fs, ri) ∧ ri = replay-log(ax0, fs, ri1)), err = ESUCCESS ∨ ⌊err⌋ ⊦ ⟪let adr = ax.head in aubifs_replayone#(adr, fi, ro, fo, fs, log, boolvar; err, ri); ax := ax.tail⟫ ( ((err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → (∃ ax0. ax2 = ax0 + ax ∧ replay-safe(ax, fs, ri) ∧ ri = replay-log(ax0, fs, ri1)))) ∧ # ax < # ax1), ax = [] |
adr = ax.head, ax = ax1, ax2 = ax0, err = ESUCCESS, err0 = ESUCCESS, ri0 = ri1, replay-safe(ax0, fs, ri1), err = ESUCCESS → (∃ ax0. ax2 = ax0 + ax ∧ replay-safe(ax, fs, ri) ∧ ri = replay-log(ax0, fs, ri1)), err = ESUCCESS ∨ ⌊err⌋ ⊦ ⟪aubifs_replayone#(adr, fi, ro, fo, fs, log, boolvar; err, ri); ax := ax.tail⟫ ( ((err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → (∃ ax0. ax2 = ax0 + ax ∧ replay-safe(ax, fs, ri) ∧ ri = replay-log(ax0, fs, ri1)))) ∧ # ax < # ax1), ax = []
ax = [], ax = ax1, ax2 = ax0, err = ESUCCESS, err0 = ESUCCESS, ri0 = ri1, replay-safe(ax0, fs, ri1), err = ESUCCESS → (∃ ax0. ax2 = ax0 + ax ∧ replay-safe(ax, fs, ri) ∧ ri = replay-log(ax0, fs, ri1)), err = ESUCCESS ∨ ⌊err⌋ ⊦ ax = []