| n0 < n1, is-aligned(n1, m), align↓(n1, m) ≤ align↓(n0, m) ⊦ m = 0 |
0 ≠ m ⊦ align↓(n, m) = (n % m = 0 ⊃ n;n / m * m)
m ≠ 0 ⊦ is-aligned(n, m) → n % m = 0
⊦ is-aligned(n, m) ↔ n % m = 0
n1 % m = 0, n0 < n1, n0 < (n0 % m = 0 ⊃ n0;n0 / m * m), n1 ≤ (n0 % m = 0 ⊃ n0;n0 / m * m) ⊦ m = 0
Used simplifier rules: aligndown-def: 0 ≠ m ⊦ align↓(n, m) = (n % m = 0 ⊃ n;n / m * m);%is-aligned-mod: m ≠ 0 ⊦ is-aligned(n, m) → n % m = 0;%is-aligned-def: ⊦ is-aligned(n, m) ↔ n % m = 0;% ⊦ m < n → n ≠ 0; (s)%fle: ⊦ m < n ∧ n ≤ n0 → m < n0; (forward) from specification nat%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic