| m ≠ 0 ⊦ ¬ is-aligned(n, m) → align↓(n, m) + m = align↑(n, m) |
0 ≠ m ⊦ align↓(n, m) = (n % m = 0 ⊃ n;n / m * m)
[Concretesimprules((Csimpnamedseq(aligndown-def,,, 0 ≠ m ⊦ align↓(n, m) = (n % m = 0 ⊃ n;n / m * m)) Csimpnamedseq(alignup-def,,, 0 ≠ m ⊦ align↑(n, m) = (n % m = 0 ⊃ n;(n / m)+1 * m)) Csimpnamedseq(is-aligned-def,,, ⊦ is-aligned(n, m) ↔ n % m = 0) Csimpnamedseq(nat-basic2,,eq-01, ⊦ m + n = m + n0 ↔ n = n0) Csimpnamedseq(nat-mult,,mult-c, ⊦ m * n = n * m) Csimpnamedseq(nat-mult,,mult-a, ⊦ m0 * m * n = (m0 * m) * n) Csimpnamedseq(nat-basic2,,c, ⊦ m + n = n + m) Csimpnamedseq(nat-basic2,,a, ⊦ (m + n0) + n1 = m + n0 + n1) Csimpnamedseq(nat-mult,,rsucc-02, ⊦ m * (n + 1) = m * n + m) Csimpnamedseq(nat-basic2,,succ, ⊦ m +1 = m + 1)))]