| log2 = nx, lpt0 = lpt1, m = LEB_SIZE, n = log0.head, nx0 = nx, n < # lpt[n, lpt[n].flags:= LP_GROUP_NODES], n < # lpt, valid-indices(lpt1, nx), ∃ log. (log2 = log + log0 ∧ lpt = replay-log(lpt1, log) ∧ valid-indices(lpt, log2) ∧ ¬ dups(log2)) ∧ log0 = log1 ⊦ ⟪log0 := log0.tail⟫ ∃ log. ( log2 = log + log0 ∧ lpt[n, lpt[n].flags:= LP_GROUP_NODES][n, lpt[n, lpt[n].flags:= LP_GROUP_NODES][n].size:= m] = replay-log(lpt1, log) ∧ valid-indices(lpt[n, lpt[n].flags:= LP_GROUP_NODES][n, lpt[n, lpt[n].flags:= LP_GROUP_NODES][n].size:= m], log2) ∧ ¬ dups(log2)) ∧ # log0 < # log1, log0 = [], dups(nx) |
log2 = nx, lpt0 = lpt1, m = LEB_SIZE, n = log0.head, nx0 = nx, n < # lpt, n < # lpt[n, lpt[n].flags:= LP_GROUP_NODES], valid-indices(lpt1, nx), ∃ log. (log2 = log + log0 ∧ lpt = replay-log(lpt1, log) ∧ valid-indices(lpt, log2) ∧ ¬ dups(log2)) ∧ log0 = log1 ⊦ log0 = [], dups(nx), ∃ log. ( log2 = log + log0.tail ∧ lpt[n, lpt[n].flags:= LP_GROUP_NODES][n, lpt[n, lpt[n].flags:= LP_GROUP_NODES][n].size:= m] = replay-log(lpt1, log) ∧ valid-indices(lpt[n, lpt[n].flags:= LP_GROUP_NODES][n, lpt[n, lpt[n].flags:= LP_GROUP_NODES][n].size:= m], log2) ∧ ¬ dups(log2)) ∧ # log0.tail < # log1