analysis.normed.group.add_circle
⟷
Mathlib.Analysis.Normed.Group.AddCircle
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -270,13 +270,13 @@ section FiniteOrderPoints
variable {p} [hp : Fact (0 < p)]
-#print AddCircle.norm_div_nat_cast /-
-theorem norm_div_nat_cast {m n : ℕ} :
+#print AddCircle.norm_div_natCast /-
+theorem norm_div_natCast {m n : ℕ} :
‖(↑(↑m / ↑n * p) : AddCircle p)‖ = p * (↑(min (m % n) (n - m % n)) / n) :=
by
have : p⁻¹ * (↑m / ↑n * p) = ↑m / ↑n := by rw [mul_comm _ p, inv_mul_cancel_left₀ hp.out.ne.symm]
rw [norm_eq' p hp.out, this, abs_sub_round_div_natCast_eq]
-#align add_circle.norm_div_nat_cast AddCircle.norm_div_nat_cast
+#align add_circle.norm_div_nat_cast AddCircle.norm_div_natCast
-/
#print AddCircle.exists_norm_eq_of_isOfFinAddOrder /-
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -298,7 +298,7 @@ theorem le_add_order_smul_norm_of_isOfFinAddOrder {u : AddCircle p} (hu : IsOfFi
obtain ⟨n, hn⟩ := exists_norm_eq_of_fin_add_order hu
replace hu : (addOrderOf u : ℝ) ≠ 0; · norm_cast; exact (add_order_of_pos_iff.mpr hu).Ne.symm
conv_lhs => rw [← mul_one p]
- rw [hn, nsmul_eq_mul, ← mul_assoc, mul_comm _ p, mul_assoc, mul_div_cancel' _ hu,
+ rw [hn, nsmul_eq_mul, ← mul_assoc, mul_comm _ p, mul_assoc, mul_div_cancel₀ _ hu,
mul_le_mul_left hp.out, Nat.one_le_cast, Nat.one_le_iff_ne_zero]
contrapose! hu'
simpa only [hu', algebraMap.coe_zero, zero_div, MulZeroClass.mul_zero, norm_eq_zero] using hn
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -102,7 +102,7 @@ theorem norm_eq {x : ℝ} : ‖(x : AddCircle p)‖ = |x - round (p⁻¹ * x) *
rcases eq_or_ne p 0 with (rfl | hp); · simp
intros
have hx := norm_coe_mul p x p⁻¹
- rw [abs_inv, eq_inv_mul_iff_mul_eq₀ ((not_congr abs_eq_zero).mpr hp)] at hx
+ rw [abs_inv, eq_inv_mul_iff_mul_eq₀ ((not_congr abs_eq_zero).mpr hp)] at hx
rw [← hx, inv_mul_cancel hp, this, ← abs_mul, mul_sub, mul_inv_cancel_left₀ hp, mul_comm p]
clear x p
intros
@@ -126,7 +126,7 @@ theorem norm_eq {x : ℝ} : ‖(x : AddCircle p)‖ = |x - round (p⁻¹ * x) *
· simp only [QuotientAddGroup.mk'_apply, Real.norm_eq_abs, le_csInf_iff h₁ h₂]
rintro b' ⟨b, hb, rfl⟩
simp only [mem_set_of_eq, QuotientAddGroup.eq_iff_sub_mem, mem_zmultiples_iff,
- smul_one_eq_coe] at hb
+ smul_one_eq_coe] at hb
obtain ⟨z, hz⟩ := hb
rw [(by rw [hz]; abel : x = b - z), fract_sub_int, ← abs_sub_round_eq_min]
convert round_le b 0
@@ -172,11 +172,11 @@ theorem norm_coe_eq_abs_iff {x : ℝ} (hp : p ≠ 0) : ‖(x : AddCircle p)‖ =
suffices ∀ p : ℝ, 0 < p → |x| ≤ p / 2 → ‖(x : AddCircle p)‖ = |x|
by
rcases lt_trichotomy 0 p with (hp | rfl | hp)
- · rw [abs_eq_self.mpr hp.le] at hx
+ · rw [abs_eq_self.mpr hp.le] at hx
exact this p hp hx
· contradiction
· rw [← norm_neg_period]
- rw [abs_eq_neg_self.mpr hp.le] at hx
+ rw [abs_eq_neg_self.mpr hp.le] at hx
exact this (-p) (neg_pos.mpr hp) hx
clear hx
intro p hp hx
@@ -236,7 +236,7 @@ theorem coe_real_preimage_closedBall_inter_eq {x ε : ℝ} (s : Set ℝ)
by
cases' le_or_lt (|p| / 2) ε with hε hε
· rcases eq_or_ne p 0 with (rfl | hp)
- · simp only [abs_zero, zero_div] at hε
+ · simp only [abs_zero, zero_div] at hε
simp only [not_lt.mpr hε, coe_real_preimage_closed_ball_period_zero, abs_zero, zero_div,
if_false, inter_eq_right_iff_subset]
exact hs.trans (closed_ball_subset_closed_ball <| by simp [hε])
@@ -256,7 +256,7 @@ theorem coe_real_preimage_closedBall_inter_eq {x ε : ℝ} (s : Set ℝ)
linarith [abs_eq_self.mpr hp.le]
· have : p ≤ ↑z * p; nlinarith
linarith [abs_eq_self.mpr hp.le]
- · simp only [MulZeroClass.mul_zero, add_zero, abs_zero, zero_div] at hy₁ hy₂ hε
+ · simp only [MulZeroClass.mul_zero, add_zero, abs_zero, zero_div] at hy₁ hy₂ hε
linarith
· cases' Int.cast_le_neg_one_or_one_le_cast_of_ne_zero ℝ hz with hz' hz'
· have : -p ≤ ↑z * p; nlinarith
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2022 Oliver Nash. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Oliver Nash
-/
-import Mathbin.Analysis.Normed.Group.Quotient
-import Mathbin.Topology.Instances.AddCircle
+import Analysis.Normed.Group.Quotient
+import Topology.Instances.AddCircle
#align_import analysis.normed.group.add_circle from "leanprover-community/mathlib"@"2ed2c6310e6f1c5562bdf6bfbda55ebbf6891abe"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2022 Oliver Nash. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Oliver Nash
-
-! This file was ported from Lean 3 source module analysis.normed.group.add_circle
-! leanprover-community/mathlib commit 2ed2c6310e6f1c5562bdf6bfbda55ebbf6891abe
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Analysis.Normed.Group.Quotient
import Mathbin.Topology.Instances.AddCircle
+#align_import analysis.normed.group.add_circle from "leanprover-community/mathlib"@"2ed2c6310e6f1c5562bdf6bfbda55ebbf6891abe"
+
/-!
# The additive circle as a normed group
mathlib commit https://github.com/leanprover-community/mathlib/commit/9240e8be927a0955b9a82c6c85ef499ee3a626b8
@@ -64,8 +64,7 @@ theorem norm_coe_mul (x : ℝ) (t : ℝ) :
congr 1
ext z
rw [mem_smul_set_iff_inv_smul_mem₀ ht']
- show
- (∃ y, y - t * x ∈ zmultiples (t * p) ∧ |y| = z) ↔ ∃ w, w - x ∈ zmultiples p ∧ |w| = (|t|)⁻¹ * z
+ show (∃ y, y - t * x ∈ zmultiples (t * p) ∧ |y| = z) ↔ ∃ w, w - x ∈ zmultiples p ∧ |w| = |t|⁻¹ * z
constructor
· rintro ⟨y, hy, rfl⟩
refine' ⟨t⁻¹ * y, _, by rw [abs_mul, abs_inv]⟩
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -46,6 +46,7 @@ variable (p : ℝ)
instance : NormedAddCommGroup (AddCircle p) :=
AddSubgroup.normedAddCommGroupQuotient _
+#print AddCircle.norm_coe_mul /-
@[simp]
theorem norm_coe_mul (x : ℝ) (t : ℝ) :
‖(↑(t * x) : AddCircle (t * p))‖ = |t| * ‖(x : AddCircle p)‖ :=
@@ -75,14 +76,18 @@ theorem norm_coe_mul (x : ℝ) (t : ℝ) :
rw [← mul_sub]
exact aux hw
#align add_circle.norm_coe_mul AddCircle.norm_coe_mul
+-/
+#print AddCircle.norm_neg_period /-
theorem norm_neg_period (x : ℝ) : ‖(x : AddCircle (-p))‖ = ‖(x : AddCircle p)‖ :=
by
suffices ‖(↑(-1 * x) : AddCircle (-1 * p))‖ = ‖(x : AddCircle p)‖ by rw [← this, neg_one_mul];
simp
simp only [norm_coe_mul, abs_neg, abs_one, one_mul]
#align add_circle.norm_neg_period AddCircle.norm_neg_period
+-/
+#print AddCircle.norm_eq_of_zero /-
@[simp]
theorem norm_eq_of_zero {x : ℝ} : ‖(x : AddCircle (0 : ℝ))‖ = |x| :=
by
@@ -91,7 +96,9 @@ theorem norm_eq_of_zero {x : ℝ} : ‖(x : AddCircle (0 : ℝ))‖ = |x| :=
ext y
simp [QuotientAddGroup.eq_iff_sub_mem, mem_zmultiples_iff, sub_eq_zero]
#align add_circle.norm_eq_of_zero AddCircle.norm_eq_of_zero
+-/
+#print AddCircle.norm_eq /-
theorem norm_eq {x : ℝ} : ‖(x : AddCircle p)‖ = |x - round (p⁻¹ * x) * p| :=
by
suffices ∀ x : ℝ, ‖(x : AddCircle (1 : ℝ))‖ = |x - round x|
@@ -129,7 +136,9 @@ theorem norm_eq {x : ℝ} : ‖(x : AddCircle p)‖ = |x - round (p⁻¹ * x) *
convert round_le b 0
simp
#align add_circle.norm_eq AddCircle.norm_eq
+-/
+#print AddCircle.norm_eq' /-
theorem norm_eq' (hp : 0 < p) {x : ℝ} : ‖(x : AddCircle p)‖ = p * |p⁻¹ * x - round (p⁻¹ * x)| :=
by
conv_rhs =>
@@ -137,7 +146,9 @@ theorem norm_eq' (hp : 0 < p) {x : ℝ} : ‖(x : AddCircle p)‖ = p * |p⁻¹
rw [← abs_eq_self.mpr hp.le]
rw [← abs_mul, mul_sub, mul_inv_cancel_left₀ hp.ne.symm, norm_eq, mul_comm p]
#align add_circle.norm_eq' AddCircle.norm_eq'
+-/
+#print AddCircle.norm_le_half_period /-
theorem norm_le_half_period {x : AddCircle p} (hp : p ≠ 0) : ‖x‖ ≤ |p| / 2 :=
by
obtain ⟨x⟩ := x
@@ -146,7 +157,9 @@ theorem norm_le_half_period {x : AddCircle p} (hp : p ≠ 0) : ‖x‖ ≤ |p| /
← mul_div_assoc, ← abs_mul, inv_mul_cancel hp, mul_one, abs_one]
exact abs_sub_round (p⁻¹ * x)
#align add_circle.norm_le_half_period AddCircle.norm_le_half_period
+-/
+#print AddCircle.norm_half_period_eq /-
@[simp]
theorem norm_half_period_eq : ‖(↑(p / 2) : AddCircle p)‖ = |p| / 2 :=
by
@@ -154,7 +167,9 @@ theorem norm_half_period_eq : ‖(↑(p / 2) : AddCircle p)‖ = |p| / 2 :=
rw [norm_eq, ← mul_div_assoc, inv_mul_cancel hp, one_div, round_two_inv, algebraMap.coe_one,
one_mul, (by linarith : p / 2 - p = -(p / 2)), abs_neg, abs_div, abs_two]
#align add_circle.norm_half_period_eq AddCircle.norm_half_period_eq
+-/
+#print AddCircle.norm_coe_eq_abs_iff /-
theorem norm_coe_eq_abs_iff {x : ℝ} (hp : p ≠ 0) : ‖(x : AddCircle p)‖ = |x| ↔ |x| ≤ |p| / 2 :=
by
refine' ⟨fun hx => hx ▸ norm_le_half_period p hp, fun hx => _⟩
@@ -182,21 +197,27 @@ theorem norm_coe_eq_abs_iff {x : ℝ} (hp : p ≠ 0) : ‖(x : AddCircle p)‖ =
rwa [← mul_lt_mul_left hp, ← mul_assoc, mul_inv_cancel hp.ne.symm, one_mul, ← mul_div_assoc,
mul_one]
#align add_circle.norm_coe_eq_abs_iff AddCircle.norm_coe_eq_abs_iff
+-/
open Metric
+#print AddCircle.closedBall_eq_univ_of_half_period_le /-
theorem closedBall_eq_univ_of_half_period_le (hp : p ≠ 0) (x : AddCircle p) {ε : ℝ}
(hε : |p| / 2 ≤ ε) : closedBall x ε = univ :=
eq_univ_iff_forall.mpr fun x => by
simpa only [mem_closed_ball, dist_eq_norm] using (norm_le_half_period p hp).trans hε
#align add_circle.closed_ball_eq_univ_of_half_period_le AddCircle.closedBall_eq_univ_of_half_period_le
+-/
+#print AddCircle.coe_real_preimage_closedBall_period_zero /-
@[simp]
theorem coe_real_preimage_closedBall_period_zero (x ε : ℝ) :
coe ⁻¹' closedBall (x : AddCircle (0 : ℝ)) ε = closedBall x ε := by
ext y <;> simp [dist_eq_norm, ← QuotientAddGroup.mk_sub]
#align add_circle.coe_real_preimage_closed_ball_period_zero AddCircle.coe_real_preimage_closedBall_period_zero
+-/
+#print AddCircle.coe_real_preimage_closedBall_eq_iUnion /-
theorem coe_real_preimage_closedBall_eq_iUnion (x ε : ℝ) :
coe ⁻¹' closedBall (x : AddCircle p) ε = ⋃ z : ℤ, closedBall (x + z • p) ε :=
by
@@ -210,7 +231,9 @@ theorem coe_real_preimage_closedBall_eq_iUnion (x ε : ℝ) :
inv_mul_cancel_left₀ hp] at hn ⊢
exact (round_le (p⁻¹ * (y - x)) n).trans hn
#align add_circle.coe_real_preimage_closed_ball_eq_Union AddCircle.coe_real_preimage_closedBall_eq_iUnion
+-/
+#print AddCircle.coe_real_preimage_closedBall_inter_eq /-
theorem coe_real_preimage_closedBall_inter_eq {x ε : ℝ} (s : Set ℝ)
(hs : s ⊆ closedBall x (|p| / 2)) :
coe ⁻¹' closedBall (x : AddCircle p) ε ∩ s = if ε < |p| / 2 then closedBall x ε ∩ s else s :=
@@ -245,20 +268,22 @@ theorem coe_real_preimage_closedBall_inter_eq {x ε : ℝ} (s : Set ℝ)
· have : ↑z * p ≤ p; nlinarith
linarith [abs_eq_neg_self.mpr hp.le]
#align add_circle.coe_real_preimage_closed_ball_inter_eq AddCircle.coe_real_preimage_closedBall_inter_eq
+-/
section FiniteOrderPoints
variable {p} [hp : Fact (0 < p)]
-include hp
-
+#print AddCircle.norm_div_nat_cast /-
theorem norm_div_nat_cast {m n : ℕ} :
‖(↑(↑m / ↑n * p) : AddCircle p)‖ = p * (↑(min (m % n) (n - m % n)) / n) :=
by
have : p⁻¹ * (↑m / ↑n * p) = ↑m / ↑n := by rw [mul_comm _ p, inv_mul_cancel_left₀ hp.out.ne.symm]
rw [norm_eq' p hp.out, this, abs_sub_round_div_natCast_eq]
#align add_circle.norm_div_nat_cast AddCircle.norm_div_nat_cast
+-/
+#print AddCircle.exists_norm_eq_of_isOfFinAddOrder /-
theorem exists_norm_eq_of_isOfFinAddOrder {u : AddCircle p} (hu : IsOfFinAddOrder u) :
∃ k : ℕ, ‖u‖ = p * (k / addOrderOf u) :=
by
@@ -268,7 +293,9 @@ theorem exists_norm_eq_of_isOfFinAddOrder {u : AddCircle p} (hu : IsOfFinAddOrde
refine' ⟨min (m % n) (n - m % n), _⟩
rw [← hm, norm_div_nat_cast]
#align add_circle.exists_norm_eq_of_fin_add_order AddCircle.exists_norm_eq_of_isOfFinAddOrder
+-/
+#print AddCircle.le_add_order_smul_norm_of_isOfFinAddOrder /-
theorem le_add_order_smul_norm_of_isOfFinAddOrder {u : AddCircle p} (hu : IsOfFinAddOrder u)
(hu' : u ≠ 0) : p ≤ addOrderOf u • ‖u‖ :=
by
@@ -280,6 +307,7 @@ theorem le_add_order_smul_norm_of_isOfFinAddOrder {u : AddCircle p} (hu : IsOfFi
contrapose! hu'
simpa only [hu', algebraMap.coe_zero, zero_div, MulZeroClass.mul_zero, norm_eq_zero] using hn
#align add_circle.le_add_order_smul_norm_of_is_of_fin_add_order AddCircle.le_add_order_smul_norm_of_isOfFinAddOrder
+-/
end FiniteOrderPoints
@@ -287,8 +315,10 @@ end AddCircle
namespace UnitAddCircle
+#print UnitAddCircle.norm_eq /-
theorem norm_eq {x : ℝ} : ‖(x : UnitAddCircle)‖ = |x - round x| := by simp [AddCircle.norm_eq]
#align unit_add_circle.norm_eq UnitAddCircle.norm_eq
+-/
end UnitAddCircle
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -86,7 +86,7 @@ theorem norm_neg_period (x : ℝ) : ‖(x : AddCircle (-p))‖ = ‖(x : AddCirc
@[simp]
theorem norm_eq_of_zero {x : ℝ} : ‖(x : AddCircle (0 : ℝ))‖ = |x| :=
by
- suffices { y : ℝ | (y : AddCircle (0 : ℝ)) = (x : AddCircle (0 : ℝ)) } = {x} by
+ suffices {y : ℝ | (y : AddCircle (0 : ℝ)) = (x : AddCircle (0 : ℝ))} = {x} by
rw [quotient_norm_eq, this, image_singleton, Real.norm_eq_abs, csInf_singleton]
ext y
simp [QuotientAddGroup.eq_iff_sub_mem, mem_zmultiples_iff, sub_eq_zero]
@@ -104,9 +104,9 @@ theorem norm_eq {x : ℝ} : ‖(x : AddCircle p)‖ = |x - round (p⁻¹ * x) *
clear x p
intros
rw [quotient_norm_eq, abs_sub_round_eq_min]
- have h₁ : BddBelow (abs '' { m : ℝ | (m : AddCircle (1 : ℝ)) = x }) :=
+ have h₁ : BddBelow (abs '' {m : ℝ | (m : AddCircle (1 : ℝ)) = x}) :=
⟨0, by simp [mem_lowerBounds]⟩
- have h₂ : (abs '' { m : ℝ | (m : AddCircle (1 : ℝ)) = x }).Nonempty := ⟨|x|, ⟨x, rfl, rfl⟩⟩
+ have h₂ : (abs '' {m : ℝ | (m : AddCircle (1 : ℝ)) = x}).Nonempty := ⟨|x|, ⟨x, rfl, rfl⟩⟩
apply le_antisymm
· simp only [le_min_iff, Real.norm_eq_abs, csInf_le_iff h₁ h₂]
intro b h
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -52,7 +52,7 @@ theorem norm_coe_mul (x : ℝ) (t : ℝ) :
by
have aux : ∀ {a b c : ℝ}, a ∈ zmultiples b → c * a ∈ zmultiples (c * b) := fun a b c h =>
by
- simp only [mem_zmultiples_iff] at h⊢
+ simp only [mem_zmultiples_iff] at h ⊢
obtain ⟨n, rfl⟩ := h
exact ⟨n, (mul_smul_comm n c b).symm⟩
rcases eq_or_ne t 0 with (rfl | ht); · simp
@@ -99,7 +99,7 @@ theorem norm_eq {x : ℝ} : ‖(x : AddCircle p)‖ = |x - round (p⁻¹ * x) *
rcases eq_or_ne p 0 with (rfl | hp); · simp
intros
have hx := norm_coe_mul p x p⁻¹
- rw [abs_inv, eq_inv_mul_iff_mul_eq₀ ((not_congr abs_eq_zero).mpr hp)] at hx
+ rw [abs_inv, eq_inv_mul_iff_mul_eq₀ ((not_congr abs_eq_zero).mpr hp)] at hx
rw [← hx, inv_mul_cancel hp, this, ← abs_mul, mul_sub, mul_inv_cancel_left₀ hp, mul_comm p]
clear x p
intros
@@ -123,7 +123,7 @@ theorem norm_eq {x : ℝ} : ‖(x : AddCircle p)‖ = |x - round (p⁻¹ * x) *
· simp only [QuotientAddGroup.mk'_apply, Real.norm_eq_abs, le_csInf_iff h₁ h₂]
rintro b' ⟨b, hb, rfl⟩
simp only [mem_set_of_eq, QuotientAddGroup.eq_iff_sub_mem, mem_zmultiples_iff,
- smul_one_eq_coe] at hb
+ smul_one_eq_coe] at hb
obtain ⟨z, hz⟩ := hb
rw [(by rw [hz]; abel : x = b - z), fract_sub_int, ← abs_sub_round_eq_min]
convert round_le b 0
@@ -161,11 +161,11 @@ theorem norm_coe_eq_abs_iff {x : ℝ} (hp : p ≠ 0) : ‖(x : AddCircle p)‖ =
suffices ∀ p : ℝ, 0 < p → |x| ≤ p / 2 → ‖(x : AddCircle p)‖ = |x|
by
rcases lt_trichotomy 0 p with (hp | rfl | hp)
- · rw [abs_eq_self.mpr hp.le] at hx
+ · rw [abs_eq_self.mpr hp.le] at hx
exact this p hp hx
· contradiction
· rw [← norm_neg_period]
- rw [abs_eq_neg_self.mpr hp.le] at hx
+ rw [abs_eq_neg_self.mpr hp.le] at hx
exact this (-p) (neg_pos.mpr hp) hx
clear hx
intro p hp hx
@@ -207,7 +207,7 @@ theorem coe_real_preimage_closedBall_eq_iUnion (x ε : ℝ) :
refine' ⟨fun h => ⟨round (p⁻¹ * (y - x)), h⟩, _⟩
rintro ⟨n, hn⟩
rw [← mul_le_mul_left (abs_pos.mpr <| inv_ne_zero hp), ← abs_mul, mul_sub, mul_comm _ p,
- inv_mul_cancel_left₀ hp] at hn⊢
+ inv_mul_cancel_left₀ hp] at hn ⊢
exact (round_le (p⁻¹ * (y - x)) n).trans hn
#align add_circle.coe_real_preimage_closed_ball_eq_Union AddCircle.coe_real_preimage_closedBall_eq_iUnion
@@ -217,7 +217,7 @@ theorem coe_real_preimage_closedBall_inter_eq {x ε : ℝ} (s : Set ℝ)
by
cases' le_or_lt (|p| / 2) ε with hε hε
· rcases eq_or_ne p 0 with (rfl | hp)
- · simp only [abs_zero, zero_div] at hε
+ · simp only [abs_zero, zero_div] at hε
simp only [not_lt.mpr hε, coe_real_preimage_closed_ball_period_zero, abs_zero, zero_div,
if_false, inter_eq_right_iff_subset]
exact hs.trans (closed_ball_subset_closed_ball <| by simp [hε])
@@ -226,7 +226,7 @@ theorem coe_real_preimage_closedBall_inter_eq {x ε : ℝ} (s : Set ℝ)
simp [-zsmul_eq_mul, ← QuotientAddGroup.mk_zero, coe_real_preimage_closed_ball_eq_Union,
Union_inter, Union_ite, this, hε]
intro z
- simp only [Real.closedBall_eq_Icc, zero_sub, zero_add] at hs⊢
+ simp only [Real.closedBall_eq_Icc, zero_sub, zero_add] at hs ⊢
rcases eq_or_ne z 0 with (rfl | hz); · simp
simp only [hz, zsmul_eq_mul, if_false, eq_empty_iff_forall_not_mem]
rintro y ⟨⟨hy₁, hy₂⟩, hy₀⟩
@@ -237,7 +237,7 @@ theorem coe_real_preimage_closedBall_inter_eq {x ε : ℝ} (s : Set ℝ)
linarith [abs_eq_self.mpr hp.le]
· have : p ≤ ↑z * p; nlinarith
linarith [abs_eq_self.mpr hp.le]
- · simp only [MulZeroClass.mul_zero, add_zero, abs_zero, zero_div] at hy₁ hy₂ hε
+ · simp only [MulZeroClass.mul_zero, add_zero, abs_zero, zero_div] at hy₁ hy₂ hε
linarith
· cases' Int.cast_le_neg_one_or_one_le_cast_of_ne_zero ℝ hz with hz' hz'
· have : -p ≤ ↑z * p; nlinarith
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -46,12 +46,6 @@ variable (p : ℝ)
instance : NormedAddCommGroup (AddCircle p) :=
AddSubgroup.normedAddCommGroupQuotient _
-/- warning: add_circle.norm_coe_mul -> AddCircle.norm_coe_mul is a dubious translation:
-lean 3 declaration is
- forall (p : Real) (x : Real) (t : Real), Eq.{1} Real (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) t p)) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) t p)) (AddCircle.normedAddCommGroup (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) t p))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) t p)) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) t p)) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) t p)) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) t p)))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) t x))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) t) (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p))) x)))
-but is expected to have type
- forall (p : Real) (x : Real) (t : Real), Eq.{1} Real (Norm.norm.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) t p))) (normOnQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) t p))) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) t p)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) t x))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) t) (Norm.norm.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (normOnQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p) x)))
-Case conversion may be inaccurate. Consider using '#align add_circle.norm_coe_mul AddCircle.norm_coe_mulₓ'. -/
@[simp]
theorem norm_coe_mul (x : ℝ) (t : ℝ) :
‖(↑(t * x) : AddCircle (t * p))‖ = |t| * ‖(x : AddCircle p)‖ :=
@@ -82,12 +76,6 @@ theorem norm_coe_mul (x : ℝ) (t : ℝ) :
exact aux hw
#align add_circle.norm_coe_mul AddCircle.norm_coe_mul
-/- warning: add_circle.norm_neg_period -> AddCircle.norm_neg_period is a dubious translation:
-lean 3 declaration is
- forall (p : Real) (x : Real), Eq.{1} Real (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (Neg.neg.{0} Real Real.hasNeg p)) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (Neg.neg.{0} Real Real.hasNeg p)) (AddCircle.normedAddCommGroup (Neg.neg.{0} Real Real.hasNeg p))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (Neg.neg.{0} Real Real.hasNeg p)) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (Neg.neg.{0} Real Real.hasNeg p)) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (Neg.neg.{0} Real Real.hasNeg p)) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (Neg.neg.{0} Real Real.hasNeg p)))) x)) (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p))) x))
-but is expected to have type
- forall (p : Real) (x : Real), Eq.{1} Real (Norm.norm.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (Neg.neg.{0} Real Real.instNegReal p))) (normOnQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (Neg.neg.{0} Real Real.instNegReal p))) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (Neg.neg.{0} Real Real.instNegReal p)) x)) (Norm.norm.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (normOnQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p) x))
-Case conversion may be inaccurate. Consider using '#align add_circle.norm_neg_period AddCircle.norm_neg_periodₓ'. -/
theorem norm_neg_period (x : ℝ) : ‖(x : AddCircle (-p))‖ = ‖(x : AddCircle p)‖ :=
by
suffices ‖(↑(-1 * x) : AddCircle (-1 * p))‖ = ‖(x : AddCircle p)‖ by rw [← this, neg_one_mul];
@@ -95,12 +83,6 @@ theorem norm_neg_period (x : ℝ) : ‖(x : AddCircle (-p))‖ = ‖(x : AddCirc
simp only [norm_coe_mul, abs_neg, abs_one, one_mul]
#align add_circle.norm_neg_period AddCircle.norm_neg_period
-/- warning: add_circle.norm_eq_of_zero -> AddCircle.norm_eq_of_zero is a dubious translation:
-lean 3 declaration is
- forall {x : Real}, Eq.{1} Real (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (AddCircle.normedAddCommGroup (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))) x)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) x)
-but is expected to have type
- forall {x : Real}, Eq.{1} Real (Norm.norm.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (normOnQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) x)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) x)
-Case conversion may be inaccurate. Consider using '#align add_circle.norm_eq_of_zero AddCircle.norm_eq_of_zeroₓ'. -/
@[simp]
theorem norm_eq_of_zero {x : ℝ} : ‖(x : AddCircle (0 : ℝ))‖ = |x| :=
by
@@ -110,12 +92,6 @@ theorem norm_eq_of_zero {x : ℝ} : ‖(x : AddCircle (0 : ℝ))‖ = |x| :=
simp [QuotientAddGroup.eq_iff_sub_mem, mem_zmultiples_iff, sub_eq_zero]
#align add_circle.norm_eq_of_zero AddCircle.norm_eq_of_zero
-/- warning: add_circle.norm_eq -> AddCircle.norm_eq is a dubious translation:
-lean 3 declaration is
- forall (p : Real) {x : Real}, Eq.{1} Real (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p))) x)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) x (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) (round.{0} Real Real.linearOrderedRing Real.floorRing (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Inv.inv.{0} Real Real.hasInv p) x))) p)))
-but is expected to have type
- forall (p : Real) {x : Real}, Eq.{1} Real (Norm.norm.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (normOnQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p) x)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Int.cast.{0} Real Real.intCast (round.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Inv.inv.{0} Real Real.instInvReal p) x))) p)))
-Case conversion may be inaccurate. Consider using '#align add_circle.norm_eq AddCircle.norm_eqₓ'. -/
theorem norm_eq {x : ℝ} : ‖(x : AddCircle p)‖ = |x - round (p⁻¹ * x) * p| :=
by
suffices ∀ x : ℝ, ‖(x : AddCircle (1 : ℝ))‖ = |x - round x|
@@ -154,12 +130,6 @@ theorem norm_eq {x : ℝ} : ‖(x : AddCircle p)‖ = |x - round (p⁻¹ * x) *
simp
#align add_circle.norm_eq AddCircle.norm_eq
-/- warning: add_circle.norm_eq' -> AddCircle.norm_eq' is a dubious translation:
-lean 3 declaration is
- forall (p : Real), (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) p) -> (forall {x : Real}, Eq.{1} Real (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p))) x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) p (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Inv.inv.{0} Real Real.hasInv p) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) (round.{0} Real Real.linearOrderedRing Real.floorRing (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Inv.inv.{0} Real Real.hasInv p) x)))))))
-but is expected to have type
- forall (p : Real), (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) p) -> (forall {x : Real}, Eq.{1} Real (Norm.norm.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (normOnQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p) x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) p (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Inv.inv.{0} Real Real.instInvReal p) x) (Int.cast.{0} Real Real.intCast (round.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Inv.inv.{0} Real Real.instInvReal p) x)))))))
-Case conversion may be inaccurate. Consider using '#align add_circle.norm_eq' AddCircle.norm_eq'ₓ'. -/
theorem norm_eq' (hp : 0 < p) {x : ℝ} : ‖(x : AddCircle p)‖ = p * |p⁻¹ * x - round (p⁻¹ * x)| :=
by
conv_rhs =>
@@ -168,12 +138,6 @@ theorem norm_eq' (hp : 0 < p) {x : ℝ} : ‖(x : AddCircle p)‖ = p * |p⁻¹
rw [← abs_mul, mul_sub, mul_inv_cancel_left₀ hp.ne.symm, norm_eq, mul_comm p]
#align add_circle.norm_eq' AddCircle.norm_eq'
-/- warning: add_circle.norm_le_half_period -> AddCircle.norm_le_half_period is a dubious translation:
-lean 3 declaration is
- forall (p : Real) {x : AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p}, (Ne.{1} Real p (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (LE.le.{0} Real Real.hasLe (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p)) x) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) p) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne))))))
-but is expected to have type
- forall (p : Real) {x : AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p}, (Ne.{1} Real p (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NormedAddCommGroup.toNorm.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddCircle.instNormedAddCommGroupAddCircleRealInstLinearOrderedAddCommGroupRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p)) x) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) p) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))))))
-Case conversion may be inaccurate. Consider using '#align add_circle.norm_le_half_period AddCircle.norm_le_half_periodₓ'. -/
theorem norm_le_half_period {x : AddCircle p} (hp : p ≠ 0) : ‖x‖ ≤ |p| / 2 :=
by
obtain ⟨x⟩ := x
@@ -183,12 +147,6 @@ theorem norm_le_half_period {x : AddCircle p} (hp : p ≠ 0) : ‖x‖ ≤ |p| /
exact abs_sub_round (p⁻¹ * x)
#align add_circle.norm_le_half_period AddCircle.norm_le_half_period
-/- warning: add_circle.norm_half_period_eq -> AddCircle.norm_half_period_eq is a dubious translation:
-lean 3 declaration is
- forall (p : Real), Eq.{1} Real (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p))) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) p (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne))))))) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) p) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne)))))
-but is expected to have type
- forall (p : Real), Eq.{1} Real (Norm.norm.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (normOnQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) p (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))))))) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) p) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))
-Case conversion may be inaccurate. Consider using '#align add_circle.norm_half_period_eq AddCircle.norm_half_period_eqₓ'. -/
@[simp]
theorem norm_half_period_eq : ‖(↑(p / 2) : AddCircle p)‖ = |p| / 2 :=
by
@@ -197,12 +155,6 @@ theorem norm_half_period_eq : ‖(↑(p / 2) : AddCircle p)‖ = |p| / 2 :=
one_mul, (by linarith : p / 2 - p = -(p / 2)), abs_neg, abs_div, abs_two]
#align add_circle.norm_half_period_eq AddCircle.norm_half_period_eq
-/- warning: add_circle.norm_coe_eq_abs_iff -> AddCircle.norm_coe_eq_abs_iff is a dubious translation:
-lean 3 declaration is
- forall (p : Real) {x : Real}, (Ne.{1} Real p (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Iff (Eq.{1} Real (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p))) x)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) x)) (LE.le.{0} Real Real.hasLe (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) x) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) p) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne)))))))
-but is expected to have type
- forall (p : Real) {x : Real}, (Ne.{1} Real p (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Iff (Eq.{1} Real (Norm.norm.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (normOnQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p) x)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) x)) (LE.le.{0} Real Real.instLEReal (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) x) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) p) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))))
-Case conversion may be inaccurate. Consider using '#align add_circle.norm_coe_eq_abs_iff AddCircle.norm_coe_eq_abs_iffₓ'. -/
theorem norm_coe_eq_abs_iff {x : ℝ} (hp : p ≠ 0) : ‖(x : AddCircle p)‖ = |x| ↔ |x| ≤ |p| / 2 :=
by
refine' ⟨fun hx => hx ▸ norm_le_half_period p hp, fun hx => _⟩
@@ -233,36 +185,18 @@ theorem norm_coe_eq_abs_iff {x : ℝ} (hp : p ≠ 0) : ‖(x : AddCircle p)‖ =
open Metric
-/- warning: add_circle.closed_ball_eq_univ_of_half_period_le -> AddCircle.closedBall_eq_univ_of_half_period_le is a dubious translation:
-lean 3 declaration is
- forall (p : Real), (Ne.{1} Real p (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (forall (x : AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) {ε : Real}, (LE.le.{0} Real Real.hasLe (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) p) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne))))) ε) -> (Eq.{1} (Set.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p)) (Metric.closedBall.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (SeminormedAddCommGroup.toPseudoMetricSpace.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toSeminormedAddCommGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p))) x ε) (Set.univ.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p))))
-but is expected to have type
- forall (p : Real), (Ne.{1} Real p (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (forall (x : AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) {ε : Real}, (LE.le.{0} Real Real.instLEReal (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) p) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))))) ε) -> (Eq.{1} (Set.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p)) (Metric.closedBall.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (SeminormedAddCommGroup.toPseudoMetricSpace.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NormedAddCommGroup.toSeminormedAddCommGroup.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddCircle.instNormedAddCommGroupAddCircleRealInstLinearOrderedAddCommGroupRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p))) x ε) (Set.univ.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p))))
-Case conversion may be inaccurate. Consider using '#align add_circle.closed_ball_eq_univ_of_half_period_le AddCircle.closedBall_eq_univ_of_half_period_leₓ'. -/
theorem closedBall_eq_univ_of_half_period_le (hp : p ≠ 0) (x : AddCircle p) {ε : ℝ}
(hε : |p| / 2 ≤ ε) : closedBall x ε = univ :=
eq_univ_iff_forall.mpr fun x => by
simpa only [mem_closed_ball, dist_eq_norm] using (norm_le_half_period p hp).trans hε
#align add_circle.closed_ball_eq_univ_of_half_period_le AddCircle.closedBall_eq_univ_of_half_period_le
-/- warning: add_circle.coe_real_preimage_closed_ball_period_zero -> AddCircle.coe_real_preimage_closedBall_period_zero is a dubious translation:
-lean 3 declaration is
- forall (x : Real) (ε : Real), Eq.{1} (Set.{0} Real) (Set.preimage.{0, 0} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))))) (Metric.closedBall.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (SeminormedAddCommGroup.toPseudoMetricSpace.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (NormedAddCommGroup.toSeminormedAddCommGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (AddCircle.normedAddCommGroup (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))) x) ε)) (Metric.closedBall.{0} Real Real.pseudoMetricSpace x ε)
-but is expected to have type
- forall (x : Real) (ε : Real), Eq.{1} (Set.{0} Real) (Set.preimage.{0, 0} Real (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (Metric.closedBall.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (SeminormedAddCommGroup.toPseudoMetricSpace.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (AddSubgroup.seminormedAddCommGroupQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) x) ε)) (Metric.closedBall.{0} Real Real.pseudoMetricSpace x ε)
-Case conversion may be inaccurate. Consider using '#align add_circle.coe_real_preimage_closed_ball_period_zero AddCircle.coe_real_preimage_closedBall_period_zeroₓ'. -/
@[simp]
theorem coe_real_preimage_closedBall_period_zero (x ε : ℝ) :
coe ⁻¹' closedBall (x : AddCircle (0 : ℝ)) ε = closedBall x ε := by
ext y <;> simp [dist_eq_norm, ← QuotientAddGroup.mk_sub]
#align add_circle.coe_real_preimage_closed_ball_period_zero AddCircle.coe_real_preimage_closedBall_period_zero
-/- warning: add_circle.coe_real_preimage_closed_ball_eq_Union -> AddCircle.coe_real_preimage_closedBall_eq_iUnion is a dubious translation:
-lean 3 declaration is
- forall (p : Real) (x : Real) (ε : Real), Eq.{1} (Set.{0} Real) (Set.preimage.{0, 0} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p)))) (Metric.closedBall.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (SeminormedAddCommGroup.toPseudoMetricSpace.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toSeminormedAddCommGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p))) x) ε)) (Set.iUnion.{0, 1} Real Int (fun (z : Int) => Metric.closedBall.{0} Real Real.pseudoMetricSpace (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x (SMul.smul.{0, 0} Int Real (SubNegMonoid.SMulInt.{0} Real (AddGroup.toSubNegMonoid.{0} Real Real.addGroup)) z p)) ε))
-but is expected to have type
- forall (p : Real) (x : Real) (ε : Real), Eq.{1} (Set.{0} Real) (Set.preimage.{0, 0} Real (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (Metric.closedBall.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (SeminormedAddCommGroup.toPseudoMetricSpace.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (AddSubgroup.seminormedAddCommGroupQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p))) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p) x) ε)) (Set.iUnion.{0, 1} Real Int (fun (z : Int) => Metric.closedBall.{0} Real Real.pseudoMetricSpace (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (HSMul.hSMul.{0, 0, 0} Int Real Real (instHSMul.{0, 0} Int Real (SubNegMonoid.SMulInt.{0} Real (AddGroup.toSubNegMonoid.{0} Real Real.instAddGroupReal))) z p)) ε))
-Case conversion may be inaccurate. Consider using '#align add_circle.coe_real_preimage_closed_ball_eq_Union AddCircle.coe_real_preimage_closedBall_eq_iUnionₓ'. -/
theorem coe_real_preimage_closedBall_eq_iUnion (x ε : ℝ) :
coe ⁻¹' closedBall (x : AddCircle p) ε = ⋃ z : ℤ, closedBall (x + z • p) ε :=
by
@@ -277,12 +211,6 @@ theorem coe_real_preimage_closedBall_eq_iUnion (x ε : ℝ) :
exact (round_le (p⁻¹ * (y - x)) n).trans hn
#align add_circle.coe_real_preimage_closed_ball_eq_Union AddCircle.coe_real_preimage_closedBall_eq_iUnion
-/- warning: add_circle.coe_real_preimage_closed_ball_inter_eq -> AddCircle.coe_real_preimage_closedBall_inter_eq is a dubious translation:
-lean 3 declaration is
- forall (p : Real) {x : Real} {ε : Real} (s : Set.{0} Real), (HasSubset.Subset.{0} (Set.{0} Real) (Set.hasSubset.{0} Real) s (Metric.closedBall.{0} Real Real.pseudoMetricSpace x (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) p) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne))))))) -> (Eq.{1} (Set.{0} Real) (Inter.inter.{0} (Set.{0} Real) (Set.hasInter.{0} Real) (Set.preimage.{0, 0} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p)))) (Metric.closedBall.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (SeminormedAddCommGroup.toPseudoMetricSpace.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toSeminormedAddCommGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p))) x) ε)) s) (ite.{1} (Set.{0} Real) (LT.lt.{0} Real Real.hasLt ε (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) p) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne)))))) (Real.decidableLT ε (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) p) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne)))))) (Inter.inter.{0} (Set.{0} Real) (Set.hasInter.{0} Real) (Metric.closedBall.{0} Real Real.pseudoMetricSpace x ε) s) s))
-but is expected to have type
- forall (p : Real) {x : Real} {ε : Real} (s : Set.{0} Real), (HasSubset.Subset.{0} (Set.{0} Real) (Set.instHasSubsetSet.{0} Real) s (Metric.closedBall.{0} Real Real.pseudoMetricSpace x (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) p) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))))))) -> (Eq.{1} (Set.{0} Real) (Inter.inter.{0} (Set.{0} Real) (Set.instInterSet.{0} Real) (Set.preimage.{0, 0} Real (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (Metric.closedBall.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (SeminormedAddCommGroup.toPseudoMetricSpace.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (AddSubgroup.seminormedAddCommGroupQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p))) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p) x) ε)) s) (ite.{1} (Set.{0} Real) (LT.lt.{0} Real Real.instLTReal ε (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) p) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Real.decidableLT ε (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) p) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Inter.inter.{0} (Set.{0} Real) (Set.instInterSet.{0} Real) (Metric.closedBall.{0} Real Real.pseudoMetricSpace x ε) s) s))
-Case conversion may be inaccurate. Consider using '#align add_circle.coe_real_preimage_closed_ball_inter_eq AddCircle.coe_real_preimage_closedBall_inter_eqₓ'. -/
theorem coe_real_preimage_closedBall_inter_eq {x ε : ℝ} (s : Set ℝ)
(hs : s ⊆ closedBall x (|p| / 2)) :
coe ⁻¹' closedBall (x : AddCircle p) ε ∩ s = if ε < |p| / 2 then closedBall x ε ∩ s else s :=
@@ -324,12 +252,6 @@ variable {p} [hp : Fact (0 < p)]
include hp
-/- warning: add_circle.norm_div_nat_cast -> AddCircle.norm_div_nat_cast is a dubious translation:
-lean 3 declaration is
- forall {p : Real} [hp : Fact (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) p)] {m : Nat} {n : Nat}, Eq.{1} Real (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) m) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n)) p))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) p (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) (LinearOrder.min.{0} Nat Nat.linearOrder (HMod.hMod.{0, 0, 0} Nat Nat Nat (instHMod.{0} Nat Nat.hasMod) m n) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) n (HMod.hMod.{0, 0, 0} Nat Nat Nat (instHMod.{0} Nat Nat.hasMod) m n)))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n)))
-but is expected to have type
- forall {p : Real} [hp : Fact (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) p)] {m : Nat} {n : Nat}, Eq.{1} Real (Norm.norm.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (normOnQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Nat.cast.{0} Real Real.natCast m) (Nat.cast.{0} Real Real.natCast n)) p))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) p (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Nat.cast.{0} Real Real.natCast (Min.min.{0} Nat instMinNat (HMod.hMod.{0, 0, 0} Nat Nat Nat (instHMod.{0} Nat Nat.instModNat) m n) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) n (HMod.hMod.{0, 0, 0} Nat Nat Nat (instHMod.{0} Nat Nat.instModNat) m n)))) (Nat.cast.{0} Real Real.natCast n)))
-Case conversion may be inaccurate. Consider using '#align add_circle.norm_div_nat_cast AddCircle.norm_div_nat_castₓ'. -/
theorem norm_div_nat_cast {m n : ℕ} :
‖(↑(↑m / ↑n * p) : AddCircle p)‖ = p * (↑(min (m % n) (n - m % n)) / n) :=
by
@@ -337,12 +259,6 @@ theorem norm_div_nat_cast {m n : ℕ} :
rw [norm_eq' p hp.out, this, abs_sub_round_div_natCast_eq]
#align add_circle.norm_div_nat_cast AddCircle.norm_div_nat_cast
-/- warning: add_circle.exists_norm_eq_of_fin_add_order -> AddCircle.exists_norm_eq_of_isOfFinAddOrder is a dubious translation:
-lean 3 declaration is
- forall {p : Real} [hp : Fact (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) p)] {u : AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p}, (IsOfFinAddOrder.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (SubNegMonoid.toAddMonoid.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddGroup.toSubNegMonoid.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddGroup.toAddGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toNormedAddGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p))))) u) -> (Exists.{1} Nat (fun (k : Nat) => Eq.{1} Real (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p)) u) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) p (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) k) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) (addOrderOf.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (SubNegMonoid.toAddMonoid.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddGroup.toSubNegMonoid.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddGroup.toAddGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toNormedAddGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p))))) u))))))
-but is expected to have type
- forall {p : Real} [hp : Fact (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) p)] {u : AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p}, (IsOfFinAddOrder.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (SubNegMonoid.toAddMonoid.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddGroup.toSubNegMonoid.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NormedAddGroup.toAddGroup.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NormedAddCommGroup.toNormedAddGroup.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddCircle.instNormedAddCommGroupAddCircleRealInstLinearOrderedAddCommGroupRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p))))) u) -> (Exists.{1} Nat (fun (k : Nat) => Eq.{1} Real (Norm.norm.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NormedAddCommGroup.toNorm.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddCircle.instNormedAddCommGroupAddCircleRealInstLinearOrderedAddCommGroupRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p)) u) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) p (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Nat.cast.{0} Real Real.natCast k) (Nat.cast.{0} Real Real.natCast (addOrderOf.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (SubNegMonoid.toAddMonoid.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddGroup.toSubNegMonoid.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NormedAddGroup.toAddGroup.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NormedAddCommGroup.toNormedAddGroup.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddCircle.instNormedAddCommGroupAddCircleRealInstLinearOrderedAddCommGroupRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p))))) u))))))
-Case conversion may be inaccurate. Consider using '#align add_circle.exists_norm_eq_of_fin_add_order AddCircle.exists_norm_eq_of_isOfFinAddOrderₓ'. -/
theorem exists_norm_eq_of_isOfFinAddOrder {u : AddCircle p} (hu : IsOfFinAddOrder u) :
∃ k : ℕ, ‖u‖ = p * (k / addOrderOf u) :=
by
@@ -353,9 +269,6 @@ theorem exists_norm_eq_of_isOfFinAddOrder {u : AddCircle p} (hu : IsOfFinAddOrde
rw [← hm, norm_div_nat_cast]
#align add_circle.exists_norm_eq_of_fin_add_order AddCircle.exists_norm_eq_of_isOfFinAddOrder
-/- warning: add_circle.le_add_order_smul_norm_of_is_of_fin_add_order -> AddCircle.le_add_order_smul_norm_of_isOfFinAddOrder is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_circle.le_add_order_smul_norm_of_is_of_fin_add_order AddCircle.le_add_order_smul_norm_of_isOfFinAddOrderₓ'. -/
theorem le_add_order_smul_norm_of_isOfFinAddOrder {u : AddCircle p} (hu : IsOfFinAddOrder u)
(hu' : u ≠ 0) : p ≤ addOrderOf u • ‖u‖ :=
by
@@ -374,12 +287,6 @@ end AddCircle
namespace UnitAddCircle
-/- warning: unit_add_circle.norm_eq -> UnitAddCircle.norm_eq is a dubious translation:
-lean 3 declaration is
- forall {x : Real}, Eq.{1} Real (Norm.norm.{0} UnitAddCircle (NormedAddCommGroup.toHasNorm.{0} UnitAddCircle (AddCircle.normedAddCommGroup (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real UnitAddCircle (HasLiftT.mk.{1, 1} Real UnitAddCircle (CoeTCₓ.coe.{1, 1} Real UnitAddCircle (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))))) x)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) (round.{0} Real Real.linearOrderedRing Real.floorRing x))))
-but is expected to have type
- forall {x : Real}, Eq.{1} Real (Norm.norm.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (normOnQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) x)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Int.cast.{0} Real Real.intCast (round.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal x))))
-Case conversion may be inaccurate. Consider using '#align unit_add_circle.norm_eq UnitAddCircle.norm_eqₓ'. -/
theorem norm_eq {x : ℝ} : ‖(x : UnitAddCircle)‖ = |x - round x| := by simp [AddCircle.norm_eq]
#align unit_add_circle.norm_eq UnitAddCircle.norm_eq
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -90,9 +90,7 @@ but is expected to have type
Case conversion may be inaccurate. Consider using '#align add_circle.norm_neg_period AddCircle.norm_neg_periodₓ'. -/
theorem norm_neg_period (x : ℝ) : ‖(x : AddCircle (-p))‖ = ‖(x : AddCircle p)‖ :=
by
- suffices ‖(↑(-1 * x) : AddCircle (-1 * p))‖ = ‖(x : AddCircle p)‖
- by
- rw [← this, neg_one_mul]
+ suffices ‖(↑(-1 * x) : AddCircle (-1 * p))‖ = ‖(x : AddCircle p)‖ by rw [← this, neg_one_mul];
simp
simp only [norm_coe_mul, abs_neg, abs_one, one_mul]
#align add_circle.norm_neg_period AddCircle.norm_neg_period
@@ -122,8 +120,7 @@ theorem norm_eq {x : ℝ} : ‖(x : AddCircle p)‖ = |x - round (p⁻¹ * x) *
by
suffices ∀ x : ℝ, ‖(x : AddCircle (1 : ℝ))‖ = |x - round x|
by
- rcases eq_or_ne p 0 with (rfl | hp)
- · simp
+ rcases eq_or_ne p 0 with (rfl | hp); · simp
intros
have hx := norm_coe_mul p x p⁻¹
rw [abs_inv, eq_inv_mul_iff_mul_eq₀ ((not_congr abs_eq_zero).mpr hp)] at hx
@@ -152,10 +149,7 @@ theorem norm_eq {x : ℝ} : ‖(x : AddCircle p)‖ = |x - round (p⁻¹ * x) *
simp only [mem_set_of_eq, QuotientAddGroup.eq_iff_sub_mem, mem_zmultiples_iff,
smul_one_eq_coe] at hb
obtain ⟨z, hz⟩ := hb
- rw [(by
- rw [hz]
- abel : x = b - z),
- fract_sub_int, ← abs_sub_round_eq_min]
+ rw [(by rw [hz]; abel : x = b - z), fract_sub_int, ← abs_sub_round_eq_min]
convert round_le b 0
simp
#align add_circle.norm_eq AddCircle.norm_eq
@@ -223,8 +217,7 @@ theorem norm_coe_eq_abs_iff {x : ℝ} (hp : p ≠ 0) : ‖(x : AddCircle p)‖ =
exact this (-p) (neg_pos.mpr hp) hx
clear hx
intro p hp hx
- rcases eq_or_ne x (p / 2) with (rfl | hx')
- · simp [abs_div, abs_two]
+ rcases eq_or_ne x (p / 2) with (rfl | hx'); · simp [abs_div, abs_two]
suffices round (p⁻¹ * x) = 0 by simp [norm_eq, this]
rw [round_eq_zero_iff]
obtain ⟨hx₁, hx₂⟩ := abs_le.mp hx
@@ -306,27 +299,22 @@ theorem coe_real_preimage_closedBall_inter_eq {x ε : ℝ} (s : Set ℝ)
Union_inter, Union_ite, this, hε]
intro z
simp only [Real.closedBall_eq_Icc, zero_sub, zero_add] at hs⊢
- rcases eq_or_ne z 0 with (rfl | hz)
- · simp
+ rcases eq_or_ne z 0 with (rfl | hz); · simp
simp only [hz, zsmul_eq_mul, if_false, eq_empty_iff_forall_not_mem]
rintro y ⟨⟨hy₁, hy₂⟩, hy₀⟩
obtain ⟨hy₃, hy₄⟩ := hs hy₀
rcases lt_trichotomy 0 p with (hp | rfl | hp)
· cases' Int.cast_le_neg_one_or_one_le_cast_of_ne_zero ℝ hz with hz' hz'
- · have : ↑z * p ≤ -p
- nlinarith
+ · have : ↑z * p ≤ -p; nlinarith
linarith [abs_eq_self.mpr hp.le]
- · have : p ≤ ↑z * p
- nlinarith
+ · have : p ≤ ↑z * p; nlinarith
linarith [abs_eq_self.mpr hp.le]
· simp only [MulZeroClass.mul_zero, add_zero, abs_zero, zero_div] at hy₁ hy₂ hε
linarith
· cases' Int.cast_le_neg_one_or_one_le_cast_of_ne_zero ℝ hz with hz' hz'
- · have : -p ≤ ↑z * p
- nlinarith
+ · have : -p ≤ ↑z * p; nlinarith
linarith [abs_eq_neg_self.mpr hp.le]
- · have : ↑z * p ≤ p
- nlinarith
+ · have : ↑z * p ≤ p; nlinarith
linarith [abs_eq_neg_self.mpr hp.le]
#align add_circle.coe_real_preimage_closed_ball_inter_eq AddCircle.coe_real_preimage_closedBall_inter_eq
@@ -372,9 +360,7 @@ theorem le_add_order_smul_norm_of_isOfFinAddOrder {u : AddCircle p} (hu : IsOfFi
(hu' : u ≠ 0) : p ≤ addOrderOf u • ‖u‖ :=
by
obtain ⟨n, hn⟩ := exists_norm_eq_of_fin_add_order hu
- replace hu : (addOrderOf u : ℝ) ≠ 0;
- · norm_cast
- exact (add_order_of_pos_iff.mpr hu).Ne.symm
+ replace hu : (addOrderOf u : ℝ) ≠ 0; · norm_cast; exact (add_order_of_pos_iff.mpr hu).Ne.symm
conv_lhs => rw [← mul_one p]
rw [hn, nsmul_eq_mul, ← mul_assoc, mul_comm _ p, mul_assoc, mul_div_cancel' _ hu,
mul_le_mul_left hp.out, Nat.one_le_cast, Nat.one_le_iff_ne_zero]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -366,10 +366,7 @@ theorem exists_norm_eq_of_isOfFinAddOrder {u : AddCircle p} (hu : IsOfFinAddOrde
#align add_circle.exists_norm_eq_of_fin_add_order AddCircle.exists_norm_eq_of_isOfFinAddOrder
/- warning: add_circle.le_add_order_smul_norm_of_is_of_fin_add_order -> AddCircle.le_add_order_smul_norm_of_isOfFinAddOrder is a dubious translation:
-lean 3 declaration is
- forall {p : Real} [hp : Fact (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) p)] {u : AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p}, (IsOfFinAddOrder.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (SubNegMonoid.toAddMonoid.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddGroup.toSubNegMonoid.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddGroup.toAddGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toNormedAddGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p))))) u) -> (Ne.{1} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) u (OfNat.ofNat.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) 0 (OfNat.mk.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) 0 (Zero.zero.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddZeroClass.toHasZero.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddMonoid.toAddZeroClass.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (SubNegMonoid.toAddMonoid.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddGroup.toSubNegMonoid.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddGroup.toAddGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toNormedAddGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p))))))))))) -> (LE.le.{0} Real Real.hasLe p (SMul.smul.{0, 0} Nat Real (AddMonoid.SMul.{0} Real Real.addMonoid) (addOrderOf.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (SubNegMonoid.toAddMonoid.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddGroup.toSubNegMonoid.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddGroup.toAddGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toNormedAddGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p))))) u) (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p)) u)))
-but is expected to have type
- forall {p : Real} [hp : Fact (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) p)] {u : AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p}, (IsOfFinAddOrder.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (SubNegMonoid.toAddMonoid.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddGroup.toSubNegMonoid.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NormedAddGroup.toAddGroup.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NormedAddCommGroup.toNormedAddGroup.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddCircle.instNormedAddCommGroupAddCircleRealInstLinearOrderedAddCommGroupRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p))))) u) -> (Ne.{1} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) u (OfNat.ofNat.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) 0 (Zero.toOfNat0.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NegZeroClass.toZero.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (SubNegZeroMonoid.toNegZeroClass.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (SubtractionMonoid.toSubNegZeroMonoid.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (SubtractionCommMonoid.toSubtractionMonoid.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddCommGroup.toDivisionAddCommMonoid.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (instAddCommGroupAddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p))))))))) -> (LE.le.{0} Real Real.instLEReal p (HSMul.hSMul.{0, 0, 0} Nat Real Real (instHSMul.{0, 0} Nat Real (AddMonoid.SMul.{0} Real Real.instAddMonoidReal)) (addOrderOf.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (SubNegMonoid.toAddMonoid.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddGroup.toSubNegMonoid.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NormedAddGroup.toAddGroup.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NormedAddCommGroup.toNormedAddGroup.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddCircle.instNormedAddCommGroupAddCircleRealInstLinearOrderedAddCommGroupRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p))))) u) (Norm.norm.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NormedAddCommGroup.toNorm.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddCircle.instNormedAddCommGroupAddCircleRealInstLinearOrderedAddCommGroupRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p)) u)))
+<too large>
Case conversion may be inaccurate. Consider using '#align add_circle.le_add_order_smul_norm_of_is_of_fin_add_order AddCircle.le_add_order_smul_norm_of_isOfFinAddOrderₓ'. -/
theorem le_add_order_smul_norm_of_isOfFinAddOrder {u : AddCircle p} (hu : IsOfFinAddOrder u)
(hu' : u ≠ 0) : p ≤ addOrderOf u • ‖u‖ :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/c89fe2d59ae06402c3f55f978016d1ada444f57e
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Oliver Nash
! This file was ported from Lean 3 source module analysis.normed.group.add_circle
-! leanprover-community/mathlib commit 084f76e20c88eae536222583331abd9468b08e1c
+! leanprover-community/mathlib commit 2ed2c6310e6f1c5562bdf6bfbda55ebbf6891abe
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,9 @@ import Mathbin.Topology.Instances.AddCircle
/-!
# The additive circle as a normed group
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
We define the normed group structure on `add_circle p`, for `p : ℝ`. For example if `p = 1` then:
`‖(x : add_circle 1)‖ = |x - round x|` for any `x : ℝ` (see `unit_add_circle.norm_eq`).
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -43,6 +43,12 @@ variable (p : ℝ)
instance : NormedAddCommGroup (AddCircle p) :=
AddSubgroup.normedAddCommGroupQuotient _
+/- warning: add_circle.norm_coe_mul -> AddCircle.norm_coe_mul is a dubious translation:
+lean 3 declaration is
+ forall (p : Real) (x : Real) (t : Real), Eq.{1} Real (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) t p)) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) t p)) (AddCircle.normedAddCommGroup (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) t p))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) t p)) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) t p)) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) t p)) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) t p)))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) t x))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) t) (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p))) x)))
+but is expected to have type
+ forall (p : Real) (x : Real) (t : Real), Eq.{1} Real (Norm.norm.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) t p))) (normOnQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) t p))) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) t p)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) t x))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) t) (Norm.norm.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (normOnQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p) x)))
+Case conversion may be inaccurate. Consider using '#align add_circle.norm_coe_mul AddCircle.norm_coe_mulₓ'. -/
@[simp]
theorem norm_coe_mul (x : ℝ) (t : ℝ) :
‖(↑(t * x) : AddCircle (t * p))‖ = |t| * ‖(x : AddCircle p)‖ :=
@@ -73,6 +79,12 @@ theorem norm_coe_mul (x : ℝ) (t : ℝ) :
exact aux hw
#align add_circle.norm_coe_mul AddCircle.norm_coe_mul
+/- warning: add_circle.norm_neg_period -> AddCircle.norm_neg_period is a dubious translation:
+lean 3 declaration is
+ forall (p : Real) (x : Real), Eq.{1} Real (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (Neg.neg.{0} Real Real.hasNeg p)) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (Neg.neg.{0} Real Real.hasNeg p)) (AddCircle.normedAddCommGroup (Neg.neg.{0} Real Real.hasNeg p))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (Neg.neg.{0} Real Real.hasNeg p)) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (Neg.neg.{0} Real Real.hasNeg p)) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (Neg.neg.{0} Real Real.hasNeg p)) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (Neg.neg.{0} Real Real.hasNeg p)))) x)) (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p))) x))
+but is expected to have type
+ forall (p : Real) (x : Real), Eq.{1} Real (Norm.norm.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (Neg.neg.{0} Real Real.instNegReal p))) (normOnQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (Neg.neg.{0} Real Real.instNegReal p))) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (Neg.neg.{0} Real Real.instNegReal p)) x)) (Norm.norm.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (normOnQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p) x))
+Case conversion may be inaccurate. Consider using '#align add_circle.norm_neg_period AddCircle.norm_neg_periodₓ'. -/
theorem norm_neg_period (x : ℝ) : ‖(x : AddCircle (-p))‖ = ‖(x : AddCircle p)‖ :=
by
suffices ‖(↑(-1 * x) : AddCircle (-1 * p))‖ = ‖(x : AddCircle p)‖
@@ -82,6 +94,12 @@ theorem norm_neg_period (x : ℝ) : ‖(x : AddCircle (-p))‖ = ‖(x : AddCirc
simp only [norm_coe_mul, abs_neg, abs_one, one_mul]
#align add_circle.norm_neg_period AddCircle.norm_neg_period
+/- warning: add_circle.norm_eq_of_zero -> AddCircle.norm_eq_of_zero is a dubious translation:
+lean 3 declaration is
+ forall {x : Real}, Eq.{1} Real (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (AddCircle.normedAddCommGroup (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))) x)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) x)
+but is expected to have type
+ forall {x : Real}, Eq.{1} Real (Norm.norm.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (normOnQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) x)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) x)
+Case conversion may be inaccurate. Consider using '#align add_circle.norm_eq_of_zero AddCircle.norm_eq_of_zeroₓ'. -/
@[simp]
theorem norm_eq_of_zero {x : ℝ} : ‖(x : AddCircle (0 : ℝ))‖ = |x| :=
by
@@ -91,6 +109,12 @@ theorem norm_eq_of_zero {x : ℝ} : ‖(x : AddCircle (0 : ℝ))‖ = |x| :=
simp [QuotientAddGroup.eq_iff_sub_mem, mem_zmultiples_iff, sub_eq_zero]
#align add_circle.norm_eq_of_zero AddCircle.norm_eq_of_zero
+/- warning: add_circle.norm_eq -> AddCircle.norm_eq is a dubious translation:
+lean 3 declaration is
+ forall (p : Real) {x : Real}, Eq.{1} Real (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p))) x)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) x (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) (round.{0} Real Real.linearOrderedRing Real.floorRing (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Inv.inv.{0} Real Real.hasInv p) x))) p)))
+but is expected to have type
+ forall (p : Real) {x : Real}, Eq.{1} Real (Norm.norm.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (normOnQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p) x)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Int.cast.{0} Real Real.intCast (round.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Inv.inv.{0} Real Real.instInvReal p) x))) p)))
+Case conversion may be inaccurate. Consider using '#align add_circle.norm_eq AddCircle.norm_eqₓ'. -/
theorem norm_eq {x : ℝ} : ‖(x : AddCircle p)‖ = |x - round (p⁻¹ * x) * p| :=
by
suffices ∀ x : ℝ, ‖(x : AddCircle (1 : ℝ))‖ = |x - round x|
@@ -133,6 +157,12 @@ theorem norm_eq {x : ℝ} : ‖(x : AddCircle p)‖ = |x - round (p⁻¹ * x) *
simp
#align add_circle.norm_eq AddCircle.norm_eq
+/- warning: add_circle.norm_eq' -> AddCircle.norm_eq' is a dubious translation:
+lean 3 declaration is
+ forall (p : Real), (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) p) -> (forall {x : Real}, Eq.{1} Real (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p))) x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) p (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Inv.inv.{0} Real Real.hasInv p) x) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) (round.{0} Real Real.linearOrderedRing Real.floorRing (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Inv.inv.{0} Real Real.hasInv p) x)))))))
+but is expected to have type
+ forall (p : Real), (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) p) -> (forall {x : Real}, Eq.{1} Real (Norm.norm.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (normOnQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p) x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) p (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Inv.inv.{0} Real Real.instInvReal p) x) (Int.cast.{0} Real Real.intCast (round.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Inv.inv.{0} Real Real.instInvReal p) x)))))))
+Case conversion may be inaccurate. Consider using '#align add_circle.norm_eq' AddCircle.norm_eq'ₓ'. -/
theorem norm_eq' (hp : 0 < p) {x : ℝ} : ‖(x : AddCircle p)‖ = p * |p⁻¹ * x - round (p⁻¹ * x)| :=
by
conv_rhs =>
@@ -141,6 +171,12 @@ theorem norm_eq' (hp : 0 < p) {x : ℝ} : ‖(x : AddCircle p)‖ = p * |p⁻¹
rw [← abs_mul, mul_sub, mul_inv_cancel_left₀ hp.ne.symm, norm_eq, mul_comm p]
#align add_circle.norm_eq' AddCircle.norm_eq'
+/- warning: add_circle.norm_le_half_period -> AddCircle.norm_le_half_period is a dubious translation:
+lean 3 declaration is
+ forall (p : Real) {x : AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p}, (Ne.{1} Real p (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (LE.le.{0} Real Real.hasLe (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p)) x) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) p) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne))))))
+but is expected to have type
+ forall (p : Real) {x : AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p}, (Ne.{1} Real p (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (LE.le.{0} Real Real.instLEReal (Norm.norm.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NormedAddCommGroup.toNorm.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddCircle.instNormedAddCommGroupAddCircleRealInstLinearOrderedAddCommGroupRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p)) x) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) p) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))))))
+Case conversion may be inaccurate. Consider using '#align add_circle.norm_le_half_period AddCircle.norm_le_half_periodₓ'. -/
theorem norm_le_half_period {x : AddCircle p} (hp : p ≠ 0) : ‖x‖ ≤ |p| / 2 :=
by
obtain ⟨x⟩ := x
@@ -150,6 +186,12 @@ theorem norm_le_half_period {x : AddCircle p} (hp : p ≠ 0) : ‖x‖ ≤ |p| /
exact abs_sub_round (p⁻¹ * x)
#align add_circle.norm_le_half_period AddCircle.norm_le_half_period
+/- warning: add_circle.norm_half_period_eq -> AddCircle.norm_half_period_eq is a dubious translation:
+lean 3 declaration is
+ forall (p : Real), Eq.{1} Real (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p))) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) p (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne))))))) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) p) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne)))))
+but is expected to have type
+ forall (p : Real), Eq.{1} Real (Norm.norm.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (normOnQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) p (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))))))) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) p) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))
+Case conversion may be inaccurate. Consider using '#align add_circle.norm_half_period_eq AddCircle.norm_half_period_eqₓ'. -/
@[simp]
theorem norm_half_period_eq : ‖(↑(p / 2) : AddCircle p)‖ = |p| / 2 :=
by
@@ -158,6 +200,12 @@ theorem norm_half_period_eq : ‖(↑(p / 2) : AddCircle p)‖ = |p| / 2 :=
one_mul, (by linarith : p / 2 - p = -(p / 2)), abs_neg, abs_div, abs_two]
#align add_circle.norm_half_period_eq AddCircle.norm_half_period_eq
+/- warning: add_circle.norm_coe_eq_abs_iff -> AddCircle.norm_coe_eq_abs_iff is a dubious translation:
+lean 3 declaration is
+ forall (p : Real) {x : Real}, (Ne.{1} Real p (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Iff (Eq.{1} Real (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p))) x)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) x)) (LE.le.{0} Real Real.hasLe (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) x) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) p) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne)))))))
+but is expected to have type
+ forall (p : Real) {x : Real}, (Ne.{1} Real p (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Iff (Eq.{1} Real (Norm.norm.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (normOnQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p) x)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) x)) (LE.le.{0} Real Real.instLEReal (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) x) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) p) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))))
+Case conversion may be inaccurate. Consider using '#align add_circle.norm_coe_eq_abs_iff AddCircle.norm_coe_eq_abs_iffₓ'. -/
theorem norm_coe_eq_abs_iff {x : ℝ} (hp : p ≠ 0) : ‖(x : AddCircle p)‖ = |x| ↔ |x| ≤ |p| / 2 :=
by
refine' ⟨fun hx => hx ▸ norm_le_half_period p hp, fun hx => _⟩
@@ -189,18 +237,36 @@ theorem norm_coe_eq_abs_iff {x : ℝ} (hp : p ≠ 0) : ‖(x : AddCircle p)‖ =
open Metric
+/- warning: add_circle.closed_ball_eq_univ_of_half_period_le -> AddCircle.closedBall_eq_univ_of_half_period_le is a dubious translation:
+lean 3 declaration is
+ forall (p : Real), (Ne.{1} Real p (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (forall (x : AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) {ε : Real}, (LE.le.{0} Real Real.hasLe (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) p) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne))))) ε) -> (Eq.{1} (Set.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p)) (Metric.closedBall.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (SeminormedAddCommGroup.toPseudoMetricSpace.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toSeminormedAddCommGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p))) x ε) (Set.univ.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p))))
+but is expected to have type
+ forall (p : Real), (Ne.{1} Real p (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (forall (x : AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) {ε : Real}, (LE.le.{0} Real Real.instLEReal (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) p) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))))) ε) -> (Eq.{1} (Set.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p)) (Metric.closedBall.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (SeminormedAddCommGroup.toPseudoMetricSpace.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NormedAddCommGroup.toSeminormedAddCommGroup.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddCircle.instNormedAddCommGroupAddCircleRealInstLinearOrderedAddCommGroupRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p))) x ε) (Set.univ.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p))))
+Case conversion may be inaccurate. Consider using '#align add_circle.closed_ball_eq_univ_of_half_period_le AddCircle.closedBall_eq_univ_of_half_period_leₓ'. -/
theorem closedBall_eq_univ_of_half_period_le (hp : p ≠ 0) (x : AddCircle p) {ε : ℝ}
(hε : |p| / 2 ≤ ε) : closedBall x ε = univ :=
eq_univ_iff_forall.mpr fun x => by
simpa only [mem_closed_ball, dist_eq_norm] using (norm_le_half_period p hp).trans hε
#align add_circle.closed_ball_eq_univ_of_half_period_le AddCircle.closedBall_eq_univ_of_half_period_le
+/- warning: add_circle.coe_real_preimage_closed_ball_period_zero -> AddCircle.coe_real_preimage_closedBall_period_zero is a dubious translation:
+lean 3 declaration is
+ forall (x : Real) (ε : Real), Eq.{1} (Set.{0} Real) (Set.preimage.{0, 0} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))))) (Metric.closedBall.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (SeminormedAddCommGroup.toPseudoMetricSpace.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (NormedAddCommGroup.toSeminormedAddCommGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (AddCircle.normedAddCommGroup (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))) x) ε)) (Metric.closedBall.{0} Real Real.pseudoMetricSpace x ε)
+but is expected to have type
+ forall (x : Real) (ε : Real), Eq.{1} (Set.{0} Real) (Set.preimage.{0, 0} Real (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (Metric.closedBall.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (SeminormedAddCommGroup.toPseudoMetricSpace.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (AddSubgroup.seminormedAddCommGroupQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) x) ε)) (Metric.closedBall.{0} Real Real.pseudoMetricSpace x ε)
+Case conversion may be inaccurate. Consider using '#align add_circle.coe_real_preimage_closed_ball_period_zero AddCircle.coe_real_preimage_closedBall_period_zeroₓ'. -/
@[simp]
theorem coe_real_preimage_closedBall_period_zero (x ε : ℝ) :
coe ⁻¹' closedBall (x : AddCircle (0 : ℝ)) ε = closedBall x ε := by
ext y <;> simp [dist_eq_norm, ← QuotientAddGroup.mk_sub]
#align add_circle.coe_real_preimage_closed_ball_period_zero AddCircle.coe_real_preimage_closedBall_period_zero
+/- warning: add_circle.coe_real_preimage_closed_ball_eq_Union -> AddCircle.coe_real_preimage_closedBall_eq_iUnion is a dubious translation:
+lean 3 declaration is
+ forall (p : Real) (x : Real) (ε : Real), Eq.{1} (Set.{0} Real) (Set.preimage.{0, 0} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p)))) (Metric.closedBall.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (SeminormedAddCommGroup.toPseudoMetricSpace.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toSeminormedAddCommGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p))) x) ε)) (Set.iUnion.{0, 1} Real Int (fun (z : Int) => Metric.closedBall.{0} Real Real.pseudoMetricSpace (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x (SMul.smul.{0, 0} Int Real (SubNegMonoid.SMulInt.{0} Real (AddGroup.toSubNegMonoid.{0} Real Real.addGroup)) z p)) ε))
+but is expected to have type
+ forall (p : Real) (x : Real) (ε : Real), Eq.{1} (Set.{0} Real) (Set.preimage.{0, 0} Real (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (Metric.closedBall.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (SeminormedAddCommGroup.toPseudoMetricSpace.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (AddSubgroup.seminormedAddCommGroupQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p))) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p) x) ε)) (Set.iUnion.{0, 1} Real Int (fun (z : Int) => Metric.closedBall.{0} Real Real.pseudoMetricSpace (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (HSMul.hSMul.{0, 0, 0} Int Real Real (instHSMul.{0, 0} Int Real (SubNegMonoid.SMulInt.{0} Real (AddGroup.toSubNegMonoid.{0} Real Real.instAddGroupReal))) z p)) ε))
+Case conversion may be inaccurate. Consider using '#align add_circle.coe_real_preimage_closed_ball_eq_Union AddCircle.coe_real_preimage_closedBall_eq_iUnionₓ'. -/
theorem coe_real_preimage_closedBall_eq_iUnion (x ε : ℝ) :
coe ⁻¹' closedBall (x : AddCircle p) ε = ⋃ z : ℤ, closedBall (x + z • p) ε :=
by
@@ -215,6 +281,12 @@ theorem coe_real_preimage_closedBall_eq_iUnion (x ε : ℝ) :
exact (round_le (p⁻¹ * (y - x)) n).trans hn
#align add_circle.coe_real_preimage_closed_ball_eq_Union AddCircle.coe_real_preimage_closedBall_eq_iUnion
+/- warning: add_circle.coe_real_preimage_closed_ball_inter_eq -> AddCircle.coe_real_preimage_closedBall_inter_eq is a dubious translation:
+lean 3 declaration is
+ forall (p : Real) {x : Real} {ε : Real} (s : Set.{0} Real), (HasSubset.Subset.{0} (Set.{0} Real) (Set.hasSubset.{0} Real) s (Metric.closedBall.{0} Real Real.pseudoMetricSpace x (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) p) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne))))))) -> (Eq.{1} (Set.{0} Real) (Inter.inter.{0} (Set.{0} Real) (Set.hasInter.{0} Real) (Set.preimage.{0, 0} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p)))) (Metric.closedBall.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (SeminormedAddCommGroup.toPseudoMetricSpace.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toSeminormedAddCommGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p))) x) ε)) s) (ite.{1} (Set.{0} Real) (LT.lt.{0} Real Real.hasLt ε (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) p) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne)))))) (Real.decidableLT ε (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) p) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne)))))) (Inter.inter.{0} (Set.{0} Real) (Set.hasInter.{0} Real) (Metric.closedBall.{0} Real Real.pseudoMetricSpace x ε) s) s))
+but is expected to have type
+ forall (p : Real) {x : Real} {ε : Real} (s : Set.{0} Real), (HasSubset.Subset.{0} (Set.{0} Real) (Set.instHasSubsetSet.{0} Real) s (Metric.closedBall.{0} Real Real.pseudoMetricSpace x (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) p) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))))))) -> (Eq.{1} (Set.{0} Real) (Inter.inter.{0} (Set.{0} Real) (Set.instInterSet.{0} Real) (Set.preimage.{0, 0} Real (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (Metric.closedBall.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (SeminormedAddCommGroup.toPseudoMetricSpace.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (AddSubgroup.seminormedAddCommGroupQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p))) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p) x) ε)) s) (ite.{1} (Set.{0} Real) (LT.lt.{0} Real Real.instLTReal ε (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) p) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Real.decidableLT ε (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) p) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Inter.inter.{0} (Set.{0} Real) (Set.instInterSet.{0} Real) (Metric.closedBall.{0} Real Real.pseudoMetricSpace x ε) s) s))
+Case conversion may be inaccurate. Consider using '#align add_circle.coe_real_preimage_closed_ball_inter_eq AddCircle.coe_real_preimage_closedBall_inter_eqₓ'. -/
theorem coe_real_preimage_closedBall_inter_eq {x ε : ℝ} (s : Set ℝ)
(hs : s ⊆ closedBall x (|p| / 2)) :
coe ⁻¹' closedBall (x : AddCircle p) ε ∩ s = if ε < |p| / 2 then closedBall x ε ∩ s else s :=
@@ -261,6 +333,12 @@ variable {p} [hp : Fact (0 < p)]
include hp
+/- warning: add_circle.norm_div_nat_cast -> AddCircle.norm_div_nat_cast is a dubious translation:
+lean 3 declaration is
+ forall {p : Real} [hp : Fact (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) p)] {m : Nat} {n : Nat}, Eq.{1} Real (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (HasLiftT.mk.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (CoeTCₓ.coe.{1, 1} Real (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) m) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n)) p))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) p (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) (LinearOrder.min.{0} Nat Nat.linearOrder (HMod.hMod.{0, 0, 0} Nat Nat Nat (instHMod.{0} Nat Nat.hasMod) m n) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) n (HMod.hMod.{0, 0, 0} Nat Nat Nat (instHMod.{0} Nat Nat.hasMod) m n)))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n)))
+but is expected to have type
+ forall {p : Real} [hp : Fact (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) p)] {m : Nat} {n : Nat}, Eq.{1} Real (Norm.norm.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (normOnQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p)) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) p) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Nat.cast.{0} Real Real.natCast m) (Nat.cast.{0} Real Real.natCast n)) p))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) p (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Nat.cast.{0} Real Real.natCast (Min.min.{0} Nat instMinNat (HMod.hMod.{0, 0, 0} Nat Nat Nat (instHMod.{0} Nat Nat.instModNat) m n) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) n (HMod.hMod.{0, 0, 0} Nat Nat Nat (instHMod.{0} Nat Nat.instModNat) m n)))) (Nat.cast.{0} Real Real.natCast n)))
+Case conversion may be inaccurate. Consider using '#align add_circle.norm_div_nat_cast AddCircle.norm_div_nat_castₓ'. -/
theorem norm_div_nat_cast {m n : ℕ} :
‖(↑(↑m / ↑n * p) : AddCircle p)‖ = p * (↑(min (m % n) (n - m % n)) / n) :=
by
@@ -268,7 +346,13 @@ theorem norm_div_nat_cast {m n : ℕ} :
rw [norm_eq' p hp.out, this, abs_sub_round_div_natCast_eq]
#align add_circle.norm_div_nat_cast AddCircle.norm_div_nat_cast
-theorem exists_norm_eq_of_fin_add_order {u : AddCircle p} (hu : IsOfFinAddOrder u) :
+/- warning: add_circle.exists_norm_eq_of_fin_add_order -> AddCircle.exists_norm_eq_of_isOfFinAddOrder is a dubious translation:
+lean 3 declaration is
+ forall {p : Real} [hp : Fact (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) p)] {u : AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p}, (IsOfFinAddOrder.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (SubNegMonoid.toAddMonoid.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddGroup.toSubNegMonoid.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddGroup.toAddGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toNormedAddGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p))))) u) -> (Exists.{1} Nat (fun (k : Nat) => Eq.{1} Real (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p)) u) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) p (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) k) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) (addOrderOf.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (SubNegMonoid.toAddMonoid.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddGroup.toSubNegMonoid.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddGroup.toAddGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toNormedAddGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p))))) u))))))
+but is expected to have type
+ forall {p : Real} [hp : Fact (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) p)] {u : AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p}, (IsOfFinAddOrder.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (SubNegMonoid.toAddMonoid.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddGroup.toSubNegMonoid.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NormedAddGroup.toAddGroup.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NormedAddCommGroup.toNormedAddGroup.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddCircle.instNormedAddCommGroupAddCircleRealInstLinearOrderedAddCommGroupRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p))))) u) -> (Exists.{1} Nat (fun (k : Nat) => Eq.{1} Real (Norm.norm.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NormedAddCommGroup.toNorm.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddCircle.instNormedAddCommGroupAddCircleRealInstLinearOrderedAddCommGroupRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p)) u) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) p (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Nat.cast.{0} Real Real.natCast k) (Nat.cast.{0} Real Real.natCast (addOrderOf.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (SubNegMonoid.toAddMonoid.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddGroup.toSubNegMonoid.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NormedAddGroup.toAddGroup.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NormedAddCommGroup.toNormedAddGroup.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddCircle.instNormedAddCommGroupAddCircleRealInstLinearOrderedAddCommGroupRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p))))) u))))))
+Case conversion may be inaccurate. Consider using '#align add_circle.exists_norm_eq_of_fin_add_order AddCircle.exists_norm_eq_of_isOfFinAddOrderₓ'. -/
+theorem exists_norm_eq_of_isOfFinAddOrder {u : AddCircle p} (hu : IsOfFinAddOrder u) :
∃ k : ℕ, ‖u‖ = p * (k / addOrderOf u) :=
by
let n := addOrderOf u
@@ -276,8 +360,14 @@ theorem exists_norm_eq_of_fin_add_order {u : AddCircle p} (hu : IsOfFinAddOrder
obtain ⟨m, -, -, hm⟩ := exists_gcd_eq_one_of_is_of_fin_add_order hu
refine' ⟨min (m % n) (n - m % n), _⟩
rw [← hm, norm_div_nat_cast]
-#align add_circle.exists_norm_eq_of_fin_add_order AddCircle.exists_norm_eq_of_fin_add_order
-
+#align add_circle.exists_norm_eq_of_fin_add_order AddCircle.exists_norm_eq_of_isOfFinAddOrder
+
+/- warning: add_circle.le_add_order_smul_norm_of_is_of_fin_add_order -> AddCircle.le_add_order_smul_norm_of_isOfFinAddOrder is a dubious translation:
+lean 3 declaration is
+ forall {p : Real} [hp : Fact (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) p)] {u : AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p}, (IsOfFinAddOrder.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (SubNegMonoid.toAddMonoid.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddGroup.toSubNegMonoid.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddGroup.toAddGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toNormedAddGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p))))) u) -> (Ne.{1} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) u (OfNat.ofNat.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) 0 (OfNat.mk.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) 0 (Zero.zero.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddZeroClass.toHasZero.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddMonoid.toAddZeroClass.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (SubNegMonoid.toAddMonoid.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddGroup.toSubNegMonoid.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddGroup.toAddGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toNormedAddGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p))))))))))) -> (LE.le.{0} Real Real.hasLe p (SMul.smul.{0, 0} Nat Real (AddMonoid.SMul.{0} Real Real.addMonoid) (addOrderOf.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (SubNegMonoid.toAddMonoid.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddGroup.toSubNegMonoid.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddGroup.toAddGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toNormedAddGroup.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p))))) u) (Norm.norm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (NormedAddCommGroup.toHasNorm.{0} (AddCircle.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology p) (AddCircle.normedAddCommGroup p)) u)))
+but is expected to have type
+ forall {p : Real} [hp : Fact (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) p)] {u : AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p}, (IsOfFinAddOrder.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (SubNegMonoid.toAddMonoid.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddGroup.toSubNegMonoid.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NormedAddGroup.toAddGroup.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NormedAddCommGroup.toNormedAddGroup.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddCircle.instNormedAddCommGroupAddCircleRealInstLinearOrderedAddCommGroupRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p))))) u) -> (Ne.{1} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) u (OfNat.ofNat.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) 0 (Zero.toOfNat0.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NegZeroClass.toZero.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (SubNegZeroMonoid.toNegZeroClass.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (SubtractionMonoid.toSubNegZeroMonoid.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (SubtractionCommMonoid.toSubtractionMonoid.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddCommGroup.toDivisionAddCommMonoid.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (instAddCommGroupAddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p))))))))) -> (LE.le.{0} Real Real.instLEReal p (HSMul.hSMul.{0, 0, 0} Nat Real Real (instHSMul.{0, 0} Nat Real (AddMonoid.SMul.{0} Real Real.instAddMonoidReal)) (addOrderOf.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (SubNegMonoid.toAddMonoid.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddGroup.toSubNegMonoid.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NormedAddGroup.toAddGroup.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NormedAddCommGroup.toNormedAddGroup.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddCircle.instNormedAddCommGroupAddCircleRealInstLinearOrderedAddCommGroupRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p))))) u) (Norm.norm.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (NormedAddCommGroup.toNorm.{0} (AddCircle.{0} Real Real.instLinearOrderedAddCommGroupReal (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) instOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p) (AddCircle.instNormedAddCommGroupAddCircleRealInstLinearOrderedAddCommGroupRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstOrderTopologyRealToTopologicalSpaceToUniformSpacePseudoMetricSpaceInstPreorderReal p)) u)))
+Case conversion may be inaccurate. Consider using '#align add_circle.le_add_order_smul_norm_of_is_of_fin_add_order AddCircle.le_add_order_smul_norm_of_isOfFinAddOrderₓ'. -/
theorem le_add_order_smul_norm_of_isOfFinAddOrder {u : AddCircle p} (hu : IsOfFinAddOrder u)
(hu' : u ≠ 0) : p ≤ addOrderOf u • ‖u‖ :=
by
@@ -298,6 +388,12 @@ end AddCircle
namespace UnitAddCircle
+/- warning: unit_add_circle.norm_eq -> UnitAddCircle.norm_eq is a dubious translation:
+lean 3 declaration is
+ forall {x : Real}, Eq.{1} Real (Norm.norm.{0} UnitAddCircle (NormedAddCommGroup.toHasNorm.{0} UnitAddCircle (AddCircle.normedAddCommGroup (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Real UnitAddCircle (HasLiftT.mk.{1, 1} Real UnitAddCircle (CoeTCₓ.coe.{1, 1} Real UnitAddCircle (AddCircle.hasCoeT.{0} Real Real.linearOrderedAddCommGroup (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) Real.orderTopology (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))))) x)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) x ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) (round.{0} Real Real.linearOrderedRing Real.floorRing x))))
+but is expected to have type
+ forall {x : Real}, Eq.{1} Real (Norm.norm.{0} (HasQuotient.Quotient.{0, 0} Real (AddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (QuotientAddGroup.instHasQuotientAddSubgroup.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (normOnQuotient.{0} Real (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{0} Real (NonUnitalNormedRing.toNonUnitalSeminormedRing.{0} Real (NormedRing.toNonUnitalNormedRing.{0} Real (NormedCommRing.toNormedRing.{0} Real Real.normedCommRing)))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (QuotientAddGroup.mk.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (AddSubgroup.zmultiples.{0} Real (AddCommGroup.toAddGroup.{0} Real (OrderedAddCommGroup.toAddCommGroup.{0} Real (LinearOrderedAddCommGroup.toOrderedAddCommGroup.{0} Real Real.instLinearOrderedAddCommGroupReal))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) x)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Int.cast.{0} Real Real.intCast (round.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal x))))
+Case conversion may be inaccurate. Consider using '#align unit_add_circle.norm_eq UnitAddCircle.norm_eqₓ'. -/
theorem norm_eq {x : ℝ} : ‖(x : UnitAddCircle)‖ = |x - round x| := by simp [AddCircle.norm_eq]
#align unit_add_circle.norm_eq UnitAddCircle.norm_eq
mathlib commit https://github.com/leanprover-community/mathlib/commit/e3fb84046afd187b710170887195d50bada934ee
@@ -55,7 +55,7 @@ theorem norm_coe_mul (x : ℝ) (t : ℝ) :
rcases eq_or_ne t 0 with (rfl | ht); · simp
have ht' : |t| ≠ 0 := (not_congr abs_eq_zero).mpr ht
simp only [quotient_norm_eq, Real.norm_eq_abs]
- conv_rhs => rw [← smul_eq_mul, ← Real.infₛ_smul_of_nonneg (abs_nonneg t)]
+ conv_rhs => rw [← smul_eq_mul, ← Real.sInf_smul_of_nonneg (abs_nonneg t)]
simp only [QuotientAddGroup.mk'_apply, QuotientAddGroup.eq_iff_sub_mem]
congr 1
ext z
@@ -86,7 +86,7 @@ theorem norm_neg_period (x : ℝ) : ‖(x : AddCircle (-p))‖ = ‖(x : AddCirc
theorem norm_eq_of_zero {x : ℝ} : ‖(x : AddCircle (0 : ℝ))‖ = |x| :=
by
suffices { y : ℝ | (y : AddCircle (0 : ℝ)) = (x : AddCircle (0 : ℝ)) } = {x} by
- rw [quotient_norm_eq, this, image_singleton, Real.norm_eq_abs, cinfₛ_singleton]
+ rw [quotient_norm_eq, this, image_singleton, Real.norm_eq_abs, csInf_singleton]
ext y
simp [QuotientAddGroup.eq_iff_sub_mem, mem_zmultiples_iff, sub_eq_zero]
#align add_circle.norm_eq_of_zero AddCircle.norm_eq_of_zero
@@ -108,7 +108,7 @@ theorem norm_eq {x : ℝ} : ‖(x : AddCircle p)‖ = |x - round (p⁻¹ * x) *
⟨0, by simp [mem_lowerBounds]⟩
have h₂ : (abs '' { m : ℝ | (m : AddCircle (1 : ℝ)) = x }).Nonempty := ⟨|x|, ⟨x, rfl, rfl⟩⟩
apply le_antisymm
- · simp only [le_min_iff, Real.norm_eq_abs, cinfₛ_le_iff h₁ h₂]
+ · simp only [le_min_iff, Real.norm_eq_abs, csInf_le_iff h₁ h₂]
intro b h
refine'
⟨mem_lowerBounds.1 h _ ⟨fract x, _, abs_fract⟩,
@@ -120,7 +120,7 @@ theorem norm_eq {x : ℝ} : ‖(x : AddCircle p)‖ = |x - round (p⁻¹ * x) *
simp only [mem_set_of_eq, fract, sub_eq_self, QuotientAddGroup.mk_sub,
QuotientAddGroup.eq_zero_iff, int_cast_mem_zmultiples_one, sub_sub,
(by norm_cast : (⌊x⌋ : ℝ) + 1 = (↑(⌊x⌋ + 1) : ℝ))]
- · simp only [QuotientAddGroup.mk'_apply, Real.norm_eq_abs, le_cinfₛ_iff h₁ h₂]
+ · simp only [QuotientAddGroup.mk'_apply, Real.norm_eq_abs, le_csInf_iff h₁ h₂]
rintro b' ⟨b, hb, rfl⟩
simp only [mem_set_of_eq, QuotientAddGroup.eq_iff_sub_mem, mem_zmultiples_iff,
smul_one_eq_coe] at hb
@@ -201,7 +201,7 @@ theorem coe_real_preimage_closedBall_period_zero (x ε : ℝ) :
ext y <;> simp [dist_eq_norm, ← QuotientAddGroup.mk_sub]
#align add_circle.coe_real_preimage_closed_ball_period_zero AddCircle.coe_real_preimage_closedBall_period_zero
-theorem coe_real_preimage_closedBall_eq_unionᵢ (x ε : ℝ) :
+theorem coe_real_preimage_closedBall_eq_iUnion (x ε : ℝ) :
coe ⁻¹' closedBall (x : AddCircle p) ε = ⋃ z : ℤ, closedBall (x + z • p) ε :=
by
rcases eq_or_ne p 0 with (rfl | hp); · simp [Union_const]
@@ -213,7 +213,7 @@ theorem coe_real_preimage_closedBall_eq_unionᵢ (x ε : ℝ) :
rw [← mul_le_mul_left (abs_pos.mpr <| inv_ne_zero hp), ← abs_mul, mul_sub, mul_comm _ p,
inv_mul_cancel_left₀ hp] at hn⊢
exact (round_le (p⁻¹ * (y - x)) n).trans hn
-#align add_circle.coe_real_preimage_closed_ball_eq_Union AddCircle.coe_real_preimage_closedBall_eq_unionᵢ
+#align add_circle.coe_real_preimage_closed_ball_eq_Union AddCircle.coe_real_preimage_closedBall_eq_iUnion
theorem coe_real_preimage_closedBall_inter_eq {x ε : ℝ} (s : Set ℝ)
(hs : s ⊆ closedBall x (|p| / 2)) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/3180fab693e2cee3bff62675571264cb8778b212
@@ -244,7 +244,7 @@ theorem coe_real_preimage_closedBall_inter_eq {x ε : ℝ} (s : Set ℝ)
· have : p ≤ ↑z * p
nlinarith
linarith [abs_eq_self.mpr hp.le]
- · simp only [mul_zero, add_zero, abs_zero, zero_div] at hy₁ hy₂ hε
+ · simp only [MulZeroClass.mul_zero, add_zero, abs_zero, zero_div] at hy₁ hy₂ hε
linarith
· cases' Int.cast_le_neg_one_or_one_le_cast_of_ne_zero ℝ hz with hz' hz'
· have : -p ≤ ↑z * p
@@ -289,7 +289,7 @@ theorem le_add_order_smul_norm_of_isOfFinAddOrder {u : AddCircle p} (hu : IsOfFi
rw [hn, nsmul_eq_mul, ← mul_assoc, mul_comm _ p, mul_assoc, mul_div_cancel' _ hu,
mul_le_mul_left hp.out, Nat.one_le_cast, Nat.one_le_iff_ne_zero]
contrapose! hu'
- simpa only [hu', algebraMap.coe_zero, zero_div, mul_zero, norm_eq_zero] using hn
+ simpa only [hu', algebraMap.coe_zero, zero_div, MulZeroClass.mul_zero, norm_eq_zero] using hn
#align add_circle.le_add_order_smul_norm_of_is_of_fin_add_order AddCircle.le_add_order_smul_norm_of_isOfFinAddOrder
end FiniteOrderPoints
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
nat_cast
/int_cast
/rat_cast
to natCast
/intCast
/ratCast
(#11486)
Now that I am defining NNRat.cast
, I want a definitive answer to this naming issue. Plenty of lemmas in mathlib already use natCast
/intCast
/ratCast
over nat_cast
/int_cast
/rat_cast
, and this matches with the general expectation that underscore-separated name parts correspond to a single declaration.
@@ -103,9 +103,9 @@ theorem norm_eq {x : ℝ} : ‖(x : AddCircle p)‖ = |x - round (p⁻¹ * x) *
⟨mem_lowerBounds.1 h _ ⟨fract x, _, abs_fract⟩,
mem_lowerBounds.1 h _ ⟨fract x - 1, _, by rw [abs_sub_comm, abs_one_sub_fract]⟩⟩
· simp only [mem_setOf, fract, sub_eq_self, QuotientAddGroup.mk_sub,
- QuotientAddGroup.eq_zero_iff, int_cast_mem_zmultiples_one]
+ QuotientAddGroup.eq_zero_iff, intCast_mem_zmultiples_one]
· simp only [mem_setOf, fract, sub_eq_self, QuotientAddGroup.mk_sub,
- QuotientAddGroup.eq_zero_iff, int_cast_mem_zmultiples_one, sub_sub,
+ QuotientAddGroup.eq_zero_iff, intCast_mem_zmultiples_one, sub_sub,
(by norm_cast : (⌊x⌋ : ℝ) + 1 = (↑(⌊x⌋ + 1) : ℝ))]
· simp only [QuotientAddGroup.mk'_apply, Real.norm_eq_abs, le_csInf_iff h₁ h₂]
rintro b' ⟨b, hb, rfl⟩
@@ -238,11 +238,11 @@ section FiniteOrderPoints
variable {p} [hp : Fact (0 < p)]
-theorem norm_div_nat_cast {m n : ℕ} :
+theorem norm_div_natCast {m n : ℕ} :
‖(↑(↑m / ↑n * p) : AddCircle p)‖ = p * (↑(min (m % n) (n - m % n)) / n) := by
have : p⁻¹ * (↑m / ↑n * p) = ↑m / ↑n := by rw [mul_comm _ p, inv_mul_cancel_left₀ hp.out.ne.symm]
rw [norm_eq' p hp.out, this, abs_sub_round_div_natCast_eq]
-#align add_circle.norm_div_nat_cast AddCircle.norm_div_nat_cast
+#align add_circle.norm_div_nat_cast AddCircle.norm_div_natCast
theorem exists_norm_eq_of_isOfFinAddOrder {u : AddCircle p} (hu : IsOfFinAddOrder u) :
∃ k : ℕ, ‖u‖ = p * (k / addOrderOf u) := by
@@ -250,7 +250,7 @@ theorem exists_norm_eq_of_isOfFinAddOrder {u : AddCircle p} (hu : IsOfFinAddOrde
change ∃ k : ℕ, ‖u‖ = p * (k / n)
obtain ⟨m, -, -, hm⟩ := exists_gcd_eq_one_of_isOfFinAddOrder hu
refine' ⟨min (m % n) (n - m % n), _⟩
- rw [← hm, norm_div_nat_cast]
+ rw [← hm, norm_div_natCast]
#align add_circle.exists_norm_eq_of_fin_add_order AddCircle.exists_norm_eq_of_isOfFinAddOrder
theorem le_add_order_smul_norm_of_isOfFinAddOrder {u : AddCircle p} (hu : IsOfFinAddOrder u)
mul
-div
cancellation lemmas (#11530)
Lemma names around cancellation of multiplication and division are a mess.
This PR renames a handful of them according to the following table (each big row contains the multiplicative statement, then the three rows contain the GroupWithZero
lemma name, the Group
lemma, the AddGroup
lemma name).
| Statement | New name | Old name | |
@@ -260,7 +260,7 @@ theorem le_add_order_smul_norm_of_isOfFinAddOrder {u : AddCircle p} (hu : IsOfFi
norm_cast
exact (addOrderOf_pos_iff.mpr hu).ne'
conv_lhs => rw [← mul_one p]
- rw [hn, nsmul_eq_mul, ← mul_assoc, mul_comm _ p, mul_assoc, mul_div_cancel' _ hu,
+ rw [hn, nsmul_eq_mul, ← mul_assoc, mul_comm _ p, mul_assoc, mul_div_cancel₀ _ hu,
mul_le_mul_left hp.out, Nat.one_le_cast, Nat.one_le_iff_ne_zero]
contrapose! hu'
simpa only [hu', Nat.cast_zero, zero_div, mul_zero, norm_eq_zero] using hn
I removed some of the tactics that were not used and are hopefully uncontroversial arising from the linter at #11308.
As the commit messages should convey, the removed tactics are, essentially,
push_cast
norm_cast
congr
norm_num
dsimp
funext
intro
infer_instance
@@ -87,7 +87,6 @@ theorem norm_eq {x : ℝ} : ‖(x : AddCircle p)‖ = |x - round (p⁻¹ * x) *
suffices ∀ x : ℝ, ‖(x : AddCircle (1 : ℝ))‖ = |x - round x| by
rcases eq_or_ne p 0 with (rfl | hp)
· simp
- intros
have hx := norm_coe_mul p x p⁻¹
rw [abs_inv, eq_inv_mul_iff_mul_eq₀ ((not_congr abs_eq_zero).mpr hp)] at hx
rw [← hx, inv_mul_cancel hp, this, ← abs_mul, mul_sub, mul_inv_cancel_left₀ hp, mul_comm p]
have
, replace
and suffices
(#10640)
No changes to tactic file, it's just boring fixes throughout the library.
This follows on from #6964.
Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -222,20 +222,16 @@ theorem coe_real_preimage_closedBall_inter_eq {x ε : ℝ} (s : Set ℝ)
obtain ⟨hy₃, hy₄⟩ := hs hy₀
rcases lt_trichotomy 0 p with (hp | (rfl : 0 = p) | hp)
· cases' Int.cast_le_neg_one_or_one_le_cast_of_ne_zero ℝ hz with hz' hz'
- · have : ↑z * p ≤ -p
- nlinarith
+ · have : ↑z * p ≤ -p := by nlinarith
linarith [abs_eq_self.mpr hp.le]
- · have : p ≤ ↑z * p
- nlinarith
+ · have : p ≤ ↑z * p := by nlinarith
linarith [abs_eq_self.mpr hp.le]
· simp only [mul_zero, add_zero, abs_zero, zero_div] at hy₁ hy₂ hε
linarith
· cases' Int.cast_le_neg_one_or_one_le_cast_of_ne_zero ℝ hz with hz' hz'
- · have : -p ≤ ↑z * p
- nlinarith
+ · have : -p ≤ ↑z * p := by nlinarith
linarith [abs_eq_neg_self.mpr hp.le]
- · have : ↑z * p ≤ p
- nlinarith
+ · have : ↑z * p ≤ p := by nlinarith
linarith [abs_eq_neg_self.mpr hp.le]
#align add_circle.coe_real_preimage_closed_ball_inter_eq AddCircle.coe_real_preimage_closedBall_inter_eq
@@ -261,8 +257,8 @@ theorem exists_norm_eq_of_isOfFinAddOrder {u : AddCircle p} (hu : IsOfFinAddOrde
theorem le_add_order_smul_norm_of_isOfFinAddOrder {u : AddCircle p} (hu : IsOfFinAddOrder u)
(hu' : u ≠ 0) : p ≤ addOrderOf u • ‖u‖ := by
obtain ⟨n, hn⟩ := exists_norm_eq_of_isOfFinAddOrder hu
- replace hu : (addOrderOf u : ℝ) ≠ 0
- · norm_cast
+ replace hu : (addOrderOf u : ℝ) ≠ 0 := by
+ norm_cast
exact (addOrderOf_pos_iff.mpr hu).ne'
conv_lhs => rw [← mul_one p]
rw [hn, nsmul_eq_mul, ← mul_assoc, mul_comm _ p, mul_assoc, mul_div_cancel' _ hu,
cases'
(#9171)
I literally went through and regex'd some uses of cases'
, replacing them with rcases
; this is meant to be a low effort PR as I hope that tools can do this in the future.
rcases
is an easier replacement than cases
, though with better tools we could in future do a second pass converting simple rcases
added here (and existing ones) to cases
.
@@ -199,7 +199,7 @@ theorem coe_real_preimage_closedBall_eq_iUnion (x ε : ℝ) :
theorem coe_real_preimage_closedBall_inter_eq {x ε : ℝ} (s : Set ℝ)
(hs : s ⊆ closedBall x (|p| / 2)) :
(↑) ⁻¹' closedBall (x : AddCircle p) ε ∩ s = if ε < |p| / 2 then closedBall x ε ∩ s else s := by
- cases' le_or_lt (|p| / 2) ε with hε hε
+ rcases le_or_lt (|p| / 2) ε with hε | hε
· rcases eq_or_ne p 0 with (rfl | hp)
· simp only [abs_zero, zero_div] at hε
simp only [not_lt.mpr hε, coe_real_preimage_closedBall_period_zero, abs_zero, zero_div,
And fix some names in comments where this revealed issues
@@ -20,7 +20,7 @@ We define the normed group structure on `AddCircle p`, for `p : ℝ`. For exampl
## TODO
- * The fact `inner_product_geometry.angle (Real.cos θ) (Real.sin θ) = ‖(θ : Real.Angle)‖`
+ * The fact `InnerProductGeometry.angle (Real.cos θ) (Real.sin θ) = ‖(θ : Real.Angle)‖`
-/
Set
/Finset
lemmas match lattice lemma names (#7378)
Rename union_eq_left_iff_subset
to union_eq_left
to match sup_eq_left
. Similarly for the right
and inter
versions.
@@ -203,11 +203,11 @@ theorem coe_real_preimage_closedBall_inter_eq {x ε : ℝ} (s : Set ℝ)
· rcases eq_or_ne p 0 with (rfl | hp)
· simp only [abs_zero, zero_div] at hε
simp only [not_lt.mpr hε, coe_real_preimage_closedBall_period_zero, abs_zero, zero_div,
- if_false, inter_eq_right_iff_subset]
+ if_false, inter_eq_right]
exact hs.trans (closedBall_subset_closedBall <| by simp [hε])
-- Porting note: was
-- simp [closedBall_eq_univ_of_half_period_le p hp (↑x) hε, not_lt.mpr hε]
- simp only [not_lt.mpr hε, ite_false, inter_eq_right_iff_subset]
+ simp only [not_lt.mpr hε, ite_false, inter_eq_right]
rw [closedBall_eq_univ_of_half_period_le p hp (↑x : ℝ ⧸ zmultiples p) hε, preimage_univ]
apply subset_univ
· suffices ∀ z : ℤ, closedBall (x + z • p) ε ∩ s = if z = 0 then closedBall x ε ∩ s else ∅ by
MulZeroClass.
in mul_zero
/zero_mul
(#6682)
Search&replace MulZeroClass.mul_zero
-> mul_zero
, MulZeroClass.zero_mul
-> zero_mul
.
These were introduced by Mathport, as the full name of mul_zero
is actually MulZeroClass.mul_zero
(it's exported with the short name).
@@ -228,7 +228,7 @@ theorem coe_real_preimage_closedBall_inter_eq {x ε : ℝ} (s : Set ℝ)
· have : p ≤ ↑z * p
nlinarith
linarith [abs_eq_self.mpr hp.le]
- · simp only [MulZeroClass.mul_zero, add_zero, abs_zero, zero_div] at hy₁ hy₂ hε
+ · simp only [mul_zero, add_zero, abs_zero, zero_div] at hy₁ hy₂ hε
linarith
· cases' Int.cast_le_neg_one_or_one_le_cast_of_ne_zero ℝ hz with hz' hz'
· have : -p ≤ ↑z * p
@@ -268,7 +268,7 @@ theorem le_add_order_smul_norm_of_isOfFinAddOrder {u : AddCircle p} (hu : IsOfFi
rw [hn, nsmul_eq_mul, ← mul_assoc, mul_comm _ p, mul_assoc, mul_div_cancel' _ hu,
mul_le_mul_left hp.out, Nat.one_le_cast, Nat.one_le_iff_ne_zero]
contrapose! hu'
- simpa only [hu', Nat.cast_zero, zero_div, MulZeroClass.mul_zero, norm_eq_zero] using hn
+ simpa only [hu', Nat.cast_zero, zero_div, mul_zero, norm_eq_zero] using hn
#align add_circle.le_add_order_smul_norm_of_is_of_fin_add_order AddCircle.le_add_order_smul_norm_of_isOfFinAddOrder
end FiniteOrderPoints
@@ -2,15 +2,12 @@
Copyright (c) 2022 Oliver Nash. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Oliver Nash
-
-! This file was ported from Lean 3 source module analysis.normed.group.add_circle
-! leanprover-community/mathlib commit 084f76e20c88eae536222583331abd9468b08e1c
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Analysis.Normed.Group.Quotient
import Mathlib.Topology.Instances.AddCircle
+#align_import analysis.normed.group.add_circle from "leanprover-community/mathlib"@"084f76e20c88eae536222583331abd9468b08e1c"
+
/-!
# The additive circle as a normed group
@@ -59,7 +59,7 @@ theorem norm_coe_mul (x : ℝ) (t : ℝ) :
ext z
rw [mem_smul_set_iff_inv_smul_mem₀ ht']
show
- (∃ y, y - t * x ∈ zmultiples (t * p) ∧ |y| = z) ↔ ∃ w, w - x ∈ zmultiples p ∧ |w| = (|t|)⁻¹ * z
+ (∃ y, y - t * x ∈ zmultiples (t * p) ∧ |y| = z) ↔ ∃ w, w - x ∈ zmultiples p ∧ |w| = |t|⁻¹ * z
constructor
· rintro ⟨y, hy, rfl⟩
refine' ⟨t⁻¹ * y, _, by rw [abs_mul, abs_inv]⟩
at
and goals (#5387)
Changes are of the form
some_tactic at h⊢
-> some_tactic at h ⊢
some_tactic at h
-> some_tactic at h
@@ -47,7 +47,7 @@ instance : NormedAddCommGroup (AddCircle p) :=
theorem norm_coe_mul (x : ℝ) (t : ℝ) :
‖(↑(t * x) : AddCircle (t * p))‖ = |t| * ‖(x : AddCircle p)‖ := by
have aux : ∀ {a b c : ℝ}, a ∈ zmultiples b → c * a ∈ zmultiples (c * b) := fun {a b c} h => by
- simp only [mem_zmultiples_iff] at h⊢
+ simp only [mem_zmultiples_iff] at h ⊢
obtain ⟨n, rfl⟩ := h
exact ⟨n, (mul_smul_comm n c b).symm⟩
rcases eq_or_ne t 0 with (rfl | ht); · simp
@@ -195,7 +195,7 @@ theorem coe_real_preimage_closedBall_eq_iUnion (x ε : ℝ) :
refine' ⟨fun h => ⟨round (p⁻¹ * (y - x)), h⟩, _⟩
rintro ⟨n, hn⟩
rw [← mul_le_mul_left (abs_pos.mpr <| inv_ne_zero hp), ← abs_mul, mul_sub, mul_comm _ p,
- inv_mul_cancel_left₀ hp] at hn⊢
+ inv_mul_cancel_left₀ hp] at hn ⊢
exact (round_le (p⁻¹ * (y - x)) n).trans hn
#align add_circle.coe_real_preimage_closed_ball_eq_Union AddCircle.coe_real_preimage_closedBall_eq_iUnion
@@ -217,7 +217,7 @@ theorem coe_real_preimage_closedBall_inter_eq {x ε : ℝ} (s : Set ℝ)
simp [-zsmul_eq_mul, ← QuotientAddGroup.mk_zero, coe_real_preimage_closedBall_eq_iUnion,
iUnion_inter, iUnion_ite, this, hε]
intro z
- simp only [Real.closedBall_eq_Icc, zero_sub, zero_add] at hs⊢
+ simp only [Real.closedBall_eq_Icc, zero_sub, zero_add] at hs ⊢
rcases eq_or_ne z 0 with (rfl | hz)
· simp
simp only [hz, zsmul_eq_mul, if_false, eq_empty_iff_forall_not_mem]
fix-comments.py
on all files.@@ -23,7 +23,7 @@ We define the normed group structure on `AddCircle p`, for `p : ℝ`. For exampl
## TODO
- * The fact `inner_product_geometry.angle (Real.cos θ) (Real.sin θ) = ‖(θ : real.angle)‖`
+ * The fact `inner_product_geometry.angle (Real.cos θ) (Real.sin θ) = ‖(θ : Real.Angle)‖`
-/
The unported dependencies are
algebra.order.module
init.core
algebra.order.monoid.cancel.defs
algebra.abs
algebra.group_power.lemmas
init.data.list.basic
algebra.order.monoid.cancel.basic
init.data.list.default
topology.subset_properties
init.logic
The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file