apply trunc_eq_of_le_of_ulp_dvd b
round : ℕ → ℕ
n a b : ℕ
npos : 0 < n
hfaithful₁ : faithful₁ n round
hfa : trunc n a = a
hfb : trunc n b = b
round_le : round (a - b) ≤ a - b
two_mul_le : 2 * b ≤ a
ulp_le : ulp n (a - b) ≤ b
hba : b ≤ a
hab : b ≤ a - b
⊢ trunc n ((a - b) % ulp n (a - b)) = (a - b) % ulp n (a - b)
case hle
round : ℕ → ℕ
n a b : ℕ
npos : 0 < n
hfaithful₁ : faithful₁ n round
hfa : trunc n a = a
hfb : trunc n b = b
round_le : round (a - b) ≤ a - b
two_mul_le : 2 * b ≤ a
ulp_le : ulp n (a - b) ≤ b
hba : b ≤ a
hab : b ≤ a - b
⊢ (a - b) % ulp n (a - b) ≤ b

case hdvd
round : ℕ → ℕ
n a b : ℕ
npos : 0 < n
hfaithful₁ : faithful₁ n round
hfa : trunc n a = a
hfb : trunc n b = b
round_le : round (a - b) ≤ a - b
two_mul_le : 2 * b ≤ a
ulp_le : ulp n (a - b) ≤ b
hba : b ≤ a
hab : b ≤ a - b
⊢ ulp n b ∣ (a - b) % ulp n (a - b)