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