| log = abs-log(nx0, gstore2 ↓), elems(nx0 + nx1) ∩ ginval = ∅, nx1 ≠ [], inv(gstore2 \ ginval), elems(nx0 + nx1) ⊆ dom gstore2 ⊦ ⟪gjournal_remove_nonend_blocks#(nx1.head, fi0, fi, ginval, gstore2, gstore, nx, pmaxino, p_os, jvalid; log; err); nx := nx1.tail⟫ ((∃ nx3. nx0 + nx1 = nx3 + nx ∧ (err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → log = abs-log(nx3, gstore2 ↓))) ∧ # nx < # nx1) |
log = abs-log(nx0, gstore2 ↓), nx1 = n + nx2, elems(nx0 + nx1) ∩ ginval = ∅, inv(gstore2 \ ginval), elems(nx0 + nx1) ⊆ dom gstore2 ⊦ ⟪gjournal_remove_nonend_blocks#(n, fi0, fi, ginval, gstore2, gstore, nx, pmaxino, p_os, jvalid; log; err); nx := nx2⟫ ((∃ nx3. nx0 + nx1 = nx3 + nx ∧ (err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → log = abs-log(nx3, gstore2 ↓))) ∧ # nx < # nx1), nx1 = []
Used simplifier rules: nx ≠ [] ⊦ n = nx.head ∧ nx0 = nx.tail ↔ nx = n + nx0; (elim) Used terms: nx1, n, nx2