have h₃ : a - b = a - ulp n a + (ulp n a - b) := by
   rewrite [← add_tsub_assoc_of_le le_ulp]
   rw [tsub_add_cancel_of_le $ ulp_le_self npos apos]
round : ℕ → ℕ
n a b : ℕ
npos : 0 < n
hfaithful₀ : faithful₀ n round
hfaithful₁ : faithful₁ n round
hcorrect₀ : correct₀ n round
hfa : trunc n a = a
hfb : trunc n b = b
hba : b ≤ a
round_lt : round (a - b) < a - b
no_uflow : 2 ^ n ≤ a - b
ulp_eq_ulp : ulp n (a - b) = ulp n a
bpos : b > 0
le_ulp : b ≤ ulp n a
apos : 0 < a
ulp_even : 2 ∣ ulp n a
h₁ : round (a - b) = trunc n (a - b)
h₂ : (a - b) % ulp n (a - b) ≤ ulp n (a - b) / 2
⊢ ulp n a ≤ 2 * b
round : ℕ → ℕ
n a b : ℕ
npos : 0 < n
hfaithful₀ : faithful₀ n round
hfaithful₁ : faithful₁ n round
hcorrect₀ : correct₀ n round
hfa : trunc n a = a
hfb : trunc n b = b
hba : b ≤ a
round_lt : round (a - b) < a - b
no_uflow : 2 ^ n ≤ a - b
ulp_eq_ulp : ulp n (a - b) = ulp n a
bpos : b > 0
le_ulp : b ≤ ulp n a
apos : 0 < a
ulp_even : 2 ∣ ulp n a
h₁ : round (a - b) = trunc n (a - b)
h₂ : (a - b) % ulp n (a - b) ≤ ulp n (a - b) / 2
h₃ : a - b = a - ulp n a + (ulp n a - b)
⊢ ulp n a ≤ 2 * b