| m ≠ 0 ⊦ align↓(n, m) = n + n0 ↔ ¬ ¬(n0 = 0 ∧ is-aligned(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(is-aligned-def,,, ⊦ is-aligned(n, m) ↔ n % m = 0) Csimpnamedseq(nat-basic2,,c, ⊦ m + n = n + m) Csimpnamedseq(nat-basic2,,a, ⊦ (m + n0) + n1 = m + n0 + n1) Csimpnamedseq(nat-basic2,,add-base, ⊦ n + 0 = n)))]