dynamics.circle.rotation_number.translation_number
⟷
Mathlib.Dynamics.Circle.RotationNumber.TranslationNumber
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)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -785,7 +785,7 @@ theorem lt_iterate_pos_iff {x : ℝ} {m : ℤ} {n : ℕ} (hn : 0 < n) :
#print CircleDeg1Lift.mul_floor_map_zero_le_floor_iterate_zero /-
theorem mul_floor_map_zero_le_floor_iterate_zero (n : ℕ) : ↑n * ⌊f 0⌋ ≤ ⌊(f^[n]) 0⌋ :=
by
- rw [le_floor, Int.cast_mul, Int.cast_ofNat, ← zero_add ((n : ℝ) * _)]
+ rw [le_floor, Int.cast_mul, Int.cast_natCast, ← zero_add ((n : ℝ) * _)]
apply le_iterate_of_add_int_le_map
simp [floor_le]
#align circle_deg1_lift.mul_floor_map_zero_le_floor_iterate_zero CircleDeg1Lift.mul_floor_map_zero_le_floor_iterate_zero
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -3,11 +3,11 @@ Copyright (c) 2020 Yury G. Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury G. Kudryashov
-/
-import Algebra.Hom.Iterate
+import Algebra.GroupPower.IterateHom
import Analysis.SpecificLimits.Basic
import Order.Iterate
import Order.SemiconjSup
-import Topology.Algebra.Order.MonotoneContinuity
+import Topology.Order.MonotoneContinuity
#align_import dynamics.circle.rotation_number.translation_number from "leanprover-community/mathlib"@"ce38d86c0b2d427ce208c3cee3159cb421d2b3c4"
@@ -322,7 +322,7 @@ theorem isUnit_iff_bijective {f : CircleDeg1Lift} : IsUnit f ↔ Bijective f :=
#print CircleDeg1Lift.coe_pow /-
theorem coe_pow : ∀ n : ℕ, ⇑(f ^ n) = f^[n]
| 0 => rfl
- | n + 1 => by ext x; simp [coe_pow n, pow_succ']
+ | n + 1 => by ext x; simp [coe_pow n, pow_succ]
#align circle_deg1_lift.coe_pow CircleDeg1Lift.coe_pow
-/
@@ -857,11 +857,11 @@ theorem transnumAuxSeq_dist_lt (n : ℕ) :
dist (f.transnumAuxSeq n) (f.transnumAuxSeq (n + 1)) < 1 / 2 / 2 ^ n :=
by
have : 0 < (2 ^ (n + 1) : ℝ) := pow_pos zero_lt_two _
- rw [div_div, ← pow_succ, ← abs_of_pos this]
+ rw [div_div, ← pow_succ', ← abs_of_pos this]
replace := abs_pos.2 (ne_of_gt this)
convert (div_lt_div_right this).2 ((f ^ 2 ^ n).dist_map_map_zero_lt (f ^ 2 ^ n))
simp_rw [transnum_aux_seq, Real.dist_eq]
- rw [← abs_div, sub_div, pow_succ', pow_succ, ← two_mul, mul_div_mul_left _ _ (two_ne_zero' ℝ),
+ rw [← abs_div, sub_div, pow_succ, pow_succ', ← two_mul, mul_div_mul_left _ _ (two_ne_zero' ℝ),
pow_mul, sq, mul_apply]
#align circle_deg1_lift.transnum_aux_seq_dist_lt CircleDeg1Lift.transnumAuxSeq_dist_lt
-/
@@ -958,7 +958,7 @@ theorem translationNumber_units_inv (f : CircleDeg1Liftˣ) : τ ↑f⁻¹ = -τ
theorem translationNumber_pow : ∀ n : ℕ, τ (f ^ n) = n * τ f
| 0 => by simp
| n + 1 => by
- rw [pow_succ', translation_number_mul_of_commute (Commute.pow_self f n),
+ rw [pow_succ, translation_number_mul_of_commute (Commute.pow_self f n),
translation_number_pow n, Nat.cast_add_one, add_mul, one_mul]
#align circle_deg1_lift.translation_number_pow CircleDeg1Lift.translationNumber_pow
-/
@@ -1046,7 +1046,7 @@ theorem translationNumber_mono : Monotone τ := fun f g h =>
#print CircleDeg1Lift.translationNumber_translate /-
theorem translationNumber_translate (x : ℝ) : τ (translate <| Multiplicative.ofAdd x) = x :=
translationNumber_eq_of_tendsto₀' _ <| by
- simp [Nat.cast_add_one_ne_zero, mul_div_cancel_left, tendsto_const_nhds]
+ simp [Nat.cast_add_one_ne_zero, mul_div_cancel_left₀, tendsto_const_nhds]
#align circle_deg1_lift.translation_number_translate CircleDeg1Lift.translationNumber_translate
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -1039,7 +1039,7 @@ theorem tendsto_translation_number' (x : ℝ) :
#print CircleDeg1Lift.translationNumber_mono /-
theorem translationNumber_mono : Monotone τ := fun f g h =>
le_of_tendsto_of_tendsto' f.tendsto_translation_number₀ g.tendsto_translation_number₀ fun n =>
- div_le_div_of_le_of_nonneg (pow_mono h n 0) n.cast_nonneg
+ div_le_div_of_nonneg_right (pow_mono h n 0) n.cast_nonneg
#align circle_deg1_lift.translation_number_mono CircleDeg1Lift.translationNumber_mono
-/
@@ -1167,7 +1167,7 @@ theorem translationNumber_of_map_pow_eq_add_int {x : ℝ} {n : ℕ} {m : ℤ} (h
(hn : 0 < n) : τ f = m / n :=
by
have := (f ^ n).translationNumber_of_eq_add_int h
- rwa [translation_number_pow, mul_comm, ← eq_div_iff] at this
+ rwa [translation_number_pow, mul_comm, ← eq_div_iff] at this
exact Nat.cast_ne_zero.2 (ne_of_gt hn)
#align circle_deg1_lift.translation_number_of_map_pow_eq_add_int CircleDeg1Lift.translationNumber_of_map_pow_eq_add_int
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -1001,7 +1001,7 @@ theorem tendsto_translation_number₀' :
refine'
tendsto_iff_dist_tendsto_zero.2 <|
squeeze_zero (fun _ => dist_nonneg) (fun n => _)
- ((tendsto_const_div_atTop_nhds_0_nat 1).comp (tendsto_add_at_top_nat 1))
+ ((tendsto_const_div_atTop_nhds_zero_nat 1).comp (tendsto_add_at_top_nat 1))
dsimp
have : (0 : ℝ) < n + 1 := n.cast_add_one_pos
rw [Real.dist_eq, div_sub' _ _ _ (ne_of_gt this), abs_div, ← Real.dist_eq, abs_of_pos this,
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -213,8 +213,8 @@ instance : Monoid CircleDeg1Lift
monotone' := f.Monotone.comp g.Monotone
map_add_one' := fun x => by simp [map_add_one] }
one := ⟨id, monotone_id, fun _ => rfl⟩
- mul_one f := coe_inj <| Function.comp.right_id f
- one_mul f := coe_inj <| Function.comp.left_id f
+ mul_one f := coe_inj <| Function.comp_id f
+ one_mul f := coe_inj <| Function.id_comp f
mul_assoc f₁ f₂ f₃ := coe_inj rfl
instance : Inhabited CircleDeg1Lift :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -1216,10 +1216,10 @@ theorem exists_eq_add_translationNumber (hf : Continuous f) : ∃ x, f x = x +
by
obtain ⟨a, ha⟩ : ∃ x, f x ≤ x + f.translation_number :=
by
- by_contra' H
+ by_contra! H
exact lt_irrefl _ (f.lt_translation_number_of_forall_add_lt hf H)
obtain ⟨b, hb⟩ : ∃ x, x + τ f ≤ f x := by
- by_contra' H
+ by_contra! H
exact lt_irrefl _ (f.translation_number_lt_of_forall_lt_add hf H)
exact intermediate_value_univ₂ hf (continuous_id.add continuous_const) ha hb
#align circle_deg1_lift.exists_eq_add_translation_number CircleDeg1Lift.exists_eq_add_translationNumber
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,11 +3,11 @@ Copyright (c) 2020 Yury G. Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury G. Kudryashov
-/
-import Mathbin.Algebra.Hom.Iterate
-import Mathbin.Analysis.SpecificLimits.Basic
-import Mathbin.Order.Iterate
-import Mathbin.Order.SemiconjSup
-import Mathbin.Topology.Algebra.Order.MonotoneContinuity
+import Algebra.Hom.Iterate
+import Analysis.SpecificLimits.Basic
+import Order.Iterate
+import Order.SemiconjSup
+import Topology.Algebra.Order.MonotoneContinuity
#align_import dynamics.circle.rotation_number.translation_number from "leanprover-community/mathlib"@"ce38d86c0b2d427ce208c3cee3159cb421d2b3c4"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,11 +2,6 @@
Copyright (c) 2020 Yury G. Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury G. Kudryashov
-
-! This file was ported from Lean 3 source module dynamics.circle.rotation_number.translation_number
-! leanprover-community/mathlib commit ce38d86c0b2d427ce208c3cee3159cb421d2b3c4
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Algebra.Hom.Iterate
import Mathbin.Analysis.SpecificLimits.Basic
@@ -14,6 +9,8 @@ import Mathbin.Order.Iterate
import Mathbin.Order.SemiconjSup
import Mathbin.Topology.Algebra.Order.MonotoneContinuity
+#align_import dynamics.circle.rotation_number.translation_number from "leanprover-community/mathlib"@"ce38d86c0b2d427ce208c3cee3159cb421d2b3c4"
+
/-!
# Translation number of a monotone real map that commutes with `x ↦ x + 1`
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -151,47 +151,63 @@ namespace CircleDeg1Lift
instance : CoeFun CircleDeg1Lift fun _ => ℝ → ℝ :=
⟨CircleDeg1Lift.toFun⟩
+#print CircleDeg1Lift.coe_mk /-
@[simp]
theorem coe_mk (f h₁ h₂) : ⇑(mk f h₁ h₂) = f :=
rfl
#align circle_deg1_lift.coe_mk CircleDeg1Lift.coe_mk
+-/
variable (f g : CircleDeg1Lift)
+#print CircleDeg1Lift.monotone /-
protected theorem monotone : Monotone f :=
f.monotone'
#align circle_deg1_lift.monotone CircleDeg1Lift.monotone
+-/
+#print CircleDeg1Lift.mono /-
@[mono]
theorem mono {x y} (h : x ≤ y) : f x ≤ f y :=
f.Monotone h
#align circle_deg1_lift.mono CircleDeg1Lift.mono
+-/
+#print CircleDeg1Lift.strictMono_iff_injective /-
theorem strictMono_iff_injective : StrictMono f ↔ Injective f :=
f.Monotone.strictMono_iff_injective
#align circle_deg1_lift.strict_mono_iff_injective CircleDeg1Lift.strictMono_iff_injective
+-/
+#print CircleDeg1Lift.map_add_one /-
@[simp]
theorem map_add_one : ∀ x, f (x + 1) = f x + 1 :=
f.map_add_one'
#align circle_deg1_lift.map_add_one CircleDeg1Lift.map_add_one
+-/
+#print CircleDeg1Lift.map_one_add /-
@[simp]
theorem map_one_add (x : ℝ) : f (1 + x) = 1 + f x := by rw [add_comm, map_add_one, add_comm]
#align circle_deg1_lift.map_one_add CircleDeg1Lift.map_one_add
+-/
theorem coe_inj : ∀ ⦃f g : CircleDeg1Lift⦄, (f : ℝ → ℝ) = g → f = g :=
fun ⟨f, fm, fd⟩ ⟨g, gm, gd⟩ h => by congr <;> exact h
#align circle_deg1_lift.coe_inj CircleDeg1Lift.coe_inj
+#print CircleDeg1Lift.ext /-
@[ext]
theorem ext ⦃f g : CircleDeg1Lift⦄ (h : ∀ x, f x = g x) : f = g :=
coe_inj <| funext h
#align circle_deg1_lift.ext CircleDeg1Lift.ext
+-/
+#print CircleDeg1Lift.ext_iff /-
theorem ext_iff {f g : CircleDeg1Lift} : f = g ↔ ∀ x, f x = g x :=
⟨fun h x => h ▸ rfl, fun h => ext h⟩
#align circle_deg1_lift.ext_iff CircleDeg1Lift.ext_iff
+-/
instance : Monoid CircleDeg1Lift
where
@@ -207,39 +223,52 @@ instance : Monoid CircleDeg1Lift
instance : Inhabited CircleDeg1Lift :=
⟨1⟩
+#print CircleDeg1Lift.coe_mul /-
@[simp]
theorem coe_mul : ⇑(f * g) = f ∘ g :=
rfl
#align circle_deg1_lift.coe_mul CircleDeg1Lift.coe_mul
+-/
+#print CircleDeg1Lift.mul_apply /-
theorem mul_apply (x) : (f * g) x = f (g x) :=
rfl
#align circle_deg1_lift.mul_apply CircleDeg1Lift.mul_apply
+-/
+#print CircleDeg1Lift.coe_one /-
@[simp]
theorem coe_one : ⇑(1 : CircleDeg1Lift) = id :=
rfl
#align circle_deg1_lift.coe_one CircleDeg1Lift.coe_one
+-/
+#print CircleDeg1Lift.unitsHasCoeToFun /-
instance unitsHasCoeToFun : CoeFun CircleDeg1Liftˣ fun _ => ℝ → ℝ :=
⟨fun f => ⇑(f : CircleDeg1Lift)⟩
#align circle_deg1_lift.units_has_coe_to_fun CircleDeg1Lift.unitsHasCoeToFun
+-/
@[simp, norm_cast]
theorem units_coe (f : CircleDeg1Liftˣ) : ⇑(f : CircleDeg1Lift) = f :=
rfl
#align circle_deg1_lift.units_coe CircleDeg1Lift.units_coe
+#print CircleDeg1Lift.units_inv_apply_apply /-
@[simp]
theorem units_inv_apply_apply (f : CircleDeg1Liftˣ) (x : ℝ) : (f⁻¹ : CircleDeg1Liftˣ) (f x) = x :=
by simp only [← units_coe, ← mul_apply, f.inv_mul, coe_one, id]
#align circle_deg1_lift.units_inv_apply_apply CircleDeg1Lift.units_inv_apply_apply
+-/
+#print CircleDeg1Lift.units_apply_inv_apply /-
@[simp]
theorem units_apply_inv_apply (f : CircleDeg1Liftˣ) (x : ℝ) : f ((f⁻¹ : CircleDeg1Liftˣ) x) = x :=
by simp only [← units_coe, ← mul_apply, f.mul_inv, coe_one, id]
#align circle_deg1_lift.units_apply_inv_apply CircleDeg1Lift.units_apply_inv_apply
+-/
+#print CircleDeg1Lift.toOrderIso /-
/-- If a lift of a circle map is bijective, then it is an order automorphism of the line. -/
def toOrderIso : CircleDeg1Liftˣ →* ℝ ≃o ℝ
where
@@ -252,23 +281,31 @@ def toOrderIso : CircleDeg1Liftˣ →* ℝ ≃o ℝ
map_one' := rfl
map_mul' f g := rfl
#align circle_deg1_lift.to_order_iso CircleDeg1Lift.toOrderIso
+-/
+#print CircleDeg1Lift.coe_toOrderIso /-
@[simp]
theorem coe_toOrderIso (f : CircleDeg1Liftˣ) : ⇑(toOrderIso f) = f :=
rfl
#align circle_deg1_lift.coe_to_order_iso CircleDeg1Lift.coe_toOrderIso
+-/
+#print CircleDeg1Lift.coe_toOrderIso_symm /-
@[simp]
theorem coe_toOrderIso_symm (f : CircleDeg1Liftˣ) :
⇑(toOrderIso f).symm = (f⁻¹ : CircleDeg1Liftˣ) :=
rfl
#align circle_deg1_lift.coe_to_order_iso_symm CircleDeg1Lift.coe_toOrderIso_symm
+-/
+#print CircleDeg1Lift.coe_toOrderIso_inv /-
@[simp]
theorem coe_toOrderIso_inv (f : CircleDeg1Liftˣ) : ⇑(toOrderIso f)⁻¹ = (f⁻¹ : CircleDeg1Liftˣ) :=
rfl
#align circle_deg1_lift.coe_to_order_iso_inv CircleDeg1Lift.coe_toOrderIso_inv
+-/
+#print CircleDeg1Lift.isUnit_iff_bijective /-
theorem isUnit_iff_bijective {f : CircleDeg1Lift} : IsUnit f ↔ Bijective f :=
⟨fun ⟨u, h⟩ => h ▸ (toOrderIso u).Bijective, fun h =>
Units.isUnit
@@ -283,26 +320,34 @@ theorem isUnit_iff_bijective {f : CircleDeg1Lift} : IsUnit f ↔ Bijective f :=
val_inv := ext <| Equiv.ofBijective_apply_symm_apply f h
inv_val := ext <| Equiv.ofBijective_symm_apply_apply f h }⟩
#align circle_deg1_lift.is_unit_iff_bijective CircleDeg1Lift.isUnit_iff_bijective
+-/
+#print CircleDeg1Lift.coe_pow /-
theorem coe_pow : ∀ n : ℕ, ⇑(f ^ n) = f^[n]
| 0 => rfl
| n + 1 => by ext x; simp [coe_pow n, pow_succ']
#align circle_deg1_lift.coe_pow CircleDeg1Lift.coe_pow
+-/
+#print CircleDeg1Lift.semiconjBy_iff_semiconj /-
theorem semiconjBy_iff_semiconj {f g₁ g₂ : CircleDeg1Lift} :
SemiconjBy f g₁ g₂ ↔ Semiconj f g₁ g₂ :=
ext_iff
#align circle_deg1_lift.semiconj_by_iff_semiconj CircleDeg1Lift.semiconjBy_iff_semiconj
+-/
+#print CircleDeg1Lift.commute_iff_commute /-
theorem commute_iff_commute {f g : CircleDeg1Lift} : Commute f g ↔ Function.Commute f g :=
ext_iff
#align circle_deg1_lift.commute_iff_commute CircleDeg1Lift.commute_iff_commute
+-/
/-!
### Translate by a constant
-/
+#print CircleDeg1Lift.translate /-
/-- The map `y ↦ x + y` as a `circle_deg1_lift`. More precisely, we define a homomorphism from
`multiplicative ℝ` to `circle_deg1_liftˣ`, so the translation by `x` is
`translation (multiplicative.of_add x)`. -/
@@ -315,34 +360,45 @@ def translate : Multiplicative ℝ →* CircleDeg1Liftˣ := by
map_one' := ext <| zero_add
map_mul' := fun x y => ext <| add_assoc _ _ }
#align circle_deg1_lift.translate CircleDeg1Lift.translate
+-/
+#print CircleDeg1Lift.translate_apply /-
@[simp]
theorem translate_apply (x y : ℝ) : translate (Multiplicative.ofAdd x) y = x + y :=
rfl
#align circle_deg1_lift.translate_apply CircleDeg1Lift.translate_apply
+-/
+#print CircleDeg1Lift.translate_inv_apply /-
@[simp]
theorem translate_inv_apply (x y : ℝ) : (translate <| Multiplicative.ofAdd x)⁻¹ y = -x + y :=
rfl
#align circle_deg1_lift.translate_inv_apply CircleDeg1Lift.translate_inv_apply
+-/
+#print CircleDeg1Lift.translate_zpow /-
@[simp]
theorem translate_zpow (x : ℝ) (n : ℤ) :
translate (Multiplicative.ofAdd x) ^ n = translate (Multiplicative.ofAdd <| ↑n * x) := by
simp only [← zsmul_eq_mul, ofAdd_zsmul, MonoidHom.map_zpow]
#align circle_deg1_lift.translate_zpow CircleDeg1Lift.translate_zpow
+-/
+#print CircleDeg1Lift.translate_pow /-
@[simp]
theorem translate_pow (x : ℝ) (n : ℕ) :
translate (Multiplicative.ofAdd x) ^ n = translate (Multiplicative.ofAdd <| ↑n * x) :=
translate_zpow x n
#align circle_deg1_lift.translate_pow CircleDeg1Lift.translate_pow
+-/
+#print CircleDeg1Lift.translate_iterate /-
@[simp]
theorem translate_iterate (x : ℝ) (n : ℕ) :
translate (Multiplicative.ofAdd x)^[n] = translate (Multiplicative.ofAdd <| ↑n * x) := by
rw [← units_coe, ← coe_pow, ← Units.val_pow_eq_pow_val, translate_pow, units_coe]
#align circle_deg1_lift.translate_iterate CircleDeg1Lift.translate_iterate
+-/
/-!
### Commutativity with integer translations
@@ -354,70 +410,98 @@ then reformulate as `simp` lemmas `map_int_add` etc.
-/
+#print CircleDeg1Lift.commute_nat_add /-
theorem commute_nat_add (n : ℕ) : Function.Commute f ((· + ·) n) := by
simpa only [nsmul_one, add_left_iterate] using Function.Commute.iterate_right f.map_one_add n
#align circle_deg1_lift.commute_nat_add CircleDeg1Lift.commute_nat_add
+-/
+#print CircleDeg1Lift.commute_add_nat /-
theorem commute_add_nat (n : ℕ) : Function.Commute f fun x => x + n := by
simp only [add_comm _ (n : ℝ), f.commute_nat_add n]
#align circle_deg1_lift.commute_add_nat CircleDeg1Lift.commute_add_nat
+-/
+#print CircleDeg1Lift.commute_sub_nat /-
theorem commute_sub_nat (n : ℕ) : Function.Commute f fun x => x - n := by
simpa only [sub_eq_add_neg] using
(f.commute_add_nat n).inverses_right (Equiv.addRight _).right_inv (Equiv.addRight _).left_inv
#align circle_deg1_lift.commute_sub_nat CircleDeg1Lift.commute_sub_nat
+-/
+#print CircleDeg1Lift.commute_add_int /-
theorem commute_add_int : ∀ n : ℤ, Function.Commute f fun x => x + n
| (n : ℕ) => f.commute_add_nat n
| -[n+1] => by simpa [sub_eq_add_neg] using f.commute_sub_nat (n + 1)
#align circle_deg1_lift.commute_add_int CircleDeg1Lift.commute_add_int
+-/
+#print CircleDeg1Lift.commute_int_add /-
theorem commute_int_add (n : ℤ) : Function.Commute f ((· + ·) n) := by
simpa only [add_comm _ (n : ℝ)] using f.commute_add_int n
#align circle_deg1_lift.commute_int_add CircleDeg1Lift.commute_int_add
+-/
+#print CircleDeg1Lift.commute_sub_int /-
theorem commute_sub_int (n : ℤ) : Function.Commute f fun x => x - n := by
simpa only [sub_eq_add_neg] using
(f.commute_add_int n).inverses_right (Equiv.addRight _).right_inv (Equiv.addRight _).left_inv
#align circle_deg1_lift.commute_sub_int CircleDeg1Lift.commute_sub_int
+-/
+#print CircleDeg1Lift.map_int_add /-
@[simp]
theorem map_int_add (m : ℤ) (x : ℝ) : f (m + x) = m + f x :=
f.commute_int_add m x
#align circle_deg1_lift.map_int_add CircleDeg1Lift.map_int_add
+-/
+#print CircleDeg1Lift.map_add_int /-
@[simp]
theorem map_add_int (x : ℝ) (m : ℤ) : f (x + m) = f x + m :=
f.commute_add_int m x
#align circle_deg1_lift.map_add_int CircleDeg1Lift.map_add_int
+-/
+#print CircleDeg1Lift.map_sub_int /-
@[simp]
theorem map_sub_int (x : ℝ) (n : ℤ) : f (x - n) = f x - n :=
f.commute_sub_int n x
#align circle_deg1_lift.map_sub_int CircleDeg1Lift.map_sub_int
+-/
+#print CircleDeg1Lift.map_add_nat /-
@[simp]
theorem map_add_nat (x : ℝ) (n : ℕ) : f (x + n) = f x + n :=
f.map_add_int x n
#align circle_deg1_lift.map_add_nat CircleDeg1Lift.map_add_nat
+-/
+#print CircleDeg1Lift.map_nat_add /-
@[simp]
theorem map_nat_add (n : ℕ) (x : ℝ) : f (n + x) = n + f x :=
f.map_int_add n x
#align circle_deg1_lift.map_nat_add CircleDeg1Lift.map_nat_add
+-/
+#print CircleDeg1Lift.map_sub_nat /-
@[simp]
theorem map_sub_nat (x : ℝ) (n : ℕ) : f (x - n) = f x - n :=
f.map_sub_int x n
#align circle_deg1_lift.map_sub_nat CircleDeg1Lift.map_sub_nat
+-/
+#print CircleDeg1Lift.map_int_of_map_zero /-
theorem map_int_of_map_zero (n : ℤ) : f n = f 0 + n := by rw [← f.map_add_int, zero_add]
#align circle_deg1_lift.map_int_of_map_zero CircleDeg1Lift.map_int_of_map_zero
+-/
+#print CircleDeg1Lift.map_fract_sub_fract_eq /-
@[simp]
theorem map_fract_sub_fract_eq (x : ℝ) : f (fract x) - fract x = f x - x := by
rw [Int.fract, f.map_sub_int, sub_sub_sub_cancel_right]
#align circle_deg1_lift.map_fract_sub_fract_eq CircleDeg1Lift.map_fract_sub_fract_eq
+-/
/-!
### Pointwise order on circle maps
@@ -447,30 +531,42 @@ noncomputable instance : Lattice CircleDeg1Lift
inf_le_right f g x := min_le_right (f x) (g x)
le_inf f₁ f₂ f₃ h₂ h₃ x := le_min (h₂ x) (h₃ x)
+#print CircleDeg1Lift.sup_apply /-
@[simp]
theorem sup_apply (x : ℝ) : (f ⊔ g) x = max (f x) (g x) :=
rfl
#align circle_deg1_lift.sup_apply CircleDeg1Lift.sup_apply
+-/
+#print CircleDeg1Lift.inf_apply /-
@[simp]
theorem inf_apply (x : ℝ) : (f ⊓ g) x = min (f x) (g x) :=
rfl
#align circle_deg1_lift.inf_apply CircleDeg1Lift.inf_apply
+-/
+#print CircleDeg1Lift.iterate_monotone /-
theorem iterate_monotone (n : ℕ) : Monotone fun f : CircleDeg1Lift => f^[n] := fun f g h =>
f.Monotone.iterate_le_of_le h _
#align circle_deg1_lift.iterate_monotone CircleDeg1Lift.iterate_monotone
+-/
+#print CircleDeg1Lift.iterate_mono /-
theorem iterate_mono {f g : CircleDeg1Lift} (h : f ≤ g) (n : ℕ) : f^[n] ≤ g^[n] :=
iterate_monotone n h
#align circle_deg1_lift.iterate_mono CircleDeg1Lift.iterate_mono
+-/
+#print CircleDeg1Lift.pow_mono /-
theorem pow_mono {f g : CircleDeg1Lift} (h : f ≤ g) (n : ℕ) : f ^ n ≤ g ^ n := fun x => by
simp only [coe_pow, iterate_mono h n x]
#align circle_deg1_lift.pow_mono CircleDeg1Lift.pow_mono
+-/
+#print CircleDeg1Lift.pow_monotone /-
theorem pow_monotone (n : ℕ) : Monotone fun f : CircleDeg1Lift => f ^ n := fun f g h => pow_mono h n
#align circle_deg1_lift.pow_monotone CircleDeg1Lift.pow_monotone
+-/
/-!
### Estimates on `(f * g) 0`
@@ -483,70 +579,93 @@ is less than two.
-/
+#print CircleDeg1Lift.map_le_of_map_zero /-
theorem map_le_of_map_zero (x : ℝ) : f x ≤ f 0 + ⌈x⌉ :=
calc
f x ≤ f ⌈x⌉ := f.Monotone <| le_ceil _
_ = f 0 + ⌈x⌉ := f.map_int_of_map_zero _
#align circle_deg1_lift.map_le_of_map_zero CircleDeg1Lift.map_le_of_map_zero
+-/
+#print CircleDeg1Lift.map_map_zero_le /-
theorem map_map_zero_le : f (g 0) ≤ f 0 + ⌈g 0⌉ :=
f.map_le_of_map_zero (g 0)
#align circle_deg1_lift.map_map_zero_le CircleDeg1Lift.map_map_zero_le
+-/
+#print CircleDeg1Lift.floor_map_map_zero_le /-
theorem floor_map_map_zero_le : ⌊f (g 0)⌋ ≤ ⌊f 0⌋ + ⌈g 0⌉ :=
calc
⌊f (g 0)⌋ ≤ ⌊f 0 + ⌈g 0⌉⌋ := floor_mono <| f.map_map_zero_le g
_ = ⌊f 0⌋ + ⌈g 0⌉ := floor_add_int _ _
#align circle_deg1_lift.floor_map_map_zero_le CircleDeg1Lift.floor_map_map_zero_le
+-/
+#print CircleDeg1Lift.ceil_map_map_zero_le /-
theorem ceil_map_map_zero_le : ⌈f (g 0)⌉ ≤ ⌈f 0⌉ + ⌈g 0⌉ :=
calc
⌈f (g 0)⌉ ≤ ⌈f 0 + ⌈g 0⌉⌉ := ceil_mono <| f.map_map_zero_le g
_ = ⌈f 0⌉ + ⌈g 0⌉ := ceil_add_int _ _
#align circle_deg1_lift.ceil_map_map_zero_le CircleDeg1Lift.ceil_map_map_zero_le
+-/
+#print CircleDeg1Lift.map_map_zero_lt /-
theorem map_map_zero_lt : f (g 0) < f 0 + g 0 + 1 :=
calc
f (g 0) ≤ f 0 + ⌈g 0⌉ := f.map_map_zero_le g
_ < f 0 + (g 0 + 1) := (add_lt_add_left (ceil_lt_add_one _) _)
_ = f 0 + g 0 + 1 := (add_assoc _ _ _).symm
#align circle_deg1_lift.map_map_zero_lt CircleDeg1Lift.map_map_zero_lt
+-/
+#print CircleDeg1Lift.le_map_of_map_zero /-
theorem le_map_of_map_zero (x : ℝ) : f 0 + ⌊x⌋ ≤ f x :=
calc
f 0 + ⌊x⌋ = f ⌊x⌋ := (f.map_int_of_map_zero _).symm
_ ≤ f x := f.Monotone <| floor_le _
#align circle_deg1_lift.le_map_of_map_zero CircleDeg1Lift.le_map_of_map_zero
+-/
+#print CircleDeg1Lift.le_map_map_zero /-
theorem le_map_map_zero : f 0 + ⌊g 0⌋ ≤ f (g 0) :=
f.le_map_of_map_zero (g 0)
#align circle_deg1_lift.le_map_map_zero CircleDeg1Lift.le_map_map_zero
+-/
+#print CircleDeg1Lift.le_floor_map_map_zero /-
theorem le_floor_map_map_zero : ⌊f 0⌋ + ⌊g 0⌋ ≤ ⌊f (g 0)⌋ :=
calc
⌊f 0⌋ + ⌊g 0⌋ = ⌊f 0 + ⌊g 0⌋⌋ := (floor_add_int _ _).symm
_ ≤ ⌊f (g 0)⌋ := floor_mono <| f.le_map_map_zero g
#align circle_deg1_lift.le_floor_map_map_zero CircleDeg1Lift.le_floor_map_map_zero
+-/
+#print CircleDeg1Lift.le_ceil_map_map_zero /-
theorem le_ceil_map_map_zero : ⌈f 0⌉ + ⌊g 0⌋ ≤ ⌈(f * g) 0⌉ :=
calc
⌈f 0⌉ + ⌊g 0⌋ = ⌈f 0 + ⌊g 0⌋⌉ := (ceil_add_int _ _).symm
_ ≤ ⌈f (g 0)⌉ := ceil_mono <| f.le_map_map_zero g
#align circle_deg1_lift.le_ceil_map_map_zero CircleDeg1Lift.le_ceil_map_map_zero
+-/
+#print CircleDeg1Lift.lt_map_map_zero /-
theorem lt_map_map_zero : f 0 + g 0 - 1 < f (g 0) :=
calc
f 0 + g 0 - 1 = f 0 + (g 0 - 1) := add_sub_assoc _ _ _
_ < f 0 + ⌊g 0⌋ := (add_lt_add_left (sub_one_lt_floor _) _)
_ ≤ f (g 0) := f.le_map_map_zero g
#align circle_deg1_lift.lt_map_map_zero CircleDeg1Lift.lt_map_map_zero
+-/
+#print CircleDeg1Lift.dist_map_map_zero_lt /-
theorem dist_map_map_zero_lt : dist (f 0 + g 0) (f (g 0)) < 1 :=
by
rw [dist_comm, Real.dist_eq, abs_lt, lt_sub_iff_add_lt', sub_lt_iff_lt_add', ← sub_eq_add_neg]
exact ⟨f.lt_map_map_zero g, f.map_map_zero_lt g⟩
#align circle_deg1_lift.dist_map_map_zero_lt CircleDeg1Lift.dist_map_map_zero_lt
+-/
+#print CircleDeg1Lift.dist_map_zero_lt_of_semiconj /-
theorem dist_map_zero_lt_of_semiconj {f g₁ g₂ : CircleDeg1Lift} (h : Function.Semiconj f g₁ g₂) :
dist (g₁ 0) (g₂ 0) < 2 :=
calc
@@ -556,34 +675,43 @@ theorem dist_map_zero_lt_of_semiconj {f g₁ g₂ : CircleDeg1Lift} (h : Functio
abs_sub_comm (g₂ (f 0))]
_ < 2 := add_lt_add (f.dist_map_map_zero_lt g₁) (g₂.dist_map_map_zero_lt f)
#align circle_deg1_lift.dist_map_zero_lt_of_semiconj CircleDeg1Lift.dist_map_zero_lt_of_semiconj
+-/
+#print CircleDeg1Lift.dist_map_zero_lt_of_semiconjBy /-
theorem dist_map_zero_lt_of_semiconjBy {f g₁ g₂ : CircleDeg1Lift} (h : SemiconjBy f g₁ g₂) :
dist (g₁ 0) (g₂ 0) < 2 :=
dist_map_zero_lt_of_semiconj <| semiconjBy_iff_semiconj.1 h
#align circle_deg1_lift.dist_map_zero_lt_of_semiconj_by CircleDeg1Lift.dist_map_zero_lt_of_semiconjBy
+-/
/-!
### Limits at infinities and continuity
-/
+#print CircleDeg1Lift.tendsto_atBot /-
protected theorem tendsto_atBot : Tendsto f atBot atBot :=
tendsto_atBot_mono f.map_le_of_map_zero <|
tendsto_atBot_add_const_left _ _ <|
(tendsto_atBot_mono fun x => (ceil_lt_add_one x).le) <|
tendsto_atBot_add_const_right _ _ tendsto_id
#align circle_deg1_lift.tendsto_at_bot CircleDeg1Lift.tendsto_atBot
+-/
+#print CircleDeg1Lift.tendsto_atTop /-
protected theorem tendsto_atTop : Tendsto f atTop atTop :=
tendsto_atTop_mono f.le_map_of_map_zero <|
tendsto_atTop_add_const_left _ _ <|
(tendsto_atTop_mono fun x => (sub_one_lt_floor x).le) <| by
simpa [sub_eq_add_neg] using tendsto_at_top_add_const_right _ _ tendsto_id
#align circle_deg1_lift.tendsto_at_top CircleDeg1Lift.tendsto_atTop
+-/
+#print CircleDeg1Lift.continuous_iff_surjective /-
theorem continuous_iff_surjective : Continuous f ↔ Function.Surjective f :=
⟨fun h => h.Surjective f.tendsto_atTop f.tendsto_atBot, f.Monotone.continuous_of_surjective⟩
#align circle_deg1_lift.continuous_iff_surjective CircleDeg1Lift.continuous_iff_surjective
+-/
/-!
### Estimates on `(f^n) x`
@@ -596,57 +724,75 @@ work for `n = 0`. For `<` and `>` we formulate only `iff` versions.
-/
+#print CircleDeg1Lift.iterate_le_of_map_le_add_int /-
theorem iterate_le_of_map_le_add_int {x : ℝ} {m : ℤ} (h : f x ≤ x + m) (n : ℕ) :
(f^[n]) x ≤ x + n * m := by
simpa only [nsmul_eq_mul, add_right_iterate] using
(f.commute_add_int m).iterate_le_of_map_le f.monotone (monotone_id.add_const m) h n
#align circle_deg1_lift.iterate_le_of_map_le_add_int CircleDeg1Lift.iterate_le_of_map_le_add_int
+-/
+#print CircleDeg1Lift.le_iterate_of_add_int_le_map /-
theorem le_iterate_of_add_int_le_map {x : ℝ} {m : ℤ} (h : x + m ≤ f x) (n : ℕ) :
x + n * m ≤ (f^[n]) x := by
simpa only [nsmul_eq_mul, add_right_iterate] using
(f.commute_add_int m).symm.iterate_le_of_map_le (monotone_id.add_const m) f.monotone h n
#align circle_deg1_lift.le_iterate_of_add_int_le_map CircleDeg1Lift.le_iterate_of_add_int_le_map
+-/
+#print CircleDeg1Lift.iterate_eq_of_map_eq_add_int /-
theorem iterate_eq_of_map_eq_add_int {x : ℝ} {m : ℤ} (h : f x = x + m) (n : ℕ) :
(f^[n]) x = x + n * m := by
simpa only [nsmul_eq_mul, add_right_iterate] using (f.commute_add_int m).iterate_eq_of_map_eq n h
#align circle_deg1_lift.iterate_eq_of_map_eq_add_int CircleDeg1Lift.iterate_eq_of_map_eq_add_int
+-/
+#print CircleDeg1Lift.iterate_pos_le_iff /-
theorem iterate_pos_le_iff {x : ℝ} {m : ℤ} {n : ℕ} (hn : 0 < n) :
(f^[n]) x ≤ x + n * m ↔ f x ≤ x + m := by
simpa only [nsmul_eq_mul, add_right_iterate] using
(f.commute_add_int m).iterate_pos_le_iff_map_le f.monotone (strict_mono_id.add_const m) hn
#align circle_deg1_lift.iterate_pos_le_iff CircleDeg1Lift.iterate_pos_le_iff
+-/
+#print CircleDeg1Lift.iterate_pos_lt_iff /-
theorem iterate_pos_lt_iff {x : ℝ} {m : ℤ} {n : ℕ} (hn : 0 < n) :
(f^[n]) x < x + n * m ↔ f x < x + m := by
simpa only [nsmul_eq_mul, add_right_iterate] using
(f.commute_add_int m).iterate_pos_lt_iff_map_lt f.monotone (strict_mono_id.add_const m) hn
#align circle_deg1_lift.iterate_pos_lt_iff CircleDeg1Lift.iterate_pos_lt_iff
+-/
+#print CircleDeg1Lift.iterate_pos_eq_iff /-
theorem iterate_pos_eq_iff {x : ℝ} {m : ℤ} {n : ℕ} (hn : 0 < n) :
(f^[n]) x = x + n * m ↔ f x = x + m := by
simpa only [nsmul_eq_mul, add_right_iterate] using
(f.commute_add_int m).iterate_pos_eq_iff_map_eq f.monotone (strict_mono_id.add_const m) hn
#align circle_deg1_lift.iterate_pos_eq_iff CircleDeg1Lift.iterate_pos_eq_iff
+-/
+#print CircleDeg1Lift.le_iterate_pos_iff /-
theorem le_iterate_pos_iff {x : ℝ} {m : ℤ} {n : ℕ} (hn : 0 < n) :
x + n * m ≤ (f^[n]) x ↔ x + m ≤ f x := by
simpa only [not_lt] using not_congr (f.iterate_pos_lt_iff hn)
#align circle_deg1_lift.le_iterate_pos_iff CircleDeg1Lift.le_iterate_pos_iff
+-/
+#print CircleDeg1Lift.lt_iterate_pos_iff /-
theorem lt_iterate_pos_iff {x : ℝ} {m : ℤ} {n : ℕ} (hn : 0 < n) :
x + n * m < (f^[n]) x ↔ x + m < f x := by
simpa only [not_le] using not_congr (f.iterate_pos_le_iff hn)
#align circle_deg1_lift.lt_iterate_pos_iff CircleDeg1Lift.lt_iterate_pos_iff
+-/
+#print CircleDeg1Lift.mul_floor_map_zero_le_floor_iterate_zero /-
theorem mul_floor_map_zero_le_floor_iterate_zero (n : ℕ) : ↑n * ⌊f 0⌋ ≤ ⌊(f^[n]) 0⌋ :=
by
rw [le_floor, Int.cast_mul, Int.cast_ofNat, ← zero_add ((n : ℝ) * _)]
apply le_iterate_of_add_int_le_map
simp [floor_le]
#align circle_deg1_lift.mul_floor_map_zero_le_floor_iterate_zero CircleDeg1Lift.mul_floor_map_zero_le_floor_iterate_zero
+-/
/-!
### Definition of translation number
@@ -671,14 +817,15 @@ def translationNumber : ℝ :=
#align circle_deg1_lift.translation_number CircleDeg1Lift.translationNumber
-/
--- mathport name: exprτ
-- TODO: choose two different symbols for `circle_deg1_lift.translation_number` and the future
-- `circle_mono_homeo.rotation_number`, then make them `localized notation`s
local notation "τ" => translationNumber
+#print CircleDeg1Lift.transnumAuxSeq_def /-
theorem transnumAuxSeq_def : f.transnumAuxSeq = fun n : ℕ => (f ^ 2 ^ n) 0 / 2 ^ n :=
rfl
#align circle_deg1_lift.transnum_aux_seq_def CircleDeg1Lift.transnumAuxSeq_def
+-/
#print CircleDeg1Lift.translationNumber_eq_of_tendsto_aux /-
theorem translationNumber_eq_of_tendsto_aux {τ' : ℝ} (h : Tendsto f.transnumAuxSeq atTop (𝓝 τ')) :
@@ -687,21 +834,28 @@ theorem translationNumber_eq_of_tendsto_aux {τ' : ℝ} (h : Tendsto f.transnumA
#align circle_deg1_lift.translation_number_eq_of_tendsto_aux CircleDeg1Lift.translationNumber_eq_of_tendsto_aux
-/
+#print CircleDeg1Lift.translationNumber_eq_of_tendsto₀ /-
theorem translationNumber_eq_of_tendsto₀ {τ' : ℝ}
(h : Tendsto (fun n : ℕ => (f^[n]) 0 / n) atTop (𝓝 τ')) : τ f = τ' :=
f.translationNumber_eq_of_tendsto_aux <| by
simpa [(· ∘ ·), transnum_aux_seq_def, coe_pow] using
h.comp (Nat.tendsto_pow_atTop_atTop_of_one_lt one_lt_two)
#align circle_deg1_lift.translation_number_eq_of_tendsto₀ CircleDeg1Lift.translationNumber_eq_of_tendsto₀
+-/
+#print CircleDeg1Lift.translationNumber_eq_of_tendsto₀' /-
theorem translationNumber_eq_of_tendsto₀' {τ' : ℝ}
(h : Tendsto (fun n : ℕ => (f^[n + 1]) 0 / (n + 1)) atTop (𝓝 τ')) : τ f = τ' :=
f.translationNumber_eq_of_tendsto₀ <| (tendsto_add_atTop_iff_nat 1).1 (by exact_mod_cast h)
#align circle_deg1_lift.translation_number_eq_of_tendsto₀' CircleDeg1Lift.translationNumber_eq_of_tendsto₀'
+-/
+#print CircleDeg1Lift.transnumAuxSeq_zero /-
theorem transnumAuxSeq_zero : f.transnumAuxSeq 0 = f 0 := by simp [transnum_aux_seq]
#align circle_deg1_lift.transnum_aux_seq_zero CircleDeg1Lift.transnumAuxSeq_zero
+-/
+#print CircleDeg1Lift.transnumAuxSeq_dist_lt /-
theorem transnumAuxSeq_dist_lt (n : ℕ) :
dist (f.transnumAuxSeq n) (f.transnumAuxSeq (n + 1)) < 1 / 2 / 2 ^ n :=
by
@@ -713,6 +867,7 @@ theorem transnumAuxSeq_dist_lt (n : ℕ) :
rw [← abs_div, sub_div, pow_succ', pow_succ, ← two_mul, mul_div_mul_left _ _ (two_ne_zero' ℝ),
pow_mul, sq, mul_apply]
#align circle_deg1_lift.transnum_aux_seq_dist_lt CircleDeg1Lift.transnumAuxSeq_dist_lt
+-/
#print CircleDeg1Lift.tendsto_translationNumber_aux /-
theorem tendsto_translationNumber_aux : Tendsto f.transnumAuxSeq atTop (𝓝 <| τ f) :=
@@ -720,12 +875,15 @@ theorem tendsto_translationNumber_aux : Tendsto f.transnumAuxSeq atTop (𝓝 <|
#align circle_deg1_lift.tendsto_translation_number_aux CircleDeg1Lift.tendsto_translationNumber_aux
-/
+#print CircleDeg1Lift.dist_map_zero_translationNumber_le /-
theorem dist_map_zero_translationNumber_le : dist (f 0) (τ f) ≤ 1 :=
f.transnumAuxSeq_zero ▸
dist_le_of_le_geometric_two_of_tendsto₀ 1 (fun n => le_of_lt <| f.transnumAuxSeq_dist_lt n)
f.tendsto_translationNumber_aux
#align circle_deg1_lift.dist_map_zero_translation_number_le CircleDeg1Lift.dist_map_zero_translationNumber_le
+-/
+#print CircleDeg1Lift.tendsto_translationNumber_of_dist_bounded_aux /-
theorem tendsto_translationNumber_of_dist_bounded_aux (x : ℕ → ℝ) (C : ℝ)
(H : ∀ n : ℕ, dist ((f ^ n) 0) (x n) ≤ C) :
Tendsto (fun n : ℕ => x (2 ^ n) / 2 ^ n) atTop (𝓝 <| τ f) :=
@@ -742,29 +900,39 @@ theorem tendsto_translationNumber_of_dist_bounded_aux (x : ℕ → ℝ) (C : ℝ
tendsto_const_nhds.mul
(tendsto_inv_at_top_zero.comp <| tendsto_pow_atTop_atTop_of_one_lt one_lt_two)
#align circle_deg1_lift.tendsto_translation_number_of_dist_bounded_aux CircleDeg1Lift.tendsto_translationNumber_of_dist_bounded_aux
+-/
+#print CircleDeg1Lift.translationNumber_eq_of_dist_bounded /-
theorem translationNumber_eq_of_dist_bounded {f g : CircleDeg1Lift} (C : ℝ)
(H : ∀ n : ℕ, dist ((f ^ n) 0) ((g ^ n) 0) ≤ C) : τ f = τ g :=
Eq.symm <|
g.translationNumber_eq_of_tendsto_aux <| f.tendsto_translationNumber_of_dist_bounded_aux _ C H
#align circle_deg1_lift.translation_number_eq_of_dist_bounded CircleDeg1Lift.translationNumber_eq_of_dist_bounded
+-/
+#print CircleDeg1Lift.translationNumber_one /-
@[simp]
theorem translationNumber_one : τ 1 = 0 :=
translationNumber_eq_of_tendsto₀ _ <| by simp [tendsto_const_nhds]
#align circle_deg1_lift.translation_number_one CircleDeg1Lift.translationNumber_one
+-/
+#print CircleDeg1Lift.translationNumber_eq_of_semiconjBy /-
theorem translationNumber_eq_of_semiconjBy {f g₁ g₂ : CircleDeg1Lift} (H : SemiconjBy f g₁ g₂) :
τ g₁ = τ g₂ :=
translationNumber_eq_of_dist_bounded 2 fun n =>
le_of_lt <| dist_map_zero_lt_of_semiconjBy <| H.pow_right n
#align circle_deg1_lift.translation_number_eq_of_semiconj_by CircleDeg1Lift.translationNumber_eq_of_semiconjBy
+-/
+#print CircleDeg1Lift.translationNumber_eq_of_semiconj /-
theorem translationNumber_eq_of_semiconj {f g₁ g₂ : CircleDeg1Lift}
(H : Function.Semiconj f g₁ g₂) : τ g₁ = τ g₂ :=
translationNumber_eq_of_semiconjBy <| semiconjBy_iff_semiconj.2 H
#align circle_deg1_lift.translation_number_eq_of_semiconj CircleDeg1Lift.translationNumber_eq_of_semiconj
+-/
+#print CircleDeg1Lift.translationNumber_mul_of_commute /-
theorem translationNumber_mul_of_commute {f g : CircleDeg1Lift} (h : Commute f g) :
τ (f * g) = τ f + τ g :=
by
@@ -778,13 +946,17 @@ theorem translationNumber_mul_of_commute {f g : CircleDeg1Lift} (h : Commute f g
rw [h.mul_pow, dist_comm]
exact le_of_lt ((f ^ n).dist_map_map_zero_lt (g ^ n))
#align circle_deg1_lift.translation_number_mul_of_commute CircleDeg1Lift.translationNumber_mul_of_commute
+-/
+#print CircleDeg1Lift.translationNumber_units_inv /-
@[simp]
theorem translationNumber_units_inv (f : CircleDeg1Liftˣ) : τ ↑f⁻¹ = -τ f :=
eq_neg_iff_add_eq_zero.2 <| by
simp [← translation_number_mul_of_commute (Commute.refl _).units_inv_left]
#align circle_deg1_lift.translation_number_units_inv CircleDeg1Lift.translationNumber_units_inv
+-/
+#print CircleDeg1Lift.translationNumber_pow /-
@[simp]
theorem translationNumber_pow : ∀ n : ℕ, τ (f ^ n) = n * τ f
| 0 => by simp
@@ -792,30 +964,40 @@ theorem translationNumber_pow : ∀ n : ℕ, τ (f ^ n) = n * τ f
rw [pow_succ', translation_number_mul_of_commute (Commute.pow_self f n),
translation_number_pow n, Nat.cast_add_one, add_mul, one_mul]
#align circle_deg1_lift.translation_number_pow CircleDeg1Lift.translationNumber_pow
+-/
+#print CircleDeg1Lift.translationNumber_zpow /-
@[simp]
theorem translationNumber_zpow (f : CircleDeg1Liftˣ) : ∀ n : ℤ, τ (f ^ n : Units _) = n * τ f
| (n : ℕ) => by simp [translation_number_pow f n]
| -[n+1] => by simp; ring
#align circle_deg1_lift.translation_number_zpow CircleDeg1Lift.translationNumber_zpow
+-/
+#print CircleDeg1Lift.translationNumber_conj_eq /-
@[simp]
theorem translationNumber_conj_eq (f : CircleDeg1Liftˣ) (g : CircleDeg1Lift) :
τ (↑f * g * ↑f⁻¹) = τ g :=
(translationNumber_eq_of_semiconjBy (f.mk_semiconjBy g)).symm
#align circle_deg1_lift.translation_number_conj_eq CircleDeg1Lift.translationNumber_conj_eq
+-/
+#print CircleDeg1Lift.translationNumber_conj_eq' /-
@[simp]
theorem translationNumber_conj_eq' (f : CircleDeg1Liftˣ) (g : CircleDeg1Lift) :
τ (↑f⁻¹ * g * f) = τ g :=
translationNumber_conj_eq f⁻¹ g
#align circle_deg1_lift.translation_number_conj_eq' CircleDeg1Lift.translationNumber_conj_eq'
+-/
+#print CircleDeg1Lift.dist_pow_map_zero_mul_translationNumber_le /-
theorem dist_pow_map_zero_mul_translationNumber_le (n : ℕ) :
dist ((f ^ n) 0) (n * f.translationNumber) ≤ 1 :=
f.translationNumber_pow n ▸ (f ^ n).dist_map_zero_translationNumber_le
#align circle_deg1_lift.dist_pow_map_zero_mul_translation_number_le CircleDeg1Lift.dist_pow_map_zero_mul_translationNumber_le
+-/
+#print CircleDeg1Lift.tendsto_translation_number₀' /-
theorem tendsto_translation_number₀' :
Tendsto (fun n : ℕ => (f ^ (n + 1)) 0 / (n + 1)) atTop (𝓝 <| τ f) :=
by
@@ -829,11 +1011,15 @@ theorem tendsto_translation_number₀' :
Nat.cast_add_one, div_le_div_right this, ← Nat.cast_add_one]
apply dist_pow_map_zero_mul_translation_number_le
#align circle_deg1_lift.tendsto_translation_number₀' CircleDeg1Lift.tendsto_translation_number₀'
+-/
+#print CircleDeg1Lift.tendsto_translation_number₀ /-
theorem tendsto_translation_number₀ : Tendsto (fun n : ℕ => (f ^ n) 0 / n) atTop (𝓝 <| τ f) :=
(tendsto_add_atTop_iff_nat 1).1 (by exact_mod_cast f.tendsto_translation_number₀')
#align circle_deg1_lift.tendsto_translation_number₀ CircleDeg1Lift.tendsto_translation_number₀
+-/
+#print CircleDeg1Lift.tendsto_translationNumber /-
/-- For any `x : ℝ` the sequence $\frac{f^n(x)-x}{n}$ tends to the translation number of `f`.
In particular, this limit does not depend on `x`. -/
theorem tendsto_translationNumber (x : ℝ) :
@@ -844,32 +1030,44 @@ theorem tendsto_translationNumber (x : ℝ) :
ext n
simp [sub_eq_neg_add, Units.conj_pow']
#align circle_deg1_lift.tendsto_translation_number CircleDeg1Lift.tendsto_translationNumber
+-/
+#print CircleDeg1Lift.tendsto_translation_number' /-
theorem tendsto_translation_number' (x : ℝ) :
Tendsto (fun n : ℕ => ((f ^ (n + 1)) x - x) / (n + 1)) atTop (𝓝 <| τ f) := by
exact_mod_cast (tendsto_add_at_top_iff_nat 1).2 (f.tendsto_translation_number x)
#align circle_deg1_lift.tendsto_translation_number' CircleDeg1Lift.tendsto_translation_number'
+-/
+#print CircleDeg1Lift.translationNumber_mono /-
theorem translationNumber_mono : Monotone τ := fun f g h =>
le_of_tendsto_of_tendsto' f.tendsto_translation_number₀ g.tendsto_translation_number₀ fun n =>
div_le_div_of_le_of_nonneg (pow_mono h n 0) n.cast_nonneg
#align circle_deg1_lift.translation_number_mono CircleDeg1Lift.translationNumber_mono
+-/
+#print CircleDeg1Lift.translationNumber_translate /-
theorem translationNumber_translate (x : ℝ) : τ (translate <| Multiplicative.ofAdd x) = x :=
translationNumber_eq_of_tendsto₀' _ <| by
simp [Nat.cast_add_one_ne_zero, mul_div_cancel_left, tendsto_const_nhds]
#align circle_deg1_lift.translation_number_translate CircleDeg1Lift.translationNumber_translate
+-/
+#print CircleDeg1Lift.translationNumber_le_of_le_add /-
theorem translationNumber_le_of_le_add {z : ℝ} (hz : ∀ x, f x ≤ x + z) : τ f ≤ z :=
translationNumber_translate z ▸
translationNumber_mono fun x => trans_rel_left _ (hz x) (add_comm _ _)
#align circle_deg1_lift.translation_number_le_of_le_add CircleDeg1Lift.translationNumber_le_of_le_add
+-/
+#print CircleDeg1Lift.le_translationNumber_of_add_le /-
theorem le_translationNumber_of_add_le {z : ℝ} (hz : ∀ x, x + z ≤ f x) : z ≤ τ f :=
translationNumber_translate z ▸
translationNumber_mono fun x => trans_rel_right _ (add_comm _ _) (hz x)
#align circle_deg1_lift.le_translation_number_of_add_le CircleDeg1Lift.le_translationNumber_of_add_le
+-/
+#print CircleDeg1Lift.translationNumber_le_of_le_add_int /-
theorem translationNumber_le_of_le_add_int {x : ℝ} {m : ℤ} (h : f x ≤ x + m) : τ f ≤ m :=
le_of_tendsto' (f.tendsto_translation_number' x) fun n =>
(div_le_iff' (n.cast_add_one_pos : (0 : ℝ) < _)).mpr <|
@@ -877,45 +1075,63 @@ theorem translationNumber_le_of_le_add_int {x : ℝ} {m : ℤ} (h : f x ≤ x +
(coe_pow f (n + 1)).symm ▸
@Nat.cast_add_one ℝ _ n ▸ f.iterate_le_of_map_le_add_int h (n + 1)
#align circle_deg1_lift.translation_number_le_of_le_add_int CircleDeg1Lift.translationNumber_le_of_le_add_int
+-/
+#print CircleDeg1Lift.translationNumber_le_of_le_add_nat /-
theorem translationNumber_le_of_le_add_nat {x : ℝ} {m : ℕ} (h : f x ≤ x + m) : τ f ≤ m :=
@translationNumber_le_of_le_add_int f x m h
#align circle_deg1_lift.translation_number_le_of_le_add_nat CircleDeg1Lift.translationNumber_le_of_le_add_nat
+-/
+#print CircleDeg1Lift.le_translationNumber_of_add_int_le /-
theorem le_translationNumber_of_add_int_le {x : ℝ} {m : ℤ} (h : x + m ≤ f x) : ↑m ≤ τ f :=
ge_of_tendsto' (f.tendsto_translation_number' x) fun n =>
(le_div_iff (n.cast_add_one_pos : (0 : ℝ) < _)).mpr <|
le_sub_iff_add_le'.2 <| by
simp only [coe_pow, mul_comm (m : ℝ), ← Nat.cast_add_one, f.le_iterate_of_add_int_le_map h]
#align circle_deg1_lift.le_translation_number_of_add_int_le CircleDeg1Lift.le_translationNumber_of_add_int_le
+-/
+#print CircleDeg1Lift.le_translationNumber_of_add_nat_le /-
theorem le_translationNumber_of_add_nat_le {x : ℝ} {m : ℕ} (h : x + m ≤ f x) : ↑m ≤ τ f :=
@le_translationNumber_of_add_int_le f x m h
#align circle_deg1_lift.le_translation_number_of_add_nat_le CircleDeg1Lift.le_translationNumber_of_add_nat_le
+-/
+#print CircleDeg1Lift.translationNumber_of_eq_add_int /-
/-- If `f x - x` is an integer number `m` for some point `x`, then `τ f = m`.
On the circle this means that a map with a fixed point has rotation number zero. -/
theorem translationNumber_of_eq_add_int {x : ℝ} {m : ℤ} (h : f x = x + m) : τ f = m :=
le_antisymm (translationNumber_le_of_le_add_int f <| le_of_eq h)
(le_translationNumber_of_add_int_le f <| le_of_eq h.symm)
#align circle_deg1_lift.translation_number_of_eq_add_int CircleDeg1Lift.translationNumber_of_eq_add_int
+-/
+#print CircleDeg1Lift.floor_sub_le_translationNumber /-
theorem floor_sub_le_translationNumber (x : ℝ) : ↑⌊f x - x⌋ ≤ τ f :=
le_translationNumber_of_add_int_le f <| le_sub_iff_add_le'.1 (floor_le <| f x - x)
#align circle_deg1_lift.floor_sub_le_translation_number CircleDeg1Lift.floor_sub_le_translationNumber
+-/
+#print CircleDeg1Lift.translationNumber_le_ceil_sub /-
theorem translationNumber_le_ceil_sub (x : ℝ) : τ f ≤ ⌈f x - x⌉ :=
translationNumber_le_of_le_add_int f <| sub_le_iff_le_add'.1 (le_ceil <| f x - x)
#align circle_deg1_lift.translation_number_le_ceil_sub CircleDeg1Lift.translationNumber_le_ceil_sub
+-/
+#print CircleDeg1Lift.map_lt_of_translationNumber_lt_int /-
theorem map_lt_of_translationNumber_lt_int {n : ℤ} (h : τ f < n) (x : ℝ) : f x < x + n :=
not_le.1 <| mt f.le_translationNumber_of_add_int_le <| not_le.2 h
#align circle_deg1_lift.map_lt_of_translation_number_lt_int CircleDeg1Lift.map_lt_of_translationNumber_lt_int
+-/
+#print CircleDeg1Lift.map_lt_of_translationNumber_lt_nat /-
theorem map_lt_of_translationNumber_lt_nat {n : ℕ} (h : τ f < n) (x : ℝ) : f x < x + n :=
@map_lt_of_translationNumber_lt_int f n h x
#align circle_deg1_lift.map_lt_of_translation_number_lt_nat CircleDeg1Lift.map_lt_of_translationNumber_lt_nat
+-/
+#print CircleDeg1Lift.map_lt_add_floor_translationNumber_add_one /-
theorem map_lt_add_floor_translationNumber_add_one (x : ℝ) : f x < x + ⌊τ f⌋ + 1 :=
by
rw [add_assoc]
@@ -924,21 +1140,29 @@ theorem map_lt_add_floor_translationNumber_add_one (x : ℝ) : f x < x + ⌊τ f
push_cast
exact lt_floor_add_one _
#align circle_deg1_lift.map_lt_add_floor_translation_number_add_one CircleDeg1Lift.map_lt_add_floor_translationNumber_add_one
+-/
+#print CircleDeg1Lift.map_lt_add_translationNumber_add_one /-
theorem map_lt_add_translationNumber_add_one (x : ℝ) : f x < x + τ f + 1 :=
calc
f x < x + ⌊τ f⌋ + 1 := f.map_lt_add_floor_translationNumber_add_one x
_ ≤ x + τ f + 1 := by mono*; exact floor_le (τ f)
#align circle_deg1_lift.map_lt_add_translation_number_add_one CircleDeg1Lift.map_lt_add_translationNumber_add_one
+-/
+#print CircleDeg1Lift.lt_map_of_int_lt_translationNumber /-
theorem lt_map_of_int_lt_translationNumber {n : ℤ} (h : ↑n < τ f) (x : ℝ) : x + n < f x :=
not_le.1 <| mt f.translationNumber_le_of_le_add_int <| not_le.2 h
#align circle_deg1_lift.lt_map_of_int_lt_translation_number CircleDeg1Lift.lt_map_of_int_lt_translationNumber
+-/
+#print CircleDeg1Lift.lt_map_of_nat_lt_translationNumber /-
theorem lt_map_of_nat_lt_translationNumber {n : ℕ} (h : ↑n < τ f) (x : ℝ) : x + n < f x :=
@lt_map_of_int_lt_translationNumber f n h x
#align circle_deg1_lift.lt_map_of_nat_lt_translation_number CircleDeg1Lift.lt_map_of_nat_lt_translationNumber
+-/
+#print CircleDeg1Lift.translationNumber_of_map_pow_eq_add_int /-
/-- If `f^n x - x`, `n > 0`, is an integer number `m` for some point `x`, then
`τ f = m / n`. On the circle this means that a map with a periodic orbit has
a rational rotation number. -/
@@ -949,14 +1173,18 @@ theorem translationNumber_of_map_pow_eq_add_int {x : ℝ} {n : ℕ} {m : ℤ} (h
rwa [translation_number_pow, mul_comm, ← eq_div_iff] at this
exact Nat.cast_ne_zero.2 (ne_of_gt hn)
#align circle_deg1_lift.translation_number_of_map_pow_eq_add_int CircleDeg1Lift.translationNumber_of_map_pow_eq_add_int
+-/
+#print CircleDeg1Lift.forall_map_sub_of_Icc /-
/-- If a predicate depends only on `f x - x` and holds for all `0 ≤ x ≤ 1`,
then it holds for all `x`. -/
theorem forall_map_sub_of_Icc (P : ℝ → Prop) (h : ∀ x ∈ Icc (0 : ℝ) 1, P (f x - x)) (x : ℝ) :
P (f x - x) :=
f.map_fract_sub_fract_eq x ▸ h _ ⟨fract_nonneg _, le_of_lt (fract_lt_one _)⟩
#align circle_deg1_lift.forall_map_sub_of_Icc CircleDeg1Lift.forall_map_sub_of_Icc
+-/
+#print CircleDeg1Lift.translationNumber_lt_of_forall_lt_add /-
theorem translationNumber_lt_of_forall_lt_add (hf : Continuous f) {z : ℝ} (hz : ∀ x, f x < x + z) :
τ f < z :=
by
@@ -968,7 +1196,9 @@ theorem translationNumber_lt_of_forall_lt_add (hf : Continuous f) {z : ℝ} (hz
simp only [← sub_le_iff_le_add']
exact f.forall_map_sub_of_Icc (fun a => a ≤ f x - x) hx
#align circle_deg1_lift.translation_number_lt_of_forall_lt_add CircleDeg1Lift.translationNumber_lt_of_forall_lt_add
+-/
+#print CircleDeg1Lift.lt_translationNumber_of_forall_add_lt /-
theorem lt_translationNumber_of_forall_add_lt (hf : Continuous f) {z : ℝ} (hz : ∀ x, x + z < f x) :
z < τ f :=
by
@@ -980,7 +1210,9 @@ theorem lt_translationNumber_of_forall_add_lt (hf : Continuous f) {z : ℝ} (hz
simp only [← le_sub_iff_add_le']
exact f.forall_map_sub_of_Icc _ hx
#align circle_deg1_lift.lt_translation_number_of_forall_add_lt CircleDeg1Lift.lt_translationNumber_of_forall_add_lt
+-/
+#print CircleDeg1Lift.exists_eq_add_translationNumber /-
/-- If `f` is a continuous monotone map `ℝ → ℝ`, `f (x + 1) = f x + 1`, then there exists `x`
such that `f x = x + τ f`. -/
theorem exists_eq_add_translationNumber (hf : Continuous f) : ∃ x, f x = x + τ f :=
@@ -994,25 +1226,33 @@ theorem exists_eq_add_translationNumber (hf : Continuous f) : ∃ x, f x = x +
exact lt_irrefl _ (f.translation_number_lt_of_forall_lt_add hf H)
exact intermediate_value_univ₂ hf (continuous_id.add continuous_const) ha hb
#align circle_deg1_lift.exists_eq_add_translation_number CircleDeg1Lift.exists_eq_add_translationNumber
+-/
+#print CircleDeg1Lift.translationNumber_eq_int_iff /-
theorem translationNumber_eq_int_iff (hf : Continuous f) {m : ℤ} : τ f = m ↔ ∃ x, f x = x + m :=
by
refine' ⟨fun h => h ▸ f.exists_eq_add_translation_number hf, _⟩
rintro ⟨x, hx⟩
exact f.translation_number_of_eq_add_int hx
#align circle_deg1_lift.translation_number_eq_int_iff CircleDeg1Lift.translationNumber_eq_int_iff
+-/
+#print CircleDeg1Lift.continuous_pow /-
theorem continuous_pow (hf : Continuous f) (n : ℕ) : Continuous ⇑(f ^ n : CircleDeg1Lift) := by
rw [coe_pow]; exact hf.iterate n
#align circle_deg1_lift.continuous_pow CircleDeg1Lift.continuous_pow
+-/
+#print CircleDeg1Lift.translationNumber_eq_rat_iff /-
theorem translationNumber_eq_rat_iff (hf : Continuous f) {m : ℤ} {n : ℕ} (hn : 0 < n) :
τ f = m / n ↔ ∃ x, (f ^ n) x = x + m :=
by
rw [eq_div_iff, mul_comm, ← translation_number_pow] <;> [skip; exact ne_of_gt (Nat.cast_pos.2 hn)]
exact (f ^ n).translationNumber_eq_int_iff (f.continuous_pow hf n)
#align circle_deg1_lift.translation_number_eq_rat_iff CircleDeg1Lift.translationNumber_eq_rat_iff
+-/
+#print CircleDeg1Lift.semiconj_of_group_action_of_forall_translationNumber_eq /-
/-- Consider two actions `f₁ f₂ : G →* circle_deg1_lift` of a group on the real line by lifts of
orientation preserving circle homeomorphisms. Suppose that for each `g : G` the homeomorphisms
`f₁ g` and `f₂ g` have equal rotation numbers. Then there exists `F : circle_deg1_lift` such that
@@ -1058,7 +1298,9 @@ theorem semiconj_of_group_action_of_forall_translationNumber_eq {G : Type _} [Gr
(monotone_id.add_const (1 : ℝ)) (this x)).symm
· exact this x
#align circle_deg1_lift.semiconj_of_group_action_of_forall_translation_number_eq CircleDeg1Lift.semiconj_of_group_action_of_forall_translationNumber_eq
+-/
+#print CircleDeg1Lift.units_semiconj_of_translationNumber_eq /-
/-- If two lifts of circle homeomorphisms have the same translation number, then they are
semiconjugate by a `circle_deg1_lift`. This version uses arguments `f₁ f₂ : circle_deg1_liftˣ`
to assume that `f₁` and `f₂` are homeomorphisms. -/
@@ -1072,7 +1314,9 @@ theorem units_semiconj_of_translationNumber_eq {f₁ f₂ : CircleDeg1Liftˣ} (h
(semiconj_of_group_action_of_forall_translation_number_eq _ _ this).imp fun F hF =>
hF (Multiplicative.ofAdd 1)
#align circle_deg1_lift.units_semiconj_of_translation_number_eq CircleDeg1Lift.units_semiconj_of_translationNumber_eq
+-/
+#print CircleDeg1Lift.semiconj_of_isUnit_of_translationNumber_eq /-
/-- If two lifts of circle homeomorphisms have the same translation number, then they are
semiconjugate by a `circle_deg1_lift`. This version uses assumptions `is_unit f₁` and `is_unit f₂`
to assume that `f₁` and `f₂` are homeomorphisms. -/
@@ -1080,7 +1324,9 @@ theorem semiconj_of_isUnit_of_translationNumber_eq {f₁ f₂ : CircleDeg1Lift}
(h₂ : IsUnit f₂) (h : τ f₁ = τ f₂) : ∃ F : CircleDeg1Lift, Semiconj F f₁ f₂ := by
rcases h₁, h₂ with ⟨⟨f₁, rfl⟩, ⟨f₂, rfl⟩⟩; exact units_semiconj_of_translation_number_eq h
#align circle_deg1_lift.semiconj_of_is_unit_of_translation_number_eq CircleDeg1Lift.semiconj_of_isUnit_of_translationNumber_eq
+-/
+#print CircleDeg1Lift.semiconj_of_bijective_of_translationNumber_eq /-
/-- If two lifts of circle homeomorphisms have the same translation number, then they are
semiconjugate by a `circle_deg1_lift`. This version uses assumptions `bijective f₁` and
`bijective f₂` to assume that `f₁` and `f₂` are homeomorphisms. -/
@@ -1089,6 +1335,7 @@ theorem semiconj_of_bijective_of_translationNumber_eq {f₁ f₂ : CircleDeg1Lif
semiconj_of_isUnit_of_translationNumber_eq (isUnit_iff_bijective.2 h₁) (isUnit_iff_bijective.2 h₂)
h
#align circle_deg1_lift.semiconj_of_bijective_of_translation_number_eq CircleDeg1Lift.semiconj_of_bijective_of_translationNumber_eq
+-/
end CircleDeg1Lift
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -487,7 +487,6 @@ theorem map_le_of_map_zero (x : ℝ) : f x ≤ f 0 + ⌈x⌉ :=
calc
f x ≤ f ⌈x⌉ := f.Monotone <| le_ceil _
_ = f 0 + ⌈x⌉ := f.map_int_of_map_zero _
-
#align circle_deg1_lift.map_le_of_map_zero CircleDeg1Lift.map_le_of_map_zero
theorem map_map_zero_le : f (g 0) ≤ f 0 + ⌈g 0⌉ :=
@@ -498,14 +497,12 @@ theorem floor_map_map_zero_le : ⌊f (g 0)⌋ ≤ ⌊f 0⌋ + ⌈g 0⌉ :=
calc
⌊f (g 0)⌋ ≤ ⌊f 0 + ⌈g 0⌉⌋ := floor_mono <| f.map_map_zero_le g
_ = ⌊f 0⌋ + ⌈g 0⌉ := floor_add_int _ _
-
#align circle_deg1_lift.floor_map_map_zero_le CircleDeg1Lift.floor_map_map_zero_le
theorem ceil_map_map_zero_le : ⌈f (g 0)⌉ ≤ ⌈f 0⌉ + ⌈g 0⌉ :=
calc
⌈f (g 0)⌉ ≤ ⌈f 0 + ⌈g 0⌉⌉ := ceil_mono <| f.map_map_zero_le g
_ = ⌈f 0⌉ + ⌈g 0⌉ := ceil_add_int _ _
-
#align circle_deg1_lift.ceil_map_map_zero_le CircleDeg1Lift.ceil_map_map_zero_le
theorem map_map_zero_lt : f (g 0) < f 0 + g 0 + 1 :=
@@ -513,14 +510,12 @@ theorem map_map_zero_lt : f (g 0) < f 0 + g 0 + 1 :=
f (g 0) ≤ f 0 + ⌈g 0⌉ := f.map_map_zero_le g
_ < f 0 + (g 0 + 1) := (add_lt_add_left (ceil_lt_add_one _) _)
_ = f 0 + g 0 + 1 := (add_assoc _ _ _).symm
-
#align circle_deg1_lift.map_map_zero_lt CircleDeg1Lift.map_map_zero_lt
theorem le_map_of_map_zero (x : ℝ) : f 0 + ⌊x⌋ ≤ f x :=
calc
f 0 + ⌊x⌋ = f ⌊x⌋ := (f.map_int_of_map_zero _).symm
_ ≤ f x := f.Monotone <| floor_le _
-
#align circle_deg1_lift.le_map_of_map_zero CircleDeg1Lift.le_map_of_map_zero
theorem le_map_map_zero : f 0 + ⌊g 0⌋ ≤ f (g 0) :=
@@ -531,14 +526,12 @@ theorem le_floor_map_map_zero : ⌊f 0⌋ + ⌊g 0⌋ ≤ ⌊f (g 0)⌋ :=
calc
⌊f 0⌋ + ⌊g 0⌋ = ⌊f 0 + ⌊g 0⌋⌋ := (floor_add_int _ _).symm
_ ≤ ⌊f (g 0)⌋ := floor_mono <| f.le_map_map_zero g
-
#align circle_deg1_lift.le_floor_map_map_zero CircleDeg1Lift.le_floor_map_map_zero
theorem le_ceil_map_map_zero : ⌈f 0⌉ + ⌊g 0⌋ ≤ ⌈(f * g) 0⌉ :=
calc
⌈f 0⌉ + ⌊g 0⌋ = ⌈f 0 + ⌊g 0⌋⌉ := (ceil_add_int _ _).symm
_ ≤ ⌈f (g 0)⌉ := ceil_mono <| f.le_map_map_zero g
-
#align circle_deg1_lift.le_ceil_map_map_zero CircleDeg1Lift.le_ceil_map_map_zero
theorem lt_map_map_zero : f 0 + g 0 - 1 < f (g 0) :=
@@ -546,7 +539,6 @@ theorem lt_map_map_zero : f 0 + g 0 - 1 < f (g 0) :=
f 0 + g 0 - 1 = f 0 + (g 0 - 1) := add_sub_assoc _ _ _
_ < f 0 + ⌊g 0⌋ := (add_lt_add_left (sub_one_lt_floor _) _)
_ ≤ f (g 0) := f.le_map_map_zero g
-
#align circle_deg1_lift.lt_map_map_zero CircleDeg1Lift.lt_map_map_zero
theorem dist_map_map_zero_lt : dist (f 0 + g 0) (f (g 0)) < 1 :=
@@ -563,7 +555,6 @@ theorem dist_map_zero_lt_of_semiconj {f g₁ g₂ : CircleDeg1Lift} (h : Functio
simp only [h.eq, Real.dist_eq, sub_sub, add_comm (f 0), sub_sub_eq_add_sub,
abs_sub_comm (g₂ (f 0))]
_ < 2 := add_lt_add (f.dist_map_map_zero_lt g₁) (g₂.dist_map_map_zero_lt f)
-
#align circle_deg1_lift.dist_map_zero_lt_of_semiconj CircleDeg1Lift.dist_map_zero_lt_of_semiconj
theorem dist_map_zero_lt_of_semiconjBy {f g₁ g₂ : CircleDeg1Lift} (h : SemiconjBy f g₁ g₂) :
@@ -938,7 +929,6 @@ theorem map_lt_add_translationNumber_add_one (x : ℝ) : f x < x + τ f + 1 :=
calc
f x < x + ⌊τ f⌋ + 1 := f.map_lt_add_floor_translationNumber_add_one x
_ ≤ x + τ f + 1 := by mono*; exact floor_le (τ f)
-
#align circle_deg1_lift.map_lt_add_translation_number_add_one CircleDeg1Lift.map_lt_add_translationNumber_add_one
theorem lt_map_of_int_lt_translationNumber {n : ℤ} (h : ↑n < τ f) (x : ℝ) : x + n < f x :=
@@ -1050,7 +1040,6 @@ theorem semiconj_of_group_action_of_forall_translationNumber_eq {G : Type _} [Gr
_ ≤ x + τ (f₂ g) + τ (f₂ g⁻¹) + 1 + 1 := by mono;
exact (map_lt_add_translation_number_add_one _ _).le
_ = x + 2 := by simp [this, bit0, add_assoc]
-
-- We have a theorem about actions by `order_iso`, so we introduce auxiliary maps
-- to `ℝ ≃o ℝ`.
set F₁ := to_order_iso.comp f₁.to_hom_units
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -717,7 +717,7 @@ theorem transnumAuxSeq_dist_lt (n : ℕ) :
have : 0 < (2 ^ (n + 1) : ℝ) := pow_pos zero_lt_two _
rw [div_div, ← pow_succ, ← abs_of_pos this]
replace := abs_pos.2 (ne_of_gt this)
- convert(div_lt_div_right this).2 ((f ^ 2 ^ n).dist_map_map_zero_lt (f ^ 2 ^ n))
+ convert (div_lt_div_right this).2 ((f ^ 2 ^ n).dist_map_map_zero_lt (f ^ 2 ^ n))
simp_rw [transnum_aux_seq, Real.dist_eq]
rw [← abs_div, sub_div, pow_succ', pow_succ, ← two_mul, mul_div_mul_left _ _ (two_ne_zero' ℝ),
pow_mul, sq, mul_apply]
@@ -743,7 +743,7 @@ theorem tendsto_translationNumber_of_dist_bounded_aux (x : ℕ → ℝ) (C : ℝ
· exact fun n => C / 2 ^ n
· intro n
have : 0 < (2 ^ n : ℝ) := pow_pos zero_lt_two _
- convert(div_le_div_right this).2 (H (2 ^ n))
+ convert (div_le_div_right this).2 (H (2 ^ n))
rw [transnum_aux_seq, Real.dist_eq, ← sub_div, abs_div, abs_of_pos this, Real.dist_eq]
·
exact
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -956,7 +956,7 @@ theorem translationNumber_of_map_pow_eq_add_int {x : ℝ} {n : ℕ} {m : ℤ} (h
(hn : 0 < n) : τ f = m / n :=
by
have := (f ^ n).translationNumber_of_eq_add_int h
- rwa [translation_number_pow, mul_comm, ← eq_div_iff] at this
+ rwa [translation_number_pow, mul_comm, ← eq_div_iff] at this
exact Nat.cast_ne_zero.2 (ne_of_gt hn)
#align circle_deg1_lift.translation_number_of_map_pow_eq_add_int CircleDeg1Lift.translationNumber_of_map_pow_eq_add_int
@@ -1019,7 +1019,7 @@ theorem continuous_pow (hf : Continuous f) (n : ℕ) : Continuous ⇑(f ^ n : Ci
theorem translationNumber_eq_rat_iff (hf : Continuous f) {m : ℤ} {n : ℕ} (hn : 0 < n) :
τ f = m / n ↔ ∃ x, (f ^ n) x = x + m :=
by
- rw [eq_div_iff, mul_comm, ← translation_number_pow] <;> [skip;exact ne_of_gt (Nat.cast_pos.2 hn)]
+ rw [eq_div_iff, mul_comm, ← translation_number_pow] <;> [skip; exact ne_of_gt (Nat.cast_pos.2 hn)]
exact (f ^ n).translationNumber_eq_int_iff (f.continuous_pow hf n)
#align circle_deg1_lift.translation_number_eq_rat_iff CircleDeg1Lift.translationNumber_eq_rat_iff
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -180,15 +180,13 @@ theorem map_add_one : ∀ x, f (x + 1) = f x + 1 :=
theorem map_one_add (x : ℝ) : f (1 + x) = 1 + f x := by rw [add_comm, map_add_one, add_comm]
#align circle_deg1_lift.map_one_add CircleDeg1Lift.map_one_add
-/- warning: circle_deg1_lift.coe_inj clashes with [anonymous] -> [anonymous]
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_inj [anonymous]ₓ'. -/
-theorem [anonymous] : ∀ ⦃f g : CircleDeg1Lift⦄, (f : ℝ → ℝ) = g → f = g :=
+theorem coe_inj : ∀ ⦃f g : CircleDeg1Lift⦄, (f : ℝ → ℝ) = g → f = g :=
fun ⟨f, fm, fd⟩ ⟨g, gm, gd⟩ h => by congr <;> exact h
-#align circle_deg1_lift.coe_inj [anonymous]
+#align circle_deg1_lift.coe_inj CircleDeg1Lift.coe_inj
@[ext]
theorem ext ⦃f g : CircleDeg1Lift⦄ (h : ∀ x, f x = g x) : f = g :=
- [anonymous] <| funext h
+ coe_inj <| funext h
#align circle_deg1_lift.ext CircleDeg1Lift.ext
theorem ext_iff {f g : CircleDeg1Lift} : f = g ↔ ∀ x, f x = g x :=
@@ -202,9 +200,9 @@ instance : Monoid CircleDeg1Lift
monotone' := f.Monotone.comp g.Monotone
map_add_one' := fun x => by simp [map_add_one] }
one := ⟨id, monotone_id, fun _ => rfl⟩
- mul_one f := [anonymous] <| Function.comp.right_id f
- one_mul f := [anonymous] <| Function.comp.left_id f
- mul_assoc f₁ f₂ f₃ := [anonymous] rfl
+ mul_one f := coe_inj <| Function.comp.right_id f
+ one_mul f := coe_inj <| Function.comp.left_id f
+ mul_assoc f₁ f₂ f₃ := coe_inj rfl
instance : Inhabited CircleDeg1Lift :=
⟨1⟩
@@ -227,12 +225,10 @@ instance unitsHasCoeToFun : CoeFun CircleDeg1Liftˣ fun _ => ℝ → ℝ :=
⟨fun f => ⇑(f : CircleDeg1Lift)⟩
#align circle_deg1_lift.units_has_coe_to_fun CircleDeg1Lift.unitsHasCoeToFun
-/- warning: circle_deg1_lift.units_coe clashes with [anonymous] -> [anonymous]
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.units_coe [anonymous]ₓ'. -/
@[simp, norm_cast]
-theorem [anonymous] (f : CircleDeg1Liftˣ) : ⇑(f : CircleDeg1Lift) = f :=
+theorem units_coe (f : CircleDeg1Liftˣ) : ⇑(f : CircleDeg1Lift) = f :=
rfl
-#align circle_deg1_lift.units_coe [anonymous]
+#align circle_deg1_lift.units_coe CircleDeg1Lift.units_coe
@[simp]
theorem units_inv_apply_apply (f : CircleDeg1Liftˣ) (x : ℝ) : (f⁻¹ : CircleDeg1Liftˣ) (f x) = x :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -130,7 +130,7 @@ open Function hiding Commute
open Int
-open Topology Classical
+open scoped Topology Classical
/-!
### Definition and monoid structure
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -151,12 +151,6 @@ namespace CircleDeg1Lift
instance : CoeFun CircleDeg1Lift fun _ => ℝ → ℝ :=
⟨CircleDeg1Lift.toFun⟩
-/- warning: circle_deg1_lift.coe_mk -> CircleDeg1Lift.coe_mk is a dubious translation:
-lean 3 declaration is
- forall (f : Real -> Real) (h₁ : Monotone.{0, 0} Real Real Real.preorder Real.preorder f) (h₂ : forall (x : Real), Eq.{1} Real (f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (f x) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))), Eq.{1} (Real -> Real) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (CircleDeg1Lift.mk f h₁ h₂)) f
-but is expected to have type
- forall (f : OrderHom.{0, 0} Real Real Real.instPreorderReal Real.instPreorderReal) (h₁ : forall (x : Real), Eq.{1} Real (OrderHom.toFun.{0, 0} Real Real Real.instPreorderReal Real.instPreorderReal f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (OrderHom.toFun.{0, 0} Real Real Real.instPreorderReal Real.instPreorderReal f x) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))), Eq.{1} (forall (a : Real), (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (CircleDeg1Lift.mk f h₁)) (OrderHom.toFun.{0, 0} Real Real Real.instPreorderReal Real.instPreorderReal f)
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_mk CircleDeg1Lift.coe_mkₓ'. -/
@[simp]
theorem coe_mk (f h₁ h₂) : ⇑(mk f h₁ h₂) = f :=
rfl
@@ -164,86 +158,39 @@ theorem coe_mk (f h₁ h₂) : ⇑(mk f h₁ h₂) = f :=
variable (f g : CircleDeg1Lift)
-/- warning: circle_deg1_lift.monotone -> CircleDeg1Lift.monotone is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift), Monotone.{0, 0} Real Real Real.preorder Real.preorder (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f)
-but is expected to have type
- forall (f : CircleDeg1Lift), Monotone.{0, 0} Real Real Real.instPreorderReal Real.instPreorderReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f)
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.monotone CircleDeg1Lift.monotoneₓ'. -/
protected theorem monotone : Monotone f :=
f.monotone'
#align circle_deg1_lift.monotone CircleDeg1Lift.monotone
-/- warning: circle_deg1_lift.mono -> CircleDeg1Lift.mono is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) {x : Real} {y : Real}, (LE.le.{0} Real Real.hasLe x y) -> (LE.le.{0} Real Real.hasLe (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f y))
-but is expected to have type
- forall (f : CircleDeg1Lift) {x : Real} {y : Real}, (LE.le.{0} Real Real.instLEReal x y) -> (LE.le.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLEReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f y))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.mono CircleDeg1Lift.monoₓ'. -/
@[mono]
theorem mono {x y} (h : x ≤ y) : f x ≤ f y :=
f.Monotone h
#align circle_deg1_lift.mono CircleDeg1Lift.mono
-/- warning: circle_deg1_lift.strict_mono_iff_injective -> CircleDeg1Lift.strictMono_iff_injective is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift), Iff (StrictMono.{0, 0} Real Real Real.preorder Real.preorder (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f)) (Function.Injective.{1, 1} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f))
-but is expected to have type
- forall (f : CircleDeg1Lift), Iff (StrictMono.{0, 0} Real Real Real.instPreorderReal Real.instPreorderReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f)) (Function.Injective.{1, 1} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.strict_mono_iff_injective CircleDeg1Lift.strictMono_iff_injectiveₓ'. -/
theorem strictMono_iff_injective : StrictMono f ↔ Injective f :=
f.Monotone.strictMono_iff_injective
#align circle_deg1_lift.strict_mono_iff_injective CircleDeg1Lift.strictMono_iff_injective
-/- warning: circle_deg1_lift.map_add_one -> CircleDeg1Lift.map_add_one is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (x : Real), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
-but is expected to have type
- forall (f : CircleDeg1Lift) (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instAddReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) Real.instOneReal)))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_add_one CircleDeg1Lift.map_add_oneₓ'. -/
@[simp]
theorem map_add_one : ∀ x, f (x + 1) = f x + 1 :=
f.map_add_one'
#align circle_deg1_lift.map_add_one CircleDeg1Lift.map_add_one
-/- warning: circle_deg1_lift.map_one_add -> CircleDeg1Lift.map_one_add is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (x : Real), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))) x)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x))
-but is expected to have type
- forall (f : CircleDeg1Lift) (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) x)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) x)) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) x)) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) x)) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) x)) Real.instAddReal) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) x)) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) x)) Real.instOneReal)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_one_add CircleDeg1Lift.map_one_addₓ'. -/
@[simp]
theorem map_one_add (x : ℝ) : f (1 + x) = 1 + f x := by rw [add_comm, map_add_one, add_comm]
#align circle_deg1_lift.map_one_add CircleDeg1Lift.map_one_add
/- warning: circle_deg1_lift.coe_inj clashes with [anonymous] -> [anonymous]
-warning: circle_deg1_lift.coe_inj -> [anonymous] is a dubious translation:
-lean 3 declaration is
- forall {{f : CircleDeg1Lift}} {{g : CircleDeg1Lift}}, (Eq.{1} ((fun (_x : CircleDeg1Lift) => Real -> Real) f) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g)) -> (Eq.{1} CircleDeg1Lift f g)
-but is expected to have type
- forall {f : Type.{u}} {g : Type.{v}}, (Nat -> f -> g) -> Nat -> (List.{u} f) -> (List.{v} g)
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_inj [anonymous]ₓ'. -/
theorem [anonymous] : ∀ ⦃f g : CircleDeg1Lift⦄, (f : ℝ → ℝ) = g → f = g :=
fun ⟨f, fm, fd⟩ ⟨g, gm, gd⟩ h => by congr <;> exact h
#align circle_deg1_lift.coe_inj [anonymous]
-/- warning: circle_deg1_lift.ext -> CircleDeg1Lift.ext is a dubious translation:
-lean 3 declaration is
- forall {{f : CircleDeg1Lift}} {{g : CircleDeg1Lift}}, (forall (x : Real), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g x)) -> (Eq.{1} CircleDeg1Lift f g)
-but is expected to have type
- forall {{f : CircleDeg1Lift}} {{g : CircleDeg1Lift}}, (forall (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g x)) -> (Eq.{1} CircleDeg1Lift f g)
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.ext CircleDeg1Lift.extₓ'. -/
@[ext]
theorem ext ⦃f g : CircleDeg1Lift⦄ (h : ∀ x, f x = g x) : f = g :=
[anonymous] <| funext h
#align circle_deg1_lift.ext CircleDeg1Lift.ext
-/- warning: circle_deg1_lift.ext_iff -> CircleDeg1Lift.ext_iff is a dubious translation:
-lean 3 declaration is
- forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, Iff (Eq.{1} CircleDeg1Lift f g) (forall (x : Real), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g x))
-but is expected to have type
- forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, Iff (Eq.{1} CircleDeg1Lift f g) (forall (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g x))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.ext_iff CircleDeg1Lift.ext_iffₓ'. -/
theorem ext_iff {f g : CircleDeg1Lift} : f = g ↔ ∀ x, f x = g x :=
⟨fun h x => h ▸ rfl, fun h => ext h⟩
#align circle_deg1_lift.ext_iff CircleDeg1Lift.ext_iff
@@ -262,88 +209,41 @@ instance : Monoid CircleDeg1Lift
instance : Inhabited CircleDeg1Lift :=
⟨1⟩
-/- warning: circle_deg1_lift.coe_mul -> CircleDeg1Lift.coe_mul is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), Eq.{1} (Real -> Real) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid))) f g)) (Function.comp.{1, 1, 1} Real Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g))
-but is expected to have type
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), Eq.{1} (forall (ᾰ : Real), (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) ᾰ) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))) f g)) (Function.comp.{1, 1, 1} Real Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_mul CircleDeg1Lift.coe_mulₓ'. -/
@[simp]
theorem coe_mul : ⇑(f * g) = f ∘ g :=
rfl
#align circle_deg1_lift.coe_mul CircleDeg1Lift.coe_mul
-/- warning: circle_deg1_lift.mul_apply -> CircleDeg1Lift.mul_apply is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift) (x : Real), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid))) f g) x) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g x))
-but is expected to have type
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift) (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))) f g) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g x))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.mul_apply CircleDeg1Lift.mul_applyₓ'. -/
theorem mul_apply (x) : (f * g) x = f (g x) :=
rfl
#align circle_deg1_lift.mul_apply CircleDeg1Lift.mul_apply
-/- warning: circle_deg1_lift.coe_one -> CircleDeg1Lift.coe_one is a dubious translation:
-lean 3 declaration is
- Eq.{1} (Real -> Real) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (OfNat.ofNat.{0} CircleDeg1Lift 1 (OfNat.mk.{0} CircleDeg1Lift 1 (One.one.{0} CircleDeg1Lift (MulOneClass.toHasOne.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))))) (id.{1} Real)
-but is expected to have type
- Eq.{1} (forall (ᾰ : Real), (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) ᾰ) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (OfNat.ofNat.{0} CircleDeg1Lift 1 (One.toOfNat1.{0} CircleDeg1Lift (Monoid.toOne.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) (id.{1} Real)
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_one CircleDeg1Lift.coe_oneₓ'. -/
@[simp]
theorem coe_one : ⇑(1 : CircleDeg1Lift) = id :=
rfl
#align circle_deg1_lift.coe_one CircleDeg1Lift.coe_one
-/- warning: circle_deg1_lift.units_has_coe_to_fun -> CircleDeg1Lift.unitsHasCoeToFun is a dubious translation:
-lean 3 declaration is
- CoeFun.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real)
-but is expected to have type
- CoeFun.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => Real -> Real)
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.units_has_coe_to_fun CircleDeg1Lift.unitsHasCoeToFunₓ'. -/
instance unitsHasCoeToFun : CoeFun CircleDeg1Liftˣ fun _ => ℝ → ℝ :=
⟨fun f => ⇑(f : CircleDeg1Lift)⟩
#align circle_deg1_lift.units_has_coe_to_fun CircleDeg1Lift.unitsHasCoeToFun
/- warning: circle_deg1_lift.units_coe clashes with [anonymous] -> [anonymous]
-warning: circle_deg1_lift.units_coe -> [anonymous] is a dubious translation:
-lean 3 declaration is
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid), Eq.{1} (Real -> Real) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) f)) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun f)
-but is expected to have type
- forall {f : Type.{u}} {β : Type.{v}}, (Nat -> f -> β) -> Nat -> (List.{u} f) -> (List.{v} β)
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.units_coe [anonymous]ₓ'. -/
@[simp, norm_cast]
theorem [anonymous] (f : CircleDeg1Liftˣ) : ⇑(f : CircleDeg1Lift) = f :=
rfl
#align circle_deg1_lift.units_coe [anonymous]
-/- warning: circle_deg1_lift.units_inv_apply_apply -> CircleDeg1Lift.units_inv_apply_apply is a dubious translation:
-lean 3 declaration is
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (x : Real), Eq.{1} Real (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun f x)) x
-but is expected to have type
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f) x)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInv.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f) x)) x
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.units_inv_apply_apply CircleDeg1Lift.units_inv_apply_applyₓ'. -/
@[simp]
theorem units_inv_apply_apply (f : CircleDeg1Liftˣ) (x : ℝ) : (f⁻¹ : CircleDeg1Liftˣ) (f x) = x :=
by simp only [← units_coe, ← mul_apply, f.inv_mul, coe_one, id]
#align circle_deg1_lift.units_inv_apply_apply CircleDeg1Lift.units_inv_apply_apply
-/- warning: circle_deg1_lift.units_apply_inv_apply -> CircleDeg1Lift.units_apply_inv_apply is a dubious translation:
-lean 3 declaration is
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (x : Real), Eq.{1} Real (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun f (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f) x)) x
-but is expected to have type
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInv.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)) x)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInv.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)) x)) x
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.units_apply_inv_apply CircleDeg1Lift.units_apply_inv_applyₓ'. -/
@[simp]
theorem units_apply_inv_apply (f : CircleDeg1Liftˣ) (x : ℝ) : f ((f⁻¹ : CircleDeg1Liftˣ) x) = x :=
by simp only [← units_coe, ← mul_apply, f.mul_inv, coe_one, id]
#align circle_deg1_lift.units_apply_inv_apply CircleDeg1Lift.units_apply_inv_apply
-/- warning: circle_deg1_lift.to_order_iso -> CircleDeg1Lift.toOrderIso is a dubious translation:
-lean 3 declaration is
- MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))
-but is expected to have type
- MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.to_order_iso CircleDeg1Lift.toOrderIsoₓ'. -/
/-- If a lift of a circle map is bijective, then it is an order automorphism of the line. -/
def toOrderIso : CircleDeg1Liftˣ →* ℝ ≃o ℝ
where
@@ -357,40 +257,22 @@ def toOrderIso : CircleDeg1Liftˣ →* ℝ ≃o ℝ
map_mul' f g := rfl
#align circle_deg1_lift.to_order_iso CircleDeg1Lift.toOrderIso
-/- warning: circle_deg1_lift.coe_to_order_iso -> CircleDeg1Lift.coe_toOrderIso is a dubious translation:
-lean 3 declaration is
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid), Eq.{1} (Real -> Real) (coeFn.{1, 1} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (fun (_x : RelIso.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) => Real -> Real) (RelIso.hasCoeToFun.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) (coeFn.{1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) (fun (_x : MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) => (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) -> (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe)) (MonoidHom.hasCoeToFun.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) CircleDeg1Lift.toOrderIso f)) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun f)
-but is expected to have type
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} (Real -> Real) (FunLike.coe.{1, 1, 1} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1300 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1302 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1300 x._@.Mathlib.Order.Hom.Basic._hyg.1302)) Real (fun (_x : Real) => Real) (RelHomClass.toFunLike.{0, 0, 0} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1300 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1302 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1300 x._@.Mathlib.Order.Hom.Basic._hyg.1302)) Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1300 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1302 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1300 x._@.Mathlib.Order.Hom.Basic._hyg.1302) (RelIso.instRelHomClassRelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1300 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1302 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1300 x._@.Mathlib.Order.Hom.Basic._hyg.1302))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MulOneClass.toMul.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287))))) (MonoidHom.monoidHomClass.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))))) CircleDeg1Lift.toOrderIso f)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_to_order_iso CircleDeg1Lift.coe_toOrderIsoₓ'. -/
@[simp]
theorem coe_toOrderIso (f : CircleDeg1Liftˣ) : ⇑(toOrderIso f) = f :=
rfl
#align circle_deg1_lift.coe_to_order_iso CircleDeg1Lift.coe_toOrderIso
-/- warning: circle_deg1_lift.coe_to_order_iso_symm -> CircleDeg1Lift.coe_toOrderIso_symm is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_to_order_iso_symm CircleDeg1Lift.coe_toOrderIso_symmₓ'. -/
@[simp]
theorem coe_toOrderIso_symm (f : CircleDeg1Liftˣ) :
⇑(toOrderIso f).symm = (f⁻¹ : CircleDeg1Liftˣ) :=
rfl
#align circle_deg1_lift.coe_to_order_iso_symm CircleDeg1Lift.coe_toOrderIso_symm
-/- warning: circle_deg1_lift.coe_to_order_iso_inv -> CircleDeg1Lift.coe_toOrderIso_inv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_to_order_iso_inv CircleDeg1Lift.coe_toOrderIso_invₓ'. -/
@[simp]
theorem coe_toOrderIso_inv (f : CircleDeg1Liftˣ) : ⇑(toOrderIso f)⁻¹ = (f⁻¹ : CircleDeg1Liftˣ) :=
rfl
#align circle_deg1_lift.coe_to_order_iso_inv CircleDeg1Lift.coe_toOrderIso_inv
-/- warning: circle_deg1_lift.is_unit_iff_bijective -> CircleDeg1Lift.isUnit_iff_bijective is a dubious translation:
-lean 3 declaration is
- forall {f : CircleDeg1Lift}, Iff (IsUnit.{0} CircleDeg1Lift CircleDeg1Lift.monoid f) (Function.Bijective.{1, 1} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f))
-but is expected to have type
- forall {f : CircleDeg1Lift}, Iff (IsUnit.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f) (Function.Bijective.{1, 1} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.is_unit_iff_bijective CircleDeg1Lift.isUnit_iff_bijectiveₓ'. -/
theorem isUnit_iff_bijective {f : CircleDeg1Lift} : IsUnit f ↔ Bijective f :=
⟨fun ⟨u, h⟩ => h ▸ (toOrderIso u).Bijective, fun h =>
Units.isUnit
@@ -406,34 +288,16 @@ theorem isUnit_iff_bijective {f : CircleDeg1Lift} : IsUnit f ↔ Bijective f :=
inv_val := ext <| Equiv.ofBijective_symm_apply_apply f h }⟩
#align circle_deg1_lift.is_unit_iff_bijective CircleDeg1Lift.isUnit_iff_bijective
-/- warning: circle_deg1_lift.coe_pow -> CircleDeg1Lift.coe_pow is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (n : Nat), Eq.{1} (Real -> Real) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n)) (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n)
-but is expected to have type
- forall (f : CircleDeg1Lift) (n : Nat), Eq.{1} (forall (ᾰ : Real), (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) ᾰ) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n)) (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n)
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_pow CircleDeg1Lift.coe_powₓ'. -/
theorem coe_pow : ∀ n : ℕ, ⇑(f ^ n) = f^[n]
| 0 => rfl
| n + 1 => by ext x; simp [coe_pow n, pow_succ']
#align circle_deg1_lift.coe_pow CircleDeg1Lift.coe_pow
-/- warning: circle_deg1_lift.semiconj_by_iff_semiconj -> CircleDeg1Lift.semiconjBy_iff_semiconj is a dubious translation:
-lean 3 declaration is
- forall {f : CircleDeg1Lift} {g₁ : CircleDeg1Lift} {g₂ : CircleDeg1Lift}, Iff (SemiconjBy.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f g₁ g₂) (Function.Semiconj.{0, 0} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g₁) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g₂))
-but is expected to have type
- forall {f : CircleDeg1Lift} {g₁ : CircleDeg1Lift} {g₂ : CircleDeg1Lift}, Iff (SemiconjBy.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f g₁ g₂) (Function.Semiconj.{0, 0} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g₁) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g₂))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.semiconj_by_iff_semiconj CircleDeg1Lift.semiconjBy_iff_semiconjₓ'. -/
theorem semiconjBy_iff_semiconj {f g₁ g₂ : CircleDeg1Lift} :
SemiconjBy f g₁ g₂ ↔ Semiconj f g₁ g₂ :=
ext_iff
#align circle_deg1_lift.semiconj_by_iff_semiconj CircleDeg1Lift.semiconjBy_iff_semiconj
-/- warning: circle_deg1_lift.commute_iff_commute -> CircleDeg1Lift.commute_iff_commute is a dubious translation:
-lean 3 declaration is
- forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, Iff (Commute.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f g) (Function.Commute.{0} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g))
-but is expected to have type
- forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, Iff (Commute.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f g) (Function.Commute.{0} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.commute_iff_commute CircleDeg1Lift.commute_iff_commuteₓ'. -/
theorem commute_iff_commute {f g : CircleDeg1Lift} : Commute f g ↔ Function.Commute f g :=
ext_iff
#align circle_deg1_lift.commute_iff_commute CircleDeg1Lift.commute_iff_commute
@@ -443,12 +307,6 @@ theorem commute_iff_commute {f g : CircleDeg1Lift} : Commute f g ↔ Function.Co
-/
-/- warning: circle_deg1_lift.translate -> CircleDeg1Lift.translate is a dubious translation:
-lean 3 declaration is
- MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)
-but is expected to have type
- MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translate CircleDeg1Lift.translateₓ'. -/
/-- The map `y ↦ x + y` as a `circle_deg1_lift`. More precisely, we define a homomorphism from
`multiplicative ℝ` to `circle_deg1_liftˣ`, so the translation by `x` is
`translation (multiplicative.of_add x)`. -/
@@ -462,52 +320,28 @@ def translate : Multiplicative ℝ →* CircleDeg1Liftˣ := by
map_mul' := fun x y => ext <| add_assoc _ _ }
#align circle_deg1_lift.translate CircleDeg1Lift.translate
-/- warning: circle_deg1_lift.translate_apply -> CircleDeg1Lift.translate_apply is a dubious translation:
-lean 3 declaration is
- forall (x : Real) (y : Real), Eq.{1} Real (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) y) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x y)
-but is expected to have type
- forall (x : Real) (y : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) y) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x))) y) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x y)
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translate_apply CircleDeg1Lift.translate_applyₓ'. -/
@[simp]
theorem translate_apply (x y : ℝ) : translate (Multiplicative.ofAdd x) y = x + y :=
rfl
#align circle_deg1_lift.translate_apply CircleDeg1Lift.translate_apply
-/- warning: circle_deg1_lift.translate_inv_apply -> CircleDeg1Lift.translate_inv_apply is a dubious translation:
-lean 3 declaration is
- forall (x : Real) (y : Real), Eq.{1} Real (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x))) y) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (Neg.neg.{0} Real Real.hasNeg x) y)
-but is expected to have type
- forall (x : Real) (y : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) y) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (Units.instInv.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)))) y) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Neg.neg.{0} Real Real.instNegReal x) y)
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translate_inv_apply CircleDeg1Lift.translate_inv_applyₓ'. -/
@[simp]
theorem translate_inv_apply (x y : ℝ) : (translate <| Multiplicative.ofAdd x)⁻¹ y = -x + y :=
rfl
#align circle_deg1_lift.translate_inv_apply CircleDeg1Lift.translate_inv_apply
-/- warning: circle_deg1_lift.translate_zpow -> CircleDeg1Lift.translate_zpow is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translate_zpow CircleDeg1Lift.translate_zpowₓ'. -/
@[simp]
theorem translate_zpow (x : ℝ) (n : ℤ) :
translate (Multiplicative.ofAdd x) ^ n = translate (Multiplicative.ofAdd <| ↑n * x) := by
simp only [← zsmul_eq_mul, ofAdd_zsmul, MonoidHom.map_zpow]
#align circle_deg1_lift.translate_zpow CircleDeg1Lift.translate_zpow
-/- warning: circle_deg1_lift.translate_pow -> CircleDeg1Lift.translate_pow is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translate_pow CircleDeg1Lift.translate_powₓ'. -/
@[simp]
theorem translate_pow (x : ℝ) (n : ℕ) :
translate (Multiplicative.ofAdd x) ^ n = translate (Multiplicative.ofAdd <| ↑n * x) :=
translate_zpow x n
#align circle_deg1_lift.translate_pow CircleDeg1Lift.translate_pow
-/- warning: circle_deg1_lift.translate_iterate -> CircleDeg1Lift.translate_iterate is a dubious translation:
-lean 3 declaration is
- forall (x : Real) (n : Nat), Eq.{1} (Real -> Real) (Nat.iterate.{1} Real (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x))) n) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) (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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) x))))
-but is expected to have type
- forall (x : Real) (n : Nat), Eq.{1} (Real -> Real) (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)))) n) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) x)))))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translate_iterate CircleDeg1Lift.translate_iterateₓ'. -/
@[simp]
theorem translate_iterate (x : ℝ) (n : ℕ) :
translate (Multiplicative.ofAdd x)^[n] = translate (Multiplicative.ofAdd <| ↑n * x) := by
@@ -524,150 +358,66 @@ then reformulate as `simp` lemmas `map_int_add` etc.
-/
-/- warning: circle_deg1_lift.commute_nat_add -> CircleDeg1Lift.commute_nat_add is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (n : Nat), Function.Commute.{0} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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 (f : CircleDeg1Lift) (n : Nat), Function.Commute.{0} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (fun (x._@.Mathlib.Dynamics.Circle.RotationNumber.TranslationNumber._hyg.1531 : Real) => HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast n) x._@.Mathlib.Dynamics.Circle.RotationNumber.TranslationNumber._hyg.1531)
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.commute_nat_add CircleDeg1Lift.commute_nat_addₓ'. -/
theorem commute_nat_add (n : ℕ) : Function.Commute f ((· + ·) n) := by
simpa only [nsmul_one, add_left_iterate] using Function.Commute.iterate_right f.map_one_add n
#align circle_deg1_lift.commute_nat_add CircleDeg1Lift.commute_nat_add
-/- warning: circle_deg1_lift.commute_add_nat -> CircleDeg1Lift.commute_add_nat is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (n : Nat), Function.Commute.{0} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (fun (x : Real) => HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((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 (f : CircleDeg1Lift) (n : Nat), Function.Commute.{0} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (fun (x : Real) => HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Nat.cast.{0} Real Real.natCast n))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.commute_add_nat CircleDeg1Lift.commute_add_natₓ'. -/
theorem commute_add_nat (n : ℕ) : Function.Commute f fun x => x + n := by
simp only [add_comm _ (n : ℝ), f.commute_nat_add n]
#align circle_deg1_lift.commute_add_nat CircleDeg1Lift.commute_add_nat
-/- warning: circle_deg1_lift.commute_sub_nat -> CircleDeg1Lift.commute_sub_nat is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (n : Nat), Function.Commute.{0} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (fun (x : Real) => 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) 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 (f : CircleDeg1Lift) (n : Nat), Function.Commute.{0} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (fun (x : Real) => HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Nat.cast.{0} Real Real.natCast n))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.commute_sub_nat CircleDeg1Lift.commute_sub_natₓ'. -/
theorem commute_sub_nat (n : ℕ) : Function.Commute f fun x => x - n := by
simpa only [sub_eq_add_neg] using
(f.commute_add_nat n).inverses_right (Equiv.addRight _).right_inv (Equiv.addRight _).left_inv
#align circle_deg1_lift.commute_sub_nat CircleDeg1Lift.commute_sub_nat
-/- warning: circle_deg1_lift.commute_add_int -> CircleDeg1Lift.commute_add_int is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (n : Int), Function.Commute.{0} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (fun (x : Real) => HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) n))
-but is expected to have type
- forall (f : CircleDeg1Lift) (n : Int), Function.Commute.{0} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (fun (x : Real) => HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast n))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.commute_add_int CircleDeg1Lift.commute_add_intₓ'. -/
theorem commute_add_int : ∀ n : ℤ, Function.Commute f fun x => x + n
| (n : ℕ) => f.commute_add_nat n
| -[n+1] => by simpa [sub_eq_add_neg] using f.commute_sub_nat (n + 1)
#align circle_deg1_lift.commute_add_int CircleDeg1Lift.commute_add_int
-/- warning: circle_deg1_lift.commute_int_add -> CircleDeg1Lift.commute_int_add is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (n : Int), Function.Commute.{0} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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))) n))
-but is expected to have type
- forall (f : CircleDeg1Lift) (n : Int), Function.Commute.{0} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (fun (x._@.Mathlib.Dynamics.Circle.RotationNumber.TranslationNumber._hyg.1716 : Real) => HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Int.cast.{0} Real Real.intCast n) x._@.Mathlib.Dynamics.Circle.RotationNumber.TranslationNumber._hyg.1716)
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.commute_int_add CircleDeg1Lift.commute_int_addₓ'. -/
theorem commute_int_add (n : ℤ) : Function.Commute f ((· + ·) n) := by
simpa only [add_comm _ (n : ℝ)] using f.commute_add_int n
#align circle_deg1_lift.commute_int_add CircleDeg1Lift.commute_int_add
-/- warning: circle_deg1_lift.commute_sub_int -> CircleDeg1Lift.commute_sub_int is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (n : Int), Function.Commute.{0} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (fun (x : Real) => 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))) n))
-but is expected to have type
- forall (f : CircleDeg1Lift) (n : Int), Function.Commute.{0} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (fun (x : Real) => HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Int.cast.{0} Real Real.intCast n))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.commute_sub_int CircleDeg1Lift.commute_sub_intₓ'. -/
theorem commute_sub_int (n : ℤ) : Function.Commute f fun x => x - n := by
simpa only [sub_eq_add_neg] using
(f.commute_add_int n).inverses_right (Equiv.addRight _).right_inv (Equiv.addRight _).left_inv
#align circle_deg1_lift.commute_sub_int CircleDeg1Lift.commute_sub_int
-/- warning: circle_deg1_lift.map_int_add -> CircleDeg1Lift.map_int_add is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (m : Int) (x : Real), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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))) m) x)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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))) m) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x))
-but is expected to have type
- forall (f : CircleDeg1Lift) (m : Int) (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Int.cast.{0} Real Real.intCast m) x)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Int.cast.{0} Real Real.intCast m) x)) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Int.cast.{0} Real Real.intCast m) x)) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Int.cast.{0} Real Real.intCast m) x)) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Int.cast.{0} Real Real.intCast m) x)) Real.instAddReal) (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Int.cast.{0} Real Real.intCast m) x)) Real.intCast m) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_int_add CircleDeg1Lift.map_int_addₓ'. -/
@[simp]
theorem map_int_add (m : ℤ) (x : ℝ) : f (m + x) = m + f x :=
f.commute_int_add m x
#align circle_deg1_lift.map_int_add CircleDeg1Lift.map_int_add
-/- warning: circle_deg1_lift.map_add_int -> CircleDeg1Lift.map_add_int is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (x : Real) (m : Int), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m))) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f 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))) m))
-but is expected to have type
- forall (f : CircleDeg1Lift) (x : Real) (m : Int), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast m))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast m))) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast m))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instAddReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast m))) Real.intCast m))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_add_int CircleDeg1Lift.map_add_intₓ'. -/
@[simp]
theorem map_add_int (x : ℝ) (m : ℤ) : f (x + m) = f x + m :=
f.commute_add_int m x
#align circle_deg1_lift.map_add_int CircleDeg1Lift.map_add_int
-/- warning: circle_deg1_lift.map_sub_int -> CircleDeg1Lift.map_sub_int is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (x : Real) (n : Int), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (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))) n))) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f 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))) n))
-but is expected to have type
- forall (f : CircleDeg1Lift) (x : Real) (n : Int), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Int.cast.{0} Real Real.intCast n))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Int.cast.{0} Real Real.intCast n))) (HSub.hSub.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Int.cast.{0} Real Real.intCast n))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHSub.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instSubReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Int.cast.{0} Real Real.intCast n))) Real.intCast n))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_sub_int CircleDeg1Lift.map_sub_intₓ'. -/
@[simp]
theorem map_sub_int (x : ℝ) (n : ℤ) : f (x - n) = f x - n :=
f.commute_sub_int n x
#align circle_deg1_lift.map_sub_int CircleDeg1Lift.map_sub_int
-/- warning: circle_deg1_lift.map_add_nat -> CircleDeg1Lift.map_add_nat is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (x : Real) (n : Nat), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((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))) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) ((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 (f : CircleDeg1Lift) (x : Real) (n : Nat), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Nat.cast.{0} Real Real.natCast n))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Nat.cast.{0} Real Real.natCast n))) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Nat.cast.{0} Real Real.natCast n))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instAddReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (Nat.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Nat.cast.{0} Real Real.natCast n))) Real.natCast n))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_add_nat CircleDeg1Lift.map_add_natₓ'. -/
@[simp]
theorem map_add_nat (x : ℝ) (n : ℕ) : f (x + n) = f x + n :=
f.map_add_int x n
#align circle_deg1_lift.map_add_nat CircleDeg1Lift.map_add_nat
-/- warning: circle_deg1_lift.map_nat_add -> CircleDeg1Lift.map_nat_add is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (n : Nat) (x : Real), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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) x)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x))
-but is expected to have type
- forall (f : CircleDeg1Lift) (n : Nat) (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast n) x)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast n) x)) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast n) x)) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast n) x)) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast n) x)) Real.instAddReal) (Nat.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast n) x)) Real.natCast n) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_nat_add CircleDeg1Lift.map_nat_addₓ'. -/
@[simp]
theorem map_nat_add (n : ℕ) (x : ℝ) : f (n + x) = n + f x :=
f.map_int_add n x
#align circle_deg1_lift.map_nat_add CircleDeg1Lift.map_nat_add
-/- warning: circle_deg1_lift.map_sub_nat -> CircleDeg1Lift.map_sub_nat is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (x : Real) (n : Nat), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n))) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) ((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 (f : CircleDeg1Lift) (x : Real) (n : Nat), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Nat.cast.{0} Real Real.natCast n))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Nat.cast.{0} Real Real.natCast n))) (HSub.hSub.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Nat.cast.{0} Real Real.natCast n))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHSub.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instSubReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (Nat.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Nat.cast.{0} Real Real.natCast n))) Real.natCast n))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_sub_nat CircleDeg1Lift.map_sub_natₓ'. -/
@[simp]
theorem map_sub_nat (x : ℝ) (n : ℕ) : f (x - n) = f x - n :=
f.map_sub_int x n
#align circle_deg1_lift.map_sub_nat CircleDeg1Lift.map_sub_nat
-/- warning: circle_deg1_lift.map_int_of_map_zero -> CircleDeg1Lift.map_int_of_map_zero is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (n : Int), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f ((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))) n)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (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) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) n))
-but is expected to have type
- forall (f : CircleDeg1Lift) (n : Int), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (Int.cast.{0} Real Real.intCast n)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (Int.cast.{0} Real Real.intCast n)) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (Int.cast.{0} Real Real.intCast n)) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instAddReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (Int.cast.{0} Real Real.intCast n)) Real.intCast n))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_int_of_map_zero CircleDeg1Lift.map_int_of_map_zeroₓ'. -/
theorem map_int_of_map_zero (n : ℤ) : f n = f 0 + n := by rw [← f.map_add_int, zero_add]
#align circle_deg1_lift.map_int_of_map_zero CircleDeg1Lift.map_int_of_map_zero
-/- warning: circle_deg1_lift.map_fract_sub_fract_eq -> CircleDeg1Lift.map_fract_sub_fract_eq is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (x : Real), Eq.{1} Real (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (Int.fract.{0} Real Real.linearOrderedRing Real.floorRing x)) (Int.fract.{0} Real Real.linearOrderedRing Real.floorRing x)) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) x)
-but is expected to have type
- forall (f : CircleDeg1Lift) (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (Int.fract.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal x)) (HSub.hSub.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (Int.fract.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal x)) Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (Int.fract.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal x)) (instHSub.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (Int.fract.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal x)) Real.instSubReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (Int.fract.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal x)) (Int.fract.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal x)) (HSub.hSub.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHSub.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instSubReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) x)
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_fract_sub_fract_eq CircleDeg1Lift.map_fract_sub_fract_eqₓ'. -/
@[simp]
theorem map_fract_sub_fract_eq (x : ℝ) : f (fract x) - fract x = f x - x := by
rw [Int.fract, f.map_sub_int, sub_sub_sub_cancel_right]
@@ -701,64 +451,28 @@ noncomputable instance : Lattice CircleDeg1Lift
inf_le_right f g x := min_le_right (f x) (g x)
le_inf f₁ f₂ f₃ h₂ h₃ x := le_min (h₂ x) (h₃ x)
-/- warning: circle_deg1_lift.sup_apply -> CircleDeg1Lift.sup_apply is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift) (x : Real), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (Sup.sup.{0} CircleDeg1Lift (SemilatticeSup.toHasSup.{0} CircleDeg1Lift (Lattice.toSemilatticeSup.{0} CircleDeg1Lift CircleDeg1Lift.lattice)) f g) x) (LinearOrder.max.{0} Real Real.linearOrder (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g x))
-but is expected to have type
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift) (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Sup.sup.{0} CircleDeg1Lift (SemilatticeSup.toSup.{0} CircleDeg1Lift (Lattice.toSemilatticeSup.{0} CircleDeg1Lift CircleDeg1Lift.instLatticeCircleDeg1Lift)) f g) x) (Max.max.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (LinearOrderedRing.toMax.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLinearOrderedRingReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g x))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.sup_apply CircleDeg1Lift.sup_applyₓ'. -/
@[simp]
theorem sup_apply (x : ℝ) : (f ⊔ g) x = max (f x) (g x) :=
rfl
#align circle_deg1_lift.sup_apply CircleDeg1Lift.sup_apply
-/- warning: circle_deg1_lift.inf_apply -> CircleDeg1Lift.inf_apply is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift) (x : Real), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (Inf.inf.{0} CircleDeg1Lift (SemilatticeInf.toHasInf.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.lattice)) f g) x) (LinearOrder.min.{0} Real Real.linearOrder (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g x))
-but is expected to have type
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift) (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Inf.inf.{0} CircleDeg1Lift (Lattice.toInf.{0} CircleDeg1Lift CircleDeg1Lift.instLatticeCircleDeg1Lift) f g) x) (Min.min.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (LinearOrderedRing.toMin.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLinearOrderedRingReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g x))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.inf_apply CircleDeg1Lift.inf_applyₓ'. -/
@[simp]
theorem inf_apply (x : ℝ) : (f ⊓ g) x = min (f x) (g x) :=
rfl
#align circle_deg1_lift.inf_apply CircleDeg1Lift.inf_apply
-/- warning: circle_deg1_lift.iterate_monotone -> CircleDeg1Lift.iterate_monotone is a dubious translation:
-lean 3 declaration is
- forall (n : Nat), Monotone.{0, 0} CircleDeg1Lift (Real -> Real) (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.lattice))) (Pi.preorder.{0, 0} Real (fun (ᾰ : Real) => Real) (fun (i : Real) => Real.preorder)) (fun (f : CircleDeg1Lift) => Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n)
-but is expected to have type
- forall (n : Nat), Monotone.{0, 0} CircleDeg1Lift (Real -> Real) (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.instLatticeCircleDeg1Lift))) (Pi.preorder.{0, 0} Real (fun (ᾰ : Real) => Real) (fun (i : Real) => Real.instPreorderReal)) (fun (f : CircleDeg1Lift) => Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n)
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.iterate_monotone CircleDeg1Lift.iterate_monotoneₓ'. -/
theorem iterate_monotone (n : ℕ) : Monotone fun f : CircleDeg1Lift => f^[n] := fun f g h =>
f.Monotone.iterate_le_of_le h _
#align circle_deg1_lift.iterate_monotone CircleDeg1Lift.iterate_monotone
-/- warning: circle_deg1_lift.iterate_mono -> CircleDeg1Lift.iterate_mono is a dubious translation:
-lean 3 declaration is
- forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, (LE.le.{0} CircleDeg1Lift (Preorder.toHasLe.{0} CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.lattice)))) f g) -> (forall (n : Nat), LE.le.{0} (Real -> Real) (Pi.hasLe.{0, 0} Real (fun (ᾰ : Real) => Real) (fun (i : Real) => Real.hasLe)) (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n) (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g) n))
-but is expected to have type
- forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, (LE.le.{0} CircleDeg1Lift (Preorder.toLE.{0} CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.instLatticeCircleDeg1Lift)))) f g) -> (forall (n : Nat), LE.le.{0} (Real -> Real) (Pi.hasLe.{0, 0} Real (fun (ᾰ : Real) => Real) (fun (i : Real) => Real.instLEReal)) (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n) (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g) n))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.iterate_mono CircleDeg1Lift.iterate_monoₓ'. -/
theorem iterate_mono {f g : CircleDeg1Lift} (h : f ≤ g) (n : ℕ) : f^[n] ≤ g^[n] :=
iterate_monotone n h
#align circle_deg1_lift.iterate_mono CircleDeg1Lift.iterate_mono
-/- warning: circle_deg1_lift.pow_mono -> CircleDeg1Lift.pow_mono is a dubious translation:
-lean 3 declaration is
- forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, (LE.le.{0} CircleDeg1Lift (Preorder.toHasLe.{0} CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.lattice)))) f g) -> (forall (n : Nat), LE.le.{0} CircleDeg1Lift (Preorder.toHasLe.{0} CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.lattice)))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) g n))
-but is expected to have type
- forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, (LE.le.{0} CircleDeg1Lift (Preorder.toLE.{0} CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.instLatticeCircleDeg1Lift)))) f g) -> (forall (n : Nat), LE.le.{0} CircleDeg1Lift (Preorder.toLE.{0} CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.instLatticeCircleDeg1Lift)))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) g n))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.pow_mono CircleDeg1Lift.pow_monoₓ'. -/
theorem pow_mono {f g : CircleDeg1Lift} (h : f ≤ g) (n : ℕ) : f ^ n ≤ g ^ n := fun x => by
simp only [coe_pow, iterate_mono h n x]
#align circle_deg1_lift.pow_mono CircleDeg1Lift.pow_mono
-/- warning: circle_deg1_lift.pow_monotone -> CircleDeg1Lift.pow_monotone is a dubious translation:
-lean 3 declaration is
- forall (n : Nat), Monotone.{0, 0} CircleDeg1Lift CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.lattice))) (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.lattice))) (fun (f : CircleDeg1Lift) => HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n)
-but is expected to have type
- forall (n : Nat), Monotone.{0, 0} CircleDeg1Lift CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.instLatticeCircleDeg1Lift))) (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.instLatticeCircleDeg1Lift))) (fun (f : CircleDeg1Lift) => HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n)
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.pow_monotone CircleDeg1Lift.pow_monotoneₓ'. -/
theorem pow_monotone (n : ℕ) : Monotone fun f : CircleDeg1Lift => f ^ n := fun f g h => pow_mono h n
#align circle_deg1_lift.pow_monotone CircleDeg1Lift.pow_monotone
@@ -773,12 +487,6 @@ is less than two.
-/
-/- warning: circle_deg1_lift.map_le_of_map_zero -> CircleDeg1Lift.map_le_of_map_zero is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (x : Real), LE.le.{0} Real Real.hasLe (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (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) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) (Int.ceil.{0} Real Real.linearOrderedRing Real.floorRing x)))
-but is expected to have type
- forall (f : CircleDeg1Lift) (x : Real), LE.le.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLEReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instAddReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast (Int.ceil.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal x)))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_le_of_map_zero CircleDeg1Lift.map_le_of_map_zeroₓ'. -/
theorem map_le_of_map_zero (x : ℝ) : f x ≤ f 0 + ⌈x⌉ :=
calc
f x ≤ f ⌈x⌉ := f.Monotone <| le_ceil _
@@ -786,22 +494,10 @@ theorem map_le_of_map_zero (x : ℝ) : f x ≤ f 0 + ⌈x⌉ :=
#align circle_deg1_lift.map_le_of_map_zero CircleDeg1Lift.map_le_of_map_zero
-/- warning: circle_deg1_lift.map_map_zero_le -> CircleDeg1Lift.map_map_zero_le is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LE.le.{0} Real Real.hasLe (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (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) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) (Int.ceil.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))))
-but is expected to have type
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LE.le.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) Real.instLEReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instAddReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) Real.intCast (Int.ceil.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_map_zero_le CircleDeg1Lift.map_map_zero_leₓ'. -/
theorem map_map_zero_le : f (g 0) ≤ f 0 + ⌈g 0⌉ :=
f.map_le_of_map_zero (g 0)
#align circle_deg1_lift.map_map_zero_le CircleDeg1Lift.map_map_zero_le
-/- warning: circle_deg1_lift.floor_map_map_zero_le -> CircleDeg1Lift.floor_map_map_zero_le is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LE.le.{0} Int Int.hasLe (Int.floor.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))) (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.hasAdd) (Int.floor.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) (Int.ceil.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))))
-but is expected to have type
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LE.le.{0} Int Int.instLEInt (Int.floor.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))) (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.instAddInt) (Int.floor.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (Int.ceil.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.floor_map_map_zero_le CircleDeg1Lift.floor_map_map_zero_leₓ'. -/
theorem floor_map_map_zero_le : ⌊f (g 0)⌋ ≤ ⌊f 0⌋ + ⌈g 0⌉ :=
calc
⌊f (g 0)⌋ ≤ ⌊f 0 + ⌈g 0⌉⌋ := floor_mono <| f.map_map_zero_le g
@@ -809,12 +505,6 @@ theorem floor_map_map_zero_le : ⌊f (g 0)⌋ ≤ ⌊f 0⌋ + ⌈g 0⌉ :=
#align circle_deg1_lift.floor_map_map_zero_le CircleDeg1Lift.floor_map_map_zero_le
-/- warning: circle_deg1_lift.ceil_map_map_zero_le -> CircleDeg1Lift.ceil_map_map_zero_le is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LE.le.{0} Int Int.hasLe (Int.ceil.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))) (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.hasAdd) (Int.ceil.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) (Int.ceil.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))))
-but is expected to have type
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LE.le.{0} Int Int.instLEInt (Int.ceil.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))) (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.instAddInt) (Int.ceil.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (Int.ceil.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.ceil_map_map_zero_le CircleDeg1Lift.ceil_map_map_zero_leₓ'. -/
theorem ceil_map_map_zero_le : ⌈f (g 0)⌉ ≤ ⌈f 0⌉ + ⌈g 0⌉ :=
calc
⌈f (g 0)⌉ ≤ ⌈f 0 + ⌈g 0⌉⌉ := ceil_mono <| f.map_map_zero_le g
@@ -822,12 +512,6 @@ theorem ceil_map_map_zero_le : ⌈f (g 0)⌉ ≤ ⌈f 0⌉ + ⌈g 0⌉ :=
#align circle_deg1_lift.ceil_map_map_zero_le CircleDeg1Lift.ceil_map_map_zero_le
-/- warning: circle_deg1_lift.map_map_zero_lt -> CircleDeg1Lift.map_map_zero_lt is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LT.lt.{0} Real Real.hasLt (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
-but is expected to have type
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LT.lt.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) Real.instLTReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instAddReal) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instAddReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) Real.instOneReal)))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_map_zero_lt CircleDeg1Lift.map_map_zero_ltₓ'. -/
theorem map_map_zero_lt : f (g 0) < f 0 + g 0 + 1 :=
calc
f (g 0) ≤ f 0 + ⌈g 0⌉ := f.map_map_zero_le g
@@ -836,12 +520,6 @@ theorem map_map_zero_lt : f (g 0) < f 0 + g 0 + 1 :=
#align circle_deg1_lift.map_map_zero_lt CircleDeg1Lift.map_map_zero_lt
-/- warning: circle_deg1_lift.le_map_of_map_zero -> CircleDeg1Lift.le_map_of_map_zero is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (x : Real), LE.le.{0} Real Real.hasLe (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (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) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) (Int.floor.{0} Real Real.linearOrderedRing Real.floorRing x))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x)
-but is expected to have type
- forall (f : CircleDeg1Lift) (x : Real), LE.le.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLEReal (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instAddReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.intCast (Int.floor.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal x))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x)
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.le_map_of_map_zero CircleDeg1Lift.le_map_of_map_zeroₓ'. -/
theorem le_map_of_map_zero (x : ℝ) : f 0 + ⌊x⌋ ≤ f x :=
calc
f 0 + ⌊x⌋ = f ⌊x⌋ := (f.map_int_of_map_zero _).symm
@@ -849,22 +527,10 @@ theorem le_map_of_map_zero (x : ℝ) : f 0 + ⌊x⌋ ≤ f x :=
#align circle_deg1_lift.le_map_of_map_zero CircleDeg1Lift.le_map_of_map_zero
-/- warning: circle_deg1_lift.le_map_map_zero -> CircleDeg1Lift.le_map_map_zero is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LE.le.{0} Real Real.hasLe (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (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) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) (Int.floor.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))
-but is expected to have type
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LE.le.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLEReal (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instAddReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.intCast (Int.floor.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.le_map_map_zero CircleDeg1Lift.le_map_map_zeroₓ'. -/
theorem le_map_map_zero : f 0 + ⌊g 0⌋ ≤ f (g 0) :=
f.le_map_of_map_zero (g 0)
#align circle_deg1_lift.le_map_map_zero CircleDeg1Lift.le_map_map_zero
-/- warning: circle_deg1_lift.le_floor_map_map_zero -> CircleDeg1Lift.le_floor_map_map_zero is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LE.le.{0} Int Int.hasLe (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.hasAdd) (Int.floor.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) (Int.floor.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))) (Int.floor.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))))
-but is expected to have type
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LE.le.{0} Int Int.instLEInt (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.instAddInt) (Int.floor.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (Int.floor.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))) (Int.floor.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.le_floor_map_map_zero CircleDeg1Lift.le_floor_map_map_zeroₓ'. -/
theorem le_floor_map_map_zero : ⌊f 0⌋ + ⌊g 0⌋ ≤ ⌊f (g 0)⌋ :=
calc
⌊f 0⌋ + ⌊g 0⌋ = ⌊f 0 + ⌊g 0⌋⌋ := (floor_add_int _ _).symm
@@ -872,12 +538,6 @@ theorem le_floor_map_map_zero : ⌊f 0⌋ + ⌊g 0⌋ ≤ ⌊f (g 0)⌋ :=
#align circle_deg1_lift.le_floor_map_map_zero CircleDeg1Lift.le_floor_map_map_zero
-/- warning: circle_deg1_lift.le_ceil_map_map_zero -> CircleDeg1Lift.le_ceil_map_map_zero is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LE.le.{0} Int Int.hasLe (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.hasAdd) (Int.ceil.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) (Int.floor.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))) (Int.ceil.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid))) f g) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))
-but is expected to have type
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LE.le.{0} Int Int.instLEInt (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.instAddInt) (Int.ceil.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (Int.floor.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))) (Int.ceil.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))) f g) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.le_ceil_map_map_zero CircleDeg1Lift.le_ceil_map_map_zeroₓ'. -/
theorem le_ceil_map_map_zero : ⌈f 0⌉ + ⌊g 0⌋ ≤ ⌈(f * g) 0⌉ :=
calc
⌈f 0⌉ + ⌊g 0⌋ = ⌈f 0 + ⌊g 0⌋⌉ := (ceil_add_int _ _).symm
@@ -885,12 +545,6 @@ theorem le_ceil_map_map_zero : ⌈f 0⌉ + ⌊g 0⌋ ≤ ⌈(f * g) 0⌉ :=
#align circle_deg1_lift.le_ceil_map_map_zero CircleDeg1Lift.le_ceil_map_map_zero
-/- warning: circle_deg1_lift.lt_map_map_zero -> CircleDeg1Lift.lt_map_map_zero is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LT.lt.{0} Real Real.hasLt (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))
-but is expected to have type
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LT.lt.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLTReal (HSub.hSub.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHSub.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instSubReal) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instAddReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instOneReal))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.lt_map_map_zero CircleDeg1Lift.lt_map_map_zeroₓ'. -/
theorem lt_map_map_zero : f 0 + g 0 - 1 < f (g 0) :=
calc
f 0 + g 0 - 1 = f 0 + (g 0 - 1) := add_sub_assoc _ _ _
@@ -899,24 +553,12 @@ theorem lt_map_map_zero : f 0 + g 0 - 1 < f (g 0) :=
#align circle_deg1_lift.lt_map_map_zero CircleDeg1Lift.lt_map_map_zero
-/- warning: circle_deg1_lift.dist_map_map_zero_lt -> CircleDeg1Lift.dist_map_map_zero_lt is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LT.lt.{0} Real Real.hasLt (Dist.dist.{0} Real (PseudoMetricSpace.toHasDist.{0} Real Real.pseudoMetricSpace) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))
-but is expected to have type
- forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LT.lt.{0} Real Real.instLTReal (Dist.dist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (PseudoMetricSpace.toDist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.pseudoMetricSpace) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instAddReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.dist_map_map_zero_lt CircleDeg1Lift.dist_map_map_zero_ltₓ'. -/
theorem dist_map_map_zero_lt : dist (f 0 + g 0) (f (g 0)) < 1 :=
by
rw [dist_comm, Real.dist_eq, abs_lt, lt_sub_iff_add_lt', sub_lt_iff_lt_add', ← sub_eq_add_neg]
exact ⟨f.lt_map_map_zero g, f.map_map_zero_lt g⟩
#align circle_deg1_lift.dist_map_map_zero_lt CircleDeg1Lift.dist_map_map_zero_lt
-/- warning: circle_deg1_lift.dist_map_zero_lt_of_semiconj -> CircleDeg1Lift.dist_map_zero_lt_of_semiconj is a dubious translation:
-lean 3 declaration is
- forall {f : CircleDeg1Lift} {g₁ : CircleDeg1Lift} {g₂ : CircleDeg1Lift}, (Function.Semiconj.{0, 0} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g₁) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g₂)) -> (LT.lt.{0} Real Real.hasLt (Dist.dist.{0} Real (PseudoMetricSpace.toHasDist.{0} Real Real.pseudoMetricSpace) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g₁ (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g₂ (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) (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 {f : CircleDeg1Lift} {g₁ : CircleDeg1Lift} {g₂ : CircleDeg1Lift}, (Function.Semiconj.{0, 0} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g₁) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g₂)) -> (LT.lt.{0} Real Real.instLTReal (Dist.dist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (PseudoMetricSpace.toDist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.pseudoMetricSpace) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g₁ (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g₂ (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (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 circle_deg1_lift.dist_map_zero_lt_of_semiconj CircleDeg1Lift.dist_map_zero_lt_of_semiconjₓ'. -/
theorem dist_map_zero_lt_of_semiconj {f g₁ g₂ : CircleDeg1Lift} (h : Function.Semiconj f g₁ g₂) :
dist (g₁ 0) (g₂ 0) < 2 :=
calc
@@ -928,12 +570,6 @@ theorem dist_map_zero_lt_of_semiconj {f g₁ g₂ : CircleDeg1Lift} (h : Functio
#align circle_deg1_lift.dist_map_zero_lt_of_semiconj CircleDeg1Lift.dist_map_zero_lt_of_semiconj
-/- warning: circle_deg1_lift.dist_map_zero_lt_of_semiconj_by -> CircleDeg1Lift.dist_map_zero_lt_of_semiconjBy is a dubious translation:
-lean 3 declaration is
- forall {f : CircleDeg1Lift} {g₁ : CircleDeg1Lift} {g₂ : CircleDeg1Lift}, (SemiconjBy.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f g₁ g₂) -> (LT.lt.{0} Real Real.hasLt (Dist.dist.{0} Real (PseudoMetricSpace.toHasDist.{0} Real Real.pseudoMetricSpace) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g₁ (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g₂ (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) (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 {f : CircleDeg1Lift} {g₁ : CircleDeg1Lift} {g₂ : CircleDeg1Lift}, (SemiconjBy.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f g₁ g₂) -> (LT.lt.{0} Real Real.instLTReal (Dist.dist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (PseudoMetricSpace.toDist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.pseudoMetricSpace) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g₁ (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g₂ (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (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 circle_deg1_lift.dist_map_zero_lt_of_semiconj_by CircleDeg1Lift.dist_map_zero_lt_of_semiconjByₓ'. -/
theorem dist_map_zero_lt_of_semiconjBy {f g₁ g₂ : CircleDeg1Lift} (h : SemiconjBy f g₁ g₂) :
dist (g₁ 0) (g₂ 0) < 2 :=
dist_map_zero_lt_of_semiconj <| semiconjBy_iff_semiconj.1 h
@@ -944,12 +580,6 @@ theorem dist_map_zero_lt_of_semiconjBy {f g₁ g₂ : CircleDeg1Lift} (h : Semic
-/
-/- warning: circle_deg1_lift.tendsto_at_bot -> CircleDeg1Lift.tendsto_atBot is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift), Filter.Tendsto.{0, 0} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (Filter.atBot.{0} Real Real.preorder) (Filter.atBot.{0} Real Real.preorder)
-but is expected to have type
- forall (f : CircleDeg1Lift), Filter.Tendsto.{0, 0} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (Filter.atBot.{0} Real Real.instPreorderReal) (Filter.atBot.{0} Real Real.instPreorderReal)
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.tendsto_at_bot CircleDeg1Lift.tendsto_atBotₓ'. -/
protected theorem tendsto_atBot : Tendsto f atBot atBot :=
tendsto_atBot_mono f.map_le_of_map_zero <|
tendsto_atBot_add_const_left _ _ <|
@@ -957,12 +587,6 @@ protected theorem tendsto_atBot : Tendsto f atBot atBot :=
tendsto_atBot_add_const_right _ _ tendsto_id
#align circle_deg1_lift.tendsto_at_bot CircleDeg1Lift.tendsto_atBot
-/- warning: circle_deg1_lift.tendsto_at_top -> CircleDeg1Lift.tendsto_atTop is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift), Filter.Tendsto.{0, 0} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (Filter.atTop.{0} Real Real.preorder) (Filter.atTop.{0} Real Real.preorder)
-but is expected to have type
- forall (f : CircleDeg1Lift), Filter.Tendsto.{0, 0} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (Filter.atTop.{0} Real Real.instPreorderReal) (Filter.atTop.{0} Real Real.instPreorderReal)
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.tendsto_at_top CircleDeg1Lift.tendsto_atTopₓ'. -/
protected theorem tendsto_atTop : Tendsto f atTop atTop :=
tendsto_atTop_mono f.le_map_of_map_zero <|
tendsto_atTop_add_const_left _ _ <|
@@ -970,12 +594,6 @@ protected theorem tendsto_atTop : Tendsto f atTop atTop :=
simpa [sub_eq_add_neg] using tendsto_at_top_add_const_right _ _ tendsto_id
#align circle_deg1_lift.tendsto_at_top CircleDeg1Lift.tendsto_atTop
-/- warning: circle_deg1_lift.continuous_iff_surjective -> CircleDeg1Lift.continuous_iff_surjective is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift), Iff (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f)) (Function.Surjective.{1, 1} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f))
-but is expected to have type
- forall (f : CircleDeg1Lift), Iff (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f)) (Function.Surjective.{1, 1} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.continuous_iff_surjective CircleDeg1Lift.continuous_iff_surjectiveₓ'. -/
theorem continuous_iff_surjective : Continuous f ↔ Function.Surjective f :=
⟨fun h => h.Surjective f.tendsto_atTop f.tendsto_atBot, f.Monotone.continuous_of_surjective⟩
#align circle_deg1_lift.continuous_iff_surjective CircleDeg1Lift.continuous_iff_surjective
@@ -991,105 +609,51 @@ work for `n = 0`. For `<` and `>` we formulate only `iff` versions.
-/
-/- warning: circle_deg1_lift.iterate_le_of_map_le_add_int -> CircleDeg1Lift.iterate_le_of_map_le_add_int is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) {x : Real} {m : Int}, (LE.le.{0} Real Real.hasLe (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m))) -> (forall (n : Nat), LE.le.{0} Real Real.hasLe (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) ((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))) m))))
-but is expected to have type
- forall (f : CircleDeg1Lift) {x : Real} {m : Int}, (LE.le.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLEReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast m))) -> (forall (n : Nat), LE.le.{0} Real Real.instLEReal (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) (Int.cast.{0} Real Real.intCast m))))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.iterate_le_of_map_le_add_int CircleDeg1Lift.iterate_le_of_map_le_add_intₓ'. -/
theorem iterate_le_of_map_le_add_int {x : ℝ} {m : ℤ} (h : f x ≤ x + m) (n : ℕ) :
(f^[n]) x ≤ x + n * m := by
simpa only [nsmul_eq_mul, add_right_iterate] using
(f.commute_add_int m).iterate_le_of_map_le f.monotone (monotone_id.add_const m) h n
#align circle_deg1_lift.iterate_le_of_map_le_add_int CircleDeg1Lift.iterate_le_of_map_le_add_int
-/- warning: circle_deg1_lift.le_iterate_of_add_int_le_map -> CircleDeg1Lift.le_iterate_of_add_int_le_map is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) {x : Real} {m : Int}, (LE.le.{0} Real Real.hasLe (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x)) -> (forall (n : Nat), LE.le.{0} Real Real.hasLe (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) ((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))) m))) (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n x))
-but is expected to have type
- forall (f : CircleDeg1Lift) {x : Real} {m : Int}, (LE.le.{0} Real Real.instLEReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast m)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x)) -> (forall (n : Nat), LE.le.{0} Real Real.instLEReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) (Int.cast.{0} Real Real.intCast m))) (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n x))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.le_iterate_of_add_int_le_map CircleDeg1Lift.le_iterate_of_add_int_le_mapₓ'. -/
theorem le_iterate_of_add_int_le_map {x : ℝ} {m : ℤ} (h : x + m ≤ f x) (n : ℕ) :
x + n * m ≤ (f^[n]) x := by
simpa only [nsmul_eq_mul, add_right_iterate] using
(f.commute_add_int m).symm.iterate_le_of_map_le (monotone_id.add_const m) f.monotone h n
#align circle_deg1_lift.le_iterate_of_add_int_le_map CircleDeg1Lift.le_iterate_of_add_int_le_map
-/- warning: circle_deg1_lift.iterate_eq_of_map_eq_add_int -> CircleDeg1Lift.iterate_eq_of_map_eq_add_int is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) {x : Real} {m : Int}, (Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m))) -> (forall (n : Nat), Eq.{1} Real (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) ((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))) m))))
-but is expected to have type
- forall (f : CircleDeg1Lift) {x : Real} {m : Int}, (Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast m))) -> (forall (n : Nat), Eq.{1} Real (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) (Int.cast.{0} Real Real.intCast m))))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.iterate_eq_of_map_eq_add_int CircleDeg1Lift.iterate_eq_of_map_eq_add_intₓ'. -/
theorem iterate_eq_of_map_eq_add_int {x : ℝ} {m : ℤ} (h : f x = x + m) (n : ℕ) :
(f^[n]) x = x + n * m := by
simpa only [nsmul_eq_mul, add_right_iterate] using (f.commute_add_int m).iterate_eq_of_map_eq n h
#align circle_deg1_lift.iterate_eq_of_map_eq_add_int CircleDeg1Lift.iterate_eq_of_map_eq_add_int
-/- warning: circle_deg1_lift.iterate_pos_le_iff -> CircleDeg1Lift.iterate_pos_le_iff is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) {x : Real} {m : Int} {n : Nat}, (LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) n) -> (Iff (LE.le.{0} Real Real.hasLe (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) ((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))) m)))) (LE.le.{0} Real Real.hasLe (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m))))
-but is expected to have type
- forall (f : CircleDeg1Lift) {x : Real} {m : Int} {n : Nat}, (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) -> (Iff (LE.le.{0} Real Real.instLEReal (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) (Int.cast.{0} Real Real.intCast m)))) (LE.le.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLEReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast m))))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.iterate_pos_le_iff CircleDeg1Lift.iterate_pos_le_iffₓ'. -/
theorem iterate_pos_le_iff {x : ℝ} {m : ℤ} {n : ℕ} (hn : 0 < n) :
(f^[n]) x ≤ x + n * m ↔ f x ≤ x + m := by
simpa only [nsmul_eq_mul, add_right_iterate] using
(f.commute_add_int m).iterate_pos_le_iff_map_le f.monotone (strict_mono_id.add_const m) hn
#align circle_deg1_lift.iterate_pos_le_iff CircleDeg1Lift.iterate_pos_le_iff
-/- warning: circle_deg1_lift.iterate_pos_lt_iff -> CircleDeg1Lift.iterate_pos_lt_iff is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) {x : Real} {m : Int} {n : Nat}, (LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) n) -> (Iff (LT.lt.{0} Real Real.hasLt (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) ((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))) m)))) (LT.lt.{0} Real Real.hasLt (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m))))
-but is expected to have type
- forall (f : CircleDeg1Lift) {x : Real} {m : Int} {n : Nat}, (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) -> (Iff (LT.lt.{0} Real Real.instLTReal (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) (Int.cast.{0} Real Real.intCast m)))) (LT.lt.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLTReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast m))))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.iterate_pos_lt_iff CircleDeg1Lift.iterate_pos_lt_iffₓ'. -/
theorem iterate_pos_lt_iff {x : ℝ} {m : ℤ} {n : ℕ} (hn : 0 < n) :
(f^[n]) x < x + n * m ↔ f x < x + m := by
simpa only [nsmul_eq_mul, add_right_iterate] using
(f.commute_add_int m).iterate_pos_lt_iff_map_lt f.monotone (strict_mono_id.add_const m) hn
#align circle_deg1_lift.iterate_pos_lt_iff CircleDeg1Lift.iterate_pos_lt_iff
-/- warning: circle_deg1_lift.iterate_pos_eq_iff -> CircleDeg1Lift.iterate_pos_eq_iff is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) {x : Real} {m : Int} {n : Nat}, (LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) n) -> (Iff (Eq.{1} Real (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) ((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))) m)))) (Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m))))
-but is expected to have type
- forall (f : CircleDeg1Lift) {x : Real} {m : Int} {n : Nat}, (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) -> (Iff (Eq.{1} Real (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) (Int.cast.{0} Real Real.intCast m)))) (Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast m))))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.iterate_pos_eq_iff CircleDeg1Lift.iterate_pos_eq_iffₓ'. -/
theorem iterate_pos_eq_iff {x : ℝ} {m : ℤ} {n : ℕ} (hn : 0 < n) :
(f^[n]) x = x + n * m ↔ f x = x + m := by
simpa only [nsmul_eq_mul, add_right_iterate] using
(f.commute_add_int m).iterate_pos_eq_iff_map_eq f.monotone (strict_mono_id.add_const m) hn
#align circle_deg1_lift.iterate_pos_eq_iff CircleDeg1Lift.iterate_pos_eq_iff
-/- warning: circle_deg1_lift.le_iterate_pos_iff -> CircleDeg1Lift.le_iterate_pos_iff is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) {x : Real} {m : Int} {n : Nat}, (LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) n) -> (Iff (LE.le.{0} Real Real.hasLe (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) ((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))) m))) (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n x)) (LE.le.{0} Real Real.hasLe (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x)))
-but is expected to have type
- forall (f : CircleDeg1Lift) {x : Real} {m : Int} {n : Nat}, (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) -> (Iff (LE.le.{0} Real Real.instLEReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) (Int.cast.{0} Real Real.intCast m))) (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n x)) (LE.le.{0} Real Real.instLEReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast m)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x)))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.le_iterate_pos_iff CircleDeg1Lift.le_iterate_pos_iffₓ'. -/
theorem le_iterate_pos_iff {x : ℝ} {m : ℤ} {n : ℕ} (hn : 0 < n) :
x + n * m ≤ (f^[n]) x ↔ x + m ≤ f x := by
simpa only [not_lt] using not_congr (f.iterate_pos_lt_iff hn)
#align circle_deg1_lift.le_iterate_pos_iff CircleDeg1Lift.le_iterate_pos_iff
-/- warning: circle_deg1_lift.lt_iterate_pos_iff -> CircleDeg1Lift.lt_iterate_pos_iff is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) {x : Real} {m : Int} {n : Nat}, (LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) n) -> (Iff (LT.lt.{0} Real Real.hasLt (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) ((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))) m))) (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n x)) (LT.lt.{0} Real Real.hasLt (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x)))
-but is expected to have type
- forall (f : CircleDeg1Lift) {x : Real} {m : Int} {n : Nat}, (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) -> (Iff (LT.lt.{0} Real Real.instLTReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) (Int.cast.{0} Real Real.intCast m))) (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n x)) (LT.lt.{0} Real Real.instLTReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast m)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x)))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.lt_iterate_pos_iff CircleDeg1Lift.lt_iterate_pos_iffₓ'. -/
theorem lt_iterate_pos_iff {x : ℝ} {m : ℤ} {n : ℕ} (hn : 0 < n) :
x + n * m < (f^[n]) x ↔ x + m < f x := by
simpa only [not_le] using not_congr (f.iterate_pos_le_iff hn)
#align circle_deg1_lift.lt_iterate_pos_iff CircleDeg1Lift.lt_iterate_pos_iff
-/- warning: circle_deg1_lift.mul_floor_map_zero_le_floor_iterate_zero -> CircleDeg1Lift.mul_floor_map_zero_le_floor_iterate_zero is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (n : Nat), LE.le.{0} Int Int.hasLe (HMul.hMul.{0, 0, 0} Int Int Int (instHMul.{0} Int Int.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n) (Int.floor.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))) (Int.floor.{0} Real Real.linearOrderedRing Real.floorRing (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))
-but is expected to have type
- forall (f : CircleDeg1Lift) (n : Nat), LE.le.{0} Int Int.instLEInt (HMul.hMul.{0, 0, 0} Int Int Int (instHMul.{0} Int Int.instMulInt) (Nat.cast.{0} Int instNatCastInt n) (Int.floor.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))) (Int.floor.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.mul_floor_map_zero_le_floor_iterate_zero CircleDeg1Lift.mul_floor_map_zero_le_floor_iterate_zeroₓ'. -/
theorem mul_floor_map_zero_le_floor_iterate_zero (n : ℕ) : ↑n * ⌊f 0⌋ ≤ ⌊(f^[n]) 0⌋ :=
by
rw [le_floor, Int.cast_mul, Int.cast_ofNat, ← zero_add ((n : ℝ) * _)]
@@ -1125,12 +689,6 @@ def translationNumber : ℝ :=
-- `circle_mono_homeo.rotation_number`, then make them `localized notation`s
local notation "τ" => translationNumber
-/- warning: circle_deg1_lift.transnum_aux_seq_def -> CircleDeg1Lift.transnumAuxSeq_def is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift), Eq.{1} (Nat -> Real) (CircleDeg1Lift.transnumAuxSeq f) (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) n)) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.monoid)) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne)))) n))
-but is expected to have type
- forall (f : CircleDeg1Lift), Eq.{1} (Nat -> Real) (CircleDeg1Lift.transnumAuxSeq f) (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real (instHDiv.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (LinearOrderedField.toDiv.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedFieldReal)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) n)) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (HPow.hPow.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Nat ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHPow.{0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Nat (Monoid.Pow.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instMonoidReal)) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) 2 (instOfNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))) n))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.transnum_aux_seq_def CircleDeg1Lift.transnumAuxSeq_defₓ'. -/
theorem transnumAuxSeq_def : f.transnumAuxSeq = fun n : ℕ => (f ^ 2 ^ n) 0 / 2 ^ n :=
rfl
#align circle_deg1_lift.transnum_aux_seq_def CircleDeg1Lift.transnumAuxSeq_def
@@ -1142,12 +700,6 @@ theorem translationNumber_eq_of_tendsto_aux {τ' : ℝ} (h : Tendsto f.transnumA
#align circle_deg1_lift.translation_number_eq_of_tendsto_aux CircleDeg1Lift.translationNumber_eq_of_tendsto_aux
-/
-/- warning: circle_deg1_lift.translation_number_eq_of_tendsto₀ -> CircleDeg1Lift.translationNumber_eq_of_tendsto₀ is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) {τ' : Real}, (Filter.Tendsto.{0, 0} Nat Real (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n (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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n)) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) τ')) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f) τ')
-but is expected to have type
- forall (f : CircleDeg1Lift) {τ' : Real}, (Filter.Tendsto.{0, 0} Nat Real (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (Nat.cast.{0} Real Real.natCast n)) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) τ')) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f) τ')
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_eq_of_tendsto₀ CircleDeg1Lift.translationNumber_eq_of_tendsto₀ₓ'. -/
theorem translationNumber_eq_of_tendsto₀ {τ' : ℝ}
(h : Tendsto (fun n : ℕ => (f^[n]) 0 / n) atTop (𝓝 τ')) : τ f = τ' :=
f.translationNumber_eq_of_tendsto_aux <| by
@@ -1155,32 +707,14 @@ theorem translationNumber_eq_of_tendsto₀ {τ' : ℝ}
h.comp (Nat.tendsto_pow_atTop_atTop_of_one_lt one_lt_two)
#align circle_deg1_lift.translation_number_eq_of_tendsto₀ CircleDeg1Lift.translationNumber_eq_of_tendsto₀
-/- warning: circle_deg1_lift.translation_number_eq_of_tendsto₀' -> CircleDeg1Lift.translationNumber_eq_of_tendsto₀' is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) {τ' : Real}, (Filter.Tendsto.{0, 0} Nat Real (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) τ')) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f) τ')
-but is expected to have type
- forall (f : CircleDeg1Lift) {τ' : Real}, (Filter.Tendsto.{0, 0} Nat Real (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast n) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) τ')) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f) τ')
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_eq_of_tendsto₀' CircleDeg1Lift.translationNumber_eq_of_tendsto₀'ₓ'. -/
theorem translationNumber_eq_of_tendsto₀' {τ' : ℝ}
(h : Tendsto (fun n : ℕ => (f^[n + 1]) 0 / (n + 1)) atTop (𝓝 τ')) : τ f = τ' :=
f.translationNumber_eq_of_tendsto₀ <| (tendsto_add_atTop_iff_nat 1).1 (by exact_mod_cast h)
#align circle_deg1_lift.translation_number_eq_of_tendsto₀' CircleDeg1Lift.translationNumber_eq_of_tendsto₀'
-/- warning: circle_deg1_lift.transnum_aux_seq_zero -> CircleDeg1Lift.transnumAuxSeq_zero is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift), Eq.{1} Real (CircleDeg1Lift.transnumAuxSeq f (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))
-but is expected to have type
- forall (f : CircleDeg1Lift), Eq.{1} Real (CircleDeg1Lift.transnumAuxSeq f (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.transnum_aux_seq_zero CircleDeg1Lift.transnumAuxSeq_zeroₓ'. -/
theorem transnumAuxSeq_zero : f.transnumAuxSeq 0 = f 0 := by simp [transnum_aux_seq]
#align circle_deg1_lift.transnum_aux_seq_zero CircleDeg1Lift.transnumAuxSeq_zero
-/- warning: circle_deg1_lift.transnum_aux_seq_dist_lt -> CircleDeg1Lift.transnumAuxSeq_dist_lt is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (n : Nat), LT.lt.{0} Real Real.hasLt (Dist.dist.{0} Real (PseudoMetricSpace.toHasDist.{0} Real Real.pseudoMetricSpace) (CircleDeg1Lift.transnumAuxSeq f n) (CircleDeg1Lift.transnumAuxSeq f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne))))) (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.monoid)) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne)))) n))
-but is expected to have type
- forall (f : CircleDeg1Lift) (n : Nat), LT.lt.{0} Real Real.instLTReal (Dist.dist.{0} Real (PseudoMetricSpace.toDist.{0} Real Real.pseudoMetricSpace) (CircleDeg1Lift.transnumAuxSeq f n) (CircleDeg1Lift.transnumAuxSeq f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))))) (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.instMonoidReal)) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))) n))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.transnum_aux_seq_dist_lt CircleDeg1Lift.transnumAuxSeq_dist_ltₓ'. -/
theorem transnumAuxSeq_dist_lt (n : ℕ) :
dist (f.transnumAuxSeq n) (f.transnumAuxSeq (n + 1)) < 1 / 2 / 2 ^ n :=
by
@@ -1199,24 +733,12 @@ theorem tendsto_translationNumber_aux : Tendsto f.transnumAuxSeq atTop (𝓝 <|
#align circle_deg1_lift.tendsto_translation_number_aux CircleDeg1Lift.tendsto_translationNumber_aux
-/
-/- warning: circle_deg1_lift.dist_map_zero_translation_number_le -> CircleDeg1Lift.dist_map_zero_translationNumber_le is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift), LE.le.{0} Real Real.hasLe (Dist.dist.{0} Real (PseudoMetricSpace.toHasDist.{0} Real Real.pseudoMetricSpace) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (CircleDeg1Lift.translationNumber f)) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))
-but is expected to have type
- forall (f : CircleDeg1Lift), LE.le.{0} Real Real.instLEReal (Dist.dist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (PseudoMetricSpace.toDist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.pseudoMetricSpace) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (CircleDeg1Lift.translationNumber f)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.dist_map_zero_translation_number_le CircleDeg1Lift.dist_map_zero_translationNumber_leₓ'. -/
theorem dist_map_zero_translationNumber_le : dist (f 0) (τ f) ≤ 1 :=
f.transnumAuxSeq_zero ▸
dist_le_of_le_geometric_two_of_tendsto₀ 1 (fun n => le_of_lt <| f.transnumAuxSeq_dist_lt n)
f.tendsto_translationNumber_aux
#align circle_deg1_lift.dist_map_zero_translation_number_le CircleDeg1Lift.dist_map_zero_translationNumber_le
-/- warning: circle_deg1_lift.tendsto_translation_number_of_dist_bounded_aux -> CircleDeg1Lift.tendsto_translationNumber_of_dist_bounded_aux is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (x : Nat -> Real) (C : Real), (forall (n : Nat), LE.le.{0} Real Real.hasLe (Dist.dist.{0} Real (PseudoMetricSpace.toHasDist.{0} Real Real.pseudoMetricSpace) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (x n)) C) -> (Filter.Tendsto.{0, 0} Nat Real (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (x (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) n)) (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.monoid)) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne)))) n)) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (CircleDeg1Lift.translationNumber f)))
-but is expected to have type
- forall (f : CircleDeg1Lift) (x : Nat -> Real) (C : Real), (forall (n : Nat), LE.le.{0} Real Real.instLEReal (Dist.dist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (PseudoMetricSpace.toDist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.pseudoMetricSpace) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (x n)) C) -> (Filter.Tendsto.{0, 0} Nat Real (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (x (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) n)) (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.instMonoidReal)) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))) n)) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (CircleDeg1Lift.translationNumber f)))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.tendsto_translation_number_of_dist_bounded_aux CircleDeg1Lift.tendsto_translationNumber_of_dist_bounded_auxₓ'. -/
theorem tendsto_translationNumber_of_dist_bounded_aux (x : ℕ → ℝ) (C : ℝ)
(H : ∀ n : ℕ, dist ((f ^ n) 0) (x n) ≤ C) :
Tendsto (fun n : ℕ => x (2 ^ n) / 2 ^ n) atTop (𝓝 <| τ f) :=
@@ -1234,58 +756,28 @@ theorem tendsto_translationNumber_of_dist_bounded_aux (x : ℕ → ℝ) (C : ℝ
(tendsto_inv_at_top_zero.comp <| tendsto_pow_atTop_atTop_of_one_lt one_lt_two)
#align circle_deg1_lift.tendsto_translation_number_of_dist_bounded_aux CircleDeg1Lift.tendsto_translationNumber_of_dist_bounded_aux
-/- warning: circle_deg1_lift.translation_number_eq_of_dist_bounded -> CircleDeg1Lift.translationNumber_eq_of_dist_bounded is a dubious translation:
-lean 3 declaration is
- forall {f : CircleDeg1Lift} {g : CircleDeg1Lift} (C : Real), (forall (n : Nat), LE.le.{0} Real Real.hasLe (Dist.dist.{0} Real (PseudoMetricSpace.toHasDist.{0} Real Real.pseudoMetricSpace) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) g n) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) C) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f) (CircleDeg1Lift.translationNumber g))
-but is expected to have type
- forall {f : CircleDeg1Lift} {g : CircleDeg1Lift} (C : Real), (forall (n : Nat), LE.le.{0} Real Real.instLEReal (Dist.dist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (PseudoMetricSpace.toDist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.pseudoMetricSpace) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) g n) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) C) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f) (CircleDeg1Lift.translationNumber g))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_eq_of_dist_bounded CircleDeg1Lift.translationNumber_eq_of_dist_boundedₓ'. -/
theorem translationNumber_eq_of_dist_bounded {f g : CircleDeg1Lift} (C : ℝ)
(H : ∀ n : ℕ, dist ((f ^ n) 0) ((g ^ n) 0) ≤ C) : τ f = τ g :=
Eq.symm <|
g.translationNumber_eq_of_tendsto_aux <| f.tendsto_translationNumber_of_dist_bounded_aux _ C H
#align circle_deg1_lift.translation_number_eq_of_dist_bounded CircleDeg1Lift.translationNumber_eq_of_dist_bounded
-/- warning: circle_deg1_lift.translation_number_one -> CircleDeg1Lift.translationNumber_one is a dubious translation:
-lean 3 declaration is
- Eq.{1} Real (CircleDeg1Lift.translationNumber (OfNat.ofNat.{0} CircleDeg1Lift 1 (OfNat.mk.{0} CircleDeg1Lift 1 (One.one.{0} CircleDeg1Lift (MulOneClass.toHasOne.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))))) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))
-but is expected to have type
- Eq.{1} Real (CircleDeg1Lift.translationNumber (OfNat.ofNat.{0} CircleDeg1Lift 1 (One.toOfNat1.{0} CircleDeg1Lift (Monoid.toOne.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_one CircleDeg1Lift.translationNumber_oneₓ'. -/
@[simp]
theorem translationNumber_one : τ 1 = 0 :=
translationNumber_eq_of_tendsto₀ _ <| by simp [tendsto_const_nhds]
#align circle_deg1_lift.translation_number_one CircleDeg1Lift.translationNumber_one
-/- warning: circle_deg1_lift.translation_number_eq_of_semiconj_by -> CircleDeg1Lift.translationNumber_eq_of_semiconjBy is a dubious translation:
-lean 3 declaration is
- forall {f : CircleDeg1Lift} {g₁ : CircleDeg1Lift} {g₂ : CircleDeg1Lift}, (SemiconjBy.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f g₁ g₂) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber g₁) (CircleDeg1Lift.translationNumber g₂))
-but is expected to have type
- forall {f : CircleDeg1Lift} {g₁ : CircleDeg1Lift} {g₂ : CircleDeg1Lift}, (SemiconjBy.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f g₁ g₂) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber g₁) (CircleDeg1Lift.translationNumber g₂))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_eq_of_semiconj_by CircleDeg1Lift.translationNumber_eq_of_semiconjByₓ'. -/
theorem translationNumber_eq_of_semiconjBy {f g₁ g₂ : CircleDeg1Lift} (H : SemiconjBy f g₁ g₂) :
τ g₁ = τ g₂ :=
translationNumber_eq_of_dist_bounded 2 fun n =>
le_of_lt <| dist_map_zero_lt_of_semiconjBy <| H.pow_right n
#align circle_deg1_lift.translation_number_eq_of_semiconj_by CircleDeg1Lift.translationNumber_eq_of_semiconjBy
-/- warning: circle_deg1_lift.translation_number_eq_of_semiconj -> CircleDeg1Lift.translationNumber_eq_of_semiconj is a dubious translation:
-lean 3 declaration is
- forall {f : CircleDeg1Lift} {g₁ : CircleDeg1Lift} {g₂ : CircleDeg1Lift}, (Function.Semiconj.{0, 0} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g₁) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g₂)) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber g₁) (CircleDeg1Lift.translationNumber g₂))
-but is expected to have type
- forall {f : CircleDeg1Lift} {g₁ : CircleDeg1Lift} {g₂ : CircleDeg1Lift}, (Function.Semiconj.{0, 0} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g₁) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g₂)) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber g₁) (CircleDeg1Lift.translationNumber g₂))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_eq_of_semiconj CircleDeg1Lift.translationNumber_eq_of_semiconjₓ'. -/
theorem translationNumber_eq_of_semiconj {f g₁ g₂ : CircleDeg1Lift}
(H : Function.Semiconj f g₁ g₂) : τ g₁ = τ g₂ :=
translationNumber_eq_of_semiconjBy <| semiconjBy_iff_semiconj.2 H
#align circle_deg1_lift.translation_number_eq_of_semiconj CircleDeg1Lift.translationNumber_eq_of_semiconj
-/- warning: circle_deg1_lift.translation_number_mul_of_commute -> CircleDeg1Lift.translationNumber_mul_of_commute is a dubious translation:
-lean 3 declaration is
- forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, (Commute.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f g) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid))) f g)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (CircleDeg1Lift.translationNumber f) (CircleDeg1Lift.translationNumber g)))
-but is expected to have type
- forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, (Commute.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f g) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))) f g)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (CircleDeg1Lift.translationNumber f) (CircleDeg1Lift.translationNumber g)))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_mul_of_commute CircleDeg1Lift.translationNumber_mul_of_commuteₓ'. -/
theorem translationNumber_mul_of_commute {f g : CircleDeg1Lift} (h : Commute f g) :
τ (f * g) = τ f + τ g :=
by
@@ -1300,24 +792,12 @@ theorem translationNumber_mul_of_commute {f g : CircleDeg1Lift} (h : Commute f g
exact le_of_lt ((f ^ n).dist_map_map_zero_lt (g ^ n))
#align circle_deg1_lift.translation_number_mul_of_commute CircleDeg1Lift.translationNumber_mul_of_commute
-/- warning: circle_deg1_lift.translation_number_units_inv -> CircleDeg1Lift.translationNumber_units_inv is a dubious translation:
-lean 3 declaration is
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid), Eq.{1} Real (CircleDeg1Lift.translationNumber ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f))) (Neg.neg.{0} Real Real.hasNeg (CircleDeg1Lift.translationNumber ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) f)))
-but is expected to have type
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} Real (CircleDeg1Lift.translationNumber (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInv.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f))) (Neg.neg.{0} Real Real.instNegReal (CircleDeg1Lift.translationNumber (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f)))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_units_inv CircleDeg1Lift.translationNumber_units_invₓ'. -/
@[simp]
theorem translationNumber_units_inv (f : CircleDeg1Liftˣ) : τ ↑f⁻¹ = -τ f :=
eq_neg_iff_add_eq_zero.2 <| by
simp [← translation_number_mul_of_commute (Commute.refl _).units_inv_left]
#align circle_deg1_lift.translation_number_units_inv CircleDeg1Lift.translationNumber_units_inv
-/- warning: circle_deg1_lift.translation_number_pow -> CircleDeg1Lift.translationNumber_pow is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (n : Nat), Eq.{1} Real (CircleDeg1Lift.translationNumber (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n)) (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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) (CircleDeg1Lift.translationNumber f))
-but is expected to have type
- forall (f : CircleDeg1Lift) (n : Nat), Eq.{1} Real (CircleDeg1Lift.translationNumber (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) (CircleDeg1Lift.translationNumber f))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_pow CircleDeg1Lift.translationNumber_powₓ'. -/
@[simp]
theorem translationNumber_pow : ∀ n : ℕ, τ (f ^ n) = n * τ f
| 0 => by simp
@@ -1326,59 +806,29 @@ theorem translationNumber_pow : ∀ n : ℕ, τ (f ^ n) = n * τ f
translation_number_pow n, Nat.cast_add_one, add_mul, one_mul]
#align circle_deg1_lift.translation_number_pow CircleDeg1Lift.translationNumber_pow
-/- warning: circle_deg1_lift.translation_number_zpow -> CircleDeg1Lift.translationNumber_zpow is a dubious translation:
-lean 3 declaration is
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (n : Int), Eq.{1} Real (CircleDeg1Lift.translationNumber ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) (HPow.hPow.{0, 0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) Int (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (instHPow.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) Int (DivInvMonoid.Pow.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Group.toDivInvMonoid.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.group.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) f n))) (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))) n) (CircleDeg1Lift.translationNumber ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) f)))
-but is expected to have type
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (n : Int), Eq.{1} Real (CircleDeg1Lift.translationNumber (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (HPow.hPow.{0, 0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) Int (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (instHPow.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) Int (DivInvMonoid.Pow.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Group.toDivInvMonoid.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instGroupUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) f n))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Int.cast.{0} Real Real.intCast n) (CircleDeg1Lift.translationNumber (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f)))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_zpow CircleDeg1Lift.translationNumber_zpowₓ'. -/
@[simp]
theorem translationNumber_zpow (f : CircleDeg1Liftˣ) : ∀ n : ℤ, τ (f ^ n : Units _) = n * τ f
| (n : ℕ) => by simp [translation_number_pow f n]
| -[n+1] => by simp; ring
#align circle_deg1_lift.translation_number_zpow CircleDeg1Lift.translationNumber_zpow
-/- warning: circle_deg1_lift.translation_number_conj_eq -> CircleDeg1Lift.translationNumber_conj_eq is a dubious translation:
-lean 3 declaration is
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (g : CircleDeg1Lift), Eq.{1} Real (CircleDeg1Lift.translationNumber (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid))) (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) f) g) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f)))) (CircleDeg1Lift.translationNumber g)
-but is expected to have type
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (g : CircleDeg1Lift), Eq.{1} Real (CircleDeg1Lift.translationNumber (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))) (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f) g) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInv.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)))) (CircleDeg1Lift.translationNumber g)
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_conj_eq CircleDeg1Lift.translationNumber_conj_eqₓ'. -/
@[simp]
theorem translationNumber_conj_eq (f : CircleDeg1Liftˣ) (g : CircleDeg1Lift) :
τ (↑f * g * ↑f⁻¹) = τ g :=
(translationNumber_eq_of_semiconjBy (f.mk_semiconjBy g)).symm
#align circle_deg1_lift.translation_number_conj_eq CircleDeg1Lift.translationNumber_conj_eq
-/- warning: circle_deg1_lift.translation_number_conj_eq' -> CircleDeg1Lift.translationNumber_conj_eq' is a dubious translation:
-lean 3 declaration is
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (g : CircleDeg1Lift), Eq.{1} Real (CircleDeg1Lift.translationNumber (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid))) (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f)) g) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) f))) (CircleDeg1Lift.translationNumber g)
-but is expected to have type
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (g : CircleDeg1Lift), Eq.{1} Real (CircleDeg1Lift.translationNumber (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))) (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInv.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)) g) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f))) (CircleDeg1Lift.translationNumber g)
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_conj_eq' CircleDeg1Lift.translationNumber_conj_eq'ₓ'. -/
@[simp]
theorem translationNumber_conj_eq' (f : CircleDeg1Liftˣ) (g : CircleDeg1Lift) :
τ (↑f⁻¹ * g * f) = τ g :=
translationNumber_conj_eq f⁻¹ g
#align circle_deg1_lift.translation_number_conj_eq' CircleDeg1Lift.translationNumber_conj_eq'
-/- warning: circle_deg1_lift.dist_pow_map_zero_mul_translation_number_le -> CircleDeg1Lift.dist_pow_map_zero_mul_translationNumber_le is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (n : Nat), LE.le.{0} Real Real.hasLe (Dist.dist.{0} Real (PseudoMetricSpace.toHasDist.{0} Real Real.pseudoMetricSpace) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) (CircleDeg1Lift.translationNumber f))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))
-but is expected to have type
- forall (f : CircleDeg1Lift) (n : Nat), LE.le.{0} Real Real.instLEReal (Dist.dist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (PseudoMetricSpace.toDist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.pseudoMetricSpace) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (HMul.hMul.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHMul.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instMulReal) (Nat.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.natCast n) (CircleDeg1Lift.translationNumber f))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.dist_pow_map_zero_mul_translation_number_le CircleDeg1Lift.dist_pow_map_zero_mul_translationNumber_leₓ'. -/
theorem dist_pow_map_zero_mul_translationNumber_le (n : ℕ) :
dist ((f ^ n) 0) (n * f.translationNumber) ≤ 1 :=
f.translationNumber_pow n ▸ (f ^ n).dist_map_zero_translationNumber_le
#align circle_deg1_lift.dist_pow_map_zero_mul_translation_number_le CircleDeg1Lift.dist_pow_map_zero_mul_translationNumber_le
-/- warning: circle_deg1_lift.tendsto_translation_number₀' -> CircleDeg1Lift.tendsto_translation_number₀' is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift), Filter.Tendsto.{0, 0} Nat Real (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (CircleDeg1Lift.translationNumber f))
-but is expected to have type
- forall (f : CircleDeg1Lift), Filter.Tendsto.{0, 0} Nat ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHDiv.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (LinearOrderedField.toDiv.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedFieldReal)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast n) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instOneReal)))) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (UniformSpace.toTopologicalSpace.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (PseudoMetricSpace.toUniformSpace.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.pseudoMetricSpace)) (CircleDeg1Lift.translationNumber f))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.tendsto_translation_number₀' CircleDeg1Lift.tendsto_translation_number₀'ₓ'. -/
theorem tendsto_translation_number₀' :
Tendsto (fun n : ℕ => (f ^ (n + 1)) 0 / (n + 1)) atTop (𝓝 <| τ f) :=
by
@@ -1393,22 +843,10 @@ theorem tendsto_translation_number₀' :
apply dist_pow_map_zero_mul_translation_number_le
#align circle_deg1_lift.tendsto_translation_number₀' CircleDeg1Lift.tendsto_translation_number₀'
-/- warning: circle_deg1_lift.tendsto_translation_number₀ -> CircleDeg1Lift.tendsto_translation_number₀ is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift), Filter.Tendsto.{0, 0} Nat Real (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n) (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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n)) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (CircleDeg1Lift.translationNumber f))
-but is expected to have type
- forall (f : CircleDeg1Lift), Filter.Tendsto.{0, 0} Nat ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHDiv.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (LinearOrderedField.toDiv.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedFieldReal)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (Nat.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.natCast n)) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (UniformSpace.toTopologicalSpace.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (PseudoMetricSpace.toUniformSpace.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.pseudoMetricSpace)) (CircleDeg1Lift.translationNumber f))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.tendsto_translation_number₀ CircleDeg1Lift.tendsto_translation_number₀ₓ'. -/
theorem tendsto_translation_number₀ : Tendsto (fun n : ℕ => (f ^ n) 0 / n) atTop (𝓝 <| τ f) :=
(tendsto_add_atTop_iff_nat 1).1 (by exact_mod_cast f.tendsto_translation_number₀')
#align circle_deg1_lift.tendsto_translation_number₀ CircleDeg1Lift.tendsto_translation_number₀
-/- warning: circle_deg1_lift.tendsto_translation_number -> CircleDeg1Lift.tendsto_translationNumber is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (x : Real), Filter.Tendsto.{0, 0} Nat Real (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n) x) x) ((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)) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (CircleDeg1Lift.translationNumber f))
-but is expected to have type
- forall (f : CircleDeg1Lift) (x : Real), Filter.Tendsto.{0, 0} Nat ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHDiv.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (LinearOrderedField.toDiv.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLinearOrderedFieldReal)) (HSub.hSub.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHSub.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instSubReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n) x) x) (Nat.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.natCast n)) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (UniformSpace.toTopologicalSpace.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (PseudoMetricSpace.toUniformSpace.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.pseudoMetricSpace)) (CircleDeg1Lift.translationNumber f))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.tendsto_translation_number CircleDeg1Lift.tendsto_translationNumberₓ'. -/
/-- For any `x : ℝ` the sequence $\frac{f^n(x)-x}{n}$ tends to the translation number of `f`.
In particular, this limit does not depend on `x`. -/
theorem tendsto_translationNumber (x : ℝ) :
@@ -1420,67 +858,31 @@ theorem tendsto_translationNumber (x : ℝ) :
simp [sub_eq_neg_add, Units.conj_pow']
#align circle_deg1_lift.tendsto_translation_number CircleDeg1Lift.tendsto_translationNumber
-/- warning: circle_deg1_lift.tendsto_translation_number' -> CircleDeg1Lift.tendsto_translation_number' is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (x : Real), Filter.Tendsto.{0, 0} Nat Real (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) x) x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (CircleDeg1Lift.translationNumber f))
-but is expected to have type
- forall (f : CircleDeg1Lift) (x : Real), Filter.Tendsto.{0, 0} Nat ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHDiv.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (LinearOrderedField.toDiv.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLinearOrderedFieldReal)) (HSub.hSub.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHSub.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instSubReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x) x) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instAddReal) (Nat.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.natCast n) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instOneReal)))) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (UniformSpace.toTopologicalSpace.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (PseudoMetricSpace.toUniformSpace.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.pseudoMetricSpace)) (CircleDeg1Lift.translationNumber f))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.tendsto_translation_number' CircleDeg1Lift.tendsto_translation_number'ₓ'. -/
theorem tendsto_translation_number' (x : ℝ) :
Tendsto (fun n : ℕ => ((f ^ (n + 1)) x - x) / (n + 1)) atTop (𝓝 <| τ f) := by
exact_mod_cast (tendsto_add_at_top_iff_nat 1).2 (f.tendsto_translation_number x)
#align circle_deg1_lift.tendsto_translation_number' CircleDeg1Lift.tendsto_translation_number'
-/- warning: circle_deg1_lift.translation_number_mono -> CircleDeg1Lift.translationNumber_mono is a dubious translation:
-lean 3 declaration is
- Monotone.{0, 0} CircleDeg1Lift Real (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.lattice))) Real.preorder CircleDeg1Lift.translationNumber
-but is expected to have type
- Monotone.{0, 0} CircleDeg1Lift Real (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.instLatticeCircleDeg1Lift))) Real.instPreorderReal CircleDeg1Lift.translationNumber
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_mono CircleDeg1Lift.translationNumber_monoₓ'. -/
theorem translationNumber_mono : Monotone τ := fun f g h =>
le_of_tendsto_of_tendsto' f.tendsto_translation_number₀ g.tendsto_translation_number₀ fun n =>
div_le_div_of_le_of_nonneg (pow_mono h n 0) n.cast_nonneg
#align circle_deg1_lift.translation_number_mono CircleDeg1Lift.translationNumber_mono
-/- warning: circle_deg1_lift.translation_number_translate -> CircleDeg1Lift.translationNumber_translate is a dubious translation:
-lean 3 declaration is
- forall (x : Real), Eq.{1} Real (CircleDeg1Lift.translationNumber ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)))) x
-but is expected to have type
- forall (x : Real), Eq.{1} Real (CircleDeg1Lift.translationNumber (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (_x : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) _x) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)))) x
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_translate CircleDeg1Lift.translationNumber_translateₓ'. -/
theorem translationNumber_translate (x : ℝ) : τ (translate <| Multiplicative.ofAdd x) = x :=
translationNumber_eq_of_tendsto₀' _ <| by
simp [Nat.cast_add_one_ne_zero, mul_div_cancel_left, tendsto_const_nhds]
#align circle_deg1_lift.translation_number_translate CircleDeg1Lift.translationNumber_translate
-/- warning: circle_deg1_lift.translation_number_le_of_le_add -> CircleDeg1Lift.translationNumber_le_of_le_add is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) {z : Real}, (forall (x : Real), LE.le.{0} Real Real.hasLe (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x z)) -> (LE.le.{0} Real Real.hasLe (CircleDeg1Lift.translationNumber f) z)
-but is expected to have type
- forall (f : CircleDeg1Lift) {z : Real}, (forall (x : Real), LE.le.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLEReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x z)) -> (LE.le.{0} Real Real.instLEReal (CircleDeg1Lift.translationNumber f) z)
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_le_of_le_add CircleDeg1Lift.translationNumber_le_of_le_addₓ'. -/
theorem translationNumber_le_of_le_add {z : ℝ} (hz : ∀ x, f x ≤ x + z) : τ f ≤ z :=
translationNumber_translate z ▸
translationNumber_mono fun x => trans_rel_left _ (hz x) (add_comm _ _)
#align circle_deg1_lift.translation_number_le_of_le_add CircleDeg1Lift.translationNumber_le_of_le_add
-/- warning: circle_deg1_lift.le_translation_number_of_add_le -> CircleDeg1Lift.le_translationNumber_of_add_le is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) {z : Real}, (forall (x : Real), LE.le.{0} Real Real.hasLe (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x z) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x)) -> (LE.le.{0} Real Real.hasLe z (CircleDeg1Lift.translationNumber f))
-but is expected to have type
- forall (f : CircleDeg1Lift) {z : Real}, (forall (x : Real), LE.le.{0} Real Real.instLEReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x z) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x)) -> (LE.le.{0} Real Real.instLEReal z (CircleDeg1Lift.translationNumber f))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.le_translation_number_of_add_le CircleDeg1Lift.le_translationNumber_of_add_leₓ'. -/
theorem le_translationNumber_of_add_le {z : ℝ} (hz : ∀ x, x + z ≤ f x) : z ≤ τ f :=
translationNumber_translate z ▸
translationNumber_mono fun x => trans_rel_right _ (add_comm _ _) (hz x)
#align circle_deg1_lift.le_translation_number_of_add_le CircleDeg1Lift.le_translationNumber_of_add_le
-/- warning: circle_deg1_lift.translation_number_le_of_le_add_int -> CircleDeg1Lift.translationNumber_le_of_le_add_int is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) {x : Real} {m : Int}, (LE.le.{0} Real Real.hasLe (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m))) -> (LE.le.{0} Real Real.hasLe (CircleDeg1Lift.translationNumber f) ((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))) m))
-but is expected to have type
- forall (f : CircleDeg1Lift) {x : Real} {m : Int}, (LE.le.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLEReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast m))) -> (LE.le.{0} Real Real.instLEReal (CircleDeg1Lift.translationNumber f) (Int.cast.{0} Real Real.intCast m))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_le_of_le_add_int CircleDeg1Lift.translationNumber_le_of_le_add_intₓ'. -/
theorem translationNumber_le_of_le_add_int {x : ℝ} {m : ℤ} (h : f x ≤ x + m) : τ f ≤ m :=
le_of_tendsto' (f.tendsto_translation_number' x) fun n =>
(div_le_iff' (n.cast_add_one_pos : (0 : ℝ) < _)).mpr <|
@@ -1489,22 +891,10 @@ theorem translationNumber_le_of_le_add_int {x : ℝ} {m : ℤ} (h : f x ≤ x +
@Nat.cast_add_one ℝ _ n ▸ f.iterate_le_of_map_le_add_int h (n + 1)
#align circle_deg1_lift.translation_number_le_of_le_add_int CircleDeg1Lift.translationNumber_le_of_le_add_int
-/- warning: circle_deg1_lift.translation_number_le_of_le_add_nat -> CircleDeg1Lift.translationNumber_le_of_le_add_nat is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) {x : Real} {m : Nat}, (LE.le.{0} Real Real.hasLe (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((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))) -> (LE.le.{0} Real Real.hasLe (CircleDeg1Lift.translationNumber f) ((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))
-but is expected to have type
- forall (f : CircleDeg1Lift) {x : Real} {m : Nat}, (LE.le.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLEReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Nat.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.natCast m))) -> (LE.le.{0} Real Real.instLEReal (CircleDeg1Lift.translationNumber f) (Nat.cast.{0} Real Real.natCast m))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_le_of_le_add_nat CircleDeg1Lift.translationNumber_le_of_le_add_natₓ'. -/
theorem translationNumber_le_of_le_add_nat {x : ℝ} {m : ℕ} (h : f x ≤ x + m) : τ f ≤ m :=
@translationNumber_le_of_le_add_int f x m h
#align circle_deg1_lift.translation_number_le_of_le_add_nat CircleDeg1Lift.translationNumber_le_of_le_add_nat
-/- warning: circle_deg1_lift.le_translation_number_of_add_int_le -> CircleDeg1Lift.le_translationNumber_of_add_int_le is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) {x : Real} {m : Int}, (LE.le.{0} Real Real.hasLe (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x)) -> (LE.le.{0} Real Real.hasLe ((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))) m) (CircleDeg1Lift.translationNumber f))
-but is expected to have type
- forall (f : CircleDeg1Lift) {x : Real} {m : Int}, (LE.le.{0} Real Real.instLEReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast m)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x)) -> (LE.le.{0} Real Real.instLEReal (Int.cast.{0} Real Real.intCast m) (CircleDeg1Lift.translationNumber f))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.le_translation_number_of_add_int_le CircleDeg1Lift.le_translationNumber_of_add_int_leₓ'. -/
theorem le_translationNumber_of_add_int_le {x : ℝ} {m : ℤ} (h : x + m ≤ f x) : ↑m ≤ τ f :=
ge_of_tendsto' (f.tendsto_translation_number' x) fun n =>
(le_div_iff (n.cast_add_one_pos : (0 : ℝ) < _)).mpr <|
@@ -1512,22 +902,10 @@ theorem le_translationNumber_of_add_int_le {x : ℝ} {m : ℤ} (h : x + m ≤ f
simp only [coe_pow, mul_comm (m : ℝ), ← Nat.cast_add_one, f.le_iterate_of_add_int_le_map h]
#align circle_deg1_lift.le_translation_number_of_add_int_le CircleDeg1Lift.le_translationNumber_of_add_int_le
-/- warning: circle_deg1_lift.le_translation_number_of_add_nat_le -> CircleDeg1Lift.le_translationNumber_of_add_nat_le is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) {x : Real} {m : Nat}, (LE.le.{0} Real Real.hasLe (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((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)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x)) -> (LE.le.{0} Real Real.hasLe ((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) (CircleDeg1Lift.translationNumber f))
-but is expected to have type
- forall (f : CircleDeg1Lift) {x : Real} {m : Nat}, (LE.le.{0} Real Real.instLEReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Nat.cast.{0} Real Real.natCast m)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x)) -> (LE.le.{0} Real Real.instLEReal (Nat.cast.{0} Real Real.natCast m) (CircleDeg1Lift.translationNumber f))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.le_translation_number_of_add_nat_le CircleDeg1Lift.le_translationNumber_of_add_nat_leₓ'. -/
theorem le_translationNumber_of_add_nat_le {x : ℝ} {m : ℕ} (h : x + m ≤ f x) : ↑m ≤ τ f :=
@le_translationNumber_of_add_int_le f x m h
#align circle_deg1_lift.le_translation_number_of_add_nat_le CircleDeg1Lift.le_translationNumber_of_add_nat_le
-/- warning: circle_deg1_lift.translation_number_of_eq_add_int -> CircleDeg1Lift.translationNumber_of_eq_add_int is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) {x : Real} {m : Int}, (Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m))) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f) ((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))) m))
-but is expected to have type
- forall (f : CircleDeg1Lift) {x : Real} {m : Int}, (Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast m))) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f) (Int.cast.{0} Real Real.intCast m))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_of_eq_add_int CircleDeg1Lift.translationNumber_of_eq_add_intₓ'. -/
/-- If `f x - x` is an integer number `m` for some point `x`, then `τ f = m`.
On the circle this means that a map with a fixed point has rotation number zero. -/
theorem translationNumber_of_eq_add_int {x : ℝ} {m : ℤ} (h : f x = x + m) : τ f = m :=
@@ -1535,52 +913,22 @@ theorem translationNumber_of_eq_add_int {x : ℝ} {m : ℤ} (h : f x = x + m) :
(le_translationNumber_of_add_int_le f <| le_of_eq h.symm)
#align circle_deg1_lift.translation_number_of_eq_add_int CircleDeg1Lift.translationNumber_of_eq_add_int
-/- warning: circle_deg1_lift.floor_sub_le_translation_number -> CircleDeg1Lift.floor_sub_le_translationNumber is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (x : Real), LE.le.{0} Real Real.hasLe ((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))) (Int.floor.{0} Real Real.linearOrderedRing Real.floorRing (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) x))) (CircleDeg1Lift.translationNumber f)
-but is expected to have type
- forall (f : CircleDeg1Lift) (x : Real), LE.le.{0} Real Real.instLEReal (Int.cast.{0} Real Real.intCast (Int.floor.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (HSub.hSub.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHSub.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instSubReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) x))) (CircleDeg1Lift.translationNumber f)
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.floor_sub_le_translation_number CircleDeg1Lift.floor_sub_le_translationNumberₓ'. -/
theorem floor_sub_le_translationNumber (x : ℝ) : ↑⌊f x - x⌋ ≤ τ f :=
le_translationNumber_of_add_int_le f <| le_sub_iff_add_le'.1 (floor_le <| f x - x)
#align circle_deg1_lift.floor_sub_le_translation_number CircleDeg1Lift.floor_sub_le_translationNumber
-/- warning: circle_deg1_lift.translation_number_le_ceil_sub -> CircleDeg1Lift.translationNumber_le_ceil_sub is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (x : Real), LE.le.{0} Real Real.hasLe (CircleDeg1Lift.translationNumber f) ((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))) (Int.ceil.{0} Real Real.linearOrderedRing Real.floorRing (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) x)))
-but is expected to have type
- forall (f : CircleDeg1Lift) (x : Real), LE.le.{0} Real Real.instLEReal (CircleDeg1Lift.translationNumber f) (Int.cast.{0} Real Real.intCast (Int.ceil.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (HSub.hSub.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHSub.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instSubReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) x)))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_le_ceil_sub CircleDeg1Lift.translationNumber_le_ceil_subₓ'. -/
theorem translationNumber_le_ceil_sub (x : ℝ) : τ f ≤ ⌈f x - x⌉ :=
translationNumber_le_of_le_add_int f <| sub_le_iff_le_add'.1 (le_ceil <| f x - x)
#align circle_deg1_lift.translation_number_le_ceil_sub CircleDeg1Lift.translationNumber_le_ceil_sub
-/- warning: circle_deg1_lift.map_lt_of_translation_number_lt_int -> CircleDeg1Lift.map_lt_of_translationNumber_lt_int is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) {n : Int}, (LT.lt.{0} Real Real.hasLt (CircleDeg1Lift.translationNumber f) ((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))) n)) -> (forall (x : Real), LT.lt.{0} Real Real.hasLt (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) n)))
-but is expected to have type
- forall (f : CircleDeg1Lift) {n : Int}, (LT.lt.{0} Real Real.instLTReal (CircleDeg1Lift.translationNumber f) (Int.cast.{0} Real Real.intCast n)) -> (forall (x : Real), LT.lt.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLTReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast n)))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_lt_of_translation_number_lt_int CircleDeg1Lift.map_lt_of_translationNumber_lt_intₓ'. -/
theorem map_lt_of_translationNumber_lt_int {n : ℤ} (h : τ f < n) (x : ℝ) : f x < x + n :=
not_le.1 <| mt f.le_translationNumber_of_add_int_le <| not_le.2 h
#align circle_deg1_lift.map_lt_of_translation_number_lt_int CircleDeg1Lift.map_lt_of_translationNumber_lt_int
-/- warning: circle_deg1_lift.map_lt_of_translation_number_lt_nat -> CircleDeg1Lift.map_lt_of_translationNumber_lt_nat is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) {n : Nat}, (LT.lt.{0} Real Real.hasLt (CircleDeg1Lift.translationNumber f) ((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)) -> (forall (x : Real), LT.lt.{0} Real Real.hasLt (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((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 (f : CircleDeg1Lift) {n : Nat}, (LT.lt.{0} Real Real.instLTReal (CircleDeg1Lift.translationNumber f) (Nat.cast.{0} Real Real.natCast n)) -> (forall (x : Real), LT.lt.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLTReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Nat.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.natCast n)))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_lt_of_translation_number_lt_nat CircleDeg1Lift.map_lt_of_translationNumber_lt_natₓ'. -/
theorem map_lt_of_translationNumber_lt_nat {n : ℕ} (h : τ f < n) (x : ℝ) : f x < x + n :=
@map_lt_of_translationNumber_lt_int f n h x
#align circle_deg1_lift.map_lt_of_translation_number_lt_nat CircleDeg1Lift.map_lt_of_translationNumber_lt_nat
-/- warning: circle_deg1_lift.map_lt_add_floor_translation_number_add_one -> CircleDeg1Lift.map_lt_add_floor_translationNumber_add_one is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (x : Real), LT.lt.{0} Real Real.hasLt (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) (Int.floor.{0} Real Real.linearOrderedRing Real.floorRing (CircleDeg1Lift.translationNumber f)))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
-but is expected to have type
- forall (f : CircleDeg1Lift) (x : Real), LT.lt.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLTReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast (Int.floor.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (CircleDeg1Lift.translationNumber f)))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instOneReal)))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_lt_add_floor_translation_number_add_one CircleDeg1Lift.map_lt_add_floor_translationNumber_add_oneₓ'. -/
theorem map_lt_add_floor_translationNumber_add_one (x : ℝ) : f x < x + ⌊τ f⌋ + 1 :=
by
rw [add_assoc]
@@ -1590,12 +938,6 @@ theorem map_lt_add_floor_translationNumber_add_one (x : ℝ) : f x < x + ⌊τ f
exact lt_floor_add_one _
#align circle_deg1_lift.map_lt_add_floor_translation_number_add_one CircleDeg1Lift.map_lt_add_floor_translationNumber_add_one
-/- warning: circle_deg1_lift.map_lt_add_translation_number_add_one -> CircleDeg1Lift.map_lt_add_translationNumber_add_one is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (x : Real), LT.lt.{0} Real Real.hasLt (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x (CircleDeg1Lift.translationNumber f)) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
-but is expected to have type
- forall (f : CircleDeg1Lift) (x : Real), LT.lt.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLTReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (CircleDeg1Lift.translationNumber f)) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instOneReal)))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_lt_add_translation_number_add_one CircleDeg1Lift.map_lt_add_translationNumber_add_oneₓ'. -/
theorem map_lt_add_translationNumber_add_one (x : ℝ) : f x < x + τ f + 1 :=
calc
f x < x + ⌊τ f⌋ + 1 := f.map_lt_add_floor_translationNumber_add_one x
@@ -1603,32 +945,14 @@ theorem map_lt_add_translationNumber_add_one (x : ℝ) : f x < x + τ f + 1 :=
#align circle_deg1_lift.map_lt_add_translation_number_add_one CircleDeg1Lift.map_lt_add_translationNumber_add_one
-/- warning: circle_deg1_lift.lt_map_of_int_lt_translation_number -> CircleDeg1Lift.lt_map_of_int_lt_translationNumber is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) {n : Int}, (LT.lt.{0} Real Real.hasLt ((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))) n) (CircleDeg1Lift.translationNumber f)) -> (forall (x : Real), LT.lt.{0} Real Real.hasLt (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) n)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x))
-but is expected to have type
- forall (f : CircleDeg1Lift) {n : Int}, (LT.lt.{0} Real Real.instLTReal (Int.cast.{0} Real Real.intCast n) (CircleDeg1Lift.translationNumber f)) -> (forall (x : Real), LT.lt.{0} Real Real.instLTReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast n)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.lt_map_of_int_lt_translation_number CircleDeg1Lift.lt_map_of_int_lt_translationNumberₓ'. -/
theorem lt_map_of_int_lt_translationNumber {n : ℤ} (h : ↑n < τ f) (x : ℝ) : x + n < f x :=
not_le.1 <| mt f.translationNumber_le_of_le_add_int <| not_le.2 h
#align circle_deg1_lift.lt_map_of_int_lt_translation_number CircleDeg1Lift.lt_map_of_int_lt_translationNumber
-/- warning: circle_deg1_lift.lt_map_of_nat_lt_translation_number -> CircleDeg1Lift.lt_map_of_nat_lt_translationNumber is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) {n : Nat}, (LT.lt.{0} Real Real.hasLt ((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) (CircleDeg1Lift.translationNumber f)) -> (forall (x : Real), LT.lt.{0} Real Real.hasLt (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((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)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x))
-but is expected to have type
- forall (f : CircleDeg1Lift) {n : Nat}, (LT.lt.{0} Real Real.instLTReal (Nat.cast.{0} Real Real.natCast n) (CircleDeg1Lift.translationNumber f)) -> (forall (x : Real), LT.lt.{0} Real Real.instLTReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Nat.cast.{0} Real Real.natCast n)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.lt_map_of_nat_lt_translation_number CircleDeg1Lift.lt_map_of_nat_lt_translationNumberₓ'. -/
theorem lt_map_of_nat_lt_translationNumber {n : ℕ} (h : ↑n < τ f) (x : ℝ) : x + n < f x :=
@lt_map_of_int_lt_translationNumber f n h x
#align circle_deg1_lift.lt_map_of_nat_lt_translation_number CircleDeg1Lift.lt_map_of_nat_lt_translationNumber
-/- warning: circle_deg1_lift.translation_number_of_map_pow_eq_add_int -> CircleDeg1Lift.translationNumber_of_map_pow_eq_add_int is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) {x : Real} {n : Nat} {m : Int}, (Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n) x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m))) -> (LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) n) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f) (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) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) 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)))
-but is expected to have type
- forall (f : CircleDeg1Lift) {x : Real} {n : Nat} {m : Int}, (Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n) x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast m))) -> (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Int.cast.{0} Real Real.intCast m) (Nat.cast.{0} Real Real.natCast n)))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_of_map_pow_eq_add_int CircleDeg1Lift.translationNumber_of_map_pow_eq_add_intₓ'. -/
/-- If `f^n x - x`, `n > 0`, is an integer number `m` for some point `x`, then
`τ f = m / n`. On the circle this means that a map with a periodic orbit has
a rational rotation number. -/
@@ -1640,12 +964,6 @@ theorem translationNumber_of_map_pow_eq_add_int {x : ℝ} {n : ℕ} {m : ℤ} (h
exact Nat.cast_ne_zero.2 (ne_of_gt hn)
#align circle_deg1_lift.translation_number_of_map_pow_eq_add_int CircleDeg1Lift.translationNumber_of_map_pow_eq_add_int
-/- warning: circle_deg1_lift.forall_map_sub_of_Icc -> CircleDeg1Lift.forall_map_sub_of_Icc is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift) (P : Real -> Prop), (forall (x : Real), (Membership.Mem.{0, 0} Real (Set.{0} Real) (Set.hasMem.{0} Real) x (Set.Icc.{0} Real Real.preorder (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) -> (P (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) x))) -> (forall (x : Real), P (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) x))
-but is expected to have type
- forall (f : CircleDeg1Lift) (P : Real -> Prop), (forall (x : Real), (Membership.mem.{0, 0} Real (Set.{0} Real) (Set.instMembershipSet.{0} Real) x (Set.Icc.{0} Real Real.instPreorderReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) -> (P (HSub.hSub.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHSub.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instSubReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) x))) -> (forall (x : Real), P (HSub.hSub.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHSub.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instSubReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) x))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.forall_map_sub_of_Icc CircleDeg1Lift.forall_map_sub_of_Iccₓ'. -/
/-- If a predicate depends only on `f x - x` and holds for all `0 ≤ x ≤ 1`,
then it holds for all `x`. -/
theorem forall_map_sub_of_Icc (P : ℝ → Prop) (h : ∀ x ∈ Icc (0 : ℝ) 1, P (f x - x)) (x : ℝ) :
@@ -1653,12 +971,6 @@ theorem forall_map_sub_of_Icc (P : ℝ → Prop) (h : ∀ x ∈ Icc (0 : ℝ) 1,
f.map_fract_sub_fract_eq x ▸ h _ ⟨fract_nonneg _, le_of_lt (fract_lt_one _)⟩
#align circle_deg1_lift.forall_map_sub_of_Icc CircleDeg1Lift.forall_map_sub_of_Icc
-/- warning: circle_deg1_lift.translation_number_lt_of_forall_lt_add -> CircleDeg1Lift.translationNumber_lt_of_forall_lt_add is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f)) -> (forall {z : Real}, (forall (x : Real), LT.lt.{0} Real Real.hasLt (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x z)) -> (LT.lt.{0} Real Real.hasLt (CircleDeg1Lift.translationNumber f) z))
-but is expected to have type
- forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f)) -> (forall {z : Real}, (forall (x : Real), LT.lt.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLTReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x z)) -> (LT.lt.{0} Real Real.instLTReal (CircleDeg1Lift.translationNumber f) z))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_lt_of_forall_lt_add CircleDeg1Lift.translationNumber_lt_of_forall_lt_addₓ'. -/
theorem translationNumber_lt_of_forall_lt_add (hf : Continuous f) {z : ℝ} (hz : ∀ x, f x < x + z) :
τ f < z :=
by
@@ -1671,12 +983,6 @@ theorem translationNumber_lt_of_forall_lt_add (hf : Continuous f) {z : ℝ} (hz
exact f.forall_map_sub_of_Icc (fun a => a ≤ f x - x) hx
#align circle_deg1_lift.translation_number_lt_of_forall_lt_add CircleDeg1Lift.translationNumber_lt_of_forall_lt_add
-/- warning: circle_deg1_lift.lt_translation_number_of_forall_add_lt -> CircleDeg1Lift.lt_translationNumber_of_forall_add_lt is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f)) -> (forall {z : Real}, (forall (x : Real), LT.lt.{0} Real Real.hasLt (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x z) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x)) -> (LT.lt.{0} Real Real.hasLt z (CircleDeg1Lift.translationNumber f)))
-but is expected to have type
- forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f)) -> (forall {z : Real}, (forall (x : Real), LT.lt.{0} Real Real.instLTReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x z) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x)) -> (LT.lt.{0} Real Real.instLTReal z (CircleDeg1Lift.translationNumber f)))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.lt_translation_number_of_forall_add_lt CircleDeg1Lift.lt_translationNumber_of_forall_add_ltₓ'. -/
theorem lt_translationNumber_of_forall_add_lt (hf : Continuous f) {z : ℝ} (hz : ∀ x, x + z < f x) :
z < τ f :=
by
@@ -1689,12 +995,6 @@ theorem lt_translationNumber_of_forall_add_lt (hf : Continuous f) {z : ℝ} (hz
exact f.forall_map_sub_of_Icc _ hx
#align circle_deg1_lift.lt_translation_number_of_forall_add_lt CircleDeg1Lift.lt_translationNumber_of_forall_add_lt
-/- warning: circle_deg1_lift.exists_eq_add_translation_number -> CircleDeg1Lift.exists_eq_add_translationNumber is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f)) -> (Exists.{1} Real (fun (x : Real) => Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x (CircleDeg1Lift.translationNumber f))))
-but is expected to have type
- forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f)) -> (Exists.{1} Real (fun (x : Real) => Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (CircleDeg1Lift.translationNumber f))))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.exists_eq_add_translation_number CircleDeg1Lift.exists_eq_add_translationNumberₓ'. -/
/-- If `f` is a continuous monotone map `ℝ → ℝ`, `f (x + 1) = f x + 1`, then there exists `x`
such that `f x = x + τ f`. -/
theorem exists_eq_add_translationNumber (hf : Continuous f) : ∃ x, f x = x + τ f :=
@@ -1709,12 +1009,6 @@ theorem exists_eq_add_translationNumber (hf : Continuous f) : ∃ x, f x = x +
exact intermediate_value_univ₂ hf (continuous_id.add continuous_const) ha hb
#align circle_deg1_lift.exists_eq_add_translation_number CircleDeg1Lift.exists_eq_add_translationNumber
-/- warning: circle_deg1_lift.translation_number_eq_int_iff -> CircleDeg1Lift.translationNumber_eq_int_iff is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f)) -> (forall {m : Int}, Iff (Eq.{1} Real (CircleDeg1Lift.translationNumber f) ((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))) m)) (Exists.{1} Real (fun (x : Real) => Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m)))))
-but is expected to have type
- forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f)) -> (forall {m : Int}, Iff (Eq.{1} Real (CircleDeg1Lift.translationNumber f) (Int.cast.{0} Real Real.intCast m)) (Exists.{1} Real (fun (x : Real) => Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast m)))))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_eq_int_iff CircleDeg1Lift.translationNumber_eq_int_iffₓ'. -/
theorem translationNumber_eq_int_iff (hf : Continuous f) {m : ℤ} : τ f = m ↔ ∃ x, f x = x + m :=
by
refine' ⟨fun h => h ▸ f.exists_eq_add_translation_number hf, _⟩
@@ -1722,22 +1016,10 @@ theorem translationNumber_eq_int_iff (hf : Continuous f) {m : ℤ} : τ f = m
exact f.translation_number_of_eq_add_int hx
#align circle_deg1_lift.translation_number_eq_int_iff CircleDeg1Lift.translationNumber_eq_int_iff
-/- warning: circle_deg1_lift.continuous_pow -> CircleDeg1Lift.continuous_pow is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f)) -> (forall (n : Nat), Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n)))
-but is expected to have type
- forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f)) -> (forall (n : Nat), Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n)))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.continuous_pow CircleDeg1Lift.continuous_powₓ'. -/
theorem continuous_pow (hf : Continuous f) (n : ℕ) : Continuous ⇑(f ^ n : CircleDeg1Lift) := by
rw [coe_pow]; exact hf.iterate n
#align circle_deg1_lift.continuous_pow CircleDeg1Lift.continuous_pow
-/- warning: circle_deg1_lift.translation_number_eq_rat_iff -> CircleDeg1Lift.translationNumber_eq_rat_iff is a dubious translation:
-lean 3 declaration is
- forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f)) -> (forall {m : Int} {n : Nat}, (LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) n) -> (Iff (Eq.{1} Real (CircleDeg1Lift.translationNumber f) (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) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) 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))) (Exists.{1} Real (fun (x : Real) => Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n) x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m))))))
-but is expected to have type
- forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f)) -> (forall {m : Int} {n : Nat}, (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) -> (Iff (Eq.{1} Real (CircleDeg1Lift.translationNumber f) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Int.cast.{0} Real Real.intCast m) (Nat.cast.{0} Real Real.natCast n))) (Exists.{1} Real (fun (x : Real) => Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n) x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast m))))))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_eq_rat_iff CircleDeg1Lift.translationNumber_eq_rat_iffₓ'. -/
theorem translationNumber_eq_rat_iff (hf : Continuous f) {m : ℤ} {n : ℕ} (hn : 0 < n) :
τ f = m / n ↔ ∃ x, (f ^ n) x = x + m :=
by
@@ -1745,9 +1027,6 @@ theorem translationNumber_eq_rat_iff (hf : Continuous f) {m : ℤ} {n : ℕ} (hn
exact (f ^ n).translationNumber_eq_int_iff (f.continuous_pow hf n)
#align circle_deg1_lift.translation_number_eq_rat_iff CircleDeg1Lift.translationNumber_eq_rat_iff
-/- warning: circle_deg1_lift.semiconj_of_group_action_of_forall_translation_number_eq -> CircleDeg1Lift.semiconj_of_group_action_of_forall_translationNumber_eq is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.semiconj_of_group_action_of_forall_translation_number_eq CircleDeg1Lift.semiconj_of_group_action_of_forall_translationNumber_eqₓ'. -/
/-- Consider two actions `f₁ f₂ : G →* circle_deg1_lift` of a group on the real line by lifts of
orientation preserving circle homeomorphisms. Suppose that for each `g : G` the homeomorphisms
`f₁ g` and `f₂ g` have equal rotation numbers. Then there exists `F : circle_deg1_lift` such that
@@ -1795,12 +1074,6 @@ theorem semiconj_of_group_action_of_forall_translationNumber_eq {G : Type _} [Gr
· exact this x
#align circle_deg1_lift.semiconj_of_group_action_of_forall_translation_number_eq CircleDeg1Lift.semiconj_of_group_action_of_forall_translationNumber_eq
-/- warning: circle_deg1_lift.units_semiconj_of_translation_number_eq -> CircleDeg1Lift.units_semiconj_of_translationNumber_eq is a dubious translation:
-lean 3 declaration is
- forall {f₁ : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid} {f₂ : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid}, (Eq.{1} Real (CircleDeg1Lift.translationNumber ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) f₁)) (CircleDeg1Lift.translationNumber ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) f₂))) -> (Exists.{1} CircleDeg1Lift (fun (F : CircleDeg1Lift) => Function.Semiconj.{0, 0} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun F) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun f₁) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun f₂)))
-but is expected to have type
- forall {f₁ : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift} {f₂ : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift}, (Eq.{1} Real (CircleDeg1Lift.translationNumber (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f₁)) (CircleDeg1Lift.translationNumber (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f₂))) -> (Exists.{1} CircleDeg1Lift (fun (F : CircleDeg1Lift) => Function.Semiconj.{0, 0} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) F) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f₁)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f₂))))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.units_semiconj_of_translation_number_eq CircleDeg1Lift.units_semiconj_of_translationNumber_eqₓ'. -/
/-- If two lifts of circle homeomorphisms have the same translation number, then they are
semiconjugate by a `circle_deg1_lift`. This version uses arguments `f₁ f₂ : circle_deg1_liftˣ`
to assume that `f₁` and `f₂` are homeomorphisms. -/
@@ -1815,12 +1088,6 @@ theorem units_semiconj_of_translationNumber_eq {f₁ f₂ : CircleDeg1Liftˣ} (h
hF (Multiplicative.ofAdd 1)
#align circle_deg1_lift.units_semiconj_of_translation_number_eq CircleDeg1Lift.units_semiconj_of_translationNumber_eq
-/- warning: circle_deg1_lift.semiconj_of_is_unit_of_translation_number_eq -> CircleDeg1Lift.semiconj_of_isUnit_of_translationNumber_eq is a dubious translation:
-lean 3 declaration is
- forall {f₁ : CircleDeg1Lift} {f₂ : CircleDeg1Lift}, (IsUnit.{0} CircleDeg1Lift CircleDeg1Lift.monoid f₁) -> (IsUnit.{0} CircleDeg1Lift CircleDeg1Lift.monoid f₂) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f₁) (CircleDeg1Lift.translationNumber f₂)) -> (Exists.{1} CircleDeg1Lift (fun (F : CircleDeg1Lift) => Function.Semiconj.{0, 0} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun F) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f₁) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f₂)))
-but is expected to have type
- forall {f₁ : CircleDeg1Lift} {f₂ : CircleDeg1Lift}, (IsUnit.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f₁) -> (IsUnit.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f₂) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f₁) (CircleDeg1Lift.translationNumber f₂)) -> (Exists.{1} CircleDeg1Lift (fun (F : CircleDeg1Lift) => Function.Semiconj.{0, 0} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) F) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f₁) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f₂)))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.semiconj_of_is_unit_of_translation_number_eq CircleDeg1Lift.semiconj_of_isUnit_of_translationNumber_eqₓ'. -/
/-- If two lifts of circle homeomorphisms have the same translation number, then they are
semiconjugate by a `circle_deg1_lift`. This version uses assumptions `is_unit f₁` and `is_unit f₂`
to assume that `f₁` and `f₂` are homeomorphisms. -/
@@ -1829,12 +1096,6 @@ theorem semiconj_of_isUnit_of_translationNumber_eq {f₁ f₂ : CircleDeg1Lift}
rcases h₁, h₂ with ⟨⟨f₁, rfl⟩, ⟨f₂, rfl⟩⟩; exact units_semiconj_of_translation_number_eq h
#align circle_deg1_lift.semiconj_of_is_unit_of_translation_number_eq CircleDeg1Lift.semiconj_of_isUnit_of_translationNumber_eq
-/- warning: circle_deg1_lift.semiconj_of_bijective_of_translation_number_eq -> CircleDeg1Lift.semiconj_of_bijective_of_translationNumber_eq is a dubious translation:
-lean 3 declaration is
- forall {f₁ : CircleDeg1Lift} {f₂ : CircleDeg1Lift}, (Function.Bijective.{1, 1} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f₁)) -> (Function.Bijective.{1, 1} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f₂)) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f₁) (CircleDeg1Lift.translationNumber f₂)) -> (Exists.{1} CircleDeg1Lift (fun (F : CircleDeg1Lift) => Function.Semiconj.{0, 0} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun F) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f₁) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f₂)))
-but is expected to have type
- forall {f₁ : CircleDeg1Lift} {f₂ : CircleDeg1Lift}, (Function.Bijective.{1, 1} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f₁)) -> (Function.Bijective.{1, 1} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f₂)) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f₁) (CircleDeg1Lift.translationNumber f₂)) -> (Exists.{1} CircleDeg1Lift (fun (F : CircleDeg1Lift) => Function.Semiconj.{0, 0} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) F) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f₁) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f₂)))
-Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.semiconj_of_bijective_of_translation_number_eq CircleDeg1Lift.semiconj_of_bijective_of_translationNumber_eqₓ'. -/
/-- If two lifts of circle homeomorphisms have the same translation number, then they are
semiconjugate by a `circle_deg1_lift`. This version uses assumptions `bijective f₁` and
`bijective f₂` to assume that `f₁` and `f₂` are homeomorphisms. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -414,9 +414,7 @@ but is expected to have type
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_pow CircleDeg1Lift.coe_powₓ'. -/
theorem coe_pow : ∀ n : ℕ, ⇑(f ^ n) = f^[n]
| 0 => rfl
- | n + 1 => by
- ext x
- simp [coe_pow n, pow_succ']
+ | n + 1 => by ext x; simp [coe_pow n, pow_succ']
#align circle_deg1_lift.coe_pow CircleDeg1Lift.coe_pow
/- warning: circle_deg1_lift.semiconj_by_iff_semiconj -> CircleDeg1Lift.semiconjBy_iff_semiconj is a dubious translation:
@@ -1337,9 +1335,7 @@ Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.trans
@[simp]
theorem translationNumber_zpow (f : CircleDeg1Liftˣ) : ∀ n : ℤ, τ (f ^ n : Units _) = n * τ f
| (n : ℕ) => by simp [translation_number_pow f n]
- | -[n+1] => by
- simp
- ring
+ | -[n+1] => by simp; ring
#align circle_deg1_lift.translation_number_zpow CircleDeg1Lift.translationNumber_zpow
/- warning: circle_deg1_lift.translation_number_conj_eq -> CircleDeg1Lift.translationNumber_conj_eq is a dubious translation:
@@ -1603,9 +1599,7 @@ Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_l
theorem map_lt_add_translationNumber_add_one (x : ℝ) : f x < x + τ f + 1 :=
calc
f x < x + ⌊τ f⌋ + 1 := f.map_lt_add_floor_translationNumber_add_one x
- _ ≤ x + τ f + 1 := by
- mono*
- exact floor_le (τ f)
+ _ ≤ x + τ f + 1 := by mono*; exact floor_le (τ f)
#align circle_deg1_lift.map_lt_add_translation_number_add_one CircleDeg1Lift.map_lt_add_translationNumber_add_one
@@ -1734,10 +1728,8 @@ lean 3 declaration is
but is expected to have type
forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f)) -> (forall (n : Nat), Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n)))
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.continuous_pow CircleDeg1Lift.continuous_powₓ'. -/
-theorem continuous_pow (hf : Continuous f) (n : ℕ) : Continuous ⇑(f ^ n : CircleDeg1Lift) :=
- by
- rw [coe_pow]
- exact hf.iterate n
+theorem continuous_pow (hf : Continuous f) (n : ℕ) : Continuous ⇑(f ^ n : CircleDeg1Lift) := by
+ rw [coe_pow]; exact hf.iterate n
#align circle_deg1_lift.continuous_pow CircleDeg1Lift.continuous_pow
/- warning: circle_deg1_lift.translation_number_eq_rat_iff -> CircleDeg1Lift.translationNumber_eq_rat_iff is a dubious translation:
@@ -1780,8 +1772,7 @@ theorem semiconj_of_group_action_of_forall_translationNumber_eq {G : Type _} [Gr
f₂ g⁻¹ (f₁ g x) ≤ f₂ g⁻¹ (x + τ (f₁ g) + 1) :=
mono _ (map_lt_add_translation_number_add_one _ _).le
_ = f₂ g⁻¹ (x + τ (f₂ g)) + 1 := by rw [h, map_add_one]
- _ ≤ x + τ (f₂ g) + τ (f₂ g⁻¹) + 1 + 1 := by
- mono
+ _ ≤ x + τ (f₂ g) + τ (f₂ g⁻¹) + 1 + 1 := by mono;
exact (map_lt_add_translation_number_add_one _ _).le
_ = x + 2 := by simp [this, bit0, add_assoc]
@@ -1819,9 +1810,7 @@ theorem units_semiconj_of_translationNumber_eq {f₁ f₂ : CircleDeg1Liftˣ} (h
∀ n : Multiplicative ℤ,
τ ((Units.coeHom _).comp (zpowersHom _ f₁) n) =
τ ((Units.coeHom _).comp (zpowersHom _ f₂) n) :=
- by
- intro n
- simp [h]
+ by intro n; simp [h]
(semiconj_of_group_action_of_forall_translation_number_eq _ _ this).imp fun F hF =>
hF (Multiplicative.ofAdd 1)
#align circle_deg1_lift.units_semiconj_of_translation_number_eq CircleDeg1Lift.units_semiconj_of_translationNumber_eq
@@ -1836,10 +1825,8 @@ Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.semic
semiconjugate by a `circle_deg1_lift`. This version uses assumptions `is_unit f₁` and `is_unit f₂`
to assume that `f₁` and `f₂` are homeomorphisms. -/
theorem semiconj_of_isUnit_of_translationNumber_eq {f₁ f₂ : CircleDeg1Lift} (h₁ : IsUnit f₁)
- (h₂ : IsUnit f₂) (h : τ f₁ = τ f₂) : ∃ F : CircleDeg1Lift, Semiconj F f₁ f₂ :=
- by
- rcases h₁, h₂ with ⟨⟨f₁, rfl⟩, ⟨f₂, rfl⟩⟩
- exact units_semiconj_of_translation_number_eq h
+ (h₂ : IsUnit f₂) (h : τ f₁ = τ f₂) : ∃ F : CircleDeg1Lift, Semiconj F f₁ f₂ := by
+ rcases h₁, h₂ with ⟨⟨f₁, rfl⟩, ⟨f₂, rfl⟩⟩; exact units_semiconj_of_translation_number_eq h
#align circle_deg1_lift.semiconj_of_is_unit_of_translation_number_eq CircleDeg1Lift.semiconj_of_isUnit_of_translationNumber_eq
/- warning: circle_deg1_lift.semiconj_of_bijective_of_translation_number_eq -> CircleDeg1Lift.semiconj_of_bijective_of_translationNumber_eq is a dubious translation:
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -369,10 +369,7 @@ theorem coe_toOrderIso (f : CircleDeg1Liftˣ) : ⇑(toOrderIso f) = f :=
#align circle_deg1_lift.coe_to_order_iso CircleDeg1Lift.coe_toOrderIso
/- warning: circle_deg1_lift.coe_to_order_iso_symm -> CircleDeg1Lift.coe_toOrderIso_symm is a dubious translation:
-lean 3 declaration is
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid), Eq.{1} (Real -> Real) (coeFn.{1, 1} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (fun (_x : RelIso.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) => Real -> Real) (RelIso.hasCoeToFun.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) (OrderIso.symm.{0, 0} Real Real Real.hasLe Real.hasLe (coeFn.{1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) (fun (_x : MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) => (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) -> (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe)) (MonoidHom.hasCoeToFun.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) CircleDeg1Lift.toOrderIso f))) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f))
-but is expected to have type
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} (Real -> Real) (FunLike.coe.{1, 1, 1} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1300 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1302 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1300 x._@.Mathlib.Order.Hom.Basic._hyg.1302)) Real (fun (_x : Real) => Real) (RelHomClass.toFunLike.{0, 0, 0} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1300 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1302 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1300 x._@.Mathlib.Order.Hom.Basic._hyg.1302)) Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1300 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1302 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1300 x._@.Mathlib.Order.Hom.Basic._hyg.1302) (RelIso.instRelHomClassRelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1300 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1302 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1300 x._@.Mathlib.Order.Hom.Basic._hyg.1302))) (OrderIso.symm.{0, 0} Real Real Real.instLEReal Real.instLEReal (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MulOneClass.toMul.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287))))) (MonoidHom.monoidHomClass.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))))) CircleDeg1Lift.toOrderIso f))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInv.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)))
+<too large>
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_to_order_iso_symm CircleDeg1Lift.coe_toOrderIso_symmₓ'. -/
@[simp]
theorem coe_toOrderIso_symm (f : CircleDeg1Liftˣ) :
@@ -381,10 +378,7 @@ theorem coe_toOrderIso_symm (f : CircleDeg1Liftˣ) :
#align circle_deg1_lift.coe_to_order_iso_symm CircleDeg1Lift.coe_toOrderIso_symm
/- warning: circle_deg1_lift.coe_to_order_iso_inv -> CircleDeg1Lift.coe_toOrderIso_inv is a dubious translation:
-lean 3 declaration is
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid), Eq.{1} (Real -> Real) (coeFn.{1, 1} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (fun (_x : RelIso.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) => Real -> Real) (RelIso.hasCoeToFun.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) (Inv.inv.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toHasInv.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))) (coeFn.{1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) (fun (_x : MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) => (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) -> (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe)) (MonoidHom.hasCoeToFun.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) CircleDeg1Lift.toOrderIso f))) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f))
-but is expected to have type
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} (Real -> Real) (FunLike.coe.{1, 1, 1} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1300 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1302 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1300 x._@.Mathlib.Order.Hom.Basic._hyg.1302)) Real (fun (_x : Real) => Real) (RelHomClass.toFunLike.{0, 0, 0} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1300 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1302 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1300 x._@.Mathlib.Order.Hom.Basic._hyg.1302)) Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1300 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1302 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1300 x._@.Mathlib.Order.Hom.Basic._hyg.1302) (RelIso.instRelHomClassRelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1300 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1302 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1300 x._@.Mathlib.Order.Hom.Basic._hyg.1302))) (Inv.inv.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (InvOneClass.toInv.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (DivInvOneMonoid.toInvOneClass.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (DivisionMonoid.toDivInvOneMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (Group.toDivisionMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MulOneClass.toMul.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287))))) (MonoidHom.monoidHomClass.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))))) CircleDeg1Lift.toOrderIso f))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInv.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)))
+<too large>
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_to_order_iso_inv CircleDeg1Lift.coe_toOrderIso_invₓ'. -/
@[simp]
theorem coe_toOrderIso_inv (f : CircleDeg1Liftˣ) : ⇑(toOrderIso f)⁻¹ = (f⁻¹ : CircleDeg1Liftˣ) :=
@@ -493,10 +487,7 @@ theorem translate_inv_apply (x y : ℝ) : (translate <| Multiplicative.ofAdd x)
#align circle_deg1_lift.translate_inv_apply CircleDeg1Lift.translate_inv_apply
/- warning: circle_deg1_lift.translate_zpow -> CircleDeg1Lift.translate_zpow is a dubious translation:
-lean 3 declaration is
- forall (x : Real) (n : Int), Eq.{1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (HPow.hPow.{0, 0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) Int (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (instHPow.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) Int (DivInvMonoid.Pow.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Group.toDivInvMonoid.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.group.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) n) (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) (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))) n) x)))
-but is expected to have type
- forall (x : Real) (n : Int), Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (HPow.hPow.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) Int ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (instHPow.{0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) Int (DivInvMonoid.Pow.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (Group.toDivInvMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (Units.instGroupUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (_x : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) _x) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) n) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (_x : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) _x) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Int.cast.{0} Real Real.intCast n) x)))
+<too large>
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translate_zpow CircleDeg1Lift.translate_zpowₓ'. -/
@[simp]
theorem translate_zpow (x : ℝ) (n : ℤ) :
@@ -505,10 +496,7 @@ theorem translate_zpow (x : ℝ) (n : ℤ) :
#align circle_deg1_lift.translate_zpow CircleDeg1Lift.translate_zpow
/- warning: circle_deg1_lift.translate_pow -> CircleDeg1Lift.translate_pow is a dubious translation:
-lean 3 declaration is
- forall (x : Real) (n : Nat), Eq.{1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (HPow.hPow.{0, 0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) Nat (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (instHPow.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) Nat (Monoid.Pow.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (DivInvMonoid.toMonoid.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Group.toDivInvMonoid.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.group.{0} CircleDeg1Lift CircleDeg1Lift.monoid))))) (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) n) (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) (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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) x)))
-but is expected to have type
- forall (x : Real) (n : Nat), Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (HPow.hPow.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (instHPow.{0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) Nat (Monoid.Pow.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (DivInvMonoid.toMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (Group.toDivInvMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (Units.instGroupUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (_x : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) _x) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) n) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (_x : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) _x) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) x)))
+<too large>
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translate_pow CircleDeg1Lift.translate_powₓ'. -/
@[simp]
theorem translate_pow (x : ℝ) (n : ℕ) :
@@ -1766,10 +1754,7 @@ theorem translationNumber_eq_rat_iff (hf : Continuous f) {m : ℤ} {n : ℕ} (hn
#align circle_deg1_lift.translation_number_eq_rat_iff CircleDeg1Lift.translationNumber_eq_rat_iff
/- warning: circle_deg1_lift.semiconj_of_group_action_of_forall_translation_number_eq -> CircleDeg1Lift.semiconj_of_group_action_of_forall_translationNumber_eq is a dubious translation:
-lean 3 declaration is
- forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (f₁ : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (f₂ : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)), (forall (g : G), Eq.{1} Real (CircleDeg1Lift.translationNumber (coeFn.{succ u1, succ u1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => G -> CircleDeg1Lift) (MonoidHom.hasCoeToFun.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f₁ g)) (CircleDeg1Lift.translationNumber (coeFn.{succ u1, succ u1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => G -> CircleDeg1Lift) (MonoidHom.hasCoeToFun.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f₂ g))) -> (Exists.{1} CircleDeg1Lift (fun (F : CircleDeg1Lift) => forall (g : G), Function.Semiconj.{0, 0} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun F) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (coeFn.{succ u1, succ u1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => G -> CircleDeg1Lift) (MonoidHom.hasCoeToFun.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f₁ g)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (coeFn.{succ u1, succ u1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => G -> CircleDeg1Lift) (MonoidHom.hasCoeToFun.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f₂ g))))
-but is expected to have type
- forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (f₁ : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (f₂ : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)), (forall (g : G), Eq.{1} Real (CircleDeg1Lift.translationNumber (FunLike.coe.{succ u1, succ u1, 1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => CircleDeg1Lift) _x) (MulHomClass.toFunLike.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) f₁ g)) (CircleDeg1Lift.translationNumber (FunLike.coe.{succ u1, succ u1, 1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => CircleDeg1Lift) _x) (MulHomClass.toFunLike.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) f₂ g))) -> (Exists.{1} CircleDeg1Lift (fun (F : CircleDeg1Lift) => forall (g : G), Function.Semiconj.{0, 0} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) F) (FunLike.coe.{1, 1, 1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => CircleDeg1Lift) g) Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => CircleDeg1Lift) g) Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => CircleDeg1Lift) g) Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => CircleDeg1Lift) g) Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (FunLike.coe.{succ u1, succ u1, 1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => CircleDeg1Lift) _x) (MulHomClass.toFunLike.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) f₁ g)) (FunLike.coe.{1, 1, 1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => CircleDeg1Lift) g) Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => CircleDeg1Lift) g) Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => CircleDeg1Lift) g) Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => CircleDeg1Lift) g) Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (FunLike.coe.{succ u1, succ u1, 1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => CircleDeg1Lift) _x) (MulHomClass.toFunLike.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) f₂ g))))
+<too large>
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.semiconj_of_group_action_of_forall_translation_number_eq CircleDeg1Lift.semiconj_of_group_action_of_forall_translationNumber_eqₓ'. -/
/-- Consider two actions `f₁ f₂ : G →* circle_deg1_lift` of a group on the real line by lifts of
orientation preserving circle homeomorphisms. Suppose that for each `g : G` the homeomorphisms
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -1761,7 +1761,7 @@ Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.trans
theorem translationNumber_eq_rat_iff (hf : Continuous f) {m : ℤ} {n : ℕ} (hn : 0 < n) :
τ f = m / n ↔ ∃ x, (f ^ n) x = x + m :=
by
- rw [eq_div_iff, mul_comm, ← translation_number_pow] <;> [skip, exact ne_of_gt (Nat.cast_pos.2 hn)]
+ rw [eq_div_iff, mul_comm, ← translation_number_pow] <;> [skip;exact ne_of_gt (Nat.cast_pos.2 hn)]
exact (f ^ n).translationNumber_eq_int_iff (f.continuous_pow hf n)
#align circle_deg1_lift.translation_number_eq_rat_iff CircleDeg1Lift.translationNumber_eq_rat_iff
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -342,7 +342,7 @@ theorem units_apply_inv_apply (f : CircleDeg1Liftˣ) (x : ℝ) : f ((f⁻¹ : Ci
lean 3 declaration is
MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))
but is expected to have type
- MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))
+ MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.to_order_iso CircleDeg1Lift.toOrderIsoₓ'. -/
/-- If a lift of a circle map is bijective, then it is an order automorphism of the line. -/
def toOrderIso : CircleDeg1Liftˣ →* ℝ ≃o ℝ
@@ -361,7 +361,7 @@ def toOrderIso : CircleDeg1Liftˣ →* ℝ ≃o ℝ
lean 3 declaration is
forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid), Eq.{1} (Real -> Real) (coeFn.{1, 1} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (fun (_x : RelIso.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) => Real -> Real) (RelIso.hasCoeToFun.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) (coeFn.{1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) (fun (_x : MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) => (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) -> (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe)) (MonoidHom.hasCoeToFun.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) CircleDeg1Lift.toOrderIso f)) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun f)
but is expected to have type
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} (Real -> Real) (FunLike.coe.{1, 1, 1} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298)) Real (fun (_x : Real) => Real) (RelHomClass.toFunLike.{0, 0, 0} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298)) Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298) (RelIso.instRelHomClassRelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MulOneClass.toMul.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283))))) (MonoidHom.monoidHomClass.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))))) CircleDeg1Lift.toOrderIso f)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f))
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} (Real -> Real) (FunLike.coe.{1, 1, 1} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1300 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1302 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1300 x._@.Mathlib.Order.Hom.Basic._hyg.1302)) Real (fun (_x : Real) => Real) (RelHomClass.toFunLike.{0, 0, 0} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1300 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1302 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1300 x._@.Mathlib.Order.Hom.Basic._hyg.1302)) Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1300 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1302 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1300 x._@.Mathlib.Order.Hom.Basic._hyg.1302) (RelIso.instRelHomClassRelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1300 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1302 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1300 x._@.Mathlib.Order.Hom.Basic._hyg.1302))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MulOneClass.toMul.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287))))) (MonoidHom.monoidHomClass.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))))) CircleDeg1Lift.toOrderIso f)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f))
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_to_order_iso CircleDeg1Lift.coe_toOrderIsoₓ'. -/
@[simp]
theorem coe_toOrderIso (f : CircleDeg1Liftˣ) : ⇑(toOrderIso f) = f :=
@@ -372,7 +372,7 @@ theorem coe_toOrderIso (f : CircleDeg1Liftˣ) : ⇑(toOrderIso f) = f :=
lean 3 declaration is
forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid), Eq.{1} (Real -> Real) (coeFn.{1, 1} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (fun (_x : RelIso.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) => Real -> Real) (RelIso.hasCoeToFun.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) (OrderIso.symm.{0, 0} Real Real Real.hasLe Real.hasLe (coeFn.{1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) (fun (_x : MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) => (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) -> (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe)) (MonoidHom.hasCoeToFun.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) CircleDeg1Lift.toOrderIso f))) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f))
but is expected to have type
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} (Real -> Real) (FunLike.coe.{1, 1, 1} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298)) Real (fun (_x : Real) => Real) (RelHomClass.toFunLike.{0, 0, 0} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298)) Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298) (RelIso.instRelHomClassRelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298))) (OrderIso.symm.{0, 0} Real Real Real.instLEReal Real.instLEReal (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MulOneClass.toMul.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283))))) (MonoidHom.monoidHomClass.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))))) CircleDeg1Lift.toOrderIso f))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInv.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)))
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} (Real -> Real) (FunLike.coe.{1, 1, 1} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1300 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1302 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1300 x._@.Mathlib.Order.Hom.Basic._hyg.1302)) Real (fun (_x : Real) => Real) (RelHomClass.toFunLike.{0, 0, 0} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1300 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1302 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1300 x._@.Mathlib.Order.Hom.Basic._hyg.1302)) Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1300 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1302 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1300 x._@.Mathlib.Order.Hom.Basic._hyg.1302) (RelIso.instRelHomClassRelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1300 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1302 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1300 x._@.Mathlib.Order.Hom.Basic._hyg.1302))) (OrderIso.symm.{0, 0} Real Real Real.instLEReal Real.instLEReal (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MulOneClass.toMul.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287))))) (MonoidHom.monoidHomClass.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))))) CircleDeg1Lift.toOrderIso f))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInv.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)))
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_to_order_iso_symm CircleDeg1Lift.coe_toOrderIso_symmₓ'. -/
@[simp]
theorem coe_toOrderIso_symm (f : CircleDeg1Liftˣ) :
@@ -384,7 +384,7 @@ theorem coe_toOrderIso_symm (f : CircleDeg1Liftˣ) :
lean 3 declaration is
forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid), Eq.{1} (Real -> Real) (coeFn.{1, 1} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (fun (_x : RelIso.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) => Real -> Real) (RelIso.hasCoeToFun.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) (Inv.inv.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toHasInv.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))) (coeFn.{1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) (fun (_x : MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) => (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) -> (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe)) (MonoidHom.hasCoeToFun.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) CircleDeg1Lift.toOrderIso f))) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f))
but is expected to have type
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} (Real -> Real) (FunLike.coe.{1, 1, 1} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298)) Real (fun (_x : Real) => Real) (RelHomClass.toFunLike.{0, 0, 0} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298)) Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298) (RelIso.instRelHomClassRelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298))) (Inv.inv.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (InvOneClass.toInv.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (DivInvOneMonoid.toInvOneClass.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (DivisionMonoid.toDivInvOneMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (Group.toDivisionMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MulOneClass.toMul.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283))))) (MonoidHom.monoidHomClass.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))))) CircleDeg1Lift.toOrderIso f))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInv.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)))
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} (Real -> Real) (FunLike.coe.{1, 1, 1} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1300 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1302 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1300 x._@.Mathlib.Order.Hom.Basic._hyg.1302)) Real (fun (_x : Real) => Real) (RelHomClass.toFunLike.{0, 0, 0} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1300 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1302 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1300 x._@.Mathlib.Order.Hom.Basic._hyg.1302)) Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1300 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1302 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1300 x._@.Mathlib.Order.Hom.Basic._hyg.1302) (RelIso.instRelHomClassRelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1300 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1302 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1300 x._@.Mathlib.Order.Hom.Basic._hyg.1302))) (Inv.inv.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (InvOneClass.toInv.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (DivInvOneMonoid.toInvOneClass.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (DivisionMonoid.toDivInvOneMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (Group.toDivisionMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MulOneClass.toMul.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287))))) (MonoidHom.monoidHomClass.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1285 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1287 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1285 x._@.Mathlib.Order.Hom.Basic._hyg.1287)))))))) CircleDeg1Lift.toOrderIso f))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInv.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)))
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_to_order_iso_inv CircleDeg1Lift.coe_toOrderIso_invₓ'. -/
@[simp]
theorem coe_toOrderIso_inv (f : CircleDeg1Liftˣ) : ⇑(toOrderIso f)⁻¹ = (f⁻¹ : CircleDeg1Liftˣ) :=
@@ -474,7 +474,7 @@ def translate : Multiplicative ℝ →* CircleDeg1Liftˣ := by
lean 3 declaration is
forall (x : Real) (y : Real), Eq.{1} Real (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) y) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x y)
but is expected to have type
- forall (x : Real) (y : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) y) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x))) y) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x y)
+ forall (x : Real) (y : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) y) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x))) y) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x y)
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translate_apply CircleDeg1Lift.translate_applyₓ'. -/
@[simp]
theorem translate_apply (x y : ℝ) : translate (Multiplicative.ofAdd x) y = x + y :=
@@ -485,7 +485,7 @@ theorem translate_apply (x y : ℝ) : translate (Multiplicative.ofAdd x) y = x +
lean 3 declaration is
forall (x : Real) (y : Real), Eq.{1} Real (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x))) y) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (Neg.neg.{0} Real Real.hasNeg x) y)
but is expected to have type
- forall (x : Real) (y : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) y) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (Units.instInv.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)))) y) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Neg.neg.{0} Real Real.instNegReal x) y)
+ forall (x : Real) (y : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) y) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (Units.instInv.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)))) y) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Neg.neg.{0} Real Real.instNegReal x) y)
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translate_inv_apply CircleDeg1Lift.translate_inv_applyₓ'. -/
@[simp]
theorem translate_inv_apply (x y : ℝ) : (translate <| Multiplicative.ofAdd x)⁻¹ y = -x + y :=
@@ -496,7 +496,7 @@ theorem translate_inv_apply (x y : ℝ) : (translate <| Multiplicative.ofAdd x)
lean 3 declaration is
forall (x : Real) (n : Int), Eq.{1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (HPow.hPow.{0, 0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) Int (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (instHPow.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) Int (DivInvMonoid.Pow.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Group.toDivInvMonoid.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.group.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) n) (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) (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))) n) x)))
but is expected to have type
- forall (x : Real) (n : Int), Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (HPow.hPow.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) Int ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (instHPow.{0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) Int (DivInvMonoid.Pow.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (Group.toDivInvMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (Units.instGroupUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (_x : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) _x) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) n) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (_x : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) _x) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Int.cast.{0} Real Real.intCast n) x)))
+ forall (x : Real) (n : Int), Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (HPow.hPow.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) Int ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (instHPow.{0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) Int (DivInvMonoid.Pow.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (Group.toDivInvMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (Units.instGroupUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (_x : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) _x) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) n) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (_x : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) _x) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Int.cast.{0} Real Real.intCast n) x)))
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translate_zpow CircleDeg1Lift.translate_zpowₓ'. -/
@[simp]
theorem translate_zpow (x : ℝ) (n : ℤ) :
@@ -508,7 +508,7 @@ theorem translate_zpow (x : ℝ) (n : ℤ) :
lean 3 declaration is
forall (x : Real) (n : Nat), Eq.{1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (HPow.hPow.{0, 0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) Nat (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (instHPow.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) Nat (Monoid.Pow.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (DivInvMonoid.toMonoid.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Group.toDivInvMonoid.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.group.{0} CircleDeg1Lift CircleDeg1Lift.monoid))))) (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) n) (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) (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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) x)))
but is expected to have type
- forall (x : Real) (n : Nat), Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (HPow.hPow.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (instHPow.{0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) Nat (Monoid.Pow.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (DivInvMonoid.toMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (Group.toDivInvMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (Units.instGroupUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (_x : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) _x) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) n) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (_x : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) _x) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) x)))
+ forall (x : Real) (n : Nat), Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (HPow.hPow.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (instHPow.{0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) Nat (Monoid.Pow.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (DivInvMonoid.toMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (Group.toDivInvMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (Units.instGroupUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (_x : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) _x) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) n) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (_x : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) _x) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) x)))
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translate_pow CircleDeg1Lift.translate_powₓ'. -/
@[simp]
theorem translate_pow (x : ℝ) (n : ℕ) :
@@ -520,7 +520,7 @@ theorem translate_pow (x : ℝ) (n : ℕ) :
lean 3 declaration is
forall (x : Real) (n : Nat), Eq.{1} (Real -> Real) (Nat.iterate.{1} Real (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x))) n) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) (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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) x))))
but is expected to have type
- forall (x : Real) (n : Nat), Eq.{1} (Real -> Real) (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)))) n) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) x)))))
+ forall (x : Real) (n : Nat), Eq.{1} (Real -> Real) (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)))) n) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) x)))))
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translate_iterate CircleDeg1Lift.translate_iterateₓ'. -/
@[simp]
theorem translate_iterate (x : ℝ) (n : ℕ) :
@@ -1462,7 +1462,7 @@ theorem translationNumber_mono : Monotone τ := fun f g h =>
lean 3 declaration is
forall (x : Real), Eq.{1} Real (CircleDeg1Lift.translationNumber ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)))) x
but is expected to have type
- forall (x : Real), Eq.{1} Real (CircleDeg1Lift.translationNumber (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (_x : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) _x) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)))) x
+ forall (x : Real), Eq.{1} Real (CircleDeg1Lift.translationNumber (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (_x : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Real) => Multiplicative.{0} Real) _x) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)))) x
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_translate CircleDeg1Lift.translationNumber_translateₓ'. -/
theorem translationNumber_translate (x : ℝ) : τ (translate <| Multiplicative.ofAdd x) = x :=
translationNumber_eq_of_tendsto₀' _ <| by
@@ -1769,7 +1769,7 @@ theorem translationNumber_eq_rat_iff (hf : Continuous f) {m : ℤ} {n : ℕ} (hn
lean 3 declaration is
forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (f₁ : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (f₂ : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)), (forall (g : G), Eq.{1} Real (CircleDeg1Lift.translationNumber (coeFn.{succ u1, succ u1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => G -> CircleDeg1Lift) (MonoidHom.hasCoeToFun.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f₁ g)) (CircleDeg1Lift.translationNumber (coeFn.{succ u1, succ u1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => G -> CircleDeg1Lift) (MonoidHom.hasCoeToFun.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f₂ g))) -> (Exists.{1} CircleDeg1Lift (fun (F : CircleDeg1Lift) => forall (g : G), Function.Semiconj.{0, 0} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun F) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (coeFn.{succ u1, succ u1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => G -> CircleDeg1Lift) (MonoidHom.hasCoeToFun.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f₁ g)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (coeFn.{succ u1, succ u1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => G -> CircleDeg1Lift) (MonoidHom.hasCoeToFun.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f₂ g))))
but is expected to have type
- forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (f₁ : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (f₂ : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)), (forall (g : G), Eq.{1} Real (CircleDeg1Lift.translationNumber (FunLike.coe.{succ u1, succ u1, 1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => CircleDeg1Lift) _x) (MulHomClass.toFunLike.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) f₁ g)) (CircleDeg1Lift.translationNumber (FunLike.coe.{succ u1, succ u1, 1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => CircleDeg1Lift) _x) (MulHomClass.toFunLike.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) f₂ g))) -> (Exists.{1} CircleDeg1Lift (fun (F : CircleDeg1Lift) => forall (g : G), Function.Semiconj.{0, 0} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) F) (FunLike.coe.{1, 1, 1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => CircleDeg1Lift) g) Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => CircleDeg1Lift) g) Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => CircleDeg1Lift) g) Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => CircleDeg1Lift) g) Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (FunLike.coe.{succ u1, succ u1, 1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => CircleDeg1Lift) _x) (MulHomClass.toFunLike.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) f₁ g)) (FunLike.coe.{1, 1, 1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => CircleDeg1Lift) g) Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => CircleDeg1Lift) g) Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => CircleDeg1Lift) g) Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => CircleDeg1Lift) g) Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (FunLike.coe.{succ u1, succ u1, 1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => CircleDeg1Lift) _x) (MulHomClass.toFunLike.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) f₂ g))))
+ forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (f₁ : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (f₂ : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)), (forall (g : G), Eq.{1} Real (CircleDeg1Lift.translationNumber (FunLike.coe.{succ u1, succ u1, 1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => CircleDeg1Lift) _x) (MulHomClass.toFunLike.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) f₁ g)) (CircleDeg1Lift.translationNumber (FunLike.coe.{succ u1, succ u1, 1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => CircleDeg1Lift) _x) (MulHomClass.toFunLike.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) f₂ g))) -> (Exists.{1} CircleDeg1Lift (fun (F : CircleDeg1Lift) => forall (g : G), Function.Semiconj.{0, 0} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) F) (FunLike.coe.{1, 1, 1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => CircleDeg1Lift) g) Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => CircleDeg1Lift) g) Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => CircleDeg1Lift) g) Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => CircleDeg1Lift) g) Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (FunLike.coe.{succ u1, succ u1, 1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => CircleDeg1Lift) _x) (MulHomClass.toFunLike.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) f₁ g)) (FunLike.coe.{1, 1, 1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => CircleDeg1Lift) g) Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => CircleDeg1Lift) g) Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => CircleDeg1Lift) g) Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => CircleDeg1Lift) g) Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (FunLike.coe.{succ u1, succ u1, 1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => CircleDeg1Lift) _x) (MulHomClass.toFunLike.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) f₂ g))))
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.semiconj_of_group_action_of_forall_translation_number_eq CircleDeg1Lift.semiconj_of_group_action_of_forall_translationNumber_eqₓ'. -/
/-- Consider two actions `f₁ f₂ : G →* circle_deg1_lift` of a group on the real line by lifts of
orientation preserving circle homeomorphisms. Suppose that for each `g : G` the homeomorphisms
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -749,7 +749,7 @@ theorem iterate_monotone (n : ℕ) : Monotone fun f : CircleDeg1Lift => f^[n] :=
/- warning: circle_deg1_lift.iterate_mono -> CircleDeg1Lift.iterate_mono is a dubious translation:
lean 3 declaration is
- forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, (LE.le.{0} CircleDeg1Lift (Preorder.toLE.{0} CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.lattice)))) f g) -> (forall (n : Nat), LE.le.{0} (Real -> Real) (Pi.hasLe.{0, 0} Real (fun (ᾰ : Real) => Real) (fun (i : Real) => Real.hasLe)) (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n) (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g) n))
+ forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, (LE.le.{0} CircleDeg1Lift (Preorder.toHasLe.{0} CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.lattice)))) f g) -> (forall (n : Nat), LE.le.{0} (Real -> Real) (Pi.hasLe.{0, 0} Real (fun (ᾰ : Real) => Real) (fun (i : Real) => Real.hasLe)) (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n) (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g) n))
but is expected to have type
forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, (LE.le.{0} CircleDeg1Lift (Preorder.toLE.{0} CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.instLatticeCircleDeg1Lift)))) f g) -> (forall (n : Nat), LE.le.{0} (Real -> Real) (Pi.hasLe.{0, 0} Real (fun (ᾰ : Real) => Real) (fun (i : Real) => Real.instLEReal)) (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n) (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g) n))
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.iterate_mono CircleDeg1Lift.iterate_monoₓ'. -/
@@ -759,7 +759,7 @@ theorem iterate_mono {f g : CircleDeg1Lift} (h : f ≤ g) (n : ℕ) : f^[n] ≤
/- warning: circle_deg1_lift.pow_mono -> CircleDeg1Lift.pow_mono is a dubious translation:
lean 3 declaration is
- forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, (LE.le.{0} CircleDeg1Lift (Preorder.toLE.{0} CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.lattice)))) f g) -> (forall (n : Nat), LE.le.{0} CircleDeg1Lift (Preorder.toLE.{0} CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.lattice)))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) g n))
+ forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, (LE.le.{0} CircleDeg1Lift (Preorder.toHasLe.{0} CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.lattice)))) f g) -> (forall (n : Nat), LE.le.{0} CircleDeg1Lift (Preorder.toHasLe.{0} CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.lattice)))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) g n))
but is expected to have type
forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, (LE.le.{0} CircleDeg1Lift (Preorder.toLE.{0} CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.instLatticeCircleDeg1Lift)))) f g) -> (forall (n : Nat), LE.le.{0} CircleDeg1Lift (Preorder.toLE.{0} CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.instLatticeCircleDeg1Lift)))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) g n))
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.pow_mono CircleDeg1Lift.pow_monoₓ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -542,7 +542,7 @@ then reformulate as `simp` lemmas `map_int_add` etc.
lean 3 declaration is
forall (f : CircleDeg1Lift) (n : Nat), Function.Commute.{0} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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 (f : CircleDeg1Lift) (n : Nat), Function.Commute.{0} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (fun (x._@.Mathlib.Dynamics.Circle.RotationNumber.TranslationNumber._hyg.1529 : Real) => HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast n) x._@.Mathlib.Dynamics.Circle.RotationNumber.TranslationNumber._hyg.1529)
+ forall (f : CircleDeg1Lift) (n : Nat), Function.Commute.{0} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (fun (x._@.Mathlib.Dynamics.Circle.RotationNumber.TranslationNumber._hyg.1531 : Real) => HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast n) x._@.Mathlib.Dynamics.Circle.RotationNumber.TranslationNumber._hyg.1531)
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.commute_nat_add CircleDeg1Lift.commute_nat_addₓ'. -/
theorem commute_nat_add (n : ℕ) : Function.Commute f ((· + ·) n) := by
simpa only [nsmul_one, add_left_iterate] using Function.Commute.iterate_right f.map_one_add n
@@ -584,7 +584,7 @@ theorem commute_add_int : ∀ n : ℤ, Function.Commute f fun x => x + n
lean 3 declaration is
forall (f : CircleDeg1Lift) (n : Int), Function.Commute.{0} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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))) n))
but is expected to have type
- forall (f : CircleDeg1Lift) (n : Int), Function.Commute.{0} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (fun (x._@.Mathlib.Dynamics.Circle.RotationNumber.TranslationNumber._hyg.1714 : Real) => HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Int.cast.{0} Real Real.intCast n) x._@.Mathlib.Dynamics.Circle.RotationNumber.TranslationNumber._hyg.1714)
+ forall (f : CircleDeg1Lift) (n : Int), Function.Commute.{0} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (fun (x._@.Mathlib.Dynamics.Circle.RotationNumber.TranslationNumber._hyg.1716 : Real) => HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Int.cast.{0} Real Real.intCast n) x._@.Mathlib.Dynamics.Circle.RotationNumber.TranslationNumber._hyg.1716)
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.commute_int_add CircleDeg1Lift.commute_int_addₓ'. -/
theorem commute_int_add (n : ℤ) : Function.Commute f ((· + ·) n) := by
simpa only [add_comm _ (n : ℝ)] using f.commute_add_int n
mathlib commit https://github.com/leanprover-community/mathlib/commit/e3fb84046afd187b710170887195d50bada934ee
@@ -1810,11 +1810,11 @@ theorem semiconj_of_group_action_of_forall_translationNumber_eq {G : Type _} [Gr
-- Now we apply `cSup_div_semiconj` and go back to `f₁` and `f₂`.
refine' ⟨⟨_, fun x y hxy => _, fun x => _⟩, cSup_div_semiconj F₂ F₁ fun x => _⟩ <;>
simp only [hF₁, hF₂, ← MonoidHom.map_inv, coe_mk]
- · refine' csupᵢ_mono (this y) fun g => _
+ · refine' ciSup_mono (this y) fun g => _
exact mono _ (mono _ hxy)
· simp only [map_add_one]
exact
- (Monotone.map_csupᵢ_of_continuousAt (continuous_at_id.add continuousAt_const)
+ (Monotone.map_ciSup_of_continuousAt (continuous_at_id.add continuousAt_const)
(monotone_id.add_const (1 : ℝ)) (this x)).symm
· exact this x
#align circle_deg1_lift.semiconj_of_group_action_of_forall_translation_number_eq CircleDeg1Lift.semiconj_of_group_action_of_forall_translationNumber_eq
mathlib commit https://github.com/leanprover-community/mathlib/commit/d4437c68c8d350fc9d4e95e1e174409db35e30d7
@@ -1814,7 +1814,7 @@ theorem semiconj_of_group_action_of_forall_translationNumber_eq {G : Type _} [Gr
exact mono _ (mono _ hxy)
· simp only [map_add_one]
exact
- (Monotone.map_csupr_of_continuousAt (continuous_at_id.add continuousAt_const)
+ (Monotone.map_csupᵢ_of_continuousAt (continuous_at_id.add continuousAt_const)
(monotone_id.add_const (1 : ℝ)) (this x)).symm
· exact this x
#align circle_deg1_lift.semiconj_of_group_action_of_forall_translation_number_eq CircleDeg1Lift.semiconj_of_group_action_of_forall_translationNumber_eq
mathlib commit https://github.com/leanprover-community/mathlib/commit/2651125b48fc5c170ab1111afd0817c903b1fc6c
@@ -320,7 +320,7 @@ theorem [anonymous] (f : CircleDeg1Liftˣ) : ⇑(f : CircleDeg1Lift) = f :=
lean 3 declaration is
forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (x : Real), Eq.{1} Real (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun f x)) x
but is expected to have type
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f) x)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInvUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f) x)) x
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f) x)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInv.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f) x)) x
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.units_inv_apply_apply CircleDeg1Lift.units_inv_apply_applyₓ'. -/
@[simp]
theorem units_inv_apply_apply (f : CircleDeg1Liftˣ) (x : ℝ) : (f⁻¹ : CircleDeg1Liftˣ) (f x) = x :=
@@ -331,7 +331,7 @@ theorem units_inv_apply_apply (f : CircleDeg1Liftˣ) (x : ℝ) : (f⁻¹ : Circl
lean 3 declaration is
forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (x : Real), Eq.{1} Real (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun f (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f) x)) x
but is expected to have type
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInvUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)) x)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInvUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)) x)) x
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInv.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)) x)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInv.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)) x)) x
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.units_apply_inv_apply CircleDeg1Lift.units_apply_inv_applyₓ'. -/
@[simp]
theorem units_apply_inv_apply (f : CircleDeg1Liftˣ) (x : ℝ) : f ((f⁻¹ : CircleDeg1Liftˣ) x) = x :=
@@ -372,7 +372,7 @@ theorem coe_toOrderIso (f : CircleDeg1Liftˣ) : ⇑(toOrderIso f) = f :=
lean 3 declaration is
forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid), Eq.{1} (Real -> Real) (coeFn.{1, 1} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (fun (_x : RelIso.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) => Real -> Real) (RelIso.hasCoeToFun.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) (OrderIso.symm.{0, 0} Real Real Real.hasLe Real.hasLe (coeFn.{1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) (fun (_x : MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) => (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) -> (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe)) (MonoidHom.hasCoeToFun.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) CircleDeg1Lift.toOrderIso f))) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f))
but is expected to have type
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} (Real -> Real) (FunLike.coe.{1, 1, 1} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298)) Real (fun (_x : Real) => Real) (RelHomClass.toFunLike.{0, 0, 0} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298)) Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298) (RelIso.instRelHomClassRelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298))) (OrderIso.symm.{0, 0} Real Real Real.instLEReal Real.instLEReal (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MulOneClass.toMul.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283))))) (MonoidHom.monoidHomClass.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))))) CircleDeg1Lift.toOrderIso f))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInvUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)))
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} (Real -> Real) (FunLike.coe.{1, 1, 1} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298)) Real (fun (_x : Real) => Real) (RelHomClass.toFunLike.{0, 0, 0} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298)) Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298) (RelIso.instRelHomClassRelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298))) (OrderIso.symm.{0, 0} Real Real Real.instLEReal Real.instLEReal (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MulOneClass.toMul.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283))))) (MonoidHom.monoidHomClass.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))))) CircleDeg1Lift.toOrderIso f))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInv.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)))
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_to_order_iso_symm CircleDeg1Lift.coe_toOrderIso_symmₓ'. -/
@[simp]
theorem coe_toOrderIso_symm (f : CircleDeg1Liftˣ) :
@@ -384,7 +384,7 @@ theorem coe_toOrderIso_symm (f : CircleDeg1Liftˣ) :
lean 3 declaration is
forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid), Eq.{1} (Real -> Real) (coeFn.{1, 1} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (fun (_x : RelIso.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) => Real -> Real) (RelIso.hasCoeToFun.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) (Inv.inv.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toHasInv.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))) (coeFn.{1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) (fun (_x : MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) => (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) -> (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe)) (MonoidHom.hasCoeToFun.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) CircleDeg1Lift.toOrderIso f))) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f))
but is expected to have type
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} (Real -> Real) (FunLike.coe.{1, 1, 1} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298)) Real (fun (_x : Real) => Real) (RelHomClass.toFunLike.{0, 0, 0} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298)) Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298) (RelIso.instRelHomClassRelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298))) (Inv.inv.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (InvOneClass.toInv.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (DivInvOneMonoid.toInvOneClass.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (DivisionMonoid.toDivInvOneMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (Group.toDivisionMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MulOneClass.toMul.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283))))) (MonoidHom.monoidHomClass.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))))) CircleDeg1Lift.toOrderIso f))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInvUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)))
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} (Real -> Real) (FunLike.coe.{1, 1, 1} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298)) Real (fun (_x : Real) => Real) (RelHomClass.toFunLike.{0, 0, 0} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298)) Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298) (RelIso.instRelHomClassRelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298))) (Inv.inv.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (InvOneClass.toInv.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (DivInvOneMonoid.toInvOneClass.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (DivisionMonoid.toDivInvOneMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (Group.toDivisionMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MulOneClass.toMul.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283))))) (MonoidHom.monoidHomClass.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))))) CircleDeg1Lift.toOrderIso f))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInv.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)))
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_to_order_iso_inv CircleDeg1Lift.coe_toOrderIso_invₓ'. -/
@[simp]
theorem coe_toOrderIso_inv (f : CircleDeg1Liftˣ) : ⇑(toOrderIso f)⁻¹ = (f⁻¹ : CircleDeg1Liftˣ) :=
@@ -485,7 +485,7 @@ theorem translate_apply (x y : ℝ) : translate (Multiplicative.ofAdd x) y = x +
lean 3 declaration is
forall (x : Real) (y : Real), Eq.{1} Real (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x))) y) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (Neg.neg.{0} Real Real.hasNeg x) y)
but is expected to have type
- forall (x : Real) (y : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) y) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (Units.instInvUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)))) y) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Neg.neg.{0} Real Real.instNegReal x) y)
+ forall (x : Real) (y : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) y) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (Units.instInv.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)))) y) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Neg.neg.{0} Real Real.instNegReal x) y)
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translate_inv_apply CircleDeg1Lift.translate_inv_applyₓ'. -/
@[simp]
theorem translate_inv_apply (x y : ℝ) : (translate <| Multiplicative.ofAdd x)⁻¹ y = -x + y :=
@@ -1318,7 +1318,7 @@ theorem translationNumber_mul_of_commute {f g : CircleDeg1Lift} (h : Commute f g
lean 3 declaration is
forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid), Eq.{1} Real (CircleDeg1Lift.translationNumber ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f))) (Neg.neg.{0} Real Real.hasNeg (CircleDeg1Lift.translationNumber ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) f)))
but is expected to have type
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} Real (CircleDeg1Lift.translationNumber (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInvUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f))) (Neg.neg.{0} Real Real.instNegReal (CircleDeg1Lift.translationNumber (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f)))
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} Real (CircleDeg1Lift.translationNumber (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInv.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f))) (Neg.neg.{0} Real Real.instNegReal (CircleDeg1Lift.translationNumber (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f)))
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_units_inv CircleDeg1Lift.translationNumber_units_invₓ'. -/
@[simp]
theorem translationNumber_units_inv (f : CircleDeg1Liftˣ) : τ ↑f⁻¹ = -τ f :=
@@ -1358,7 +1358,7 @@ theorem translationNumber_zpow (f : CircleDeg1Liftˣ) : ∀ n : ℤ, τ (f ^ n :
lean 3 declaration is
forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (g : CircleDeg1Lift), Eq.{1} Real (CircleDeg1Lift.translationNumber (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid))) (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) f) g) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f)))) (CircleDeg1Lift.translationNumber g)
but is expected to have type
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (g : CircleDeg1Lift), Eq.{1} Real (CircleDeg1Lift.translationNumber (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))) (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f) g) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInvUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)))) (CircleDeg1Lift.translationNumber g)
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (g : CircleDeg1Lift), Eq.{1} Real (CircleDeg1Lift.translationNumber (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))) (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f) g) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInv.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)))) (CircleDeg1Lift.translationNumber g)
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_conj_eq CircleDeg1Lift.translationNumber_conj_eqₓ'. -/
@[simp]
theorem translationNumber_conj_eq (f : CircleDeg1Liftˣ) (g : CircleDeg1Lift) :
@@ -1370,7 +1370,7 @@ theorem translationNumber_conj_eq (f : CircleDeg1Liftˣ) (g : CircleDeg1Lift) :
lean 3 declaration is
forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (g : CircleDeg1Lift), Eq.{1} Real (CircleDeg1Lift.translationNumber (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid))) (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f)) g) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) f))) (CircleDeg1Lift.translationNumber g)
but is expected to have type
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (g : CircleDeg1Lift), Eq.{1} Real (CircleDeg1Lift.translationNumber (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))) (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInvUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)) g) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f))) (CircleDeg1Lift.translationNumber g)
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (g : CircleDeg1Lift), Eq.{1} Real (CircleDeg1Lift.translationNumber (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))) (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInv.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)) g) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f))) (CircleDeg1Lift.translationNumber g)
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_conj_eq' CircleDeg1Lift.translationNumber_conj_eq'ₓ'. -/
@[simp]
theorem translationNumber_conj_eq' (f : CircleDeg1Liftˣ) (g : CircleDeg1Lift) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/730c6d4cab72b9d84fcfb9e95e8796e9cd8f40ba
@@ -361,7 +361,7 @@ def toOrderIso : CircleDeg1Liftˣ →* ℝ ≃o ℝ
lean 3 declaration is
forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid), Eq.{1} (Real -> Real) (coeFn.{1, 1} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (fun (_x : RelIso.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) => Real -> Real) (RelIso.hasCoeToFun.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) (coeFn.{1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) (fun (_x : MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) => (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) -> (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe)) (MonoidHom.hasCoeToFun.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) CircleDeg1Lift.toOrderIso f)) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun f)
but is expected to have type
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} (forall (ᾰ : Real), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Real) => Real) ᾰ) (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} Real Real) Real (fun (_x : Real) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Real) => Real) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} Real Real) Real Real (Function.instEmbeddingLikeEmbedding.{1, 1} Real Real)) (RelEmbedding.toEmbedding.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298) (RelIso.toRelEmbedding.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (fun (a : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) a) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MulOneClass.toMul.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283))))) (MonoidHom.monoidHomClass.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))))) CircleDeg1Lift.toOrderIso f)))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f))
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} (Real -> Real) (FunLike.coe.{1, 1, 1} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298)) Real (fun (_x : Real) => Real) (RelHomClass.toFunLike.{0, 0, 0} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298)) Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298) (RelIso.instRelHomClassRelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MulOneClass.toMul.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283))))) (MonoidHom.monoidHomClass.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))))) CircleDeg1Lift.toOrderIso f)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f))
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_to_order_iso CircleDeg1Lift.coe_toOrderIsoₓ'. -/
@[simp]
theorem coe_toOrderIso (f : CircleDeg1Liftˣ) : ⇑(toOrderIso f) = f :=
@@ -372,7 +372,7 @@ theorem coe_toOrderIso (f : CircleDeg1Liftˣ) : ⇑(toOrderIso f) = f :=
lean 3 declaration is
forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid), Eq.{1} (Real -> Real) (coeFn.{1, 1} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (fun (_x : RelIso.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) => Real -> Real) (RelIso.hasCoeToFun.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) (OrderIso.symm.{0, 0} Real Real Real.hasLe Real.hasLe (coeFn.{1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) (fun (_x : MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) => (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) -> (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe)) (MonoidHom.hasCoeToFun.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) CircleDeg1Lift.toOrderIso f))) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f))
but is expected to have type
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} (forall (ᾰ : Real), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Real) => Real) ᾰ) (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} Real Real) Real (fun (_x : Real) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Real) => Real) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} Real Real) Real Real (Function.instEmbeddingLikeEmbedding.{1, 1} Real Real)) (RelEmbedding.toEmbedding.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298) (RelIso.toRelEmbedding.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298) (OrderIso.symm.{0, 0} Real Real Real.instLEReal Real.instLEReal (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (fun (a : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) a) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MulOneClass.toMul.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283))))) (MonoidHom.monoidHomClass.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))))) CircleDeg1Lift.toOrderIso f))))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInvUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)))
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} (Real -> Real) (FunLike.coe.{1, 1, 1} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298)) Real (fun (_x : Real) => Real) (RelHomClass.toFunLike.{0, 0, 0} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298)) Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298) (RelIso.instRelHomClassRelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298))) (OrderIso.symm.{0, 0} Real Real Real.instLEReal Real.instLEReal (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MulOneClass.toMul.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283))))) (MonoidHom.monoidHomClass.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))))) CircleDeg1Lift.toOrderIso f))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInvUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)))
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_to_order_iso_symm CircleDeg1Lift.coe_toOrderIso_symmₓ'. -/
@[simp]
theorem coe_toOrderIso_symm (f : CircleDeg1Liftˣ) :
@@ -384,7 +384,7 @@ theorem coe_toOrderIso_symm (f : CircleDeg1Liftˣ) :
lean 3 declaration is
forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid), Eq.{1} (Real -> Real) (coeFn.{1, 1} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (fun (_x : RelIso.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) => Real -> Real) (RelIso.hasCoeToFun.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) (Inv.inv.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toHasInv.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))) (coeFn.{1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) (fun (_x : MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) => (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) -> (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe)) (MonoidHom.hasCoeToFun.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) CircleDeg1Lift.toOrderIso f))) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f))
but is expected to have type
- forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} (forall (ᾰ : Real), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Real) => Real) ᾰ) (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} Real Real) Real (fun (_x : Real) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Real) => Real) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} Real Real) Real Real (Function.instEmbeddingLikeEmbedding.{1, 1} Real Real)) (RelEmbedding.toEmbedding.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298) (RelIso.toRelEmbedding.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298) (Inv.inv.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (InvOneClass.toInv.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (DivInvOneMonoid.toInvOneClass.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (DivisionMonoid.toDivInvOneMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (Group.toDivisionMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (fun (a : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) a) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MulOneClass.toMul.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283))))) (MonoidHom.monoidHomClass.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))))) CircleDeg1Lift.toOrderIso f))))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInvUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)))
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} (Real -> Real) (FunLike.coe.{1, 1, 1} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298)) Real (fun (_x : Real) => Real) (RelHomClass.toFunLike.{0, 0, 0} (RelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298)) Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298) (RelIso.instRelHomClassRelIso.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298))) (Inv.inv.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (InvOneClass.toInv.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (DivInvOneMonoid.toInvOneClass.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (DivisionMonoid.toDivInvOneMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (Group.toDivisionMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MulOneClass.toMul.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283))))) (MonoidHom.monoidHomClass.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))))) CircleDeg1Lift.toOrderIso f))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInvUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)))
Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_to_order_iso_inv CircleDeg1Lift.coe_toOrderIso_invₓ'. -/
@[simp]
theorem coe_toOrderIso_inv (f : CircleDeg1Liftˣ) : ⇑(toOrderIso f)⁻¹ = (f⁻¹ : CircleDeg1Liftˣ) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/cd8fafa2fac98e1a67097e8a91ad9901cfde48af
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury G. Kudryashov
! This file was ported from Lean 3 source module dynamics.circle.rotation_number.translation_number
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
+! leanprover-community/mathlib commit ce38d86c0b2d427ce208c3cee3159cb421d2b3c4
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -17,6 +17,9 @@ import Mathbin.Topology.Algebra.Order.MonotoneContinuity
/-!
# Translation number of a monotone real map that commutes with `x ↦ x + 1`
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
Let `f : ℝ → ℝ` be a monotone map such that `f (x + 1) = f x + 1` for all `x`. Then the limit
$$
\tau(f)=\lim_{n\to\infty}{f^n(x)-x}{n}
mathlib commit https://github.com/leanprover-community/mathlib/commit/17ad94b4953419f3e3ce3e77da3239c62d1d09f0
@@ -134,18 +134,26 @@ open Topology Classical
-/
+#print CircleDeg1Lift /-
/-- A lift of a monotone degree one map `S¹ → S¹`. -/
structure CircleDeg1Lift : Type where
toFun : ℝ → ℝ
monotone' : Monotone to_fun
map_add_one' : ∀ x, to_fun (x + 1) = to_fun x + 1
#align circle_deg1_lift CircleDeg1Lift
+-/
namespace CircleDeg1Lift
instance : CoeFun CircleDeg1Lift fun _ => ℝ → ℝ :=
⟨CircleDeg1Lift.toFun⟩
+/- warning: circle_deg1_lift.coe_mk -> CircleDeg1Lift.coe_mk is a dubious translation:
+lean 3 declaration is
+ forall (f : Real -> Real) (h₁ : Monotone.{0, 0} Real Real Real.preorder Real.preorder f) (h₂ : forall (x : Real), Eq.{1} Real (f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (f x) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))), Eq.{1} (Real -> Real) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (CircleDeg1Lift.mk f h₁ h₂)) f
+but is expected to have type
+ forall (f : OrderHom.{0, 0} Real Real Real.instPreorderReal Real.instPreorderReal) (h₁ : forall (x : Real), Eq.{1} Real (OrderHom.toFun.{0, 0} Real Real Real.instPreorderReal Real.instPreorderReal f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (OrderHom.toFun.{0, 0} Real Real Real.instPreorderReal Real.instPreorderReal f x) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))), Eq.{1} (forall (a : Real), (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (CircleDeg1Lift.mk f h₁)) (OrderHom.toFun.{0, 0} Real Real Real.instPreorderReal Real.instPreorderReal f)
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_mk CircleDeg1Lift.coe_mkₓ'. -/
@[simp]
theorem coe_mk (f h₁ h₂) : ⇑(mk f h₁ h₂) = f :=
rfl
@@ -153,37 +161,86 @@ theorem coe_mk (f h₁ h₂) : ⇑(mk f h₁ h₂) = f :=
variable (f g : CircleDeg1Lift)
+/- warning: circle_deg1_lift.monotone -> CircleDeg1Lift.monotone is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift), Monotone.{0, 0} Real Real Real.preorder Real.preorder (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f)
+but is expected to have type
+ forall (f : CircleDeg1Lift), Monotone.{0, 0} Real Real Real.instPreorderReal Real.instPreorderReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f)
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.monotone CircleDeg1Lift.monotoneₓ'. -/
protected theorem monotone : Monotone f :=
f.monotone'
#align circle_deg1_lift.monotone CircleDeg1Lift.monotone
+/- warning: circle_deg1_lift.mono -> CircleDeg1Lift.mono is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) {x : Real} {y : Real}, (LE.le.{0} Real Real.hasLe x y) -> (LE.le.{0} Real Real.hasLe (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f y))
+but is expected to have type
+ forall (f : CircleDeg1Lift) {x : Real} {y : Real}, (LE.le.{0} Real Real.instLEReal x y) -> (LE.le.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLEReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f y))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.mono CircleDeg1Lift.monoₓ'. -/
@[mono]
theorem mono {x y} (h : x ≤ y) : f x ≤ f y :=
f.Monotone h
#align circle_deg1_lift.mono CircleDeg1Lift.mono
+/- warning: circle_deg1_lift.strict_mono_iff_injective -> CircleDeg1Lift.strictMono_iff_injective is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift), Iff (StrictMono.{0, 0} Real Real Real.preorder Real.preorder (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f)) (Function.Injective.{1, 1} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f))
+but is expected to have type
+ forall (f : CircleDeg1Lift), Iff (StrictMono.{0, 0} Real Real Real.instPreorderReal Real.instPreorderReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f)) (Function.Injective.{1, 1} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.strict_mono_iff_injective CircleDeg1Lift.strictMono_iff_injectiveₓ'. -/
theorem strictMono_iff_injective : StrictMono f ↔ Injective f :=
f.Monotone.strictMono_iff_injective
#align circle_deg1_lift.strict_mono_iff_injective CircleDeg1Lift.strictMono_iff_injective
+/- warning: circle_deg1_lift.map_add_one -> CircleDeg1Lift.map_add_one is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (x : Real), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instAddReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) Real.instOneReal)))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_add_one CircleDeg1Lift.map_add_oneₓ'. -/
@[simp]
theorem map_add_one : ∀ x, f (x + 1) = f x + 1 :=
f.map_add_one'
#align circle_deg1_lift.map_add_one CircleDeg1Lift.map_add_one
+/- warning: circle_deg1_lift.map_one_add -> CircleDeg1Lift.map_one_add is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (x : Real), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))) x)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) x)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) x)) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) x)) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) x)) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) x)) Real.instAddReal) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) x)) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) x)) Real.instOneReal)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_one_add CircleDeg1Lift.map_one_addₓ'. -/
@[simp]
theorem map_one_add (x : ℝ) : f (1 + x) = 1 + f x := by rw [add_comm, map_add_one, add_comm]
#align circle_deg1_lift.map_one_add CircleDeg1Lift.map_one_add
-theorem coe_inj : ∀ ⦃f g : CircleDeg1Lift⦄, (f : ℝ → ℝ) = g → f = g :=
+/- warning: circle_deg1_lift.coe_inj clashes with [anonymous] -> [anonymous]
+warning: circle_deg1_lift.coe_inj -> [anonymous] is a dubious translation:
+lean 3 declaration is
+ forall {{f : CircleDeg1Lift}} {{g : CircleDeg1Lift}}, (Eq.{1} ((fun (_x : CircleDeg1Lift) => Real -> Real) f) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g)) -> (Eq.{1} CircleDeg1Lift f g)
+but is expected to have type
+ forall {f : Type.{u}} {g : Type.{v}}, (Nat -> f -> g) -> Nat -> (List.{u} f) -> (List.{v} g)
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_inj [anonymous]ₓ'. -/
+theorem [anonymous] : ∀ ⦃f g : CircleDeg1Lift⦄, (f : ℝ → ℝ) = g → f = g :=
fun ⟨f, fm, fd⟩ ⟨g, gm, gd⟩ h => by congr <;> exact h
-#align circle_deg1_lift.coe_inj CircleDeg1Lift.coe_inj
-
+#align circle_deg1_lift.coe_inj [anonymous]
+
+/- warning: circle_deg1_lift.ext -> CircleDeg1Lift.ext is a dubious translation:
+lean 3 declaration is
+ forall {{f : CircleDeg1Lift}} {{g : CircleDeg1Lift}}, (forall (x : Real), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g x)) -> (Eq.{1} CircleDeg1Lift f g)
+but is expected to have type
+ forall {{f : CircleDeg1Lift}} {{g : CircleDeg1Lift}}, (forall (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g x)) -> (Eq.{1} CircleDeg1Lift f g)
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.ext CircleDeg1Lift.extₓ'. -/
@[ext]
theorem ext ⦃f g : CircleDeg1Lift⦄ (h : ∀ x, f x = g x) : f = g :=
- coe_inj <| funext h
+ [anonymous] <| funext h
#align circle_deg1_lift.ext CircleDeg1Lift.ext
+/- warning: circle_deg1_lift.ext_iff -> CircleDeg1Lift.ext_iff is a dubious translation:
+lean 3 declaration is
+ forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, Iff (Eq.{1} CircleDeg1Lift f g) (forall (x : Real), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g x))
+but is expected to have type
+ forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, Iff (Eq.{1} CircleDeg1Lift f g) (forall (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g x))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.ext_iff CircleDeg1Lift.ext_iffₓ'. -/
theorem ext_iff {f g : CircleDeg1Lift} : f = g ↔ ∀ x, f x = g x :=
⟨fun h x => h ▸ rfl, fun h => ext h⟩
#align circle_deg1_lift.ext_iff CircleDeg1Lift.ext_iff
@@ -195,46 +252,95 @@ instance : Monoid CircleDeg1Lift
monotone' := f.Monotone.comp g.Monotone
map_add_one' := fun x => by simp [map_add_one] }
one := ⟨id, monotone_id, fun _ => rfl⟩
- mul_one f := coe_inj <| Function.comp.right_id f
- one_mul f := coe_inj <| Function.comp.left_id f
- mul_assoc f₁ f₂ f₃ := coe_inj rfl
+ mul_one f := [anonymous] <| Function.comp.right_id f
+ one_mul f := [anonymous] <| Function.comp.left_id f
+ mul_assoc f₁ f₂ f₃ := [anonymous] rfl
instance : Inhabited CircleDeg1Lift :=
⟨1⟩
+/- warning: circle_deg1_lift.coe_mul -> CircleDeg1Lift.coe_mul is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), Eq.{1} (Real -> Real) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid))) f g)) (Function.comp.{1, 1, 1} Real Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), Eq.{1} (forall (ᾰ : Real), (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) ᾰ) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))) f g)) (Function.comp.{1, 1, 1} Real Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_mul CircleDeg1Lift.coe_mulₓ'. -/
@[simp]
theorem coe_mul : ⇑(f * g) = f ∘ g :=
rfl
#align circle_deg1_lift.coe_mul CircleDeg1Lift.coe_mul
+/- warning: circle_deg1_lift.mul_apply -> CircleDeg1Lift.mul_apply is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift) (x : Real), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid))) f g) x) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g x))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift) (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))) f g) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g x))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.mul_apply CircleDeg1Lift.mul_applyₓ'. -/
theorem mul_apply (x) : (f * g) x = f (g x) :=
rfl
#align circle_deg1_lift.mul_apply CircleDeg1Lift.mul_apply
+/- warning: circle_deg1_lift.coe_one -> CircleDeg1Lift.coe_one is a dubious translation:
+lean 3 declaration is
+ Eq.{1} (Real -> Real) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (OfNat.ofNat.{0} CircleDeg1Lift 1 (OfNat.mk.{0} CircleDeg1Lift 1 (One.one.{0} CircleDeg1Lift (MulOneClass.toHasOne.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))))) (id.{1} Real)
+but is expected to have type
+ Eq.{1} (forall (ᾰ : Real), (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) ᾰ) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (OfNat.ofNat.{0} CircleDeg1Lift 1 (One.toOfNat1.{0} CircleDeg1Lift (Monoid.toOne.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) (id.{1} Real)
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_one CircleDeg1Lift.coe_oneₓ'. -/
@[simp]
theorem coe_one : ⇑(1 : CircleDeg1Lift) = id :=
rfl
#align circle_deg1_lift.coe_one CircleDeg1Lift.coe_one
+/- warning: circle_deg1_lift.units_has_coe_to_fun -> CircleDeg1Lift.unitsHasCoeToFun is a dubious translation:
+lean 3 declaration is
+ CoeFun.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real)
+but is expected to have type
+ CoeFun.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => Real -> Real)
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.units_has_coe_to_fun CircleDeg1Lift.unitsHasCoeToFunₓ'. -/
instance unitsHasCoeToFun : CoeFun CircleDeg1Liftˣ fun _ => ℝ → ℝ :=
⟨fun f => ⇑(f : CircleDeg1Lift)⟩
#align circle_deg1_lift.units_has_coe_to_fun CircleDeg1Lift.unitsHasCoeToFun
+/- warning: circle_deg1_lift.units_coe clashes with [anonymous] -> [anonymous]
+warning: circle_deg1_lift.units_coe -> [anonymous] is a dubious translation:
+lean 3 declaration is
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid), Eq.{1} (Real -> Real) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) f)) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun f)
+but is expected to have type
+ forall {f : Type.{u}} {β : Type.{v}}, (Nat -> f -> β) -> Nat -> (List.{u} f) -> (List.{v} β)
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.units_coe [anonymous]ₓ'. -/
@[simp, norm_cast]
-theorem units_coe (f : CircleDeg1Liftˣ) : ⇑(f : CircleDeg1Lift) = f :=
+theorem [anonymous] (f : CircleDeg1Liftˣ) : ⇑(f : CircleDeg1Lift) = f :=
rfl
-#align circle_deg1_lift.units_coe CircleDeg1Lift.units_coe
-
+#align circle_deg1_lift.units_coe [anonymous]
+
+/- warning: circle_deg1_lift.units_inv_apply_apply -> CircleDeg1Lift.units_inv_apply_apply is a dubious translation:
+lean 3 declaration is
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (x : Real), Eq.{1} Real (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun f x)) x
+but is expected to have type
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f) x)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInvUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f) x)) x
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.units_inv_apply_apply CircleDeg1Lift.units_inv_apply_applyₓ'. -/
@[simp]
theorem units_inv_apply_apply (f : CircleDeg1Liftˣ) (x : ℝ) : (f⁻¹ : CircleDeg1Liftˣ) (f x) = x :=
by simp only [← units_coe, ← mul_apply, f.inv_mul, coe_one, id]
#align circle_deg1_lift.units_inv_apply_apply CircleDeg1Lift.units_inv_apply_apply
+/- warning: circle_deg1_lift.units_apply_inv_apply -> CircleDeg1Lift.units_apply_inv_apply is a dubious translation:
+lean 3 declaration is
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (x : Real), Eq.{1} Real (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun f (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f) x)) x
+but is expected to have type
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInvUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)) x)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInvUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)) x)) x
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.units_apply_inv_apply CircleDeg1Lift.units_apply_inv_applyₓ'. -/
@[simp]
theorem units_apply_inv_apply (f : CircleDeg1Liftˣ) (x : ℝ) : f ((f⁻¹ : CircleDeg1Liftˣ) x) = x :=
by simp only [← units_coe, ← mul_apply, f.mul_inv, coe_one, id]
#align circle_deg1_lift.units_apply_inv_apply CircleDeg1Lift.units_apply_inv_apply
+/- warning: circle_deg1_lift.to_order_iso -> CircleDeg1Lift.toOrderIso is a dubious translation:
+lean 3 declaration is
+ MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))
+but is expected to have type
+ MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.to_order_iso CircleDeg1Lift.toOrderIsoₓ'. -/
/-- If a lift of a circle map is bijective, then it is an order automorphism of the line. -/
def toOrderIso : CircleDeg1Liftˣ →* ℝ ≃o ℝ
where
@@ -248,22 +354,46 @@ def toOrderIso : CircleDeg1Liftˣ →* ℝ ≃o ℝ
map_mul' f g := rfl
#align circle_deg1_lift.to_order_iso CircleDeg1Lift.toOrderIso
+/- warning: circle_deg1_lift.coe_to_order_iso -> CircleDeg1Lift.coe_toOrderIso is a dubious translation:
+lean 3 declaration is
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid), Eq.{1} (Real -> Real) (coeFn.{1, 1} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (fun (_x : RelIso.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) => Real -> Real) (RelIso.hasCoeToFun.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) (coeFn.{1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) (fun (_x : MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) => (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) -> (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe)) (MonoidHom.hasCoeToFun.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) CircleDeg1Lift.toOrderIso f)) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun f)
+but is expected to have type
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} (forall (ᾰ : Real), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Real) => Real) ᾰ) (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} Real Real) Real (fun (_x : Real) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Real) => Real) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} Real Real) Real Real (Function.instEmbeddingLikeEmbedding.{1, 1} Real Real)) (RelEmbedding.toEmbedding.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298) (RelIso.toRelEmbedding.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (fun (a : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) a) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MulOneClass.toMul.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283))))) (MonoidHom.monoidHomClass.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))))) CircleDeg1Lift.toOrderIso f)))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_to_order_iso CircleDeg1Lift.coe_toOrderIsoₓ'. -/
@[simp]
theorem coe_toOrderIso (f : CircleDeg1Liftˣ) : ⇑(toOrderIso f) = f :=
rfl
#align circle_deg1_lift.coe_to_order_iso CircleDeg1Lift.coe_toOrderIso
+/- warning: circle_deg1_lift.coe_to_order_iso_symm -> CircleDeg1Lift.coe_toOrderIso_symm is a dubious translation:
+lean 3 declaration is
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid), Eq.{1} (Real -> Real) (coeFn.{1, 1} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (fun (_x : RelIso.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) => Real -> Real) (RelIso.hasCoeToFun.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) (OrderIso.symm.{0, 0} Real Real Real.hasLe Real.hasLe (coeFn.{1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) (fun (_x : MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) => (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) -> (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe)) (MonoidHom.hasCoeToFun.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) CircleDeg1Lift.toOrderIso f))) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f))
+but is expected to have type
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} (forall (ᾰ : Real), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Real) => Real) ᾰ) (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} Real Real) Real (fun (_x : Real) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Real) => Real) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} Real Real) Real Real (Function.instEmbeddingLikeEmbedding.{1, 1} Real Real)) (RelEmbedding.toEmbedding.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298) (RelIso.toRelEmbedding.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298) (OrderIso.symm.{0, 0} Real Real Real.instLEReal Real.instLEReal (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (fun (a : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) a) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MulOneClass.toMul.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283))))) (MonoidHom.monoidHomClass.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))))) CircleDeg1Lift.toOrderIso f))))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInvUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_to_order_iso_symm CircleDeg1Lift.coe_toOrderIso_symmₓ'. -/
@[simp]
theorem coe_toOrderIso_symm (f : CircleDeg1Liftˣ) :
⇑(toOrderIso f).symm = (f⁻¹ : CircleDeg1Liftˣ) :=
rfl
#align circle_deg1_lift.coe_to_order_iso_symm CircleDeg1Lift.coe_toOrderIso_symm
+/- warning: circle_deg1_lift.coe_to_order_iso_inv -> CircleDeg1Lift.coe_toOrderIso_inv is a dubious translation:
+lean 3 declaration is
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid), Eq.{1} (Real -> Real) (coeFn.{1, 1} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (fun (_x : RelIso.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) => Real -> Real) (RelIso.hasCoeToFun.{0, 0} Real Real (LE.le.{0} Real Real.hasLe) (LE.le.{0} Real Real.hasLe)) (Inv.inv.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toHasInv.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))) (coeFn.{1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) (fun (_x : MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) => (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) -> (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe)) (MonoidHom.hasCoeToFun.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.hasLe Real.hasLe) (RelIso.group.{0} Real (LE.le.{0} Real Real.hasLe)))))) CircleDeg1Lift.toOrderIso f))) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f))
+but is expected to have type
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} (forall (ᾰ : Real), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Real) => Real) ᾰ) (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} Real Real) Real (fun (_x : Real) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Real) => Real) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} Real Real) Real Real (Function.instEmbeddingLikeEmbedding.{1, 1} Real Real)) (RelEmbedding.toEmbedding.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298) (RelIso.toRelEmbedding.{0, 0} Real Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1296 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1298 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1296 x._@.Mathlib.Order.Hom.Basic._hyg.1298) (Inv.inv.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (InvOneClass.toInv.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (DivInvOneMonoid.toInvOneClass.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (DivisionMonoid.toDivInvOneMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (Group.toDivisionMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) f) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (fun (a : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) => OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) a) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MulOneClass.toMul.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283))))) (MonoidHom.monoidHomClass.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Monoid.toMulOneClass.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (DivInvMonoid.toMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (Group.toDivInvMonoid.{0} (OrderIso.{0, 0} Real Real Real.instLEReal Real.instLEReal) (RelIso.instGroupRelIso.{0} Real (fun (x._@.Mathlib.Order.Hom.Basic._hyg.1281 : Real) (x._@.Mathlib.Order.Hom.Basic._hyg.1283 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Order.Hom.Basic._hyg.1281 x._@.Mathlib.Order.Hom.Basic._hyg.1283)))))))) CircleDeg1Lift.toOrderIso f))))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInvUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_to_order_iso_inv CircleDeg1Lift.coe_toOrderIso_invₓ'. -/
@[simp]
theorem coe_toOrderIso_inv (f : CircleDeg1Liftˣ) : ⇑(toOrderIso f)⁻¹ = (f⁻¹ : CircleDeg1Liftˣ) :=
rfl
#align circle_deg1_lift.coe_to_order_iso_inv CircleDeg1Lift.coe_toOrderIso_inv
+/- warning: circle_deg1_lift.is_unit_iff_bijective -> CircleDeg1Lift.isUnit_iff_bijective is a dubious translation:
+lean 3 declaration is
+ forall {f : CircleDeg1Lift}, Iff (IsUnit.{0} CircleDeg1Lift CircleDeg1Lift.monoid f) (Function.Bijective.{1, 1} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f))
+but is expected to have type
+ forall {f : CircleDeg1Lift}, Iff (IsUnit.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f) (Function.Bijective.{1, 1} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.is_unit_iff_bijective CircleDeg1Lift.isUnit_iff_bijectiveₓ'. -/
theorem isUnit_iff_bijective {f : CircleDeg1Lift} : IsUnit f ↔ Bijective f :=
⟨fun ⟨u, h⟩ => h ▸ (toOrderIso u).Bijective, fun h =>
Units.isUnit
@@ -279,6 +409,12 @@ theorem isUnit_iff_bijective {f : CircleDeg1Lift} : IsUnit f ↔ Bijective f :=
inv_val := ext <| Equiv.ofBijective_symm_apply_apply f h }⟩
#align circle_deg1_lift.is_unit_iff_bijective CircleDeg1Lift.isUnit_iff_bijective
+/- warning: circle_deg1_lift.coe_pow -> CircleDeg1Lift.coe_pow is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (n : Nat), Eq.{1} (Real -> Real) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n)) (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n)
+but is expected to have type
+ forall (f : CircleDeg1Lift) (n : Nat), Eq.{1} (forall (ᾰ : Real), (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) ᾰ) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n)) (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n)
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.coe_pow CircleDeg1Lift.coe_powₓ'. -/
theorem coe_pow : ∀ n : ℕ, ⇑(f ^ n) = f^[n]
| 0 => rfl
| n + 1 => by
@@ -286,11 +422,23 @@ theorem coe_pow : ∀ n : ℕ, ⇑(f ^ n) = f^[n]
simp [coe_pow n, pow_succ']
#align circle_deg1_lift.coe_pow CircleDeg1Lift.coe_pow
+/- warning: circle_deg1_lift.semiconj_by_iff_semiconj -> CircleDeg1Lift.semiconjBy_iff_semiconj is a dubious translation:
+lean 3 declaration is
+ forall {f : CircleDeg1Lift} {g₁ : CircleDeg1Lift} {g₂ : CircleDeg1Lift}, Iff (SemiconjBy.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f g₁ g₂) (Function.Semiconj.{0, 0} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g₁) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g₂))
+but is expected to have type
+ forall {f : CircleDeg1Lift} {g₁ : CircleDeg1Lift} {g₂ : CircleDeg1Lift}, Iff (SemiconjBy.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f g₁ g₂) (Function.Semiconj.{0, 0} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g₁) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g₂))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.semiconj_by_iff_semiconj CircleDeg1Lift.semiconjBy_iff_semiconjₓ'. -/
theorem semiconjBy_iff_semiconj {f g₁ g₂ : CircleDeg1Lift} :
SemiconjBy f g₁ g₂ ↔ Semiconj f g₁ g₂ :=
ext_iff
#align circle_deg1_lift.semiconj_by_iff_semiconj CircleDeg1Lift.semiconjBy_iff_semiconj
+/- warning: circle_deg1_lift.commute_iff_commute -> CircleDeg1Lift.commute_iff_commute is a dubious translation:
+lean 3 declaration is
+ forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, Iff (Commute.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f g) (Function.Commute.{0} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g))
+but is expected to have type
+ forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, Iff (Commute.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f g) (Function.Commute.{0} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.commute_iff_commute CircleDeg1Lift.commute_iff_commuteₓ'. -/
theorem commute_iff_commute {f g : CircleDeg1Lift} : Commute f g ↔ Function.Commute f g :=
ext_iff
#align circle_deg1_lift.commute_iff_commute CircleDeg1Lift.commute_iff_commute
@@ -300,6 +448,12 @@ theorem commute_iff_commute {f g : CircleDeg1Lift} : Commute f g ↔ Function.Co
-/
+/- warning: circle_deg1_lift.translate -> CircleDeg1Lift.translate is a dubious translation:
+lean 3 declaration is
+ MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)
+but is expected to have type
+ MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translate CircleDeg1Lift.translateₓ'. -/
/-- The map `y ↦ x + y` as a `circle_deg1_lift`. More precisely, we define a homomorphism from
`multiplicative ℝ` to `circle_deg1_liftˣ`, so the translation by `x` is
`translation (multiplicative.of_add x)`. -/
@@ -313,28 +467,58 @@ def translate : Multiplicative ℝ →* CircleDeg1Liftˣ := by
map_mul' := fun x y => ext <| add_assoc _ _ }
#align circle_deg1_lift.translate CircleDeg1Lift.translate
+/- warning: circle_deg1_lift.translate_apply -> CircleDeg1Lift.translate_apply is a dubious translation:
+lean 3 declaration is
+ forall (x : Real) (y : Real), Eq.{1} Real (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) y) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x y)
+but is expected to have type
+ forall (x : Real) (y : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) y) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x))) y) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x y)
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translate_apply CircleDeg1Lift.translate_applyₓ'. -/
@[simp]
theorem translate_apply (x y : ℝ) : translate (Multiplicative.ofAdd x) y = x + y :=
rfl
#align circle_deg1_lift.translate_apply CircleDeg1Lift.translate_apply
+/- warning: circle_deg1_lift.translate_inv_apply -> CircleDeg1Lift.translate_inv_apply is a dubious translation:
+lean 3 declaration is
+ forall (x : Real) (y : Real), Eq.{1} Real (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x))) y) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (Neg.neg.{0} Real Real.hasNeg x) y)
+but is expected to have type
+ forall (x : Real) (y : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) y) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (Units.instInvUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)))) y) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Neg.neg.{0} Real Real.instNegReal x) y)
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translate_inv_apply CircleDeg1Lift.translate_inv_applyₓ'. -/
@[simp]
theorem translate_inv_apply (x y : ℝ) : (translate <| Multiplicative.ofAdd x)⁻¹ y = -x + y :=
rfl
#align circle_deg1_lift.translate_inv_apply CircleDeg1Lift.translate_inv_apply
+/- warning: circle_deg1_lift.translate_zpow -> CircleDeg1Lift.translate_zpow is a dubious translation:
+lean 3 declaration is
+ forall (x : Real) (n : Int), Eq.{1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (HPow.hPow.{0, 0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) Int (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (instHPow.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) Int (DivInvMonoid.Pow.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Group.toDivInvMonoid.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.group.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) n) (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) (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))) n) x)))
+but is expected to have type
+ forall (x : Real) (n : Int), Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (HPow.hPow.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) Int ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (instHPow.{0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) Int (DivInvMonoid.Pow.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (Group.toDivInvMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (Units.instGroupUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (_x : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) _x) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) n) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (_x : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) _x) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Int.cast.{0} Real Real.intCast n) x)))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translate_zpow CircleDeg1Lift.translate_zpowₓ'. -/
@[simp]
theorem translate_zpow (x : ℝ) (n : ℤ) :
translate (Multiplicative.ofAdd x) ^ n = translate (Multiplicative.ofAdd <| ↑n * x) := by
simp only [← zsmul_eq_mul, ofAdd_zsmul, MonoidHom.map_zpow]
#align circle_deg1_lift.translate_zpow CircleDeg1Lift.translate_zpow
+/- warning: circle_deg1_lift.translate_pow -> CircleDeg1Lift.translate_pow is a dubious translation:
+lean 3 declaration is
+ forall (x : Real) (n : Nat), Eq.{1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (HPow.hPow.{0, 0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) Nat (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (instHPow.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) Nat (Monoid.Pow.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (DivInvMonoid.toMonoid.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Group.toDivInvMonoid.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.group.{0} CircleDeg1Lift CircleDeg1Lift.monoid))))) (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) n) (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) (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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) x)))
+but is expected to have type
+ forall (x : Real) (n : Nat), Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (HPow.hPow.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (instHPow.{0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) Nat (Monoid.Pow.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (DivInvMonoid.toMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (Group.toDivInvMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) (Units.instGroupUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (_x : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) _x) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)) n) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (_x : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) _x) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) x)))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translate_pow CircleDeg1Lift.translate_powₓ'. -/
@[simp]
theorem translate_pow (x : ℝ) (n : ℕ) :
translate (Multiplicative.ofAdd x) ^ n = translate (Multiplicative.ofAdd <| ↑n * x) :=
translate_zpow x n
#align circle_deg1_lift.translate_pow CircleDeg1Lift.translate_pow
+/- warning: circle_deg1_lift.translate_iterate -> CircleDeg1Lift.translate_iterate is a dubious translation:
+lean 3 declaration is
+ forall (x : Real) (n : Nat), Eq.{1} (Real -> Real) (Nat.iterate.{1} Real (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x))) n) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) (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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) x))))
+but is expected to have type
+ forall (x : Real) (n : Nat), Eq.{1} (Real -> Real) (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)))) n) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (a : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) a) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) x)))))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translate_iterate CircleDeg1Lift.translate_iterateₓ'. -/
@[simp]
theorem translate_iterate (x : ℝ) (n : ℕ) :
translate (Multiplicative.ofAdd x)^[n] = translate (Multiplicative.ofAdd <| ↑n * x) := by
@@ -351,66 +535,150 @@ then reformulate as `simp` lemmas `map_int_add` etc.
-/
+/- warning: circle_deg1_lift.commute_nat_add -> CircleDeg1Lift.commute_nat_add is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (n : Nat), Function.Commute.{0} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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 (f : CircleDeg1Lift) (n : Nat), Function.Commute.{0} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (fun (x._@.Mathlib.Dynamics.Circle.RotationNumber.TranslationNumber._hyg.1529 : Real) => HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast n) x._@.Mathlib.Dynamics.Circle.RotationNumber.TranslationNumber._hyg.1529)
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.commute_nat_add CircleDeg1Lift.commute_nat_addₓ'. -/
theorem commute_nat_add (n : ℕ) : Function.Commute f ((· + ·) n) := by
simpa only [nsmul_one, add_left_iterate] using Function.Commute.iterate_right f.map_one_add n
#align circle_deg1_lift.commute_nat_add CircleDeg1Lift.commute_nat_add
+/- warning: circle_deg1_lift.commute_add_nat -> CircleDeg1Lift.commute_add_nat is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (n : Nat), Function.Commute.{0} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (fun (x : Real) => HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((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 (f : CircleDeg1Lift) (n : Nat), Function.Commute.{0} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (fun (x : Real) => HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Nat.cast.{0} Real Real.natCast n))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.commute_add_nat CircleDeg1Lift.commute_add_natₓ'. -/
theorem commute_add_nat (n : ℕ) : Function.Commute f fun x => x + n := by
simp only [add_comm _ (n : ℝ), f.commute_nat_add n]
#align circle_deg1_lift.commute_add_nat CircleDeg1Lift.commute_add_nat
+/- warning: circle_deg1_lift.commute_sub_nat -> CircleDeg1Lift.commute_sub_nat is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (n : Nat), Function.Commute.{0} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (fun (x : Real) => 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) 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 (f : CircleDeg1Lift) (n : Nat), Function.Commute.{0} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (fun (x : Real) => HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Nat.cast.{0} Real Real.natCast n))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.commute_sub_nat CircleDeg1Lift.commute_sub_natₓ'. -/
theorem commute_sub_nat (n : ℕ) : Function.Commute f fun x => x - n := by
simpa only [sub_eq_add_neg] using
(f.commute_add_nat n).inverses_right (Equiv.addRight _).right_inv (Equiv.addRight _).left_inv
#align circle_deg1_lift.commute_sub_nat CircleDeg1Lift.commute_sub_nat
+/- warning: circle_deg1_lift.commute_add_int -> CircleDeg1Lift.commute_add_int is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (n : Int), Function.Commute.{0} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (fun (x : Real) => HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) n))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (n : Int), Function.Commute.{0} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (fun (x : Real) => HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast n))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.commute_add_int CircleDeg1Lift.commute_add_intₓ'. -/
theorem commute_add_int : ∀ n : ℤ, Function.Commute f fun x => x + n
| (n : ℕ) => f.commute_add_nat n
| -[n+1] => by simpa [sub_eq_add_neg] using f.commute_sub_nat (n + 1)
#align circle_deg1_lift.commute_add_int CircleDeg1Lift.commute_add_int
+/- warning: circle_deg1_lift.commute_int_add -> CircleDeg1Lift.commute_int_add is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (n : Int), Function.Commute.{0} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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))) n))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (n : Int), Function.Commute.{0} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (fun (x._@.Mathlib.Dynamics.Circle.RotationNumber.TranslationNumber._hyg.1714 : Real) => HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Int.cast.{0} Real Real.intCast n) x._@.Mathlib.Dynamics.Circle.RotationNumber.TranslationNumber._hyg.1714)
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.commute_int_add CircleDeg1Lift.commute_int_addₓ'. -/
theorem commute_int_add (n : ℤ) : Function.Commute f ((· + ·) n) := by
simpa only [add_comm _ (n : ℝ)] using f.commute_add_int n
#align circle_deg1_lift.commute_int_add CircleDeg1Lift.commute_int_add
+/- warning: circle_deg1_lift.commute_sub_int -> CircleDeg1Lift.commute_sub_int is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (n : Int), Function.Commute.{0} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (fun (x : Real) => 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))) n))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (n : Int), Function.Commute.{0} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (fun (x : Real) => HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Int.cast.{0} Real Real.intCast n))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.commute_sub_int CircleDeg1Lift.commute_sub_intₓ'. -/
theorem commute_sub_int (n : ℤ) : Function.Commute f fun x => x - n := by
simpa only [sub_eq_add_neg] using
(f.commute_add_int n).inverses_right (Equiv.addRight _).right_inv (Equiv.addRight _).left_inv
#align circle_deg1_lift.commute_sub_int CircleDeg1Lift.commute_sub_int
+/- warning: circle_deg1_lift.map_int_add -> CircleDeg1Lift.map_int_add is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (m : Int) (x : Real), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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))) m) x)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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))) m) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (m : Int) (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Int.cast.{0} Real Real.intCast m) x)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Int.cast.{0} Real Real.intCast m) x)) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Int.cast.{0} Real Real.intCast m) x)) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Int.cast.{0} Real Real.intCast m) x)) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Int.cast.{0} Real Real.intCast m) x)) Real.instAddReal) (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Int.cast.{0} Real Real.intCast m) x)) Real.intCast m) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_int_add CircleDeg1Lift.map_int_addₓ'. -/
@[simp]
theorem map_int_add (m : ℤ) (x : ℝ) : f (m + x) = m + f x :=
f.commute_int_add m x
#align circle_deg1_lift.map_int_add CircleDeg1Lift.map_int_add
+/- warning: circle_deg1_lift.map_add_int -> CircleDeg1Lift.map_add_int is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (x : Real) (m : Int), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m))) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f 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))) m))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (x : Real) (m : Int), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast m))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast m))) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast m))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instAddReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast m))) Real.intCast m))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_add_int CircleDeg1Lift.map_add_intₓ'. -/
@[simp]
theorem map_add_int (x : ℝ) (m : ℤ) : f (x + m) = f x + m :=
f.commute_add_int m x
#align circle_deg1_lift.map_add_int CircleDeg1Lift.map_add_int
+/- warning: circle_deg1_lift.map_sub_int -> CircleDeg1Lift.map_sub_int is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (x : Real) (n : Int), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (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))) n))) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f 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))) n))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (x : Real) (n : Int), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Int.cast.{0} Real Real.intCast n))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Int.cast.{0} Real Real.intCast n))) (HSub.hSub.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Int.cast.{0} Real Real.intCast n))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHSub.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instSubReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Int.cast.{0} Real Real.intCast n))) Real.intCast n))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_sub_int CircleDeg1Lift.map_sub_intₓ'. -/
@[simp]
theorem map_sub_int (x : ℝ) (n : ℤ) : f (x - n) = f x - n :=
f.commute_sub_int n x
#align circle_deg1_lift.map_sub_int CircleDeg1Lift.map_sub_int
+/- warning: circle_deg1_lift.map_add_nat -> CircleDeg1Lift.map_add_nat is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (x : Real) (n : Nat), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((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))) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) ((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 (f : CircleDeg1Lift) (x : Real) (n : Nat), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Nat.cast.{0} Real Real.natCast n))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Nat.cast.{0} Real Real.natCast n))) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Nat.cast.{0} Real Real.natCast n))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instAddReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (Nat.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Nat.cast.{0} Real Real.natCast n))) Real.natCast n))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_add_nat CircleDeg1Lift.map_add_natₓ'. -/
@[simp]
theorem map_add_nat (x : ℝ) (n : ℕ) : f (x + n) = f x + n :=
f.map_add_int x n
#align circle_deg1_lift.map_add_nat CircleDeg1Lift.map_add_nat
+/- warning: circle_deg1_lift.map_nat_add -> CircleDeg1Lift.map_nat_add is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (n : Nat) (x : Real), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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) x)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (n : Nat) (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast n) x)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast n) x)) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast n) x)) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast n) x)) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast n) x)) Real.instAddReal) (Nat.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast n) x)) Real.natCast n) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_nat_add CircleDeg1Lift.map_nat_addₓ'. -/
@[simp]
theorem map_nat_add (n : ℕ) (x : ℝ) : f (n + x) = n + f x :=
f.map_int_add n x
#align circle_deg1_lift.map_nat_add CircleDeg1Lift.map_nat_add
+/- warning: circle_deg1_lift.map_sub_nat -> CircleDeg1Lift.map_sub_nat is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (x : Real) (n : Nat), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n))) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) ((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 (f : CircleDeg1Lift) (x : Real) (n : Nat), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Nat.cast.{0} Real Real.natCast n))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Nat.cast.{0} Real Real.natCast n))) (HSub.hSub.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Nat.cast.{0} Real Real.natCast n))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHSub.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instSubReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (Nat.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) x (Nat.cast.{0} Real Real.natCast n))) Real.natCast n))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_sub_nat CircleDeg1Lift.map_sub_natₓ'. -/
@[simp]
theorem map_sub_nat (x : ℝ) (n : ℕ) : f (x - n) = f x - n :=
f.map_sub_int x n
#align circle_deg1_lift.map_sub_nat CircleDeg1Lift.map_sub_nat
+/- warning: circle_deg1_lift.map_int_of_map_zero -> CircleDeg1Lift.map_int_of_map_zero is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (n : Int), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f ((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))) n)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (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) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) n))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (n : Int), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (Int.cast.{0} Real Real.intCast n)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (Int.cast.{0} Real Real.intCast n)) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (Int.cast.{0} Real Real.intCast n)) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instAddReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (Int.cast.{0} Real Real.intCast n)) Real.intCast n))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_int_of_map_zero CircleDeg1Lift.map_int_of_map_zeroₓ'. -/
theorem map_int_of_map_zero (n : ℤ) : f n = f 0 + n := by rw [← f.map_add_int, zero_add]
#align circle_deg1_lift.map_int_of_map_zero CircleDeg1Lift.map_int_of_map_zero
+/- warning: circle_deg1_lift.map_fract_sub_fract_eq -> CircleDeg1Lift.map_fract_sub_fract_eq is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (x : Real), Eq.{1} Real (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (Int.fract.{0} Real Real.linearOrderedRing Real.floorRing x)) (Int.fract.{0} Real Real.linearOrderedRing Real.floorRing x)) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) x)
+but is expected to have type
+ forall (f : CircleDeg1Lift) (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (Int.fract.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal x)) (HSub.hSub.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (Int.fract.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal x)) Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (Int.fract.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal x)) (instHSub.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (Int.fract.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal x)) Real.instSubReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (Int.fract.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal x)) (Int.fract.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal x)) (HSub.hSub.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHSub.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instSubReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) x)
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_fract_sub_fract_eq CircleDeg1Lift.map_fract_sub_fract_eqₓ'. -/
@[simp]
theorem map_fract_sub_fract_eq (x : ℝ) : f (fract x) - fract x = f x - x := by
rw [Int.fract, f.map_sub_int, sub_sub_sub_cancel_right]
@@ -444,28 +712,64 @@ noncomputable instance : Lattice CircleDeg1Lift
inf_le_right f g x := min_le_right (f x) (g x)
le_inf f₁ f₂ f₃ h₂ h₃ x := le_min (h₂ x) (h₃ x)
+/- warning: circle_deg1_lift.sup_apply -> CircleDeg1Lift.sup_apply is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift) (x : Real), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (Sup.sup.{0} CircleDeg1Lift (SemilatticeSup.toHasSup.{0} CircleDeg1Lift (Lattice.toSemilatticeSup.{0} CircleDeg1Lift CircleDeg1Lift.lattice)) f g) x) (LinearOrder.max.{0} Real Real.linearOrder (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g x))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift) (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Sup.sup.{0} CircleDeg1Lift (SemilatticeSup.toSup.{0} CircleDeg1Lift (Lattice.toSemilatticeSup.{0} CircleDeg1Lift CircleDeg1Lift.instLatticeCircleDeg1Lift)) f g) x) (Max.max.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (LinearOrderedRing.toMax.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLinearOrderedRingReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g x))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.sup_apply CircleDeg1Lift.sup_applyₓ'. -/
@[simp]
theorem sup_apply (x : ℝ) : (f ⊔ g) x = max (f x) (g x) :=
rfl
#align circle_deg1_lift.sup_apply CircleDeg1Lift.sup_apply
+/- warning: circle_deg1_lift.inf_apply -> CircleDeg1Lift.inf_apply is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift) (x : Real), Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (Inf.inf.{0} CircleDeg1Lift (SemilatticeInf.toHasInf.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.lattice)) f g) x) (LinearOrder.min.{0} Real Real.linearOrder (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g x))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift) (x : Real), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Inf.inf.{0} CircleDeg1Lift (Lattice.toInf.{0} CircleDeg1Lift CircleDeg1Lift.instLatticeCircleDeg1Lift) f g) x) (Min.min.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (LinearOrderedRing.toMin.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLinearOrderedRingReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g x))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.inf_apply CircleDeg1Lift.inf_applyₓ'. -/
@[simp]
theorem inf_apply (x : ℝ) : (f ⊓ g) x = min (f x) (g x) :=
rfl
#align circle_deg1_lift.inf_apply CircleDeg1Lift.inf_apply
+/- warning: circle_deg1_lift.iterate_monotone -> CircleDeg1Lift.iterate_monotone is a dubious translation:
+lean 3 declaration is
+ forall (n : Nat), Monotone.{0, 0} CircleDeg1Lift (Real -> Real) (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.lattice))) (Pi.preorder.{0, 0} Real (fun (ᾰ : Real) => Real) (fun (i : Real) => Real.preorder)) (fun (f : CircleDeg1Lift) => Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n)
+but is expected to have type
+ forall (n : Nat), Monotone.{0, 0} CircleDeg1Lift (Real -> Real) (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.instLatticeCircleDeg1Lift))) (Pi.preorder.{0, 0} Real (fun (ᾰ : Real) => Real) (fun (i : Real) => Real.instPreorderReal)) (fun (f : CircleDeg1Lift) => Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n)
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.iterate_monotone CircleDeg1Lift.iterate_monotoneₓ'. -/
theorem iterate_monotone (n : ℕ) : Monotone fun f : CircleDeg1Lift => f^[n] := fun f g h =>
f.Monotone.iterate_le_of_le h _
#align circle_deg1_lift.iterate_monotone CircleDeg1Lift.iterate_monotone
+/- warning: circle_deg1_lift.iterate_mono -> CircleDeg1Lift.iterate_mono is a dubious translation:
+lean 3 declaration is
+ forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, (LE.le.{0} CircleDeg1Lift (Preorder.toLE.{0} CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.lattice)))) f g) -> (forall (n : Nat), LE.le.{0} (Real -> Real) (Pi.hasLe.{0, 0} Real (fun (ᾰ : Real) => Real) (fun (i : Real) => Real.hasLe)) (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n) (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g) n))
+but is expected to have type
+ forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, (LE.le.{0} CircleDeg1Lift (Preorder.toLE.{0} CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.instLatticeCircleDeg1Lift)))) f g) -> (forall (n : Nat), LE.le.{0} (Real -> Real) (Pi.hasLe.{0, 0} Real (fun (ᾰ : Real) => Real) (fun (i : Real) => Real.instLEReal)) (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n) (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g) n))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.iterate_mono CircleDeg1Lift.iterate_monoₓ'. -/
theorem iterate_mono {f g : CircleDeg1Lift} (h : f ≤ g) (n : ℕ) : f^[n] ≤ g^[n] :=
iterate_monotone n h
#align circle_deg1_lift.iterate_mono CircleDeg1Lift.iterate_mono
+/- warning: circle_deg1_lift.pow_mono -> CircleDeg1Lift.pow_mono is a dubious translation:
+lean 3 declaration is
+ forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, (LE.le.{0} CircleDeg1Lift (Preorder.toLE.{0} CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.lattice)))) f g) -> (forall (n : Nat), LE.le.{0} CircleDeg1Lift (Preorder.toLE.{0} CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.lattice)))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) g n))
+but is expected to have type
+ forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, (LE.le.{0} CircleDeg1Lift (Preorder.toLE.{0} CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.instLatticeCircleDeg1Lift)))) f g) -> (forall (n : Nat), LE.le.{0} CircleDeg1Lift (Preorder.toLE.{0} CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.instLatticeCircleDeg1Lift)))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) g n))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.pow_mono CircleDeg1Lift.pow_monoₓ'. -/
theorem pow_mono {f g : CircleDeg1Lift} (h : f ≤ g) (n : ℕ) : f ^ n ≤ g ^ n := fun x => by
simp only [coe_pow, iterate_mono h n x]
#align circle_deg1_lift.pow_mono CircleDeg1Lift.pow_mono
+/- warning: circle_deg1_lift.pow_monotone -> CircleDeg1Lift.pow_monotone is a dubious translation:
+lean 3 declaration is
+ forall (n : Nat), Monotone.{0, 0} CircleDeg1Lift CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.lattice))) (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.lattice))) (fun (f : CircleDeg1Lift) => HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n)
+but is expected to have type
+ forall (n : Nat), Monotone.{0, 0} CircleDeg1Lift CircleDeg1Lift (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.instLatticeCircleDeg1Lift))) (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.instLatticeCircleDeg1Lift))) (fun (f : CircleDeg1Lift) => HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n)
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.pow_monotone CircleDeg1Lift.pow_monotoneₓ'. -/
theorem pow_monotone (n : ℕ) : Monotone fun f : CircleDeg1Lift => f ^ n := fun f g h => pow_mono h n
#align circle_deg1_lift.pow_monotone CircleDeg1Lift.pow_monotone
@@ -480,6 +784,12 @@ is less than two.
-/
+/- warning: circle_deg1_lift.map_le_of_map_zero -> CircleDeg1Lift.map_le_of_map_zero is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (x : Real), LE.le.{0} Real Real.hasLe (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (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) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) (Int.ceil.{0} Real Real.linearOrderedRing Real.floorRing x)))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (x : Real), LE.le.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLEReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instAddReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast (Int.ceil.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal x)))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_le_of_map_zero CircleDeg1Lift.map_le_of_map_zeroₓ'. -/
theorem map_le_of_map_zero (x : ℝ) : f x ≤ f 0 + ⌈x⌉ :=
calc
f x ≤ f ⌈x⌉ := f.Monotone <| le_ceil _
@@ -487,10 +797,22 @@ theorem map_le_of_map_zero (x : ℝ) : f x ≤ f 0 + ⌈x⌉ :=
#align circle_deg1_lift.map_le_of_map_zero CircleDeg1Lift.map_le_of_map_zero
+/- warning: circle_deg1_lift.map_map_zero_le -> CircleDeg1Lift.map_map_zero_le is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LE.le.{0} Real Real.hasLe (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (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) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) (Int.ceil.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LE.le.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) Real.instLEReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instAddReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) Real.intCast (Int.ceil.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_map_zero_le CircleDeg1Lift.map_map_zero_leₓ'. -/
theorem map_map_zero_le : f (g 0) ≤ f 0 + ⌈g 0⌉ :=
f.map_le_of_map_zero (g 0)
#align circle_deg1_lift.map_map_zero_le CircleDeg1Lift.map_map_zero_le
+/- warning: circle_deg1_lift.floor_map_map_zero_le -> CircleDeg1Lift.floor_map_map_zero_le is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LE.le.{0} Int Int.hasLe (Int.floor.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))) (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.hasAdd) (Int.floor.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) (Int.ceil.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LE.le.{0} Int Int.instLEInt (Int.floor.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))) (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.instAddInt) (Int.floor.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (Int.ceil.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.floor_map_map_zero_le CircleDeg1Lift.floor_map_map_zero_leₓ'. -/
theorem floor_map_map_zero_le : ⌊f (g 0)⌋ ≤ ⌊f 0⌋ + ⌈g 0⌉ :=
calc
⌊f (g 0)⌋ ≤ ⌊f 0 + ⌈g 0⌉⌋ := floor_mono <| f.map_map_zero_le g
@@ -498,6 +820,12 @@ theorem floor_map_map_zero_le : ⌊f (g 0)⌋ ≤ ⌊f 0⌋ + ⌈g 0⌉ :=
#align circle_deg1_lift.floor_map_map_zero_le CircleDeg1Lift.floor_map_map_zero_le
+/- warning: circle_deg1_lift.ceil_map_map_zero_le -> CircleDeg1Lift.ceil_map_map_zero_le is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LE.le.{0} Int Int.hasLe (Int.ceil.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))) (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.hasAdd) (Int.ceil.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) (Int.ceil.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LE.le.{0} Int Int.instLEInt (Int.ceil.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))) (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.instAddInt) (Int.ceil.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (Int.ceil.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.ceil_map_map_zero_le CircleDeg1Lift.ceil_map_map_zero_leₓ'. -/
theorem ceil_map_map_zero_le : ⌈f (g 0)⌉ ≤ ⌈f 0⌉ + ⌈g 0⌉ :=
calc
⌈f (g 0)⌉ ≤ ⌈f 0 + ⌈g 0⌉⌉ := ceil_mono <| f.map_map_zero_le g
@@ -505,6 +833,12 @@ theorem ceil_map_map_zero_le : ⌈f (g 0)⌉ ≤ ⌈f 0⌉ + ⌈g 0⌉ :=
#align circle_deg1_lift.ceil_map_map_zero_le CircleDeg1Lift.ceil_map_map_zero_le
+/- warning: circle_deg1_lift.map_map_zero_lt -> CircleDeg1Lift.map_map_zero_lt is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LT.lt.{0} Real Real.hasLt (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LT.lt.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) Real.instLTReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instAddReal) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instAddReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) Real.instOneReal)))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_map_zero_lt CircleDeg1Lift.map_map_zero_ltₓ'. -/
theorem map_map_zero_lt : f (g 0) < f 0 + g 0 + 1 :=
calc
f (g 0) ≤ f 0 + ⌈g 0⌉ := f.map_map_zero_le g
@@ -513,6 +847,12 @@ theorem map_map_zero_lt : f (g 0) < f 0 + g 0 + 1 :=
#align circle_deg1_lift.map_map_zero_lt CircleDeg1Lift.map_map_zero_lt
+/- warning: circle_deg1_lift.le_map_of_map_zero -> CircleDeg1Lift.le_map_of_map_zero is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (x : Real), LE.le.{0} Real Real.hasLe (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (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) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) (Int.floor.{0} Real Real.linearOrderedRing Real.floorRing x))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x)
+but is expected to have type
+ forall (f : CircleDeg1Lift) (x : Real), LE.le.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLEReal (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instAddReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.intCast (Int.floor.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal x))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x)
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.le_map_of_map_zero CircleDeg1Lift.le_map_of_map_zeroₓ'. -/
theorem le_map_of_map_zero (x : ℝ) : f 0 + ⌊x⌋ ≤ f x :=
calc
f 0 + ⌊x⌋ = f ⌊x⌋ := (f.map_int_of_map_zero _).symm
@@ -520,10 +860,22 @@ theorem le_map_of_map_zero (x : ℝ) : f 0 + ⌊x⌋ ≤ f x :=
#align circle_deg1_lift.le_map_of_map_zero CircleDeg1Lift.le_map_of_map_zero
+/- warning: circle_deg1_lift.le_map_map_zero -> CircleDeg1Lift.le_map_map_zero is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LE.le.{0} Real Real.hasLe (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (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) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) (Int.floor.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LE.le.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLEReal (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instAddReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.intCast (Int.floor.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.le_map_map_zero CircleDeg1Lift.le_map_map_zeroₓ'. -/
theorem le_map_map_zero : f 0 + ⌊g 0⌋ ≤ f (g 0) :=
f.le_map_of_map_zero (g 0)
#align circle_deg1_lift.le_map_map_zero CircleDeg1Lift.le_map_map_zero
+/- warning: circle_deg1_lift.le_floor_map_map_zero -> CircleDeg1Lift.le_floor_map_map_zero is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LE.le.{0} Int Int.hasLe (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.hasAdd) (Int.floor.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) (Int.floor.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))) (Int.floor.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LE.le.{0} Int Int.instLEInt (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.instAddInt) (Int.floor.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (Int.floor.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))) (Int.floor.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (a : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) a) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.le_floor_map_map_zero CircleDeg1Lift.le_floor_map_map_zeroₓ'. -/
theorem le_floor_map_map_zero : ⌊f 0⌋ + ⌊g 0⌋ ≤ ⌊f (g 0)⌋ :=
calc
⌊f 0⌋ + ⌊g 0⌋ = ⌊f 0 + ⌊g 0⌋⌋ := (floor_add_int _ _).symm
@@ -531,6 +883,12 @@ theorem le_floor_map_map_zero : ⌊f 0⌋ + ⌊g 0⌋ ≤ ⌊f (g 0)⌋ :=
#align circle_deg1_lift.le_floor_map_map_zero CircleDeg1Lift.le_floor_map_map_zero
+/- warning: circle_deg1_lift.le_ceil_map_map_zero -> CircleDeg1Lift.le_ceil_map_map_zero is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LE.le.{0} Int Int.hasLe (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.hasAdd) (Int.ceil.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) (Int.floor.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))) (Int.ceil.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid))) f g) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LE.le.{0} Int Int.instLEInt (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.instAddInt) (Int.ceil.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (Int.floor.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))) (Int.ceil.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))) f g) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.le_ceil_map_map_zero CircleDeg1Lift.le_ceil_map_map_zeroₓ'. -/
theorem le_ceil_map_map_zero : ⌈f 0⌉ + ⌊g 0⌋ ≤ ⌈(f * g) 0⌉ :=
calc
⌈f 0⌉ + ⌊g 0⌋ = ⌈f 0 + ⌊g 0⌋⌉ := (ceil_add_int _ _).symm
@@ -538,6 +896,12 @@ theorem le_ceil_map_map_zero : ⌈f 0⌉ + ⌊g 0⌋ ≤ ⌈(f * g) 0⌉ :=
#align circle_deg1_lift.le_ceil_map_map_zero CircleDeg1Lift.le_ceil_map_map_zero
+/- warning: circle_deg1_lift.lt_map_map_zero -> CircleDeg1Lift.lt_map_map_zero is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LT.lt.{0} Real Real.hasLt (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LT.lt.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLTReal (HSub.hSub.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHSub.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instSubReal) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instAddReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instOneReal))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.lt_map_map_zero CircleDeg1Lift.lt_map_map_zeroₓ'. -/
theorem lt_map_map_zero : f 0 + g 0 - 1 < f (g 0) :=
calc
f 0 + g 0 - 1 = f 0 + (g 0 - 1) := add_sub_assoc _ _ _
@@ -546,12 +910,24 @@ theorem lt_map_map_zero : f 0 + g 0 - 1 < f (g 0) :=
#align circle_deg1_lift.lt_map_map_zero CircleDeg1Lift.lt_map_map_zero
+/- warning: circle_deg1_lift.dist_map_map_zero_lt -> CircleDeg1Lift.dist_map_map_zero_lt is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LT.lt.{0} Real Real.hasLt (Dist.dist.{0} Real (PseudoMetricSpace.toHasDist.{0} Real Real.pseudoMetricSpace) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (g : CircleDeg1Lift), LT.lt.{0} Real Real.instLTReal (Dist.dist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (PseudoMetricSpace.toDist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.pseudoMetricSpace) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instAddReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.dist_map_map_zero_lt CircleDeg1Lift.dist_map_map_zero_ltₓ'. -/
theorem dist_map_map_zero_lt : dist (f 0 + g 0) (f (g 0)) < 1 :=
by
rw [dist_comm, Real.dist_eq, abs_lt, lt_sub_iff_add_lt', sub_lt_iff_lt_add', ← sub_eq_add_neg]
exact ⟨f.lt_map_map_zero g, f.map_map_zero_lt g⟩
#align circle_deg1_lift.dist_map_map_zero_lt CircleDeg1Lift.dist_map_map_zero_lt
+/- warning: circle_deg1_lift.dist_map_zero_lt_of_semiconj -> CircleDeg1Lift.dist_map_zero_lt_of_semiconj is a dubious translation:
+lean 3 declaration is
+ forall {f : CircleDeg1Lift} {g₁ : CircleDeg1Lift} {g₂ : CircleDeg1Lift}, (Function.Semiconj.{0, 0} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g₁) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g₂)) -> (LT.lt.{0} Real Real.hasLt (Dist.dist.{0} Real (PseudoMetricSpace.toHasDist.{0} Real Real.pseudoMetricSpace) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g₁ (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g₂ (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) (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 {f : CircleDeg1Lift} {g₁ : CircleDeg1Lift} {g₂ : CircleDeg1Lift}, (Function.Semiconj.{0, 0} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g₁) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g₂)) -> (LT.lt.{0} Real Real.instLTReal (Dist.dist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (PseudoMetricSpace.toDist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.pseudoMetricSpace) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g₁ (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g₂ (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (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 circle_deg1_lift.dist_map_zero_lt_of_semiconj CircleDeg1Lift.dist_map_zero_lt_of_semiconjₓ'. -/
theorem dist_map_zero_lt_of_semiconj {f g₁ g₂ : CircleDeg1Lift} (h : Function.Semiconj f g₁ g₂) :
dist (g₁ 0) (g₂ 0) < 2 :=
calc
@@ -563,6 +939,12 @@ theorem dist_map_zero_lt_of_semiconj {f g₁ g₂ : CircleDeg1Lift} (h : Functio
#align circle_deg1_lift.dist_map_zero_lt_of_semiconj CircleDeg1Lift.dist_map_zero_lt_of_semiconj
+/- warning: circle_deg1_lift.dist_map_zero_lt_of_semiconj_by -> CircleDeg1Lift.dist_map_zero_lt_of_semiconjBy is a dubious translation:
+lean 3 declaration is
+ forall {f : CircleDeg1Lift} {g₁ : CircleDeg1Lift} {g₂ : CircleDeg1Lift}, (SemiconjBy.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f g₁ g₂) -> (LT.lt.{0} Real Real.hasLt (Dist.dist.{0} Real (PseudoMetricSpace.toHasDist.{0} Real Real.pseudoMetricSpace) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g₁ (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g₂ (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) (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 {f : CircleDeg1Lift} {g₁ : CircleDeg1Lift} {g₂ : CircleDeg1Lift}, (SemiconjBy.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f g₁ g₂) -> (LT.lt.{0} Real Real.instLTReal (Dist.dist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (PseudoMetricSpace.toDist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.pseudoMetricSpace) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g₁ (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g₂ (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) (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 circle_deg1_lift.dist_map_zero_lt_of_semiconj_by CircleDeg1Lift.dist_map_zero_lt_of_semiconjByₓ'. -/
theorem dist_map_zero_lt_of_semiconjBy {f g₁ g₂ : CircleDeg1Lift} (h : SemiconjBy f g₁ g₂) :
dist (g₁ 0) (g₂ 0) < 2 :=
dist_map_zero_lt_of_semiconj <| semiconjBy_iff_semiconj.1 h
@@ -573,6 +955,12 @@ theorem dist_map_zero_lt_of_semiconjBy {f g₁ g₂ : CircleDeg1Lift} (h : Semic
-/
+/- warning: circle_deg1_lift.tendsto_at_bot -> CircleDeg1Lift.tendsto_atBot is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift), Filter.Tendsto.{0, 0} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (Filter.atBot.{0} Real Real.preorder) (Filter.atBot.{0} Real Real.preorder)
+but is expected to have type
+ forall (f : CircleDeg1Lift), Filter.Tendsto.{0, 0} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (Filter.atBot.{0} Real Real.instPreorderReal) (Filter.atBot.{0} Real Real.instPreorderReal)
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.tendsto_at_bot CircleDeg1Lift.tendsto_atBotₓ'. -/
protected theorem tendsto_atBot : Tendsto f atBot atBot :=
tendsto_atBot_mono f.map_le_of_map_zero <|
tendsto_atBot_add_const_left _ _ <|
@@ -580,6 +968,12 @@ protected theorem tendsto_atBot : Tendsto f atBot atBot :=
tendsto_atBot_add_const_right _ _ tendsto_id
#align circle_deg1_lift.tendsto_at_bot CircleDeg1Lift.tendsto_atBot
+/- warning: circle_deg1_lift.tendsto_at_top -> CircleDeg1Lift.tendsto_atTop is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift), Filter.Tendsto.{0, 0} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (Filter.atTop.{0} Real Real.preorder) (Filter.atTop.{0} Real Real.preorder)
+but is expected to have type
+ forall (f : CircleDeg1Lift), Filter.Tendsto.{0, 0} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (Filter.atTop.{0} Real Real.instPreorderReal) (Filter.atTop.{0} Real Real.instPreorderReal)
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.tendsto_at_top CircleDeg1Lift.tendsto_atTopₓ'. -/
protected theorem tendsto_atTop : Tendsto f atTop atTop :=
tendsto_atTop_mono f.le_map_of_map_zero <|
tendsto_atTop_add_const_left _ _ <|
@@ -587,6 +981,12 @@ protected theorem tendsto_atTop : Tendsto f atTop atTop :=
simpa [sub_eq_add_neg] using tendsto_at_top_add_const_right _ _ tendsto_id
#align circle_deg1_lift.tendsto_at_top CircleDeg1Lift.tendsto_atTop
+/- warning: circle_deg1_lift.continuous_iff_surjective -> CircleDeg1Lift.continuous_iff_surjective is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift), Iff (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f)) (Function.Surjective.{1, 1} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f))
+but is expected to have type
+ forall (f : CircleDeg1Lift), Iff (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f)) (Function.Surjective.{1, 1} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.continuous_iff_surjective CircleDeg1Lift.continuous_iff_surjectiveₓ'. -/
theorem continuous_iff_surjective : Continuous f ↔ Function.Surjective f :=
⟨fun h => h.Surjective f.tendsto_atTop f.tendsto_atBot, f.Monotone.continuous_of_surjective⟩
#align circle_deg1_lift.continuous_iff_surjective CircleDeg1Lift.continuous_iff_surjective
@@ -602,51 +1002,105 @@ work for `n = 0`. For `<` and `>` we formulate only `iff` versions.
-/
+/- warning: circle_deg1_lift.iterate_le_of_map_le_add_int -> CircleDeg1Lift.iterate_le_of_map_le_add_int is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) {x : Real} {m : Int}, (LE.le.{0} Real Real.hasLe (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m))) -> (forall (n : Nat), LE.le.{0} Real Real.hasLe (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) ((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))) m))))
+but is expected to have type
+ forall (f : CircleDeg1Lift) {x : Real} {m : Int}, (LE.le.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLEReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast m))) -> (forall (n : Nat), LE.le.{0} Real Real.instLEReal (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) (Int.cast.{0} Real Real.intCast m))))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.iterate_le_of_map_le_add_int CircleDeg1Lift.iterate_le_of_map_le_add_intₓ'. -/
theorem iterate_le_of_map_le_add_int {x : ℝ} {m : ℤ} (h : f x ≤ x + m) (n : ℕ) :
(f^[n]) x ≤ x + n * m := by
simpa only [nsmul_eq_mul, add_right_iterate] using
(f.commute_add_int m).iterate_le_of_map_le f.monotone (monotone_id.add_const m) h n
#align circle_deg1_lift.iterate_le_of_map_le_add_int CircleDeg1Lift.iterate_le_of_map_le_add_int
+/- warning: circle_deg1_lift.le_iterate_of_add_int_le_map -> CircleDeg1Lift.le_iterate_of_add_int_le_map is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) {x : Real} {m : Int}, (LE.le.{0} Real Real.hasLe (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x)) -> (forall (n : Nat), LE.le.{0} Real Real.hasLe (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) ((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))) m))) (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n x))
+but is expected to have type
+ forall (f : CircleDeg1Lift) {x : Real} {m : Int}, (LE.le.{0} Real Real.instLEReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast m)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x)) -> (forall (n : Nat), LE.le.{0} Real Real.instLEReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) (Int.cast.{0} Real Real.intCast m))) (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n x))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.le_iterate_of_add_int_le_map CircleDeg1Lift.le_iterate_of_add_int_le_mapₓ'. -/
theorem le_iterate_of_add_int_le_map {x : ℝ} {m : ℤ} (h : x + m ≤ f x) (n : ℕ) :
x + n * m ≤ (f^[n]) x := by
simpa only [nsmul_eq_mul, add_right_iterate] using
(f.commute_add_int m).symm.iterate_le_of_map_le (monotone_id.add_const m) f.monotone h n
#align circle_deg1_lift.le_iterate_of_add_int_le_map CircleDeg1Lift.le_iterate_of_add_int_le_map
+/- warning: circle_deg1_lift.iterate_eq_of_map_eq_add_int -> CircleDeg1Lift.iterate_eq_of_map_eq_add_int is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) {x : Real} {m : Int}, (Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m))) -> (forall (n : Nat), Eq.{1} Real (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) ((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))) m))))
+but is expected to have type
+ forall (f : CircleDeg1Lift) {x : Real} {m : Int}, (Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast m))) -> (forall (n : Nat), Eq.{1} Real (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) (Int.cast.{0} Real Real.intCast m))))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.iterate_eq_of_map_eq_add_int CircleDeg1Lift.iterate_eq_of_map_eq_add_intₓ'. -/
theorem iterate_eq_of_map_eq_add_int {x : ℝ} {m : ℤ} (h : f x = x + m) (n : ℕ) :
(f^[n]) x = x + n * m := by
simpa only [nsmul_eq_mul, add_right_iterate] using (f.commute_add_int m).iterate_eq_of_map_eq n h
#align circle_deg1_lift.iterate_eq_of_map_eq_add_int CircleDeg1Lift.iterate_eq_of_map_eq_add_int
+/- warning: circle_deg1_lift.iterate_pos_le_iff -> CircleDeg1Lift.iterate_pos_le_iff is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) {x : Real} {m : Int} {n : Nat}, (LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) n) -> (Iff (LE.le.{0} Real Real.hasLe (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) ((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))) m)))) (LE.le.{0} Real Real.hasLe (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m))))
+but is expected to have type
+ forall (f : CircleDeg1Lift) {x : Real} {m : Int} {n : Nat}, (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) -> (Iff (LE.le.{0} Real Real.instLEReal (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) (Int.cast.{0} Real Real.intCast m)))) (LE.le.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLEReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast m))))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.iterate_pos_le_iff CircleDeg1Lift.iterate_pos_le_iffₓ'. -/
theorem iterate_pos_le_iff {x : ℝ} {m : ℤ} {n : ℕ} (hn : 0 < n) :
(f^[n]) x ≤ x + n * m ↔ f x ≤ x + m := by
simpa only [nsmul_eq_mul, add_right_iterate] using
(f.commute_add_int m).iterate_pos_le_iff_map_le f.monotone (strict_mono_id.add_const m) hn
#align circle_deg1_lift.iterate_pos_le_iff CircleDeg1Lift.iterate_pos_le_iff
+/- warning: circle_deg1_lift.iterate_pos_lt_iff -> CircleDeg1Lift.iterate_pos_lt_iff is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) {x : Real} {m : Int} {n : Nat}, (LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) n) -> (Iff (LT.lt.{0} Real Real.hasLt (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) ((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))) m)))) (LT.lt.{0} Real Real.hasLt (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m))))
+but is expected to have type
+ forall (f : CircleDeg1Lift) {x : Real} {m : Int} {n : Nat}, (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) -> (Iff (LT.lt.{0} Real Real.instLTReal (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) (Int.cast.{0} Real Real.intCast m)))) (LT.lt.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLTReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast m))))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.iterate_pos_lt_iff CircleDeg1Lift.iterate_pos_lt_iffₓ'. -/
theorem iterate_pos_lt_iff {x : ℝ} {m : ℤ} {n : ℕ} (hn : 0 < n) :
(f^[n]) x < x + n * m ↔ f x < x + m := by
simpa only [nsmul_eq_mul, add_right_iterate] using
(f.commute_add_int m).iterate_pos_lt_iff_map_lt f.monotone (strict_mono_id.add_const m) hn
#align circle_deg1_lift.iterate_pos_lt_iff CircleDeg1Lift.iterate_pos_lt_iff
+/- warning: circle_deg1_lift.iterate_pos_eq_iff -> CircleDeg1Lift.iterate_pos_eq_iff is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) {x : Real} {m : Int} {n : Nat}, (LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) n) -> (Iff (Eq.{1} Real (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) ((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))) m)))) (Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m))))
+but is expected to have type
+ forall (f : CircleDeg1Lift) {x : Real} {m : Int} {n : Nat}, (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) -> (Iff (Eq.{1} Real (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) (Int.cast.{0} Real Real.intCast m)))) (Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast m))))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.iterate_pos_eq_iff CircleDeg1Lift.iterate_pos_eq_iffₓ'. -/
theorem iterate_pos_eq_iff {x : ℝ} {m : ℤ} {n : ℕ} (hn : 0 < n) :
(f^[n]) x = x + n * m ↔ f x = x + m := by
simpa only [nsmul_eq_mul, add_right_iterate] using
(f.commute_add_int m).iterate_pos_eq_iff_map_eq f.monotone (strict_mono_id.add_const m) hn
#align circle_deg1_lift.iterate_pos_eq_iff CircleDeg1Lift.iterate_pos_eq_iff
+/- warning: circle_deg1_lift.le_iterate_pos_iff -> CircleDeg1Lift.le_iterate_pos_iff is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) {x : Real} {m : Int} {n : Nat}, (LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) n) -> (Iff (LE.le.{0} Real Real.hasLe (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) ((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))) m))) (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n x)) (LE.le.{0} Real Real.hasLe (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x)))
+but is expected to have type
+ forall (f : CircleDeg1Lift) {x : Real} {m : Int} {n : Nat}, (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) -> (Iff (LE.le.{0} Real Real.instLEReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) (Int.cast.{0} Real Real.intCast m))) (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n x)) (LE.le.{0} Real Real.instLEReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast m)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x)))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.le_iterate_pos_iff CircleDeg1Lift.le_iterate_pos_iffₓ'. -/
theorem le_iterate_pos_iff {x : ℝ} {m : ℤ} {n : ℕ} (hn : 0 < n) :
x + n * m ≤ (f^[n]) x ↔ x + m ≤ f x := by
simpa only [not_lt] using not_congr (f.iterate_pos_lt_iff hn)
#align circle_deg1_lift.le_iterate_pos_iff CircleDeg1Lift.le_iterate_pos_iff
+/- warning: circle_deg1_lift.lt_iterate_pos_iff -> CircleDeg1Lift.lt_iterate_pos_iff is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) {x : Real} {m : Int} {n : Nat}, (LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) n) -> (Iff (LT.lt.{0} Real Real.hasLt (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) ((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))) m))) (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n x)) (LT.lt.{0} Real Real.hasLt (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x)))
+but is expected to have type
+ forall (f : CircleDeg1Lift) {x : Real} {m : Int} {n : Nat}, (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) -> (Iff (LT.lt.{0} Real Real.instLTReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) (Int.cast.{0} Real Real.intCast m))) (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n x)) (LT.lt.{0} Real Real.instLTReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast m)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x)))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.lt_iterate_pos_iff CircleDeg1Lift.lt_iterate_pos_iffₓ'. -/
theorem lt_iterate_pos_iff {x : ℝ} {m : ℤ} {n : ℕ} (hn : 0 < n) :
x + n * m < (f^[n]) x ↔ x + m < f x := by
simpa only [not_le] using not_congr (f.iterate_pos_le_iff hn)
#align circle_deg1_lift.lt_iterate_pos_iff CircleDeg1Lift.lt_iterate_pos_iff
+/- warning: circle_deg1_lift.mul_floor_map_zero_le_floor_iterate_zero -> CircleDeg1Lift.mul_floor_map_zero_le_floor_iterate_zero is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (n : Nat), LE.le.{0} Int Int.hasLe (HMul.hMul.{0, 0, 0} Int Int Int (instHMul.{0} Int Int.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n) (Int.floor.{0} Real Real.linearOrderedRing Real.floorRing (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))) (Int.floor.{0} Real Real.linearOrderedRing Real.floorRing (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (n : Nat), LE.le.{0} Int Int.instLEInt (HMul.hMul.{0, 0, 0} Int Int Int (instHMul.{0} Int Int.instMulInt) (Nat.cast.{0} Int instNatCastInt n) (Int.floor.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))) (Int.floor.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.mul_floor_map_zero_le_floor_iterate_zero CircleDeg1Lift.mul_floor_map_zero_le_floor_iterate_zeroₓ'. -/
theorem mul_floor_map_zero_le_floor_iterate_zero (n : ℕ) : ↑n * ⌊f 0⌋ ≤ ⌊(f^[n]) 0⌋ :=
by
rw [le_floor, Int.cast_mul, Int.cast_ofNat, ← zero_add ((n : ℝ) * _)]
@@ -661,32 +1115,50 @@ theorem mul_floor_map_zero_le_floor_iterate_zero (n : ℕ) : ↑n * ⌊f 0⌋
noncomputable section
+#print CircleDeg1Lift.transnumAuxSeq /-
/-- An auxiliary sequence used to define the translation number. -/
def transnumAuxSeq (n : ℕ) : ℝ :=
(f ^ 2 ^ n) 0 / 2 ^ n
#align circle_deg1_lift.transnum_aux_seq CircleDeg1Lift.transnumAuxSeq
+-/
+#print CircleDeg1Lift.translationNumber /-
/-- The translation number of a `circle_deg1_lift`, $τ(f)=\lim_{n→∞}\frac{f^n(x)-x}{n}$. We use
an auxiliary sequence `\frac{f^{2^n}(0)}{2^n}` to define `τ(f)` because some proofs are simpler
this way. -/
def translationNumber : ℝ :=
limUnder atTop f.transnumAuxSeq
#align circle_deg1_lift.translation_number CircleDeg1Lift.translationNumber
+-/
-- mathport name: exprτ
-- TODO: choose two different symbols for `circle_deg1_lift.translation_number` and the future
-- `circle_mono_homeo.rotation_number`, then make them `localized notation`s
local notation "τ" => translationNumber
+/- warning: circle_deg1_lift.transnum_aux_seq_def -> CircleDeg1Lift.transnumAuxSeq_def is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift), Eq.{1} (Nat -> Real) (CircleDeg1Lift.transnumAuxSeq f) (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) n)) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.monoid)) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne)))) n))
+but is expected to have type
+ forall (f : CircleDeg1Lift), Eq.{1} (Nat -> Real) (CircleDeg1Lift.transnumAuxSeq f) (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real (instHDiv.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (LinearOrderedField.toDiv.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedFieldReal)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) n)) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (HPow.hPow.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Nat ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHPow.{0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Nat (Monoid.Pow.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instMonoidReal)) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) 2 (instOfNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))) n))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.transnum_aux_seq_def CircleDeg1Lift.transnumAuxSeq_defₓ'. -/
theorem transnumAuxSeq_def : f.transnumAuxSeq = fun n : ℕ => (f ^ 2 ^ n) 0 / 2 ^ n :=
rfl
#align circle_deg1_lift.transnum_aux_seq_def CircleDeg1Lift.transnumAuxSeq_def
+#print CircleDeg1Lift.translationNumber_eq_of_tendsto_aux /-
theorem translationNumber_eq_of_tendsto_aux {τ' : ℝ} (h : Tendsto f.transnumAuxSeq atTop (𝓝 τ')) :
τ f = τ' :=
h.limUnder_eq
#align circle_deg1_lift.translation_number_eq_of_tendsto_aux CircleDeg1Lift.translationNumber_eq_of_tendsto_aux
+-/
+/- warning: circle_deg1_lift.translation_number_eq_of_tendsto₀ -> CircleDeg1Lift.translationNumber_eq_of_tendsto₀ is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) {τ' : Real}, (Filter.Tendsto.{0, 0} Nat Real (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) n (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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n)) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) τ')) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f) τ')
+but is expected to have type
+ forall (f : CircleDeg1Lift) {τ' : Real}, (Filter.Tendsto.{0, 0} Nat Real (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) n (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (Nat.cast.{0} Real Real.natCast n)) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) τ')) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f) τ')
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_eq_of_tendsto₀ CircleDeg1Lift.translationNumber_eq_of_tendsto₀ₓ'. -/
theorem translationNumber_eq_of_tendsto₀ {τ' : ℝ}
(h : Tendsto (fun n : ℕ => (f^[n]) 0 / n) atTop (𝓝 τ')) : τ f = τ' :=
f.translationNumber_eq_of_tendsto_aux <| by
@@ -694,14 +1166,32 @@ theorem translationNumber_eq_of_tendsto₀ {τ' : ℝ}
h.comp (Nat.tendsto_pow_atTop_atTop_of_one_lt one_lt_two)
#align circle_deg1_lift.translation_number_eq_of_tendsto₀ CircleDeg1Lift.translationNumber_eq_of_tendsto₀
+/- warning: circle_deg1_lift.translation_number_eq_of_tendsto₀' -> CircleDeg1Lift.translationNumber_eq_of_tendsto₀' is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) {τ' : Real}, (Filter.Tendsto.{0, 0} Nat Real (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (Nat.iterate.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) τ')) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f) τ')
+but is expected to have type
+ forall (f : CircleDeg1Lift) {τ' : Real}, (Filter.Tendsto.{0, 0} Nat Real (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Nat.iterate.{1} Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast n) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) τ')) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f) τ')
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_eq_of_tendsto₀' CircleDeg1Lift.translationNumber_eq_of_tendsto₀'ₓ'. -/
theorem translationNumber_eq_of_tendsto₀' {τ' : ℝ}
(h : Tendsto (fun n : ℕ => (f^[n + 1]) 0 / (n + 1)) atTop (𝓝 τ')) : τ f = τ' :=
f.translationNumber_eq_of_tendsto₀ <| (tendsto_add_atTop_iff_nat 1).1 (by exact_mod_cast h)
#align circle_deg1_lift.translation_number_eq_of_tendsto₀' CircleDeg1Lift.translationNumber_eq_of_tendsto₀'
+/- warning: circle_deg1_lift.transnum_aux_seq_zero -> CircleDeg1Lift.transnumAuxSeq_zero is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift), Eq.{1} Real (CircleDeg1Lift.transnumAuxSeq f (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))
+but is expected to have type
+ forall (f : CircleDeg1Lift), Eq.{1} Real (CircleDeg1Lift.transnumAuxSeq f (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.transnum_aux_seq_zero CircleDeg1Lift.transnumAuxSeq_zeroₓ'. -/
theorem transnumAuxSeq_zero : f.transnumAuxSeq 0 = f 0 := by simp [transnum_aux_seq]
#align circle_deg1_lift.transnum_aux_seq_zero CircleDeg1Lift.transnumAuxSeq_zero
+/- warning: circle_deg1_lift.transnum_aux_seq_dist_lt -> CircleDeg1Lift.transnumAuxSeq_dist_lt is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (n : Nat), LT.lt.{0} Real Real.hasLt (Dist.dist.{0} Real (PseudoMetricSpace.toHasDist.{0} Real Real.pseudoMetricSpace) (CircleDeg1Lift.transnumAuxSeq f n) (CircleDeg1Lift.transnumAuxSeq f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne))))) (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.monoid)) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne)))) n))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (n : Nat), LT.lt.{0} Real Real.instLTReal (Dist.dist.{0} Real (PseudoMetricSpace.toDist.{0} Real Real.pseudoMetricSpace) (CircleDeg1Lift.transnumAuxSeq f n) (CircleDeg1Lift.transnumAuxSeq f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))))) (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.instMonoidReal)) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))) n))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.transnum_aux_seq_dist_lt CircleDeg1Lift.transnumAuxSeq_dist_ltₓ'. -/
theorem transnumAuxSeq_dist_lt (n : ℕ) :
dist (f.transnumAuxSeq n) (f.transnumAuxSeq (n + 1)) < 1 / 2 / 2 ^ n :=
by
@@ -714,16 +1204,30 @@ theorem transnumAuxSeq_dist_lt (n : ℕ) :
pow_mul, sq, mul_apply]
#align circle_deg1_lift.transnum_aux_seq_dist_lt CircleDeg1Lift.transnumAuxSeq_dist_lt
+#print CircleDeg1Lift.tendsto_translationNumber_aux /-
theorem tendsto_translationNumber_aux : Tendsto f.transnumAuxSeq atTop (𝓝 <| τ f) :=
(cauchySeq_of_le_geometric_two 1 fun n => le_of_lt <| f.transnumAuxSeq_dist_lt n).tendsto_limUnder
#align circle_deg1_lift.tendsto_translation_number_aux CircleDeg1Lift.tendsto_translationNumber_aux
+-/
+/- warning: circle_deg1_lift.dist_map_zero_translation_number_le -> CircleDeg1Lift.dist_map_zero_translationNumber_le is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift), LE.le.{0} Real Real.hasLe (Dist.dist.{0} Real (PseudoMetricSpace.toHasDist.{0} Real Real.pseudoMetricSpace) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (CircleDeg1Lift.translationNumber f)) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))
+but is expected to have type
+ forall (f : CircleDeg1Lift), LE.le.{0} Real Real.instLEReal (Dist.dist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (PseudoMetricSpace.toDist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.pseudoMetricSpace) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (CircleDeg1Lift.translationNumber f)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.dist_map_zero_translation_number_le CircleDeg1Lift.dist_map_zero_translationNumber_leₓ'. -/
theorem dist_map_zero_translationNumber_le : dist (f 0) (τ f) ≤ 1 :=
f.transnumAuxSeq_zero ▸
dist_le_of_le_geometric_two_of_tendsto₀ 1 (fun n => le_of_lt <| f.transnumAuxSeq_dist_lt n)
f.tendsto_translationNumber_aux
#align circle_deg1_lift.dist_map_zero_translation_number_le CircleDeg1Lift.dist_map_zero_translationNumber_le
+/- warning: circle_deg1_lift.tendsto_translation_number_of_dist_bounded_aux -> CircleDeg1Lift.tendsto_translationNumber_of_dist_bounded_aux is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (x : Nat -> Real) (C : Real), (forall (n : Nat), LE.le.{0} Real Real.hasLe (Dist.dist.{0} Real (PseudoMetricSpace.toHasDist.{0} Real Real.pseudoMetricSpace) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (x n)) C) -> (Filter.Tendsto.{0, 0} Nat Real (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (x (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) n)) (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.monoid)) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne)))) n)) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (CircleDeg1Lift.translationNumber f)))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (x : Nat -> Real) (C : Real), (forall (n : Nat), LE.le.{0} Real Real.instLEReal (Dist.dist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (PseudoMetricSpace.toDist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.pseudoMetricSpace) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (x n)) C) -> (Filter.Tendsto.{0, 0} Nat Real (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (x (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) n)) (HPow.hPow.{0, 0, 0} Real Nat Real (instHPow.{0, 0} Real Nat (Monoid.Pow.{0} Real Real.instMonoidReal)) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))) n)) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (CircleDeg1Lift.translationNumber f)))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.tendsto_translation_number_of_dist_bounded_aux CircleDeg1Lift.tendsto_translationNumber_of_dist_bounded_auxₓ'. -/
theorem tendsto_translationNumber_of_dist_bounded_aux (x : ℕ → ℝ) (C : ℝ)
(H : ∀ n : ℕ, dist ((f ^ n) 0) (x n) ≤ C) :
Tendsto (fun n : ℕ => x (2 ^ n) / 2 ^ n) atTop (𝓝 <| τ f) :=
@@ -741,28 +1245,58 @@ theorem tendsto_translationNumber_of_dist_bounded_aux (x : ℕ → ℝ) (C : ℝ
(tendsto_inv_at_top_zero.comp <| tendsto_pow_atTop_atTop_of_one_lt one_lt_two)
#align circle_deg1_lift.tendsto_translation_number_of_dist_bounded_aux CircleDeg1Lift.tendsto_translationNumber_of_dist_bounded_aux
+/- warning: circle_deg1_lift.translation_number_eq_of_dist_bounded -> CircleDeg1Lift.translationNumber_eq_of_dist_bounded is a dubious translation:
+lean 3 declaration is
+ forall {f : CircleDeg1Lift} {g : CircleDeg1Lift} (C : Real), (forall (n : Nat), LE.le.{0} Real Real.hasLe (Dist.dist.{0} Real (PseudoMetricSpace.toHasDist.{0} Real Real.pseudoMetricSpace) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) g n) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))) C) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f) (CircleDeg1Lift.translationNumber g))
+but is expected to have type
+ forall {f : CircleDeg1Lift} {g : CircleDeg1Lift} (C : Real), (forall (n : Nat), LE.le.{0} Real Real.instLEReal (Dist.dist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (PseudoMetricSpace.toDist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.pseudoMetricSpace) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) g n) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))) C) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f) (CircleDeg1Lift.translationNumber g))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_eq_of_dist_bounded CircleDeg1Lift.translationNumber_eq_of_dist_boundedₓ'. -/
theorem translationNumber_eq_of_dist_bounded {f g : CircleDeg1Lift} (C : ℝ)
(H : ∀ n : ℕ, dist ((f ^ n) 0) ((g ^ n) 0) ≤ C) : τ f = τ g :=
Eq.symm <|
g.translationNumber_eq_of_tendsto_aux <| f.tendsto_translationNumber_of_dist_bounded_aux _ C H
#align circle_deg1_lift.translation_number_eq_of_dist_bounded CircleDeg1Lift.translationNumber_eq_of_dist_bounded
+/- warning: circle_deg1_lift.translation_number_one -> CircleDeg1Lift.translationNumber_one is a dubious translation:
+lean 3 declaration is
+ Eq.{1} Real (CircleDeg1Lift.translationNumber (OfNat.ofNat.{0} CircleDeg1Lift 1 (OfNat.mk.{0} CircleDeg1Lift 1 (One.one.{0} CircleDeg1Lift (MulOneClass.toHasOne.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))))) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))
+but is expected to have type
+ Eq.{1} Real (CircleDeg1Lift.translationNumber (OfNat.ofNat.{0} CircleDeg1Lift 1 (One.toOfNat1.{0} CircleDeg1Lift (Monoid.toOne.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_one CircleDeg1Lift.translationNumber_oneₓ'. -/
@[simp]
theorem translationNumber_one : τ 1 = 0 :=
translationNumber_eq_of_tendsto₀ _ <| by simp [tendsto_const_nhds]
#align circle_deg1_lift.translation_number_one CircleDeg1Lift.translationNumber_one
+/- warning: circle_deg1_lift.translation_number_eq_of_semiconj_by -> CircleDeg1Lift.translationNumber_eq_of_semiconjBy is a dubious translation:
+lean 3 declaration is
+ forall {f : CircleDeg1Lift} {g₁ : CircleDeg1Lift} {g₂ : CircleDeg1Lift}, (SemiconjBy.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f g₁ g₂) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber g₁) (CircleDeg1Lift.translationNumber g₂))
+but is expected to have type
+ forall {f : CircleDeg1Lift} {g₁ : CircleDeg1Lift} {g₂ : CircleDeg1Lift}, (SemiconjBy.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f g₁ g₂) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber g₁) (CircleDeg1Lift.translationNumber g₂))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_eq_of_semiconj_by CircleDeg1Lift.translationNumber_eq_of_semiconjByₓ'. -/
theorem translationNumber_eq_of_semiconjBy {f g₁ g₂ : CircleDeg1Lift} (H : SemiconjBy f g₁ g₂) :
τ g₁ = τ g₂ :=
translationNumber_eq_of_dist_bounded 2 fun n =>
le_of_lt <| dist_map_zero_lt_of_semiconjBy <| H.pow_right n
#align circle_deg1_lift.translation_number_eq_of_semiconj_by CircleDeg1Lift.translationNumber_eq_of_semiconjBy
+/- warning: circle_deg1_lift.translation_number_eq_of_semiconj -> CircleDeg1Lift.translationNumber_eq_of_semiconj is a dubious translation:
+lean 3 declaration is
+ forall {f : CircleDeg1Lift} {g₁ : CircleDeg1Lift} {g₂ : CircleDeg1Lift}, (Function.Semiconj.{0, 0} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g₁) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun g₂)) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber g₁) (CircleDeg1Lift.translationNumber g₂))
+but is expected to have type
+ forall {f : CircleDeg1Lift} {g₁ : CircleDeg1Lift} {g₂ : CircleDeg1Lift}, (Function.Semiconj.{0, 0} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g₁) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) g₂)) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber g₁) (CircleDeg1Lift.translationNumber g₂))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_eq_of_semiconj CircleDeg1Lift.translationNumber_eq_of_semiconjₓ'. -/
theorem translationNumber_eq_of_semiconj {f g₁ g₂ : CircleDeg1Lift}
(H : Function.Semiconj f g₁ g₂) : τ g₁ = τ g₂ :=
translationNumber_eq_of_semiconjBy <| semiconjBy_iff_semiconj.2 H
#align circle_deg1_lift.translation_number_eq_of_semiconj CircleDeg1Lift.translationNumber_eq_of_semiconj
+/- warning: circle_deg1_lift.translation_number_mul_of_commute -> CircleDeg1Lift.translationNumber_mul_of_commute is a dubious translation:
+lean 3 declaration is
+ forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, (Commute.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f g) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid))) f g)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (CircleDeg1Lift.translationNumber f) (CircleDeg1Lift.translationNumber g)))
+but is expected to have type
+ forall {f : CircleDeg1Lift} {g : CircleDeg1Lift}, (Commute.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f g) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))) f g)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (CircleDeg1Lift.translationNumber f) (CircleDeg1Lift.translationNumber g)))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_mul_of_commute CircleDeg1Lift.translationNumber_mul_of_commuteₓ'. -/
theorem translationNumber_mul_of_commute {f g : CircleDeg1Lift} (h : Commute f g) :
τ (f * g) = τ f + τ g :=
by
@@ -777,12 +1311,24 @@ theorem translationNumber_mul_of_commute {f g : CircleDeg1Lift} (h : Commute f g
exact le_of_lt ((f ^ n).dist_map_map_zero_lt (g ^ n))
#align circle_deg1_lift.translation_number_mul_of_commute CircleDeg1Lift.translationNumber_mul_of_commute
+/- warning: circle_deg1_lift.translation_number_units_inv -> CircleDeg1Lift.translationNumber_units_inv is a dubious translation:
+lean 3 declaration is
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid), Eq.{1} Real (CircleDeg1Lift.translationNumber ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f))) (Neg.neg.{0} Real Real.hasNeg (CircleDeg1Lift.translationNumber ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) f)))
+but is expected to have type
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift), Eq.{1} Real (CircleDeg1Lift.translationNumber (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInvUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f))) (Neg.neg.{0} Real Real.instNegReal (CircleDeg1Lift.translationNumber (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f)))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_units_inv CircleDeg1Lift.translationNumber_units_invₓ'. -/
@[simp]
theorem translationNumber_units_inv (f : CircleDeg1Liftˣ) : τ ↑f⁻¹ = -τ f :=
eq_neg_iff_add_eq_zero.2 <| by
simp [← translation_number_mul_of_commute (Commute.refl _).units_inv_left]
#align circle_deg1_lift.translation_number_units_inv CircleDeg1Lift.translationNumber_units_inv
+/- warning: circle_deg1_lift.translation_number_pow -> CircleDeg1Lift.translationNumber_pow is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (n : Nat), Eq.{1} Real (CircleDeg1Lift.translationNumber (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n)) (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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) (CircleDeg1Lift.translationNumber f))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (n : Nat), Eq.{1} Real (CircleDeg1Lift.translationNumber (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Nat.cast.{0} Real Real.natCast n) (CircleDeg1Lift.translationNumber f))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_pow CircleDeg1Lift.translationNumber_powₓ'. -/
@[simp]
theorem translationNumber_pow : ∀ n : ℕ, τ (f ^ n) = n * τ f
| 0 => by simp
@@ -791,6 +1337,12 @@ theorem translationNumber_pow : ∀ n : ℕ, τ (f ^ n) = n * τ f
translation_number_pow n, Nat.cast_add_one, add_mul, one_mul]
#align circle_deg1_lift.translation_number_pow CircleDeg1Lift.translationNumber_pow
+/- warning: circle_deg1_lift.translation_number_zpow -> CircleDeg1Lift.translationNumber_zpow is a dubious translation:
+lean 3 declaration is
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (n : Int), Eq.{1} Real (CircleDeg1Lift.translationNumber ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) (HPow.hPow.{0, 0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) Int (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (instHPow.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) Int (DivInvMonoid.Pow.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Group.toDivInvMonoid.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.group.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) f n))) (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))) n) (CircleDeg1Lift.translationNumber ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) f)))
+but is expected to have type
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (n : Int), Eq.{1} Real (CircleDeg1Lift.translationNumber (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (HPow.hPow.{0, 0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) Int (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (instHPow.{0, 0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) Int (DivInvMonoid.Pow.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Group.toDivInvMonoid.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instGroupUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) f n))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Int.cast.{0} Real Real.intCast n) (CircleDeg1Lift.translationNumber (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f)))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_zpow CircleDeg1Lift.translationNumber_zpowₓ'. -/
@[simp]
theorem translationNumber_zpow (f : CircleDeg1Liftˣ) : ∀ n : ℤ, τ (f ^ n : Units _) = n * τ f
| (n : ℕ) => by simp [translation_number_pow f n]
@@ -799,23 +1351,47 @@ theorem translationNumber_zpow (f : CircleDeg1Liftˣ) : ∀ n : ℤ, τ (f ^ n :
ring
#align circle_deg1_lift.translation_number_zpow CircleDeg1Lift.translationNumber_zpow
+/- warning: circle_deg1_lift.translation_number_conj_eq -> CircleDeg1Lift.translationNumber_conj_eq is a dubious translation:
+lean 3 declaration is
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (g : CircleDeg1Lift), Eq.{1} Real (CircleDeg1Lift.translationNumber (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid))) (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) f) g) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f)))) (CircleDeg1Lift.translationNumber g)
+but is expected to have type
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (g : CircleDeg1Lift), Eq.{1} Real (CircleDeg1Lift.translationNumber (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))) (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f) g) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInvUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)))) (CircleDeg1Lift.translationNumber g)
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_conj_eq CircleDeg1Lift.translationNumber_conj_eqₓ'. -/
@[simp]
theorem translationNumber_conj_eq (f : CircleDeg1Liftˣ) (g : CircleDeg1Lift) :
τ (↑f * g * ↑f⁻¹) = τ g :=
(translationNumber_eq_of_semiconjBy (f.mk_semiconjBy g)).symm
#align circle_deg1_lift.translation_number_conj_eq CircleDeg1Lift.translationNumber_conj_eq
+/- warning: circle_deg1_lift.translation_number_conj_eq' -> CircleDeg1Lift.translationNumber_conj_eq' is a dubious translation:
+lean 3 declaration is
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (g : CircleDeg1Lift), Eq.{1} Real (CircleDeg1Lift.translationNumber (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid))) (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toHasMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Units.hasInv.{0} CircleDeg1Lift CircleDeg1Lift.monoid) f)) g) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) f))) (CircleDeg1Lift.translationNumber g)
+but is expected to have type
+ forall (f : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (g : CircleDeg1Lift), Eq.{1} Real (CircleDeg1Lift.translationNumber (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))) (HMul.hMul.{0, 0, 0} CircleDeg1Lift CircleDeg1Lift CircleDeg1Lift (instHMul.{0} CircleDeg1Lift (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (Inv.inv.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instInvUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) f)) g) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f))) (CircleDeg1Lift.translationNumber g)
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_conj_eq' CircleDeg1Lift.translationNumber_conj_eq'ₓ'. -/
@[simp]
theorem translationNumber_conj_eq' (f : CircleDeg1Liftˣ) (g : CircleDeg1Lift) :
τ (↑f⁻¹ * g * f) = τ g :=
translationNumber_conj_eq f⁻¹ g
#align circle_deg1_lift.translation_number_conj_eq' CircleDeg1Lift.translationNumber_conj_eq'
+/- warning: circle_deg1_lift.dist_pow_map_zero_mul_translation_number_le -> CircleDeg1Lift.dist_pow_map_zero_mul_translationNumber_le is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (n : Nat), LE.le.{0} Real Real.hasLe (Dist.dist.{0} Real (PseudoMetricSpace.toHasDist.{0} Real Real.pseudoMetricSpace) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n) (CircleDeg1Lift.translationNumber f))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (n : Nat), LE.le.{0} Real Real.instLEReal (Dist.dist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (PseudoMetricSpace.toDist.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.pseudoMetricSpace) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (HMul.hMul.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHMul.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instMulReal) (Nat.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.natCast n) (CircleDeg1Lift.translationNumber f))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.dist_pow_map_zero_mul_translation_number_le CircleDeg1Lift.dist_pow_map_zero_mul_translationNumber_leₓ'. -/
theorem dist_pow_map_zero_mul_translationNumber_le (n : ℕ) :
dist ((f ^ n) 0) (n * f.translationNumber) ≤ 1 :=
f.translationNumber_pow n ▸ (f ^ n).dist_map_zero_translationNumber_le
#align circle_deg1_lift.dist_pow_map_zero_mul_translation_number_le CircleDeg1Lift.dist_pow_map_zero_mul_translationNumber_le
+/- warning: circle_deg1_lift.tendsto_translation_number₀' -> CircleDeg1Lift.tendsto_translation_number₀' is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift), Filter.Tendsto.{0, 0} Nat Real (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (CircleDeg1Lift.translationNumber f))
+but is expected to have type
+ forall (f : CircleDeg1Lift), Filter.Tendsto.{0, 0} Nat ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHDiv.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (LinearOrderedField.toDiv.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedFieldReal)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real (instHAdd.{0} Real Real.instAddReal) (Nat.cast.{0} Real Real.natCast n) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instOneReal)))) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (UniformSpace.toTopologicalSpace.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (PseudoMetricSpace.toUniformSpace.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.pseudoMetricSpace)) (CircleDeg1Lift.translationNumber f))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.tendsto_translation_number₀' CircleDeg1Lift.tendsto_translation_number₀'ₓ'. -/
theorem tendsto_translation_number₀' :
Tendsto (fun n : ℕ => (f ^ (n + 1)) 0 / (n + 1)) atTop (𝓝 <| τ f) :=
by
@@ -830,10 +1406,22 @@ theorem tendsto_translation_number₀' :
apply dist_pow_map_zero_mul_translation_number_le
#align circle_deg1_lift.tendsto_translation_number₀' CircleDeg1Lift.tendsto_translation_number₀'
+/- warning: circle_deg1_lift.tendsto_translation_number₀ -> CircleDeg1Lift.tendsto_translation_number₀ is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift), Filter.Tendsto.{0, 0} Nat Real (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n) (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) Nat Real (HasLiftT.mk.{1, 1} Nat Real (CoeTCₓ.coe.{1, 1} Nat Real (Nat.castCoe.{0} Real Real.hasNatCast))) n)) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (CircleDeg1Lift.translationNumber f))
+but is expected to have type
+ forall (f : CircleDeg1Lift), Filter.Tendsto.{0, 0} Nat ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (instHDiv.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (LinearOrderedField.toDiv.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.instLinearOrderedFieldReal)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (Nat.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.natCast n)) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (UniformSpace.toTopologicalSpace.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) (PseudoMetricSpace.toUniformSpace.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) Real.pseudoMetricSpace)) (CircleDeg1Lift.translationNumber f))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.tendsto_translation_number₀ CircleDeg1Lift.tendsto_translation_number₀ₓ'. -/
theorem tendsto_translation_number₀ : Tendsto (fun n : ℕ => (f ^ n) 0 / n) atTop (𝓝 <| τ f) :=
(tendsto_add_atTop_iff_nat 1).1 (by exact_mod_cast f.tendsto_translation_number₀')
#align circle_deg1_lift.tendsto_translation_number₀ CircleDeg1Lift.tendsto_translation_number₀
+/- warning: circle_deg1_lift.tendsto_translation_number -> CircleDeg1Lift.tendsto_translationNumber is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (x : Real), Filter.Tendsto.{0, 0} Nat Real (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n) x) x) ((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)) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (CircleDeg1Lift.translationNumber f))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (x : Real), Filter.Tendsto.{0, 0} Nat ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHDiv.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (LinearOrderedField.toDiv.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLinearOrderedFieldReal)) (HSub.hSub.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHSub.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instSubReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n) x) x) (Nat.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.natCast n)) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (UniformSpace.toTopologicalSpace.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (PseudoMetricSpace.toUniformSpace.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.pseudoMetricSpace)) (CircleDeg1Lift.translationNumber f))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.tendsto_translation_number CircleDeg1Lift.tendsto_translationNumberₓ'. -/
/-- For any `x : ℝ` the sequence $\frac{f^n(x)-x}{n}$ tends to the translation number of `f`.
In particular, this limit does not depend on `x`. -/
theorem tendsto_translationNumber (x : ℝ) :
@@ -845,31 +1433,67 @@ theorem tendsto_translationNumber (x : ℝ) :
simp [sub_eq_neg_add, Units.conj_pow']
#align circle_deg1_lift.tendsto_translation_number CircleDeg1Lift.tendsto_translationNumber
+/- warning: circle_deg1_lift.tendsto_translation_number' -> CircleDeg1Lift.tendsto_translation_number' is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (x : Real), Filter.Tendsto.{0, 0} Nat Real (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) x) x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) ((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) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{0} Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (CircleDeg1Lift.translationNumber f))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (x : Real), Filter.Tendsto.{0, 0} Nat ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (fun (n : Nat) => HDiv.hDiv.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHDiv.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (LinearOrderedField.toDiv.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLinearOrderedFieldReal)) (HSub.hSub.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHSub.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instSubReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x) x) (HAdd.hAdd.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHAdd.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instAddReal) (Nat.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.natCast n) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instOneReal)))) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (UniformSpace.toTopologicalSpace.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (PseudoMetricSpace.toUniformSpace.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.pseudoMetricSpace)) (CircleDeg1Lift.translationNumber f))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.tendsto_translation_number' CircleDeg1Lift.tendsto_translation_number'ₓ'. -/
theorem tendsto_translation_number' (x : ℝ) :
Tendsto (fun n : ℕ => ((f ^ (n + 1)) x - x) / (n + 1)) atTop (𝓝 <| τ f) := by
exact_mod_cast (tendsto_add_at_top_iff_nat 1).2 (f.tendsto_translation_number x)
#align circle_deg1_lift.tendsto_translation_number' CircleDeg1Lift.tendsto_translation_number'
+/- warning: circle_deg1_lift.translation_number_mono -> CircleDeg1Lift.translationNumber_mono is a dubious translation:
+lean 3 declaration is
+ Monotone.{0, 0} CircleDeg1Lift Real (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.lattice))) Real.preorder CircleDeg1Lift.translationNumber
+but is expected to have type
+ Monotone.{0, 0} CircleDeg1Lift Real (PartialOrder.toPreorder.{0} CircleDeg1Lift (SemilatticeInf.toPartialOrder.{0} CircleDeg1Lift (Lattice.toSemilatticeInf.{0} CircleDeg1Lift CircleDeg1Lift.instLatticeCircleDeg1Lift))) Real.instPreorderReal CircleDeg1Lift.translationNumber
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_mono CircleDeg1Lift.translationNumber_monoₓ'. -/
theorem translationNumber_mono : Monotone τ := fun f g h =>
le_of_tendsto_of_tendsto' f.tendsto_translation_number₀ g.tendsto_translation_number₀ fun n =>
div_le_div_of_le_of_nonneg (pow_mono h n 0) n.cast_nonneg
#align circle_deg1_lift.translation_number_mono CircleDeg1Lift.translationNumber_mono
+/- warning: circle_deg1_lift.translation_number_translate -> CircleDeg1Lift.translationNumber_translate is a dubious translation:
+lean 3 declaration is
+ forall (x : Real), Eq.{1} Real (CircleDeg1Lift.translationNumber ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) (coeFn.{1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => (Multiplicative.{0} Real) -> (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.addMonoid)) (Units.mulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) CircleDeg1Lift.translate (coeFn.{1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) (fun (_x : Equiv.{1, 1} Real (Multiplicative.{0} Real)) => Real -> (Multiplicative.{0} Real)) (Equiv.hasCoeToFun.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)))) x
+but is expected to have type
+ forall (x : Real), Eq.{1} Real (CircleDeg1Lift.translationNumber (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (fun (_x : Multiplicative.{0} Real) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{0} Real) => Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MulOneClass.toMul.{0} (Multiplicative.{0} Real) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal))) (MulOneClass.toMul.{0} (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{0, 0} (Multiplicative.{0} Real) (Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (Multiplicative.mulOneClass.{0} Real (AddMonoid.toAddZeroClass.{0} Real Real.instAddMonoidReal)) (Units.instMulOneClassUnits.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) CircleDeg1Lift.translate (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} Real (Multiplicative.{0} Real)) Real (fun (_x : Real) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Real) => Multiplicative.{0} Real) _x) (Equiv.instFunLikeEquiv.{1, 1} Real (Multiplicative.{0} Real)) (Multiplicative.ofAdd.{0} Real) x)))) x
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_translate CircleDeg1Lift.translationNumber_translateₓ'. -/
theorem translationNumber_translate (x : ℝ) : τ (translate <| Multiplicative.ofAdd x) = x :=
translationNumber_eq_of_tendsto₀' _ <| by
simp [Nat.cast_add_one_ne_zero, mul_div_cancel_left, tendsto_const_nhds]
#align circle_deg1_lift.translation_number_translate CircleDeg1Lift.translationNumber_translate
+/- warning: circle_deg1_lift.translation_number_le_of_le_add -> CircleDeg1Lift.translationNumber_le_of_le_add is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) {z : Real}, (forall (x : Real), LE.le.{0} Real Real.hasLe (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x z)) -> (LE.le.{0} Real Real.hasLe (CircleDeg1Lift.translationNumber f) z)
+but is expected to have type
+ forall (f : CircleDeg1Lift) {z : Real}, (forall (x : Real), LE.le.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLEReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x z)) -> (LE.le.{0} Real Real.instLEReal (CircleDeg1Lift.translationNumber f) z)
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_le_of_le_add CircleDeg1Lift.translationNumber_le_of_le_addₓ'. -/
theorem translationNumber_le_of_le_add {z : ℝ} (hz : ∀ x, f x ≤ x + z) : τ f ≤ z :=
translationNumber_translate z ▸
translationNumber_mono fun x => trans_rel_left _ (hz x) (add_comm _ _)
#align circle_deg1_lift.translation_number_le_of_le_add CircleDeg1Lift.translationNumber_le_of_le_add
+/- warning: circle_deg1_lift.le_translation_number_of_add_le -> CircleDeg1Lift.le_translationNumber_of_add_le is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) {z : Real}, (forall (x : Real), LE.le.{0} Real Real.hasLe (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x z) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x)) -> (LE.le.{0} Real Real.hasLe z (CircleDeg1Lift.translationNumber f))
+but is expected to have type
+ forall (f : CircleDeg1Lift) {z : Real}, (forall (x : Real), LE.le.{0} Real Real.instLEReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x z) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x)) -> (LE.le.{0} Real Real.instLEReal z (CircleDeg1Lift.translationNumber f))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.le_translation_number_of_add_le CircleDeg1Lift.le_translationNumber_of_add_leₓ'. -/
theorem le_translationNumber_of_add_le {z : ℝ} (hz : ∀ x, x + z ≤ f x) : z ≤ τ f :=
translationNumber_translate z ▸
translationNumber_mono fun x => trans_rel_right _ (add_comm _ _) (hz x)
#align circle_deg1_lift.le_translation_number_of_add_le CircleDeg1Lift.le_translationNumber_of_add_le
+/- warning: circle_deg1_lift.translation_number_le_of_le_add_int -> CircleDeg1Lift.translationNumber_le_of_le_add_int is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) {x : Real} {m : Int}, (LE.le.{0} Real Real.hasLe (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m))) -> (LE.le.{0} Real Real.hasLe (CircleDeg1Lift.translationNumber f) ((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))) m))
+but is expected to have type
+ forall (f : CircleDeg1Lift) {x : Real} {m : Int}, (LE.le.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLEReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast m))) -> (LE.le.{0} Real Real.instLEReal (CircleDeg1Lift.translationNumber f) (Int.cast.{0} Real Real.intCast m))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_le_of_le_add_int CircleDeg1Lift.translationNumber_le_of_le_add_intₓ'. -/
theorem translationNumber_le_of_le_add_int {x : ℝ} {m : ℤ} (h : f x ≤ x + m) : τ f ≤ m :=
le_of_tendsto' (f.tendsto_translation_number' x) fun n =>
(div_le_iff' (n.cast_add_one_pos : (0 : ℝ) < _)).mpr <|
@@ -878,10 +1502,22 @@ theorem translationNumber_le_of_le_add_int {x : ℝ} {m : ℤ} (h : f x ≤ x +
@Nat.cast_add_one ℝ _ n ▸ f.iterate_le_of_map_le_add_int h (n + 1)
#align circle_deg1_lift.translation_number_le_of_le_add_int CircleDeg1Lift.translationNumber_le_of_le_add_int
+/- warning: circle_deg1_lift.translation_number_le_of_le_add_nat -> CircleDeg1Lift.translationNumber_le_of_le_add_nat is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) {x : Real} {m : Nat}, (LE.le.{0} Real Real.hasLe (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((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))) -> (LE.le.{0} Real Real.hasLe (CircleDeg1Lift.translationNumber f) ((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))
+but is expected to have type
+ forall (f : CircleDeg1Lift) {x : Real} {m : Nat}, (LE.le.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLEReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Nat.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.natCast m))) -> (LE.le.{0} Real Real.instLEReal (CircleDeg1Lift.translationNumber f) (Nat.cast.{0} Real Real.natCast m))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_le_of_le_add_nat CircleDeg1Lift.translationNumber_le_of_le_add_natₓ'. -/
theorem translationNumber_le_of_le_add_nat {x : ℝ} {m : ℕ} (h : f x ≤ x + m) : τ f ≤ m :=
@translationNumber_le_of_le_add_int f x m h
#align circle_deg1_lift.translation_number_le_of_le_add_nat CircleDeg1Lift.translationNumber_le_of_le_add_nat
+/- warning: circle_deg1_lift.le_translation_number_of_add_int_le -> CircleDeg1Lift.le_translationNumber_of_add_int_le is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) {x : Real} {m : Int}, (LE.le.{0} Real Real.hasLe (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x)) -> (LE.le.{0} Real Real.hasLe ((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))) m) (CircleDeg1Lift.translationNumber f))
+but is expected to have type
+ forall (f : CircleDeg1Lift) {x : Real} {m : Int}, (LE.le.{0} Real Real.instLEReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast m)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x)) -> (LE.le.{0} Real Real.instLEReal (Int.cast.{0} Real Real.intCast m) (CircleDeg1Lift.translationNumber f))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.le_translation_number_of_add_int_le CircleDeg1Lift.le_translationNumber_of_add_int_leₓ'. -/
theorem le_translationNumber_of_add_int_le {x : ℝ} {m : ℤ} (h : x + m ≤ f x) : ↑m ≤ τ f :=
ge_of_tendsto' (f.tendsto_translation_number' x) fun n =>
(le_div_iff (n.cast_add_one_pos : (0 : ℝ) < _)).mpr <|
@@ -889,10 +1525,22 @@ theorem le_translationNumber_of_add_int_le {x : ℝ} {m : ℤ} (h : x + m ≤ f
simp only [coe_pow, mul_comm (m : ℝ), ← Nat.cast_add_one, f.le_iterate_of_add_int_le_map h]
#align circle_deg1_lift.le_translation_number_of_add_int_le CircleDeg1Lift.le_translationNumber_of_add_int_le
+/- warning: circle_deg1_lift.le_translation_number_of_add_nat_le -> CircleDeg1Lift.le_translationNumber_of_add_nat_le is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) {x : Real} {m : Nat}, (LE.le.{0} Real Real.hasLe (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((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)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x)) -> (LE.le.{0} Real Real.hasLe ((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) (CircleDeg1Lift.translationNumber f))
+but is expected to have type
+ forall (f : CircleDeg1Lift) {x : Real} {m : Nat}, (LE.le.{0} Real Real.instLEReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Nat.cast.{0} Real Real.natCast m)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x)) -> (LE.le.{0} Real Real.instLEReal (Nat.cast.{0} Real Real.natCast m) (CircleDeg1Lift.translationNumber f))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.le_translation_number_of_add_nat_le CircleDeg1Lift.le_translationNumber_of_add_nat_leₓ'. -/
theorem le_translationNumber_of_add_nat_le {x : ℝ} {m : ℕ} (h : x + m ≤ f x) : ↑m ≤ τ f :=
@le_translationNumber_of_add_int_le f x m h
#align circle_deg1_lift.le_translation_number_of_add_nat_le CircleDeg1Lift.le_translationNumber_of_add_nat_le
+/- warning: circle_deg1_lift.translation_number_of_eq_add_int -> CircleDeg1Lift.translationNumber_of_eq_add_int is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) {x : Real} {m : Int}, (Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m))) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f) ((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))) m))
+but is expected to have type
+ forall (f : CircleDeg1Lift) {x : Real} {m : Int}, (Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast m))) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f) (Int.cast.{0} Real Real.intCast m))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_of_eq_add_int CircleDeg1Lift.translationNumber_of_eq_add_intₓ'. -/
/-- If `f x - x` is an integer number `m` for some point `x`, then `τ f = m`.
On the circle this means that a map with a fixed point has rotation number zero. -/
theorem translationNumber_of_eq_add_int {x : ℝ} {m : ℤ} (h : f x = x + m) : τ f = m :=
@@ -900,22 +1548,52 @@ theorem translationNumber_of_eq_add_int {x : ℝ} {m : ℤ} (h : f x = x + m) :
(le_translationNumber_of_add_int_le f <| le_of_eq h.symm)
#align circle_deg1_lift.translation_number_of_eq_add_int CircleDeg1Lift.translationNumber_of_eq_add_int
+/- warning: circle_deg1_lift.floor_sub_le_translation_number -> CircleDeg1Lift.floor_sub_le_translationNumber is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (x : Real), LE.le.{0} Real Real.hasLe ((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))) (Int.floor.{0} Real Real.linearOrderedRing Real.floorRing (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) x))) (CircleDeg1Lift.translationNumber f)
+but is expected to have type
+ forall (f : CircleDeg1Lift) (x : Real), LE.le.{0} Real Real.instLEReal (Int.cast.{0} Real Real.intCast (Int.floor.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (HSub.hSub.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHSub.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instSubReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) x))) (CircleDeg1Lift.translationNumber f)
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.floor_sub_le_translation_number CircleDeg1Lift.floor_sub_le_translationNumberₓ'. -/
theorem floor_sub_le_translationNumber (x : ℝ) : ↑⌊f x - x⌋ ≤ τ f :=
le_translationNumber_of_add_int_le f <| le_sub_iff_add_le'.1 (floor_le <| f x - x)
#align circle_deg1_lift.floor_sub_le_translation_number CircleDeg1Lift.floor_sub_le_translationNumber
+/- warning: circle_deg1_lift.translation_number_le_ceil_sub -> CircleDeg1Lift.translationNumber_le_ceil_sub is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (x : Real), LE.le.{0} Real Real.hasLe (CircleDeg1Lift.translationNumber f) ((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))) (Int.ceil.{0} Real Real.linearOrderedRing Real.floorRing (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) x)))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (x : Real), LE.le.{0} Real Real.instLEReal (CircleDeg1Lift.translationNumber f) (Int.cast.{0} Real Real.intCast (Int.ceil.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (HSub.hSub.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHSub.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instSubReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) x)))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_le_ceil_sub CircleDeg1Lift.translationNumber_le_ceil_subₓ'. -/
theorem translationNumber_le_ceil_sub (x : ℝ) : τ f ≤ ⌈f x - x⌉ :=
translationNumber_le_of_le_add_int f <| sub_le_iff_le_add'.1 (le_ceil <| f x - x)
#align circle_deg1_lift.translation_number_le_ceil_sub CircleDeg1Lift.translationNumber_le_ceil_sub
+/- warning: circle_deg1_lift.map_lt_of_translation_number_lt_int -> CircleDeg1Lift.map_lt_of_translationNumber_lt_int is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) {n : Int}, (LT.lt.{0} Real Real.hasLt (CircleDeg1Lift.translationNumber f) ((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))) n)) -> (forall (x : Real), LT.lt.{0} Real Real.hasLt (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) n)))
+but is expected to have type
+ forall (f : CircleDeg1Lift) {n : Int}, (LT.lt.{0} Real Real.instLTReal (CircleDeg1Lift.translationNumber f) (Int.cast.{0} Real Real.intCast n)) -> (forall (x : Real), LT.lt.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLTReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast n)))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_lt_of_translation_number_lt_int CircleDeg1Lift.map_lt_of_translationNumber_lt_intₓ'. -/
theorem map_lt_of_translationNumber_lt_int {n : ℤ} (h : τ f < n) (x : ℝ) : f x < x + n :=
not_le.1 <| mt f.le_translationNumber_of_add_int_le <| not_le.2 h
#align circle_deg1_lift.map_lt_of_translation_number_lt_int CircleDeg1Lift.map_lt_of_translationNumber_lt_int
+/- warning: circle_deg1_lift.map_lt_of_translation_number_lt_nat -> CircleDeg1Lift.map_lt_of_translationNumber_lt_nat is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) {n : Nat}, (LT.lt.{0} Real Real.hasLt (CircleDeg1Lift.translationNumber f) ((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)) -> (forall (x : Real), LT.lt.{0} Real Real.hasLt (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((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 (f : CircleDeg1Lift) {n : Nat}, (LT.lt.{0} Real Real.instLTReal (CircleDeg1Lift.translationNumber f) (Nat.cast.{0} Real Real.natCast n)) -> (forall (x : Real), LT.lt.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLTReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Nat.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.natCast n)))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_lt_of_translation_number_lt_nat CircleDeg1Lift.map_lt_of_translationNumber_lt_natₓ'. -/
theorem map_lt_of_translationNumber_lt_nat {n : ℕ} (h : τ f < n) (x : ℝ) : f x < x + n :=
@map_lt_of_translationNumber_lt_int f n h x
#align circle_deg1_lift.map_lt_of_translation_number_lt_nat CircleDeg1Lift.map_lt_of_translationNumber_lt_nat
+/- warning: circle_deg1_lift.map_lt_add_floor_translation_number_add_one -> CircleDeg1Lift.map_lt_add_floor_translationNumber_add_one is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (x : Real), LT.lt.{0} Real Real.hasLt (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) (Int.floor.{0} Real Real.linearOrderedRing Real.floorRing (CircleDeg1Lift.translationNumber f)))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (x : Real), LT.lt.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLTReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast (Int.floor.{0} Real Real.instLinearOrderedRingReal Real.instFloorRingRealInstLinearOrderedRingReal (CircleDeg1Lift.translationNumber f)))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instOneReal)))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_lt_add_floor_translation_number_add_one CircleDeg1Lift.map_lt_add_floor_translationNumber_add_oneₓ'. -/
theorem map_lt_add_floor_translationNumber_add_one (x : ℝ) : f x < x + ⌊τ f⌋ + 1 :=
by
rw [add_assoc]
@@ -925,6 +1603,12 @@ theorem map_lt_add_floor_translationNumber_add_one (x : ℝ) : f x < x + ⌊τ f
exact lt_floor_add_one _
#align circle_deg1_lift.map_lt_add_floor_translation_number_add_one CircleDeg1Lift.map_lt_add_floor_translationNumber_add_one
+/- warning: circle_deg1_lift.map_lt_add_translation_number_add_one -> CircleDeg1Lift.map_lt_add_translationNumber_add_one is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (x : Real), LT.lt.{0} Real Real.hasLt (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x (CircleDeg1Lift.translationNumber f)) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (x : Real), LT.lt.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLTReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (CircleDeg1Lift.translationNumber f)) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instOneReal)))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.map_lt_add_translation_number_add_one CircleDeg1Lift.map_lt_add_translationNumber_add_oneₓ'. -/
theorem map_lt_add_translationNumber_add_one (x : ℝ) : f x < x + τ f + 1 :=
calc
f x < x + ⌊τ f⌋ + 1 := f.map_lt_add_floor_translationNumber_add_one x
@@ -934,14 +1618,32 @@ theorem map_lt_add_translationNumber_add_one (x : ℝ) : f x < x + τ f + 1 :=
#align circle_deg1_lift.map_lt_add_translation_number_add_one CircleDeg1Lift.map_lt_add_translationNumber_add_one
+/- warning: circle_deg1_lift.lt_map_of_int_lt_translation_number -> CircleDeg1Lift.lt_map_of_int_lt_translationNumber is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) {n : Int}, (LT.lt.{0} Real Real.hasLt ((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))) n) (CircleDeg1Lift.translationNumber f)) -> (forall (x : Real), LT.lt.{0} Real Real.hasLt (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) n)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x))
+but is expected to have type
+ forall (f : CircleDeg1Lift) {n : Int}, (LT.lt.{0} Real Real.instLTReal (Int.cast.{0} Real Real.intCast n) (CircleDeg1Lift.translationNumber f)) -> (forall (x : Real), LT.lt.{0} Real Real.instLTReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} Real Real.intCast n)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.lt_map_of_int_lt_translation_number CircleDeg1Lift.lt_map_of_int_lt_translationNumberₓ'. -/
theorem lt_map_of_int_lt_translationNumber {n : ℤ} (h : ↑n < τ f) (x : ℝ) : x + n < f x :=
not_le.1 <| mt f.translationNumber_le_of_le_add_int <| not_le.2 h
#align circle_deg1_lift.lt_map_of_int_lt_translation_number CircleDeg1Lift.lt_map_of_int_lt_translationNumber
+/- warning: circle_deg1_lift.lt_map_of_nat_lt_translation_number -> CircleDeg1Lift.lt_map_of_nat_lt_translationNumber is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) {n : Nat}, (LT.lt.{0} Real Real.hasLt ((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) (CircleDeg1Lift.translationNumber f)) -> (forall (x : Real), LT.lt.{0} Real Real.hasLt (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x ((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)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x))
+but is expected to have type
+ forall (f : CircleDeg1Lift) {n : Nat}, (LT.lt.{0} Real Real.instLTReal (Nat.cast.{0} Real Real.natCast n) (CircleDeg1Lift.translationNumber f)) -> (forall (x : Real), LT.lt.{0} Real Real.instLTReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (Nat.cast.{0} Real Real.natCast n)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.lt_map_of_nat_lt_translation_number CircleDeg1Lift.lt_map_of_nat_lt_translationNumberₓ'. -/
theorem lt_map_of_nat_lt_translationNumber {n : ℕ} (h : ↑n < τ f) (x : ℝ) : x + n < f x :=
@lt_map_of_int_lt_translationNumber f n h x
#align circle_deg1_lift.lt_map_of_nat_lt_translation_number CircleDeg1Lift.lt_map_of_nat_lt_translationNumber
+/- warning: circle_deg1_lift.translation_number_of_map_pow_eq_add_int -> CircleDeg1Lift.translationNumber_of_map_pow_eq_add_int is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) {x : Real} {n : Nat} {m : Int}, (Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n) x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m))) -> (LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) n) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f) (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) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) 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)))
+but is expected to have type
+ forall (f : CircleDeg1Lift) {x : Real} {n : Nat} {m : Int}, (Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n) x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast m))) -> (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Int.cast.{0} Real Real.intCast m) (Nat.cast.{0} Real Real.natCast n)))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_of_map_pow_eq_add_int CircleDeg1Lift.translationNumber_of_map_pow_eq_add_intₓ'. -/
/-- If `f^n x - x`, `n > 0`, is an integer number `m` for some point `x`, then
`τ f = m / n`. On the circle this means that a map with a periodic orbit has
a rational rotation number. -/
@@ -953,6 +1655,12 @@ theorem translationNumber_of_map_pow_eq_add_int {x : ℝ} {n : ℕ} {m : ℤ} (h
exact Nat.cast_ne_zero.2 (ne_of_gt hn)
#align circle_deg1_lift.translation_number_of_map_pow_eq_add_int CircleDeg1Lift.translationNumber_of_map_pow_eq_add_int
+/- warning: circle_deg1_lift.forall_map_sub_of_Icc -> CircleDeg1Lift.forall_map_sub_of_Icc is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift) (P : Real -> Prop), (forall (x : Real), (Membership.Mem.{0, 0} Real (Set.{0} Real) (Set.hasMem.{0} Real) x (Set.Icc.{0} Real Real.preorder (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) -> (P (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) x))) -> (forall (x : Real), P (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) x))
+but is expected to have type
+ forall (f : CircleDeg1Lift) (P : Real -> Prop), (forall (x : Real), (Membership.mem.{0, 0} Real (Set.{0} Real) (Set.instMembershipSet.{0} Real) x (Set.Icc.{0} Real Real.instPreorderReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) -> (P (HSub.hSub.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHSub.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instSubReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) x))) -> (forall (x : Real), P (HSub.hSub.{0, 0, 0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (instHSub.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instSubReal) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) x))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.forall_map_sub_of_Icc CircleDeg1Lift.forall_map_sub_of_Iccₓ'. -/
/-- If a predicate depends only on `f x - x` and holds for all `0 ≤ x ≤ 1`,
then it holds for all `x`. -/
theorem forall_map_sub_of_Icc (P : ℝ → Prop) (h : ∀ x ∈ Icc (0 : ℝ) 1, P (f x - x)) (x : ℝ) :
@@ -960,6 +1668,12 @@ theorem forall_map_sub_of_Icc (P : ℝ → Prop) (h : ∀ x ∈ Icc (0 : ℝ) 1,
f.map_fract_sub_fract_eq x ▸ h _ ⟨fract_nonneg _, le_of_lt (fract_lt_one _)⟩
#align circle_deg1_lift.forall_map_sub_of_Icc CircleDeg1Lift.forall_map_sub_of_Icc
+/- warning: circle_deg1_lift.translation_number_lt_of_forall_lt_add -> CircleDeg1Lift.translationNumber_lt_of_forall_lt_add is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f)) -> (forall {z : Real}, (forall (x : Real), LT.lt.{0} Real Real.hasLt (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x z)) -> (LT.lt.{0} Real Real.hasLt (CircleDeg1Lift.translationNumber f) z))
+but is expected to have type
+ forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f)) -> (forall {z : Real}, (forall (x : Real), LT.lt.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.instLTReal (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x z)) -> (LT.lt.{0} Real Real.instLTReal (CircleDeg1Lift.translationNumber f) z))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_lt_of_forall_lt_add CircleDeg1Lift.translationNumber_lt_of_forall_lt_addₓ'. -/
theorem translationNumber_lt_of_forall_lt_add (hf : Continuous f) {z : ℝ} (hz : ∀ x, f x < x + z) :
τ f < z :=
by
@@ -972,6 +1686,12 @@ theorem translationNumber_lt_of_forall_lt_add (hf : Continuous f) {z : ℝ} (hz
exact f.forall_map_sub_of_Icc (fun a => a ≤ f x - x) hx
#align circle_deg1_lift.translation_number_lt_of_forall_lt_add CircleDeg1Lift.translationNumber_lt_of_forall_lt_add
+/- warning: circle_deg1_lift.lt_translation_number_of_forall_add_lt -> CircleDeg1Lift.lt_translationNumber_of_forall_add_lt is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f)) -> (forall {z : Real}, (forall (x : Real), LT.lt.{0} Real Real.hasLt (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x z) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x)) -> (LT.lt.{0} Real Real.hasLt z (CircleDeg1Lift.translationNumber f)))
+but is expected to have type
+ forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f)) -> (forall {z : Real}, (forall (x : Real), LT.lt.{0} Real Real.instLTReal (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x z) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x)) -> (LT.lt.{0} Real Real.instLTReal z (CircleDeg1Lift.translationNumber f)))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.lt_translation_number_of_forall_add_lt CircleDeg1Lift.lt_translationNumber_of_forall_add_ltₓ'. -/
theorem lt_translationNumber_of_forall_add_lt (hf : Continuous f) {z : ℝ} (hz : ∀ x, x + z < f x) :
z < τ f :=
by
@@ -984,6 +1704,12 @@ theorem lt_translationNumber_of_forall_add_lt (hf : Continuous f) {z : ℝ} (hz
exact f.forall_map_sub_of_Icc _ hx
#align circle_deg1_lift.lt_translation_number_of_forall_add_lt CircleDeg1Lift.lt_translationNumber_of_forall_add_lt
+/- warning: circle_deg1_lift.exists_eq_add_translation_number -> CircleDeg1Lift.exists_eq_add_translationNumber is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f)) -> (Exists.{1} Real (fun (x : Real) => Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) x (CircleDeg1Lift.translationNumber f))))
+but is expected to have type
+ forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f)) -> (Exists.{1} Real (fun (x : Real) => Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) x (CircleDeg1Lift.translationNumber f))))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.exists_eq_add_translation_number CircleDeg1Lift.exists_eq_add_translationNumberₓ'. -/
/-- If `f` is a continuous monotone map `ℝ → ℝ`, `f (x + 1) = f x + 1`, then there exists `x`
such that `f x = x + τ f`. -/
theorem exists_eq_add_translationNumber (hf : Continuous f) : ∃ x, f x = x + τ f :=
@@ -998,6 +1724,12 @@ theorem exists_eq_add_translationNumber (hf : Continuous f) : ∃ x, f x = x +
exact intermediate_value_univ₂ hf (continuous_id.add continuous_const) ha hb
#align circle_deg1_lift.exists_eq_add_translation_number CircleDeg1Lift.exists_eq_add_translationNumber
+/- warning: circle_deg1_lift.translation_number_eq_int_iff -> CircleDeg1Lift.translationNumber_eq_int_iff is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f)) -> (forall {m : Int}, Iff (Eq.{1} Real (CircleDeg1Lift.translationNumber f) ((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))) m)) (Exists.{1} Real (fun (x : Real) => Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m)))))
+but is expected to have type
+ forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f)) -> (forall {m : Int}, Iff (Eq.{1} Real (CircleDeg1Lift.translationNumber f) (Int.cast.{0} Real Real.intCast m)) (Exists.{1} Real (fun (x : Real) => Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast m)))))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_eq_int_iff CircleDeg1Lift.translationNumber_eq_int_iffₓ'. -/
theorem translationNumber_eq_int_iff (hf : Continuous f) {m : ℤ} : τ f = m ↔ ∃ x, f x = x + m :=
by
refine' ⟨fun h => h ▸ f.exists_eq_add_translation_number hf, _⟩
@@ -1005,12 +1737,24 @@ theorem translationNumber_eq_int_iff (hf : Continuous f) {m : ℤ} : τ f = m
exact f.translation_number_of_eq_add_int hx
#align circle_deg1_lift.translation_number_eq_int_iff CircleDeg1Lift.translationNumber_eq_int_iff
+/- warning: circle_deg1_lift.continuous_pow -> CircleDeg1Lift.continuous_pow is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f)) -> (forall (n : Nat), Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n)))
+but is expected to have type
+ forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f)) -> (forall (n : Nat), Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n)))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.continuous_pow CircleDeg1Lift.continuous_powₓ'. -/
theorem continuous_pow (hf : Continuous f) (n : ℕ) : Continuous ⇑(f ^ n : CircleDeg1Lift) :=
by
rw [coe_pow]
exact hf.iterate n
#align circle_deg1_lift.continuous_pow CircleDeg1Lift.continuous_pow
+/- warning: circle_deg1_lift.translation_number_eq_rat_iff -> CircleDeg1Lift.translationNumber_eq_rat_iff is a dubious translation:
+lean 3 declaration is
+ forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f)) -> (forall {m : Int} {n : Nat}, (LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) n) -> (Iff (Eq.{1} Real (CircleDeg1Lift.translationNumber f) (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) Int Real (HasLiftT.mk.{1, 1} Int Real (CoeTCₓ.coe.{1, 1} Int Real (Int.castCoe.{0} Real Real.hasIntCast))) 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))) (Exists.{1} Real (fun (x : Real) => Eq.{1} Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f n) x) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) 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))) m))))))
+but is expected to have type
+ forall (f : CircleDeg1Lift), (Continuous.{0, 0} Real Real (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f)) -> (forall {m : Int} {n : Nat}, (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) -> (Iff (Eq.{1} Real (CircleDeg1Lift.translationNumber f) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Int.cast.{0} Real Real.intCast m) (Nat.cast.{0} Real Real.natCast n))) (Exists.{1} Real (fun (x : Real) => Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (HPow.hPow.{0, 0, 0} CircleDeg1Lift Nat CircleDeg1Lift (instHPow.{0, 0} CircleDeg1Lift Nat (Monoid.Pow.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) f n) x) (HAdd.hAdd.{0, 0, 0} Real ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real (instHAdd.{0} Real Real.instAddReal) x (Int.cast.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) x) Real.intCast m))))))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.translation_number_eq_rat_iff CircleDeg1Lift.translationNumber_eq_rat_iffₓ'. -/
theorem translationNumber_eq_rat_iff (hf : Continuous f) {m : ℤ} {n : ℕ} (hn : 0 < n) :
τ f = m / n ↔ ∃ x, (f ^ n) x = x + m :=
by
@@ -1018,6 +1762,12 @@ theorem translationNumber_eq_rat_iff (hf : Continuous f) {m : ℤ} {n : ℕ} (hn
exact (f ^ n).translationNumber_eq_int_iff (f.continuous_pow hf n)
#align circle_deg1_lift.translation_number_eq_rat_iff CircleDeg1Lift.translationNumber_eq_rat_iff
+/- warning: circle_deg1_lift.semiconj_of_group_action_of_forall_translation_number_eq -> CircleDeg1Lift.semiconj_of_group_action_of_forall_translationNumber_eq is a dubious translation:
+lean 3 declaration is
+ forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (f₁ : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (f₂ : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)), (forall (g : G), Eq.{1} Real (CircleDeg1Lift.translationNumber (coeFn.{succ u1, succ u1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => G -> CircleDeg1Lift) (MonoidHom.hasCoeToFun.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f₁ g)) (CircleDeg1Lift.translationNumber (coeFn.{succ u1, succ u1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => G -> CircleDeg1Lift) (MonoidHom.hasCoeToFun.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f₂ g))) -> (Exists.{1} CircleDeg1Lift (fun (F : CircleDeg1Lift) => forall (g : G), Function.Semiconj.{0, 0} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun F) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (coeFn.{succ u1, succ u1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => G -> CircleDeg1Lift) (MonoidHom.hasCoeToFun.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f₁ g)) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun (coeFn.{succ u1, succ u1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) (fun (_x : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) => G -> CircleDeg1Lift) (MonoidHom.hasCoeToFun.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.monoid)) f₂ g))))
+but is expected to have type
+ forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (f₁ : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (f₂ : MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)), (forall (g : G), Eq.{1} Real (CircleDeg1Lift.translationNumber (FunLike.coe.{succ u1, succ u1, 1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => CircleDeg1Lift) _x) (MulHomClass.toFunLike.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) f₁ g)) (CircleDeg1Lift.translationNumber (FunLike.coe.{succ u1, succ u1, 1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => CircleDeg1Lift) _x) (MulHomClass.toFunLike.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) f₂ g))) -> (Exists.{1} CircleDeg1Lift (fun (F : CircleDeg1Lift) => forall (g : G), Function.Semiconj.{0, 0} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) F) (FunLike.coe.{1, 1, 1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => CircleDeg1Lift) g) Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => CircleDeg1Lift) g) Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => CircleDeg1Lift) g) Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => CircleDeg1Lift) g) Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (FunLike.coe.{succ u1, succ u1, 1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => CircleDeg1Lift) _x) (MulHomClass.toFunLike.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) f₁ g)) (FunLike.coe.{1, 1, 1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => CircleDeg1Lift) g) Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => CircleDeg1Lift) g) Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => CircleDeg1Lift) g) Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => CircleDeg1Lift) g) Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (FunLike.coe.{succ u1, succ u1, 1} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => CircleDeg1Lift) _x) (MulHomClass.toFunLike.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{0} CircleDeg1Lift (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) (MonoidHomClass.toMulHomClass.{u1, u1, 0} (MonoidHom.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)) G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift) (MonoidHom.monoidHomClass.{u1, 0} G CircleDeg1Lift (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift)))) f₂ g))))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.semiconj_of_group_action_of_forall_translation_number_eq CircleDeg1Lift.semiconj_of_group_action_of_forall_translationNumber_eqₓ'. -/
/-- Consider two actions `f₁ f₂ : G →* circle_deg1_lift` of a group on the real line by lifts of
orientation preserving circle homeomorphisms. Suppose that for each `g : G` the homeomorphisms
`f₁ g` and `f₂ g` have equal rotation numbers. Then there exists `F : circle_deg1_lift` such that
@@ -1066,6 +1816,12 @@ theorem semiconj_of_group_action_of_forall_translationNumber_eq {G : Type _} [Gr
· exact this x
#align circle_deg1_lift.semiconj_of_group_action_of_forall_translation_number_eq CircleDeg1Lift.semiconj_of_group_action_of_forall_translationNumber_eq
+/- warning: circle_deg1_lift.units_semiconj_of_translation_number_eq -> CircleDeg1Lift.units_semiconj_of_translationNumber_eq is a dubious translation:
+lean 3 declaration is
+ forall {f₁ : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid} {f₂ : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid}, (Eq.{1} Real (CircleDeg1Lift.translationNumber ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) f₁)) (CircleDeg1Lift.translationNumber ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (HasLiftT.mk.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (CoeTCₓ.coe.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (coeBase.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) CircleDeg1Lift (Units.hasCoe.{0} CircleDeg1Lift CircleDeg1Lift.monoid)))) f₂))) -> (Exists.{1} CircleDeg1Lift (fun (F : CircleDeg1Lift) => Function.Semiconj.{0, 0} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun F) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun f₁) (coeFn.{1, 1} (Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) (fun (_x : Units.{0} CircleDeg1Lift CircleDeg1Lift.monoid) => Real -> Real) CircleDeg1Lift.unitsHasCoeToFun f₂)))
+but is expected to have type
+ forall {f₁ : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift} {f₂ : Units.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift}, (Eq.{1} Real (CircleDeg1Lift.translationNumber (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f₁)) (CircleDeg1Lift.translationNumber (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f₂))) -> (Exists.{1} CircleDeg1Lift (fun (F : CircleDeg1Lift) => Function.Semiconj.{0, 0} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) F) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f₁)) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) (Units.val.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f₂))))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.units_semiconj_of_translation_number_eq CircleDeg1Lift.units_semiconj_of_translationNumber_eqₓ'. -/
/-- If two lifts of circle homeomorphisms have the same translation number, then they are
semiconjugate by a `circle_deg1_lift`. This version uses arguments `f₁ f₂ : circle_deg1_liftˣ`
to assume that `f₁` and `f₂` are homeomorphisms. -/
@@ -1082,6 +1838,12 @@ theorem units_semiconj_of_translationNumber_eq {f₁ f₂ : CircleDeg1Liftˣ} (h
hF (Multiplicative.ofAdd 1)
#align circle_deg1_lift.units_semiconj_of_translation_number_eq CircleDeg1Lift.units_semiconj_of_translationNumber_eq
+/- warning: circle_deg1_lift.semiconj_of_is_unit_of_translation_number_eq -> CircleDeg1Lift.semiconj_of_isUnit_of_translationNumber_eq is a dubious translation:
+lean 3 declaration is
+ forall {f₁ : CircleDeg1Lift} {f₂ : CircleDeg1Lift}, (IsUnit.{0} CircleDeg1Lift CircleDeg1Lift.monoid f₁) -> (IsUnit.{0} CircleDeg1Lift CircleDeg1Lift.monoid f₂) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f₁) (CircleDeg1Lift.translationNumber f₂)) -> (Exists.{1} CircleDeg1Lift (fun (F : CircleDeg1Lift) => Function.Semiconj.{0, 0} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun F) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f₁) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f₂)))
+but is expected to have type
+ forall {f₁ : CircleDeg1Lift} {f₂ : CircleDeg1Lift}, (IsUnit.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f₁) -> (IsUnit.{0} CircleDeg1Lift CircleDeg1Lift.instMonoidCircleDeg1Lift f₂) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f₁) (CircleDeg1Lift.translationNumber f₂)) -> (Exists.{1} CircleDeg1Lift (fun (F : CircleDeg1Lift) => Function.Semiconj.{0, 0} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) F) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f₁) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f₂)))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.semiconj_of_is_unit_of_translation_number_eq CircleDeg1Lift.semiconj_of_isUnit_of_translationNumber_eqₓ'. -/
/-- If two lifts of circle homeomorphisms have the same translation number, then they are
semiconjugate by a `circle_deg1_lift`. This version uses assumptions `is_unit f₁` and `is_unit f₂`
to assume that `f₁` and `f₂` are homeomorphisms. -/
@@ -1092,6 +1854,12 @@ theorem semiconj_of_isUnit_of_translationNumber_eq {f₁ f₂ : CircleDeg1Lift}
exact units_semiconj_of_translation_number_eq h
#align circle_deg1_lift.semiconj_of_is_unit_of_translation_number_eq CircleDeg1Lift.semiconj_of_isUnit_of_translationNumber_eq
+/- warning: circle_deg1_lift.semiconj_of_bijective_of_translation_number_eq -> CircleDeg1Lift.semiconj_of_bijective_of_translationNumber_eq is a dubious translation:
+lean 3 declaration is
+ forall {f₁ : CircleDeg1Lift} {f₂ : CircleDeg1Lift}, (Function.Bijective.{1, 1} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f₁)) -> (Function.Bijective.{1, 1} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f₂)) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f₁) (CircleDeg1Lift.translationNumber f₂)) -> (Exists.{1} CircleDeg1Lift (fun (F : CircleDeg1Lift) => Function.Semiconj.{0, 0} Real Real (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun F) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f₁) (coeFn.{1, 1} CircleDeg1Lift (fun (_x : CircleDeg1Lift) => Real -> Real) CircleDeg1Lift.hasCoeToFun f₂)))
+but is expected to have type
+ forall {f₁ : CircleDeg1Lift} {f₂ : CircleDeg1Lift}, (Function.Bijective.{1, 1} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f₁)) -> (Function.Bijective.{1, 1} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f₂)) -> (Eq.{1} Real (CircleDeg1Lift.translationNumber f₁) (CircleDeg1Lift.translationNumber f₂)) -> (Exists.{1} CircleDeg1Lift (fun (F : CircleDeg1Lift) => Function.Semiconj.{0, 0} Real Real (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) F) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f₁) (FunLike.coe.{1, 1, 1} CircleDeg1Lift Real (fun (_x : Real) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Real) => Real) _x) (InfHomClass.toFunLike.{0, 0, 0} CircleDeg1Lift Real Real (Lattice.toInf.{0} Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder))) (Lattice.toInf.{0} Real Real.lattice) (LatticeHomClass.toInfHomClass.{0, 0, 0} CircleDeg1Lift Real Real (DistribLattice.toLattice.{0} Real (instDistribLattice.{0} Real Real.linearOrder)) Real.lattice (OrderHomClass.toLatticeHomClass.{0, 0, 0} CircleDeg1Lift Real Real Real.linearOrder Real.lattice CircleDeg1Lift.instOrderHomClassCircleDeg1LiftRealInstLEReal))) f₂)))
+Case conversion may be inaccurate. Consider using '#align circle_deg1_lift.semiconj_of_bijective_of_translation_number_eq CircleDeg1Lift.semiconj_of_bijective_of_translationNumber_eqₓ'. -/
/-- If two lifts of circle homeomorphisms have the same translation number, then they are
semiconjugate by a `circle_deg1_lift`. This version uses assumptions `bijective f₁` and
`bijective f₂` to assume that `f₁` and `f₂` are homeomorphisms. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce7e9d53d4bbc38065db3b595cd5bd73c323bc1d
@@ -708,7 +708,7 @@ theorem transnumAuxSeq_dist_lt (n : ℕ) :
have : 0 < (2 ^ (n + 1) : ℝ) := pow_pos zero_lt_two _
rw [div_div, ← pow_succ, ← abs_of_pos this]
replace := abs_pos.2 (ne_of_gt this)
- convert (div_lt_div_right this).2 ((f ^ 2 ^ n).dist_map_map_zero_lt (f ^ 2 ^ n))
+ convert(div_lt_div_right this).2 ((f ^ 2 ^ n).dist_map_map_zero_lt (f ^ 2 ^ n))
simp_rw [transnum_aux_seq, Real.dist_eq]
rw [← abs_div, sub_div, pow_succ', pow_succ, ← two_mul, mul_div_mul_left _ _ (two_ne_zero' ℝ),
pow_mul, sq, mul_apply]
@@ -732,7 +732,7 @@ theorem tendsto_translationNumber_of_dist_bounded_aux (x : ℕ → ℝ) (C : ℝ
· exact fun n => C / 2 ^ n
· intro n
have : 0 < (2 ^ n : ℝ) := pow_pos zero_lt_two _
- convert (div_le_div_right this).2 (H (2 ^ n))
+ convert(div_le_div_right this).2 (H (2 ^ n))
rw [transnum_aux_seq, Real.dist_eq, ← sub_div, abs_div, abs_of_pos this, Real.dist_eq]
·
exact
mathlib commit https://github.com/leanprover-community/mathlib/commit/3180fab693e2cee3bff62675571264cb8778b212
@@ -736,7 +736,7 @@ theorem tendsto_translationNumber_of_dist_bounded_aux (x : ℕ → ℝ) (C : ℝ
rw [transnum_aux_seq, Real.dist_eq, ← sub_div, abs_div, abs_of_pos this, Real.dist_eq]
·
exact
- mul_zero C ▸
+ MulZeroClass.mul_zero C ▸
tendsto_const_nhds.mul
(tendsto_inv_at_top_zero.comp <| tendsto_pow_atTop_atTop_of_one_lt one_lt_two)
#align circle_deg1_lift.tendsto_translation_number_of_dist_bounded_aux CircleDeg1Lift.tendsto_translationNumber_of_dist_bounded_aux
mathlib commit https://github.com/leanprover-community/mathlib/commit/4c586d291f189eecb9d00581aeb3dd998ac34442
@@ -508,7 +508,7 @@ theorem ceil_map_map_zero_le : ⌈f (g 0)⌉ ≤ ⌈f 0⌉ + ⌈g 0⌉ :=
theorem map_map_zero_lt : f (g 0) < f 0 + g 0 + 1 :=
calc
f (g 0) ≤ f 0 + ⌈g 0⌉ := f.map_map_zero_le g
- _ < f 0 + (g 0 + 1) := add_lt_add_left (ceil_lt_add_one _) _
+ _ < f 0 + (g 0 + 1) := (add_lt_add_left (ceil_lt_add_one _) _)
_ = f 0 + g 0 + 1 := (add_assoc _ _ _).symm
#align circle_deg1_lift.map_map_zero_lt CircleDeg1Lift.map_map_zero_lt
@@ -541,7 +541,7 @@ theorem le_ceil_map_map_zero : ⌈f 0⌉ + ⌊g 0⌋ ≤ ⌈(f * g) 0⌉ :=
theorem lt_map_map_zero : f 0 + g 0 - 1 < f (g 0) :=
calc
f 0 + g 0 - 1 = f 0 + (g 0 - 1) := add_sub_assoc _ _ _
- _ < f 0 + ⌊g 0⌋ := add_lt_add_left (sub_one_lt_floor _) _
+ _ < f 0 + ⌊g 0⌋ := (add_lt_add_left (sub_one_lt_floor _) _)
_ ≤ f (g 0) := f.le_map_map_zero g
#align circle_deg1_lift.lt_map_map_zero CircleDeg1Lift.lt_map_map_zero
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
b ≠ 0 → a * b / b = a
(#12424)
This lets us unify a few lemmas between GroupWithZero
and EuclideanDomain
and two lemmas that were previously proved separately for Nat
, Int
, Polynomial
.
@@ -810,7 +810,7 @@ theorem translationNumber_mono : Monotone τ := fun f g h =>
theorem translationNumber_translate (x : ℝ) : τ (translate <| Multiplicative.ofAdd x) = x :=
translationNumber_eq_of_tendsto₀' _ <| by
simp only [translate_iterate, translate_apply, add_zero, Nat.cast_succ,
- mul_div_cancel_left₀ (G₀ := ℝ) _ (Nat.cast_add_one_ne_zero _), tendsto_const_nhds]
+ mul_div_cancel_left₀ (M₀ := ℝ) _ (Nat.cast_add_one_ne_zero _), tendsto_const_nhds]
#align circle_deg1_lift.translation_number_translate CircleDeg1Lift.translationNumber_translate
theorem translationNumber_le_of_le_add {z : ℝ} (hz : ∀ x, f x ≤ x + z) : τ f ≤ z :=
@@ -483,7 +483,7 @@ theorem ceil_map_map_zero_le : ⌈f (g 0)⌉ ≤ ⌈f 0⌉ + ⌈g 0⌉ :=
theorem map_map_zero_lt : f (g 0) < f 0 + g 0 + 1 :=
calc
f (g 0) ≤ f 0 + ⌈g 0⌉ := f.map_map_zero_le g
- _ < f 0 + (g 0 + 1) := (add_lt_add_left (ceil_lt_add_one _) _)
+ _ < f 0 + (g 0 + 1) := add_lt_add_left (ceil_lt_add_one _) _
_ = f 0 + g 0 + 1 := (add_assoc _ _ _).symm
#align circle_deg1_lift.map_map_zero_lt CircleDeg1Lift.map_map_zero_lt
@@ -512,7 +512,7 @@ theorem le_ceil_map_map_zero : ⌈f 0⌉ + ⌊g 0⌋ ≤ ⌈(f * g) 0⌉ :=
theorem lt_map_map_zero : f 0 + g 0 - 1 < f (g 0) :=
calc
f 0 + g 0 - 1 = f 0 + (g 0 - 1) := add_sub_assoc _ _ _
- _ < f 0 + ⌊g 0⌋ := (add_lt_add_left (sub_one_lt_floor _) _)
+ _ < f 0 + ⌊g 0⌋ := add_lt_add_left (sub_one_lt_floor _) _
_ ≤ f (g 0) := f.le_map_map_zero g
#align circle_deg1_lift.lt_map_map_zero CircleDeg1Lift.lt_map_map_zero
OfNat
and Nat.cast
lemmas (#11861)
This renames
Int.cast_ofNat
to Int.cast_natCast
Int.int_cast_ofNat
to Int.cast_ofNat
I think the history here is that this lemma was previously about Int.ofNat
, before we globally fixed the simp-normal form to be Nat.cast
.
Since the Int.cast_ofNat
name is repurposed, it can't be deprecated. Int.int_cast_ofNat
is such a wonky name that it was probably never used.
@@ -614,7 +614,7 @@ theorem lt_iterate_pos_iff {x : ℝ} {m : ℤ} {n : ℕ} (hn : 0 < n) :
#align circle_deg1_lift.lt_iterate_pos_iff CircleDeg1Lift.lt_iterate_pos_iff
theorem mul_floor_map_zero_le_floor_iterate_zero (n : ℕ) : ↑n * ⌊f 0⌋ ≤ ⌊f^[n] 0⌋ := by
- rw [le_floor, Int.cast_mul, Int.cast_ofNat, ← zero_add ((n : ℝ) * _)]
+ rw [le_floor, Int.cast_mul, Int.cast_natCast, ← zero_add ((n : ℝ) * _)]
apply le_iterate_of_add_int_le_map
simp [floor_le]
#align circle_deg1_lift.mul_floor_map_zero_le_floor_iterate_zero CircleDeg1Lift.mul_floor_map_zero_le_floor_iterate_zero
@@ -639,7 +639,6 @@ def translationNumber : ℝ :=
end
--- mathport name: exprτ
-- TODO: choose two different symbols for `CircleDeg1Lift.translationNumber` and the future
-- `circle_mono_homeo.rotation_number`, then make them `localized notation`s
local notation "τ" => translationNumber
We change the following field in the definition of an additive commutative monoid:
nsmul_succ : ∀ (n : ℕ) (x : G),
- AddMonoid.nsmul (n + 1) x = x + AddMonoid.nsmul n x
+ AddMonoid.nsmul (n + 1) x = AddMonoid.nsmul n x + x
where the latter is more natural
We adjust the definitions of ^
in monoids, groups, etc.
Originally there was a warning comment about why this natural order was preferred
use
x * npowRec n x
and notnpowRec n x * x
in the definition to make sure that definitional unfolding ofnpowRec
is blocked, to avoid deep recursion issues.
but it seems to no longer apply.
Remarks on the PR :
pow_succ
and pow_succ'
have switched their meanings.Ideal.IsPrime.mul_mem_pow
which is defined in [Mathlib/RingTheory/DedekindDomain/Ideal.lean]. Changing the order of operation forced me to add the symmetric lemma Ideal.IsPrime.mem_pow_mul
.@@ -266,7 +266,7 @@ theorem coe_pow : ∀ n : ℕ, ⇑(f ^ n) = f^[n]
| 0 => rfl
| n + 1 => by
ext x
- simp [coe_pow n, pow_succ']
+ simp [coe_pow n, pow_succ]
#align circle_deg1_lift.coe_pow CircleDeg1Lift.coe_pow
theorem semiconjBy_iff_semiconj {f g₁ g₂ : CircleDeg1Lift} :
@@ -671,11 +671,11 @@ theorem transnumAuxSeq_zero : f.transnumAuxSeq 0 = f 0 := by simp [transnumAuxSe
theorem transnumAuxSeq_dist_lt (n : ℕ) :
dist (f.transnumAuxSeq n) (f.transnumAuxSeq (n + 1)) < 1 / 2 / 2 ^ n := by
have : 0 < (2 ^ (n + 1) : ℝ) := pow_pos zero_lt_two _
- rw [div_div, ← pow_succ, ← abs_of_pos this]
+ rw [div_div, ← pow_succ', ← abs_of_pos this]
replace := abs_pos.2 (ne_of_gt this)
convert (div_lt_div_right this).2 ((f ^ 2 ^ n).dist_map_map_zero_lt (f ^ 2 ^ n)) using 1
simp_rw [transnumAuxSeq, Real.dist_eq]
- rw [← abs_div, sub_div, pow_succ', pow_succ, ← two_mul, mul_div_mul_left _ _ (two_ne_zero' ℝ),
+ rw [← abs_div, sub_div, pow_succ, pow_succ', ← two_mul, mul_div_mul_left _ _ (two_ne_zero' ℝ),
pow_mul, sq, mul_apply]
#align circle_deg1_lift.transnum_aux_seq_dist_lt CircleDeg1Lift.transnumAuxSeq_dist_lt
@@ -745,7 +745,7 @@ theorem translationNumber_units_inv (f : CircleDeg1Liftˣ) : τ ↑f⁻¹ = -τ
theorem translationNumber_pow : ∀ n : ℕ, τ (f ^ n) = n * τ f
| 0 => by simp
| n + 1 => by
- rw [pow_succ', translationNumber_mul_of_commute (Commute.pow_self f n),
+ rw [pow_succ, translationNumber_mul_of_commute (Commute.pow_self f n),
translationNumber_pow n, Nat.cast_add_one, add_mul, one_mul]
#align circle_deg1_lift.translation_number_pow CircleDeg1Lift.translationNumber_pow
Move files from Topology.Algebra.Order
to Topology.Order
when they do not contain any algebra. Also move Topology.LocalExtr
to Topology.Order.LocalExtr
.
According to git, the moves are:
Mathlib/Topology/{Algebra => }/Order/ExtendFrom.lean
Mathlib/Topology/{Algebra => }/Order/ExtrClosure.lean
Mathlib/Topology/{Algebra => }/Order/Filter.lean
Mathlib/Topology/{Algebra => }/Order/IntermediateValue.lean
Mathlib/Topology/{Algebra => }/Order/LeftRight.lean
Mathlib/Topology/{Algebra => }/Order/LeftRightLim.lean
Mathlib/Topology/{Algebra => }/Order/MonotoneContinuity.lean
Mathlib/Topology/{Algebra => }/Order/MonotoneConvergence.lean
Mathlib/Topology/{Algebra => }/Order/ProjIcc.lean
Mathlib/Topology/{Algebra => }/Order/T5.lean
Mathlib/Topology/{ => Order}/LocalExtr.lean
@@ -8,7 +8,7 @@ import Mathlib.Analysis.SpecificLimits.Basic
import Mathlib.Order.Iterate
import Mathlib.Order.SemiconjSup
import Mathlib.Tactic.Monotonicity
-import Mathlib.Topology.Algebra.Order.MonotoneContinuity
+import Mathlib.Topology.Order.MonotoneContinuity
#align_import dynamics.circle.rotation_number.translation_number from "leanprover-community/mathlib"@"f2ce6086713c78a7f880485f7917ea547a215982"
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 | |
@@ -811,7 +811,7 @@ theorem translationNumber_mono : Monotone τ := fun f g h =>
theorem translationNumber_translate (x : ℝ) : τ (translate <| Multiplicative.ofAdd x) = x :=
translationNumber_eq_of_tendsto₀' _ <| by
simp only [translate_iterate, translate_apply, add_zero, Nat.cast_succ,
- mul_div_cancel_left (G₀ := ℝ) _ (Nat.cast_add_one_ne_zero _), tendsto_const_nhds]
+ mul_div_cancel_left₀ (G₀ := ℝ) _ (Nat.cast_add_one_ne_zero _), tendsto_const_nhds]
#align circle_deg1_lift.translation_number_translate CircleDeg1Lift.translationNumber_translate
theorem translationNumber_le_of_le_add {z : ℝ} (hz : ∀ x, f x ≤ x + z) : τ f ≤ z :=
/
lemmas (#10634)
The new names and argument orders match the corresponding *
lemmas, which I already took care of in a previous PR.
From LeanAPAP
@@ -804,8 +804,8 @@ theorem tendsto_translation_number' (x : ℝ) :
#align circle_deg1_lift.tendsto_translation_number' CircleDeg1Lift.tendsto_translation_number'
theorem translationNumber_mono : Monotone τ := fun f g h =>
- le_of_tendsto_of_tendsto' f.tendsto_translation_number₀ g.tendsto_translation_number₀ fun n =>
- div_le_div_of_le n.cast_nonneg (pow_mono h n 0)
+ le_of_tendsto_of_tendsto' f.tendsto_translation_number₀ g.tendsto_translation_number₀ fun n => by
+ gcongr; exact pow_mono h _ _
#align circle_deg1_lift.translation_number_mono CircleDeg1Lift.translationNumber_mono
theorem translationNumber_translate (x : ℝ) : τ (translate <| Multiplicative.ofAdd x) = x :=
open Classical
(#11199)
We remove all but one open Classical
s, instead preferring to use open scoped Classical
. The only real side-effect this led to is moving a couple declarations to use Exists.choose
instead of Classical.choose
.
The first few commits are explicitly labelled regex replaces for ease of review.
@@ -119,7 +119,8 @@ circle homeomorphism, rotation number
-/
-open Filter Set Int Topology Classical
+open scoped Classical
+open Filter Set Int Topology
open Function hiding Commute
/-!
The FunLike hierarchy is very big and gets scanned through each time we need a coercion (via the CoeFun
instance). It looks like unbundled inheritance suits Lean 4 better here. The only class that still extends FunLike
is EquivLike
, since that has a custom coe_injective'
field that is easier to implement. All other classes should take FunLike
or EquivLike
as a parameter.
Previously, morphism classes would be Type
-valued and extend FunLike
:
/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
extends FunLike F A B :=
(map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))
After this PR, they should be Prop
-valued and take FunLike
as a parameter:
/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
[FunLike F A B] : Prop :=
(map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))
(Note that A B
stay marked as outParam
even though they are not purely required to be so due to the FunLike
parameter already filling them in. This is required to see through type synonyms, which is important in the category theory library. Also, I think keeping them as outParam
is slightly faster.)
Similarly, MyEquivClass
should take EquivLike
as a parameter.
As a result, every mention of [MyHomClass F A B]
should become [FunLike F A B] [MyHomClass F A B]
.
While overall this gives some great speedups, there are some cases that are noticeably slower. In particular, a failing application of a lemma such as map_mul
is more expensive. This is due to suboptimal processing of arguments. For example:
variable [FunLike F M N] [Mul M] [Mul N] (f : F) (x : M) (y : M)
theorem map_mul [MulHomClass F M N] : f (x * y) = f x * f y
example [AddHomClass F A B] : f (x * y) = f x * f y := map_mul f _ _
Before this PR, applying map_mul f
gives the goals [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]
. Since M
and N
are out_param
s, [MulHomClass F ?M ?N]
is synthesized first, supplies values for ?M
and ?N
and then the Mul M
and Mul N
instances can be found.
After this PR, the goals become [FunLike F ?M ?N] [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]
. Now [FunLike F ?M ?N]
is synthesized first, supplies values for ?M
and ?N
and then the Mul M
and Mul N
instances can be found, before trying MulHomClass F M N
which fails. Since the Mul
hierarchy is very big, this can be slow to fail, especially when there is no such Mul
instance.
A long-term but harder to achieve solution would be to specify the order in which instance goals get solved. For example, we'd like to change the arguments to map_mul
to look like [FunLike F M N] [Mul M] [Mul N] [highPriority <| MulHomClass F M N]
because MulHomClass
fails or succeeds much faster than the others.
As a consequence, the simpNF
linter is much slower since by design it tries and fails to apply many map_
lemmas. The same issue occurs a few times in existing calls to simp [map_mul]
, where map_mul
is tried "too soon" and fails. Thanks to the speedup of leanprover/lean4#2478 the impact is very limited, only in files that already were close to the timeout.
simp
not firing sometimesThis affects map_smulₛₗ
and related definitions. For simp
lemmas Lean apparently uses a slightly different mechanism to find instances, so that rw
can find every argument to map_smulₛₗ
successfully but simp
can't: leanprover/lean4#3701.
Especially in the category theory library, we might sometimes have a type A
which is also accessible as a synonym (Bundled A hA).1
. Instance synthesis doesn't always work if we have f : A →* B
but x * y : (Bundled A hA).1
or vice versa. This seems to be mostly fixed by keeping A B
as outParam
s in MulHomClass F A B
. (Presumably because Lean will do a definitional check A =?= (Bundled A hA).1
instead of using the syntax in the discrimination tree.)
The timeouts can be worked around for now by specifying which map_mul
we mean, either as map_mul f
for some explicit f
, or as e.g. MonoidHomClass.map_mul
.
map_smulₛₗ
not firing as simp
lemma can be worked around by going back to the pre-FunLike situation and making LinearMap.map_smulₛₗ
a simp
lemma instead of the generic map_smulₛₗ
. Writing simp [map_smulₛₗ _]
also works.
Co-authored-by: Matthew Ballard <matt@mrb.email> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Scott Morrison <scott@tqft.net> Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
@@ -133,9 +133,11 @@ structure CircleDeg1Lift extends ℝ →o ℝ : Type where
namespace CircleDeg1Lift
-instance : OrderHomClass CircleDeg1Lift ℝ ℝ where
+instance : FunLike CircleDeg1Lift ℝ ℝ where
coe f := f.toFun
coe_injective' | ⟨⟨_, _⟩, _⟩, ⟨⟨_, _⟩, _⟩, rfl => rfl
+
+instance : OrderHomClass CircleDeg1Lift ℝ ℝ where
map_rel f _ _ h := f.monotone' h
@[simp] theorem coe_mk (f h) : ⇑(mk f h) = f := rfl
@@ -774,7 +774,7 @@ theorem tendsto_translation_number₀' :
refine'
tendsto_iff_dist_tendsto_zero.2 <|
squeeze_zero (fun _ => dist_nonneg) (fun n => _)
- ((tendsto_const_div_atTop_nhds_0_nat 1).comp (tendsto_add_atTop_nat 1))
+ ((tendsto_const_div_atTop_nhds_zero_nat 1).comp (tendsto_add_atTop_nat 1))
dsimp
have : (0 : ℝ) < n + 1 := n.cast_add_one_pos
rw [Real.dist_eq, div_sub' _ _ _ (ne_of_gt this), abs_div, ← Real.dist_eq, abs_of_pos this,
FunLike
to DFunLike
(#9785)
This prepares for the introduction of a non-dependent synonym of FunLike, which helps a lot with keeping #8386 readable.
This is entirely search-and-replace in 680197f combined with manual fixes in 4145626, e900597 and b8428f8. The commands that generated this change:
sed -i 's/\bFunLike\b/DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoFunLike\b/toDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/import Mathlib.Data.DFunLike/import Mathlib.Data.FunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bHom_FunLike\b/Hom_DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\binstFunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bfunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoo many metavariables to apply `fun_like.has_coe_to_fun`/too many metavariables to apply `DFunLike.hasCoeToFun`/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
@@ -164,15 +164,15 @@ theorem map_add_one : ∀ x, f (x + 1) = f x + 1 :=
theorem map_one_add (x : ℝ) : f (1 + x) = 1 + f x := by rw [add_comm, map_add_one, add_comm 1]
#align circle_deg1_lift.map_one_add CircleDeg1Lift.map_one_add
-#noalign circle_deg1_lift.coe_inj -- Use `FunLike.coe_inj`
+#noalign circle_deg1_lift.coe_inj -- Use `DFunLike.coe_inj`
@[ext]
theorem ext ⦃f g : CircleDeg1Lift⦄ (h : ∀ x, f x = g x) : f = g :=
- FunLike.ext f g h
+ DFunLike.ext f g h
#align circle_deg1_lift.ext CircleDeg1Lift.ext
theorem ext_iff {f g : CircleDeg1Lift} : f = g ↔ ∀ x, f x = g x :=
- FunLike.ext_iff
+ DFunLike.ext_iff
#align circle_deg1_lift.ext_iff CircleDeg1Lift.ext_iff
instance : Monoid CircleDeg1Lift where
@@ -182,7 +182,7 @@ instance : Monoid CircleDeg1Lift where
one := ⟨.id, fun _ => rfl⟩
mul_one f := rfl
one_mul f := rfl
- mul_assoc f₁ f₂ f₃ := FunLike.coe_injective rfl
+ mul_assoc f₁ f₂ f₃ := DFunLike.coe_injective rfl
instance : Inhabited CircleDeg1Lift := ⟨1⟩
@@ -802,7 +802,7 @@ theorem tendsto_translation_number' (x : ℝ) :
theorem translationNumber_mono : Monotone τ := fun f g h =>
le_of_tendsto_of_tendsto' f.tendsto_translation_number₀ g.tendsto_translation_number₀ fun n =>
- div_le_div_of_le_of_nonneg (pow_mono h n 0) n.cast_nonneg
+ div_le_div_of_le n.cast_nonneg (pow_mono h n 0)
#align circle_deg1_lift.translation_number_mono CircleDeg1Lift.translationNumber_mono
theorem translationNumber_translate (x : ℝ) : τ (translate <| Multiplicative.ofAdd x) = x :=
@@ -927,10 +927,10 @@ theorem lt_translationNumber_of_forall_add_lt (hf : Continuous f) {z : ℝ} (hz
such that `f x = x + τ f`. -/
theorem exists_eq_add_translationNumber (hf : Continuous f) : ∃ x, f x = x + τ f := by
obtain ⟨a, ha⟩ : ∃ x, f x ≤ x + τ f := by
- by_contra' H
+ by_contra! H
exact lt_irrefl _ (f.lt_translationNumber_of_forall_add_lt hf H)
obtain ⟨b, hb⟩ : ∃ x, x + τ f ≤ f x := by
- by_contra' H
+ by_contra! H
exact lt_irrefl _ (f.translationNumber_lt_of_forall_lt_add hf H)
exact intermediate_value_univ₂ hf (continuous_id.add continuous_const) ha hb
#align circle_deg1_lift.exists_eq_add_translation_number CircleDeg1Lift.exists_eq_add_translationNumber
exact_mod_cast
tactic with mod_cast
elaborator where possible (#8404)
We still have the exact_mod_cast
tactic, used in a few places, which somehow (?) works a little bit harder to prevent the expected type influencing the elaboration of the term. I would like to get to the bottom of this, and it will be easier once the only usages of exact_mod_cast
are the ones that don't work using the term elaborator by itself.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
@@ -659,7 +659,7 @@ theorem translationNumber_eq_of_tendsto₀ {τ' : ℝ}
theorem translationNumber_eq_of_tendsto₀' {τ' : ℝ}
(h : Tendsto (fun n : ℕ => f^[n + 1] 0 / (n + 1)) atTop (𝓝 τ')) : τ f = τ' :=
- f.translationNumber_eq_of_tendsto₀ <| (tendsto_add_atTop_iff_nat 1).1 (by exact_mod_cast h)
+ f.translationNumber_eq_of_tendsto₀ <| (tendsto_add_atTop_iff_nat 1).1 (mod_cast h)
#align circle_deg1_lift.translation_number_eq_of_tendsto₀' CircleDeg1Lift.translationNumber_eq_of_tendsto₀'
theorem transnumAuxSeq_zero : f.transnumAuxSeq 0 = f 0 := by simp [transnumAuxSeq]
@@ -783,7 +783,7 @@ theorem tendsto_translation_number₀' :
#align circle_deg1_lift.tendsto_translation_number₀' CircleDeg1Lift.tendsto_translation_number₀'
theorem tendsto_translation_number₀ : Tendsto (fun n : ℕ => (f ^ n) 0 / n) atTop (𝓝 <| τ f) :=
- (tendsto_add_atTop_iff_nat 1).1 (by exact_mod_cast f.tendsto_translation_number₀')
+ (tendsto_add_atTop_iff_nat 1).1 (mod_cast f.tendsto_translation_number₀')
#align circle_deg1_lift.tendsto_translation_number₀ CircleDeg1Lift.tendsto_translation_number₀
/-- For any `x : ℝ` the sequence $\frac{f^n(x)-x}{n}$ tends to the translation number of `f`.
@@ -796,8 +796,8 @@ theorem tendsto_translationNumber (x : ℝ) :
#align circle_deg1_lift.tendsto_translation_number CircleDeg1Lift.tendsto_translationNumber
theorem tendsto_translation_number' (x : ℝ) :
- Tendsto (fun n : ℕ => ((f ^ (n + 1) : CircleDeg1Lift) x - x) / (n + 1)) atTop (𝓝 <| τ f) := by
- exact_mod_cast (tendsto_add_atTop_iff_nat 1).2 (f.tendsto_translationNumber x)
+ Tendsto (fun n : ℕ => ((f ^ (n + 1) : CircleDeg1Lift) x - x) / (n + 1)) atTop (𝓝 <| τ f) :=
+ mod_cast (tendsto_add_atTop_iff_nat 1).2 (f.tendsto_translationNumber x)
#align circle_deg1_lift.tendsto_translation_number' CircleDeg1Lift.tendsto_translation_number'
theorem translationNumber_mono : Monotone τ := fun f g h =>
Hom
and file name (#8095)
I believe the file defining a type of morphisms belongs alongside the file defining the structure this morphism works on. So I would like to reorganize the files in the Mathlib.Algebra.Hom
folder so that e.g. Mathlib.Algebra.Hom.Ring
becomes Mathlib.Algebra.Ring.Hom
and Mathlib.Algebra.Hom.NonUnitalAlg
becomes Mathlib.Algebra.Algebra.NonUnitalHom
.
While fixing the imports I went ahead and sorted them for good luck.
The full list of changes is: renamed: Mathlib/Algebra/Hom/NonUnitalAlg.lean -> Mathlib/Algebra/Algebra/NonUnitalHom.lean renamed: Mathlib/Algebra/Hom/Aut.lean -> Mathlib/Algebra/Group/Aut.lean renamed: Mathlib/Algebra/Hom/Commute.lean -> Mathlib/Algebra/Group/Commute/Hom.lean renamed: Mathlib/Algebra/Hom/Embedding.lean -> Mathlib/Algebra/Group/Embedding.lean renamed: Mathlib/Algebra/Hom/Equiv/Basic.lean -> Mathlib/Algebra/Group/Equiv/Basic.lean renamed: Mathlib/Algebra/Hom/Equiv/TypeTags.lean -> Mathlib/Algebra/Group/Equiv/TypeTags.lean renamed: Mathlib/Algebra/Hom/Equiv/Units/Basic.lean -> Mathlib/Algebra/Group/Units/Equiv.lean renamed: Mathlib/Algebra/Hom/Equiv/Units/GroupWithZero.lean -> Mathlib/Algebra/GroupWithZero/Units/Equiv.lean renamed: Mathlib/Algebra/Hom/Freiman.lean -> Mathlib/Algebra/Group/Freiman.lean renamed: Mathlib/Algebra/Hom/Group/Basic.lean -> Mathlib/Algebra/Group/Hom/Basic.lean renamed: Mathlib/Algebra/Hom/Group/Defs.lean -> Mathlib/Algebra/Group/Hom/Defs.lean renamed: Mathlib/Algebra/Hom/GroupAction.lean -> Mathlib/GroupTheory/GroupAction/Hom.lean renamed: Mathlib/Algebra/Hom/GroupInstances.lean -> Mathlib/Algebra/Group/Hom/Instances.lean renamed: Mathlib/Algebra/Hom/Iterate.lean -> Mathlib/Algebra/GroupPower/IterateHom.lean renamed: Mathlib/Algebra/Hom/Centroid.lean -> Mathlib/Algebra/Ring/CentroidHom.lean renamed: Mathlib/Algebra/Hom/Ring/Basic.lean -> Mathlib/Algebra/Ring/Hom/Basic.lean renamed: Mathlib/Algebra/Hom/Ring/Defs.lean -> Mathlib/Algebra/Ring/Hom/Defs.lean renamed: Mathlib/Algebra/Hom/Units.lean -> Mathlib/Algebra/Group/Units/Hom.lean
Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Reorganizing.20.60Mathlib.2EAlgebra.2EHom.60
@@ -3,7 +3,7 @@ Copyright (c) 2020 Yury G. Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury G. Kudryashov
-/
-import Mathlib.Algebra.Hom.Iterate
+import Mathlib.Algebra.GroupPower.IterateHom
import Mathlib.Analysis.SpecificLimits.Basic
import Mathlib.Order.Iterate
import Mathlib.Order.SemiconjSup
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -963,7 +963,7 @@ orientation preserving circle homeomorphisms. Suppose that for each `g : G` the
This is a version of Proposition 5.4 from [Étienne Ghys, Groupes d'homeomorphismes du cercle et
cohomologie bornee][ghys87:groupes]. -/
-theorem semiconj_of_group_action_of_forall_translationNumber_eq {G : Type _} [Group G]
+theorem semiconj_of_group_action_of_forall_translationNumber_eq {G : Type*} [Group G]
(f₁ f₂ : G →* CircleDeg1Lift) (h : ∀ g, τ (f₁ g) = τ (f₂ g)) :
∃ F : CircleDeg1Lift, ∀ g, Semiconj F (f₁ g) (f₂ g) := by
-- Equality of translation number guarantees that for each `x`
@@ -2,11 +2,6 @@
Copyright (c) 2020 Yury G. Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury G. Kudryashov
-
-! This file was ported from Lean 3 source module dynamics.circle.rotation_number.translation_number
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Algebra.Hom.Iterate
import Mathlib.Analysis.SpecificLimits.Basic
@@ -15,6 +10,8 @@ import Mathlib.Order.SemiconjSup
import Mathlib.Tactic.Monotonicity
import Mathlib.Topology.Algebra.Order.MonotoneContinuity
+#align_import dynamics.circle.rotation_number.translation_number from "leanprover-community/mathlib"@"f2ce6086713c78a7f880485f7917ea547a215982"
+
/-!
# Translation number of a monotone real map that commutes with `x ↦ x + 1`
@@ -961,7 +961,7 @@ theorem translationNumber_eq_rat_iff (hf : Continuous f) {m : ℤ} {n : ℕ} (hn
/-- Consider two actions `f₁ f₂ : G →* CircleDeg1Lift` of a group on the real line by lifts of
orientation preserving circle homeomorphisms. Suppose that for each `g : G` the homeomorphisms
-`f₁ g` and `f₂ g` have equal rotation numbers. Then there exists `F : CircleDeg1Lift` such that
+`f₁ g` and `f₂ g` have equal rotation numbers. Then there exists `F : CircleDeg1Lift` such that
`F * f₁ g = f₂ g * F` for all `g : G`.
This is a version of Proposition 5.4 from [Étienne Ghys, Groupes d'homeomorphismes du cercle et
@@ -318,7 +318,7 @@ theorem translate_pow (x : ℝ) (n : ℕ) :
@[simp]
theorem translate_iterate (x : ℝ) (n : ℕ) :
- translate (Multiplicative.ofAdd x)^[n] = translate (Multiplicative.ofAdd <| ↑n * x) := by
+ (translate (Multiplicative.ofAdd x))^[n] = translate (Multiplicative.ofAdd <| ↑n * x) := by
rw [← coe_pow, ← Units.val_pow_eq_pow_val, translate_pow]
#align circle_deg1_lift.translate_iterate CircleDeg1Lift.translate_iterate
@@ -569,51 +569,51 @@ work for `n = 0`. For `<` and `>` we formulate only `iff` versions.
theorem iterate_le_of_map_le_add_int {x : ℝ} {m : ℤ} (h : f x ≤ x + m) (n : ℕ) :
- (f^[n]) x ≤ x + n * m := by
+ f^[n] x ≤ x + n * m := by
simpa only [nsmul_eq_mul, add_right_iterate] using
(f.commute_add_int m).iterate_le_of_map_le f.monotone (monotone_id.add_const (m : ℝ)) h n
#align circle_deg1_lift.iterate_le_of_map_le_add_int CircleDeg1Lift.iterate_le_of_map_le_add_int
theorem le_iterate_of_add_int_le_map {x : ℝ} {m : ℤ} (h : x + m ≤ f x) (n : ℕ) :
- x + n * m ≤ (f^[n]) x := by
+ x + n * m ≤ f^[n] x := by
simpa only [nsmul_eq_mul, add_right_iterate] using
(f.commute_add_int m).symm.iterate_le_of_map_le (monotone_id.add_const (m : ℝ)) f.monotone h n
#align circle_deg1_lift.le_iterate_of_add_int_le_map CircleDeg1Lift.le_iterate_of_add_int_le_map
theorem iterate_eq_of_map_eq_add_int {x : ℝ} {m : ℤ} (h : f x = x + m) (n : ℕ) :
- (f^[n]) x = x + n * m := by
+ f^[n] x = x + n * m := by
simpa only [nsmul_eq_mul, add_right_iterate] using (f.commute_add_int m).iterate_eq_of_map_eq n h
#align circle_deg1_lift.iterate_eq_of_map_eq_add_int CircleDeg1Lift.iterate_eq_of_map_eq_add_int
theorem iterate_pos_le_iff {x : ℝ} {m : ℤ} {n : ℕ} (hn : 0 < n) :
- (f^[n]) x ≤ x + n * m ↔ f x ≤ x + m := by
+ f^[n] x ≤ x + n * m ↔ f x ≤ x + m := by
simpa only [nsmul_eq_mul, add_right_iterate] using
(f.commute_add_int m).iterate_pos_le_iff_map_le f.monotone (strictMono_id.add_const (m : ℝ)) hn
#align circle_deg1_lift.iterate_pos_le_iff CircleDeg1Lift.iterate_pos_le_iff
theorem iterate_pos_lt_iff {x : ℝ} {m : ℤ} {n : ℕ} (hn : 0 < n) :
- (f^[n]) x < x + n * m ↔ f x < x + m := by
+ f^[n] x < x + n * m ↔ f x < x + m := by
simpa only [nsmul_eq_mul, add_right_iterate] using
(f.commute_add_int m).iterate_pos_lt_iff_map_lt f.monotone (strictMono_id.add_const (m : ℝ)) hn
#align circle_deg1_lift.iterate_pos_lt_iff CircleDeg1Lift.iterate_pos_lt_iff
theorem iterate_pos_eq_iff {x : ℝ} {m : ℤ} {n : ℕ} (hn : 0 < n) :
- (f^[n]) x = x + n * m ↔ f x = x + m := by
+ f^[n] x = x + n * m ↔ f x = x + m := by
simpa only [nsmul_eq_mul, add_right_iterate] using
(f.commute_add_int m).iterate_pos_eq_iff_map_eq f.monotone (strictMono_id.add_const (m : ℝ)) hn
#align circle_deg1_lift.iterate_pos_eq_iff CircleDeg1Lift.iterate_pos_eq_iff
theorem le_iterate_pos_iff {x : ℝ} {m : ℤ} {n : ℕ} (hn : 0 < n) :
- x + n * m ≤ (f^[n]) x ↔ x + m ≤ f x := by
+ x + n * m ≤ f^[n] x ↔ x + m ≤ f x := by
simpa only [not_lt] using not_congr (f.iterate_pos_lt_iff hn)
#align circle_deg1_lift.le_iterate_pos_iff CircleDeg1Lift.le_iterate_pos_iff
theorem lt_iterate_pos_iff {x : ℝ} {m : ℤ} {n : ℕ} (hn : 0 < n) :
- x + n * m < (f^[n]) x ↔ x + m < f x := by
+ x + n * m < f^[n] x ↔ x + m < f x := by
simpa only [not_le] using not_congr (f.iterate_pos_le_iff hn)
#align circle_deg1_lift.lt_iterate_pos_iff CircleDeg1Lift.lt_iterate_pos_iff
-theorem mul_floor_map_zero_le_floor_iterate_zero (n : ℕ) : ↑n * ⌊f 0⌋ ≤ ⌊(f^[n]) 0⌋ := by
+theorem mul_floor_map_zero_le_floor_iterate_zero (n : ℕ) : ↑n * ⌊f 0⌋ ≤ ⌊f^[n] 0⌋ := by
rw [le_floor, Int.cast_mul, Int.cast_ofNat, ← zero_add ((n : ℝ) * _)]
apply le_iterate_of_add_int_le_map
simp [floor_le]
@@ -654,14 +654,14 @@ theorem translationNumber_eq_of_tendsto_aux {τ' : ℝ} (h : Tendsto f.transnumA
#align circle_deg1_lift.translation_number_eq_of_tendsto_aux CircleDeg1Lift.translationNumber_eq_of_tendsto_aux
theorem translationNumber_eq_of_tendsto₀ {τ' : ℝ}
- (h : Tendsto (fun n : ℕ => (f^[n]) 0 / n) atTop (𝓝 τ')) : τ f = τ' :=
+ (h : Tendsto (fun n : ℕ => f^[n] 0 / n) atTop (𝓝 τ')) : τ f = τ' :=
f.translationNumber_eq_of_tendsto_aux <| by
simpa [(· ∘ ·), transnumAuxSeq_def, coe_pow] using
h.comp (Nat.tendsto_pow_atTop_atTop_of_one_lt one_lt_two)
#align circle_deg1_lift.translation_number_eq_of_tendsto₀ CircleDeg1Lift.translationNumber_eq_of_tendsto₀
theorem translationNumber_eq_of_tendsto₀' {τ' : ℝ}
- (h : Tendsto (fun n : ℕ => (f^[n + 1]) 0 / (n + 1)) atTop (𝓝 τ')) : τ f = τ' :=
+ (h : Tendsto (fun n : ℕ => f^[n + 1] 0 / (n + 1)) atTop (𝓝 τ')) : τ f = τ' :=
f.translationNumber_eq_of_tendsto₀ <| (tendsto_add_atTop_iff_nat 1).1 (by exact_mod_cast h)
#align circle_deg1_lift.translation_number_eq_of_tendsto₀' CircleDeg1Lift.translationNumber_eq_of_tendsto₀'
I wrote a script to find lines that contain an odd number of backticks
@@ -74,8 +74,8 @@ We prove the following properties of `CircleDeg1Lift.translationNumber`.
* `CircleDeg1Lift.semiconj_of_group_action_of_forall_translationNumber_eq`: let `f₁` and `f₂` be
two actions of a group `G` on the circle by degree 1 maps (formally, `f₁` and `f₂` are two
homomorphisms from `G →* CircleDeg1Lift`). If the translation numbers of `f₁ g` and `f₂ g` are
- equal to each other for all `g : G`, then these two actions are semiconjugate by some `F :
- CircleDeg1Lift`. This is a version of Proposition 5.4 from [Étienne Ghys, Groupes
+ equal to each other for all `g : G`, then these two actions are semiconjugate by some
+ `F : CircleDeg1Lift`. This is a version of Proposition 5.4 from [Étienne Ghys, Groupes
d'homeomorphismes du cercle et cohomologie bornee][ghys87:groupes].
## Notation
@@ -104,8 +104,8 @@ preserving circle homeomorphisms for two reasons:
Here are some short-term goals.
-* Introduce a structure or a typeclass for lifts of circle homeomorphisms. We use `Units
- CircleDeg1Lift` for now, but it's better to have a dedicated type (or a typeclass?).
+* Introduce a structure or a typeclass for lifts of circle homeomorphisms. We use
+ `Units CircleDeg1Lift` for now, but it's better to have a dedicated type (or a typeclass?).
* Prove that the `SemiconjBy` relation on circle homeomorphisms is an equivalence relation.
@@ -876,8 +876,7 @@ theorem map_lt_add_floor_translationNumber_add_one (x : ℝ) : f x < x + ⌊τ f
theorem map_lt_add_translationNumber_add_one (x : ℝ) : f x < x + τ f + 1 :=
calc
f x < x + ⌊τ f⌋ + 1 := f.map_lt_add_floor_translationNumber_add_one x
- _ ≤ x + τ f + 1 := add_le_add_right (add_le_add_left (floor_le _) _) _
- -- porting note: this ^ used to be `by mono; apply floor_le`
+ _ ≤ x + τ f + 1 := by gcongr; apply floor_le
#align circle_deg1_lift.map_lt_add_translation_number_add_one CircleDeg1Lift.map_lt_add_translationNumber_add_one
theorem lt_map_of_int_lt_translationNumber {n : ℤ} (h : ↑n < τ f) (x : ℝ) : x + n < f x :=
The main breaking change is that tac <;> [t1, t2]
is now written tac <;> [t1; t2]
, to avoid clashing with tactics like cases
and use
that take comma-separated lists.
@@ -956,7 +956,7 @@ theorem continuous_pow (hf : Continuous f) (n : ℕ) : Continuous (f ^ n : Circl
theorem translationNumber_eq_rat_iff (hf : Continuous f) {m : ℤ} {n : ℕ} (hn : 0 < n) :
τ f = m / n ↔ ∃ x, (f ^ n) x = x + m := by
- rw [eq_div_iff, mul_comm, ← translationNumber_pow] <;> [skip, exact ne_of_gt (Nat.cast_pos.2 hn)]
+ rw [eq_div_iff, mul_comm, ← translationNumber_pow] <;> [skip; exact ne_of_gt (Nat.cast_pos.2 hn)]
exact (f ^ n).translationNumber_eq_int_iff (f.continuous_pow hf n)
#align circle_deg1_lift.translation_number_eq_rat_iff CircleDeg1Lift.translationNumber_eq_rat_iff
sSup
/iSup
(#3938)
As discussed on Zulip
supₛ
→ sSup
infₛ
→ sInf
supᵢ
→ iSup
infᵢ
→ iInf
bsupₛ
→ bsSup
binfₛ
→ bsInf
bsupᵢ
→ biSup
binfᵢ
→ biInf
csupₛ
→ csSup
cinfₛ
→ csInf
csupᵢ
→ ciSup
cinfᵢ
→ ciInf
unionₛ
→ sUnion
interₛ
→ sInter
unionᵢ
→ iUnion
interᵢ
→ iInter
bunionₛ
→ bsUnion
binterₛ
→ bsInter
bunionᵢ
→ biUnion
binterᵢ
→ biInter
Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>
@@ -991,12 +991,12 @@ theorem semiconj_of_group_action_of_forall_translationNumber_eq {G : Type _} [Gr
set F₂ := toOrderIso.comp f₂.toHomUnits
have hF₁ : ∀ g, ⇑(F₁ g) = f₁ g := fun _ => rfl
have hF₂ : ∀ g, ⇑(F₂ g) = f₂ g := fun _ => rfl
- -- Now we apply `csupₛ_div_semiconj` and go back to `f₁` and `f₂`.
- refine' ⟨⟨⟨_, fun x y hxy => _⟩, fun x => _⟩, csupₛ_div_semiconj F₂ F₁ fun x => _⟩ <;>
+ -- Now we apply `csSup_div_semiconj` and go back to `f₁` and `f₂`.
+ refine' ⟨⟨⟨_, fun x y hxy => _⟩, fun x => _⟩, csSup_div_semiconj F₂ F₁ fun x => _⟩ <;>
simp only [hF₁, hF₂, ← map_inv, coe_mk]
- · exact csupᵢ_mono (this y) fun g => mono _ (mono _ hxy)
+ · exact ciSup_mono (this y) fun g => mono _ (mono _ hxy)
· simp only [map_add_one]
- exact (Monotone.map_csupᵢ_of_continuousAt (continuousAt_id.add continuousAt_const)
+ exact (Monotone.map_ciSup_of_continuousAt (continuousAt_id.add continuousAt_const)
(monotone_id.add_const (1 : ℝ)) (this x)).symm
· exact this x
#align circle_deg1_lift.semiconj_of_group_action_of_forall_translation_number_eq CircleDeg1Lift.semiconj_of_group_action_of_forall_translationNumber_eq
@@ -991,12 +991,12 @@ theorem semiconj_of_group_action_of_forall_translationNumber_eq {G : Type _} [Gr
set F₂ := toOrderIso.comp f₂.toHomUnits
have hF₁ : ∀ g, ⇑(F₁ g) = f₁ g := fun _ => rfl
have hF₂ : ∀ g, ⇑(F₂ g) = f₂ g := fun _ => rfl
- -- Now we apply `cSup_div_semiconj` and go back to `f₁` and `f₂`.
+ -- Now we apply `csupₛ_div_semiconj` and go back to `f₁` and `f₂`.
refine' ⟨⟨⟨_, fun x y hxy => _⟩, fun x => _⟩, csupₛ_div_semiconj F₂ F₁ fun x => _⟩ <;>
simp only [hF₁, hF₂, ← map_inv, coe_mk]
· exact csupᵢ_mono (this y) fun g => mono _ (mono _ hxy)
· simp only [map_add_one]
- exact (Monotone.map_csupr_of_continuousAt (continuousAt_id.add continuousAt_const)
+ exact (Monotone.map_csupᵢ_of_continuousAt (continuousAt_id.add continuousAt_const)
(monotone_id.add_const (1 : ℝ)) (this x)).symm
· exact this x
#align circle_deg1_lift.semiconj_of_group_action_of_forall_translation_number_eq CircleDeg1Lift.semiconj_of_group_action_of_forall_translationNumber_eq
@@ -25,8 +25,8 @@ $$
exists and does not depend on `x`. This number is called the *translation number* of `f`.
Different authors use different notation for this number: `τ`, `ρ`, `rot`, etc
-In this file we define a structure `circle_deg1_lift` for bundled maps with these properties, define
-translation number of `f : circle_deg1_lift`, prove some estimates relating `f^n(x)-x` to `τ(f)`. In
+In this file we define a structure `CircleDeg1Lift` for bundled maps with these properties, define
+translation number of `f : CircleDeg1Lift`, prove some estimates relating `f^n(x)-x` to `τ(f)`. In
case of a continuous map `f` we also prove that `f` admits a point `x` such that `f^n(x)=x+m` if and
only if `τ(f)=m/n`.
@@ -41,50 +41,50 @@ It does not depend on the choice of `a`.
## Main definitions
-* `circle_deg1_lift`: a monotone map `f : ℝ → ℝ` such that `f (x + 1) = f x + 1` for all `x`;
- the type `circle_deg1_lift` is equipped with `lattice` and `monoid` structures; the
+* `CircleDeg1Lift`: a monotone map `f : ℝ → ℝ` such that `f (x + 1) = f x + 1` for all `x`;
+ the type `CircleDeg1Lift` is equipped with `Lattice` and `Monoid` structures; the
multiplication is given by composition: `(f * g) x = f (g x)`.
-* `circle_deg1_lift.translation_number`: translation number of `f : circle_deg1_lift`.
+* `CircleDeg1Lift.translationNumber`: translation number of `f : CircleDeg1Lift`.
## Main statements
-We prove the following properties of `circle_deg1_lift.translation_number`.
+We prove the following properties of `CircleDeg1Lift.translationNumber`.
-* `circle_deg1_lift.translation_number_eq_of_dist_bounded`: if the distance between `(f^n) 0`
+* `CircleDeg1Lift.translationNumber_eq_of_dist_bounded`: if the distance between `(f^n) 0`
and `(g^n) 0` is bounded from above uniformly in `n : ℕ`, then `f` and `g` have equal
translation numbers.
-* `circle_deg1_lift.translation_number_eq_of_semiconj_by`: if two `circle_deg1_lift` maps `f`, `g`
- are semiconjugate by a `circle_deg1_lift` map, then `τ f = τ g`.
+* `CircleDeg1Lift.translationNumber_eq_of_semiconjBy`: if two `CircleDeg1Lift` maps `f`, `g`
+ are semiconjugate by a `CircleDeg1Lift` map, then `τ f = τ g`.
-* `circle_deg1_lift.translation_number_units_inv`: if `f` is an invertible `circle_deg1_lift` map
+* `CircleDeg1Lift.translationNumber_units_inv`: if `f` is an invertible `CircleDeg1Lift` map
(equivalently, `f` is a lift of an orientation-preserving circle homeomorphism), then
the translation number of `f⁻¹` is the negative of the translation number of `f`.
-* `circle_deg1_lift.translation_number_mul_of_commute`: if `f` and `g` commute, then
+* `CircleDeg1Lift.translationNumber_mul_of_commute`: if `f` and `g` commute, then
`τ (f * g) = τ f + τ g`.
-* `circle_deg1_lift.translation_number_eq_rat_iff`: the translation number of `f` is equal to
+* `CircleDeg1Lift.translationNumber_eq_rat_iff`: the translation number of `f` is equal to
a rational number `m / n` if and only if `(f^n) x = x + m` for some `x`.
-* `circle_deg1_lift.semiconj_of_bijective_of_translation_number_eq`: if `f` and `g` are two
- bijective `circle_deg1_lift` maps and their translation numbers are equal, then these
+* `CircleDeg1Lift.semiconj_of_bijective_of_translationNumber_eq`: if `f` and `g` are two
+ bijective `CircleDeg1Lift` maps and their translation numbers are equal, then these
maps are semiconjugate to each other.
-* `circle_deg1_lift.semiconj_of_group_action_of_forall_translation_number_eq`: let `f₁` and `f₂` be
+* `CircleDeg1Lift.semiconj_of_group_action_of_forall_translationNumber_eq`: let `f₁` and `f₂` be
two actions of a group `G` on the circle by degree 1 maps (formally, `f₁` and `f₂` are two
- homomorphisms from `G →* circle_deg1_lift`). If the translation numbers of `f₁ g` and `f₂ g` are
+ homomorphisms from `G →* CircleDeg1Lift`). If the translation numbers of `f₁ g` and `f₂ g` are
equal to each other for all `g : G`, then these two actions are semiconjugate by some `F :
- circle_deg1_lift`. This is a version of Proposition 5.4 from [Étienne Ghys, Groupes
+ CircleDeg1Lift`. This is a version of Proposition 5.4 from [Étienne Ghys, Groupes
d'homeomorphismes du cercle et cohomologie bornee][ghys87:groupes].
## Notation
-We use a local notation `τ` for the translation number of `f : circle_deg1_lift`.
+We use a local notation `τ` for the translation number of `f : CircleDeg1Lift`.
## Implementation notes
-We define the translation number of `f : circle_deg1_lift` to be the limit of the sequence
+We define the translation number of `f : CircleDeg1Lift` to be the limit of the sequence
`(f ^ (2 ^ n)) 0 / (2 ^ n)`, then prove that `((f ^ n) x - x) / n` tends to this number for any `x`.
This way it is much easier to prove that the limit exists and basic properties of the limit.
@@ -104,17 +104,17 @@ preserving circle homeomorphisms for two reasons:
Here are some short-term goals.
-* Introduce a structure or a typeclass for lifts of circle homeomorphisms. We use `units
- circle_deg1_lift` for now, but it's better to have a dedicated type (or a typeclass?).
+* Introduce a structure or a typeclass for lifts of circle homeomorphisms. We use `Units
+ CircleDeg1Lift` for now, but it's better to have a dedicated type (or a typeclass?).
-* Prove that the `semiconj_by` relation on circle homeomorphisms is an equivalence relation.
+* Prove that the `SemiconjBy` relation on circle homeomorphisms is an equivalence relation.
-* Introduce `conditionally_complete_lattice` structure, use it in the proof of
- `circle_deg1_lift.semiconj_of_group_action_of_forall_translation_number_eq`.
+* Introduce `ConditionallyCompleteLattice` structure, use it in the proof of
+ `CircleDeg1Lift.semiconj_of_group_action_of_forall_translationNumber_eq`.
* Prove that the orbits of the irrational rotation are dense in the circle. Deduce that a
homeomorphism with an irrational rotation is semiconjugate to the corresponding irrational
- translation by a continuous `circle_deg1_lift`.
+ translation by a continuous `CircleDeg1Lift`.
## Tags
@@ -283,9 +283,9 @@ theorem commute_iff_commute {f g : CircleDeg1Lift} : Commute f g ↔ Function.Co
-/
-/-- The map `y ↦ x + y` as a `circle_deg1_lift`. More precisely, we define a homomorphism from
-`multiplicative ℝ` to `circle_deg1_liftˣ`, so the translation by `x` is
-`translation (multiplicative.of_add x)`. -/
+/-- The map `y ↦ x + y` as a `CircleDeg1Lift`. More precisely, we define a homomorphism from
+`Multiplicative ℝ` to `CircleDeg1Liftˣ`, so the translation by `x` is
+`translation (Multiplicative.ofAdd x)`. -/
def translate : Multiplicative ℝ →* CircleDeg1Liftˣ := MonoidHom.toHomUnits <|
{ toFun := fun x =>
⟨⟨fun y => Multiplicative.toAdd x + y, fun _ _ h => add_le_add_left h _⟩, fun _ =>
@@ -327,7 +327,7 @@ theorem translate_iterate (x : ℝ) (n : ℕ) :
In this section we prove that `f` commutes with translations by an integer number.
First we formulate these statements (for a natural or an integer number,
-addition on the left or on the right, addition or subtraction) using `function.commute`,
+addition on the left or on the right, addition or subtraction) using `Function.Commute`,
then reformulate as `simp` lemmas `map_int_add` etc.
-/
@@ -406,7 +406,7 @@ noncomputable instance : Lattice CircleDeg1Lift where
sup f g :=
{ toFun := fun x => max (f x) (g x)
monotone' := fun x y h => max_le_max (f.mono h) (g.mono h)
- -- TODO: generalize to `monotone.max`
+ -- TODO: generalize to `Monotone.max`
map_add_one' := fun x => by simp [max_add_add_right] }
le f g := ∀ x, f x ≤ g x
le_refl f x := le_refl (f x)
@@ -630,7 +630,7 @@ def transnumAuxSeq (n : ℕ) : ℝ :=
(f ^ (2 ^ n : ℕ)) 0 / 2 ^ n
#align circle_deg1_lift.transnum_aux_seq CircleDeg1Lift.transnumAuxSeq
-/-- The translation number of a `circle_deg1_lift`, $τ(f)=\lim_{n→∞}\frac{f^n(x)-x}{n}$. We use
+/-- The translation number of a `CircleDeg1Lift`, $τ(f)=\lim_{n→∞}\frac{f^n(x)-x}{n}$. We use
an auxiliary sequence `\frac{f^{2^n}(0)}{2^n}` to define `τ(f)` because some proofs are simpler
this way. -/
def translationNumber : ℝ :=
@@ -640,7 +640,7 @@ def translationNumber : ℝ :=
end
-- mathport name: exprτ
--- TODO: choose two different symbols for `circle_deg1_lift.translation_number` and the future
+-- TODO: choose two different symbols for `CircleDeg1Lift.translationNumber` and the future
-- `circle_mono_homeo.rotation_number`, then make them `localized notation`s
local notation "τ" => translationNumber
@@ -960,9 +960,9 @@ theorem translationNumber_eq_rat_iff (hf : Continuous f) {m : ℤ} {n : ℕ} (hn
exact (f ^ n).translationNumber_eq_int_iff (f.continuous_pow hf n)
#align circle_deg1_lift.translation_number_eq_rat_iff CircleDeg1Lift.translationNumber_eq_rat_iff
-/-- Consider two actions `f₁ f₂ : G →* circle_deg1_lift` of a group on the real line by lifts of
+/-- Consider two actions `f₁ f₂ : G →* CircleDeg1Lift` of a group on the real line by lifts of
orientation preserving circle homeomorphisms. Suppose that for each `g : G` the homeomorphisms
-`f₁ g` and `f₂ g` have equal rotation numbers. Then there exists `F : circle_deg1_lift` such that
+`f₁ g` and `f₂ g` have equal rotation numbers. Then there exists `F : CircleDeg1Lift` such that
`F * f₁ g = f₂ g * F` for all `g : G`.
This is a version of Proposition 5.4 from [Étienne Ghys, Groupes d'homeomorphismes du cercle et
@@ -985,7 +985,7 @@ theorem semiconj_of_group_action_of_forall_translationNumber_eq {G : Type _} [Gr
_ ≤ x + τ (f₂ g) + τ (f₂ g⁻¹) + 1 + 1 :=
add_le_add_right (map_lt_add_translationNumber_add_one _ _).le _
_ = x + 2 := by simp [this, add_assoc, one_add_one_eq_two]
- -- We have a theorem about actions by `order_iso`, so we introduce auxiliary maps
+ -- We have a theorem about actions by `OrderIso`, so we introduce auxiliary maps
-- to `ℝ ≃o ℝ`.
set F₁ := toOrderIso.comp f₁.toHomUnits
set F₂ := toOrderIso.comp f₂.toHomUnits
@@ -1002,7 +1002,7 @@ theorem semiconj_of_group_action_of_forall_translationNumber_eq {G : Type _} [Gr
#align circle_deg1_lift.semiconj_of_group_action_of_forall_translation_number_eq CircleDeg1Lift.semiconj_of_group_action_of_forall_translationNumber_eq
/-- If two lifts of circle homeomorphisms have the same translation number, then they are
-semiconjugate by a `circle_deg1_lift`. This version uses arguments `f₁ f₂ : circle_deg1_liftˣ`
+semiconjugate by a `CircleDeg1Lift`. This version uses arguments `f₁ f₂ : CircleDeg1Liftˣ`
to assume that `f₁` and `f₂` are homeomorphisms. -/
theorem units_semiconj_of_translationNumber_eq {f₁ f₂ : CircleDeg1Liftˣ} (h : τ f₁ = τ f₂) :
∃ F : CircleDeg1Lift, Semiconj F f₁ f₂ :=
@@ -1015,7 +1015,7 @@ theorem units_semiconj_of_translationNumber_eq {f₁ f₂ : CircleDeg1Liftˣ} (h
#align circle_deg1_lift.units_semiconj_of_translation_number_eq CircleDeg1Lift.units_semiconj_of_translationNumber_eq
/-- If two lifts of circle homeomorphisms have the same translation number, then they are
-semiconjugate by a `circle_deg1_lift`. This version uses assumptions `is_unit f₁` and `is_unit f₂`
+semiconjugate by a `CircleDeg1Lift`. This version uses assumptions `IsUnit f₁` and `IsUnit f₂`
to assume that `f₁` and `f₂` are homeomorphisms. -/
theorem semiconj_of_isUnit_of_translationNumber_eq {f₁ f₂ : CircleDeg1Lift} (h₁ : IsUnit f₁)
(h₂ : IsUnit f₂) (h : τ f₁ = τ f₂) : ∃ F : CircleDeg1Lift, Semiconj F f₁ f₂ := by
@@ -1024,7 +1024,7 @@ theorem semiconj_of_isUnit_of_translationNumber_eq {f₁ f₂ : CircleDeg1Lift}
#align circle_deg1_lift.semiconj_of_is_unit_of_translation_number_eq CircleDeg1Lift.semiconj_of_isUnit_of_translationNumber_eq
/-- If two lifts of circle homeomorphisms have the same translation number, then they are
-semiconjugate by a `circle_deg1_lift`. This version uses assumptions `bijective f₁` and
+semiconjugate by a `CircleDeg1Lift`. This version uses assumptions `bijective f₁` and
`bijective f₂` to assume that `f₁` and `f₂` are homeomorphisms. -/
theorem semiconj_of_bijective_of_translationNumber_eq {f₁ f₂ : CircleDeg1Lift} (h₁ : Bijective f₁)
(h₂ : Bijective f₂) (h : τ f₁ = τ f₂) : ∃ F : CircleDeg1Lift, Semiconj F f₁ f₂ :=
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