| m + n0 + n ≤ # zbrar ⊦ payload(zbrar, m, n0 + n) = payload(zbrar, m, n) ⊕ payload(zbrar, m + n, n0) |
m + n0 + n1 +1 ≤ # zbrar, ∀ m, n0, zbrar. m + n0 + n1 ≤ # zbrar → payload(zbrar, m, n0 + n1) = payload(zbrar, m, n1) ⊕ payload(zbrar, m + n1, n0) ⊦ payload(zbrar, m, n0 + n1 +1) = payload(zbrar, m, n1 +1) ⊕ payload(zbrar, m + n1 +1, n0)
Used simplifier rules: payload-base: ⊦ payload(zbrar, m, 0) = ∅;%nat freely generated by 0, +1;;%add-base: ⊦ n + 0 = n; from specification nat-basic2%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic2%c: ⊦ m + n = n + m; from specification nat-basic2%empty-oplus: ⊦ ∅ ⊕ ri = ri; from specification store+set[node-index]