| transaction-prefix(ndx, gndx1), ∀ gndx, ndx, gndx0. # gndx < # gndx1 → transaction-prefix(ndx, gndx) → valid-group-nodes(gndx0 + gndx) = valid-group-nodes(gndx0) ⊦ valid-group-nodes(gndx0 + gndx1) = valid-group-nodes(gndx0), ∀ gndx0, gnd. gndx1 ≠ gndx0 + gnd ' |
transaction-prefix(ndx, gndx + gnd '), ∀ gndx2, ndx, gndx0. # gndx2 < #(gndx + gnd ') → transaction-prefix(ndx, gndx2) → valid-group-nodes(gndx0 + gndx2) = valid-group-nodes(gndx0) ⊦ (gnd.end ⊃ (# gndx0 + # gndx) + 1;valid-group-nodes(gndx0 + gndx)) = valid-group-nodes(gndx0)
Used simplifier rules: valid-group-nodes-rec: ⊦ valid-group-nodes(gndx + gnd ') = (gnd.end ⊃ # gndx + 1;valid-group-nodes(gndx));%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic%a: ⊦ (gndx + gndx0) + gndx1 = gndx + gndx0 + gndx1; from specification list[group-store]% ⊦ #(gndx + gndx0) = # gndx + # gndx0; (s)