| gndx.last = mkgnode(nd, m, boolvar, true) ⊦ gndx = [], valid-group-nodes(gndx) = # gndx |
⊦ gndx = [] ↔ ¬(∃ gndx0, gnd. gndx = gndx0 + gnd ')
Used simplifier rules: valid-group-nodes-rec: ⊦ valid-group-nodes(gndx + gnd ') = (gnd.end ⊃ # gndx + 1;valid-group-nodes(gndx));% ⊦ (gndx + gnd ').last = gnd; (s)%a: ⊦ (gndx + gndx0) + gndx1 = gndx + gndx0 + gndx1; from specification list[group-store]% ⊦ #(gndx + gndx0) = # gndx + # gndx0; (s)% ⊦ # gnd ' = 0 +1; (s)% ⊦ mkgnode(nd, m, boolvar, boolvar0).end ↔ boolvar0; (s)% ⊦ m + n = m + n0 ↔ n = n0; (s)%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic%c: ⊦ m + n = n + m; from specification nat-basic Used terms: gndx