| elems nx2 ∩ ginval = ∅, ginval ∩ elems nx1 = ∅, inv(gstore2), n ∈ gstore2, elems nx2 ⊆ dom gstore2, elems nx1 ⊆ dom gstore2, ¬ n ∈ ginval ⊦ ⟪gjournal_remove_nonend_blocks#(n, fi0, fi, ginval, gstore2, gstore, nx, pmaxino, p_os, jvalid; log; err); nx0 := nx1⟫ (elems nx0 ⊆ dom gstore2 ∧ elems nx0 ∩ ginval = ∅ ∧ ¬ # nx1 < # nx0) |
n ∈ gstore, ¬ n ∈ ginval, inv(gstore) ⊦ ⟪gjournal_remove_nonend_blocks#(n, ri, fi, ginval, gstore, gstore0, nx0, maxino, ns, boolvar0; log; err)⟫ true
boolvar ↔ jvalid, fi1 = fi, ginval0 = ginval, gstore1 = gstore2, gstore3 = gstore, maxino0 = pmaxino, n0 = n, ns0 = p_os, nx3 = nx, ri0 = fi0, ginval ∩ elems nx1 = ∅, elems nx2 ∩ ginval = ∅, inv(gstore2), n ∈ gstore2, elems nx1 ⊆ dom gstore2, elems nx2 ⊆ dom gstore2 ⊦ [gjournal_remove_nonend_blocks#(n, fi0, fi, ginval, gstore2, gstore, nx, pmaxino, p_os, jvalid; log; err)] (true → ⟪nx0 := nx1⟫ (elems nx0 ⊆ dom gstore2 ∧ elems nx0 ∩ ginval = ∅ ∧ ¬ # nx1 < # nx0)), n ∈ ginval