| m ≠ 0 ⊦ align↑(n * m + n0, m) = n * m + align↑(n0, m) |
0 ≠ m ⊦ align↑(n, m) = (n % m = 0 ⊃ n;(n / m)+1 * m)
[Concretesimprules((Csimpnamedseq(alignup-def,,, 0 ≠ m ⊦ align↑(n, m) = (n % m = 0 ⊃ n;(n / m)+1 * m)) Csimpnamedseq(nat-mult,,rsucc-02, ⊦ m * (n + 1) = m * n + m) Csimpnamedseq(nat-basic2,,succ, ⊦ m +1 = m + 1) Csimpnamedseq(nat-div,,mult, n ≠ 0 ⊦ (n0 + m * n) / n = n0 / n + m) Csimpnamedseq(nat-basic2,,c, ⊦ m + n = n + m) Csimpnamedseq(nat-basic2,,a, ⊦ (m + n0) + n1 = m + n0 + n1) Csimpnamedseq(nat-mult,,mult-c, ⊦ m * n = n * m) Csimpnamedseq(nat-mult,,mult-a, ⊦ m0 * m * n = (m0 * m) * n) Csimpnamedseq(nat-div,,mod-mult, n ≠ 0 ⊦ (m + n0 * n) % n = m % n)))]