data.real.cau_seq_completion
⟷
Mathlib.Algebra.Order.CauSeq.Completion
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
parameters
(#18122)
This helps with porting
@@ -16,85 +16,87 @@ namespace cau_seq.completion
open cau_seq
section
-parameters {α : Type*} [linear_ordered_field α]
-parameters {β : Type*} [ring β] {abv : β → α} [is_absolute_value abv]
+variables {α : Type*} [linear_ordered_field α]
+variables {β : Type*} [ring β] (abv : β → α) [is_absolute_value abv]
/-- The Cauchy completion of a ring with absolute value. -/
def Cauchy := @quotient (cau_seq _ abv) cau_seq.equiv
+variables {abv}
+
/-- The map from Cauchy sequences into the Cauchy completion. -/
-def mk : cau_seq _ abv → Cauchy := quotient.mk
+def mk : cau_seq _ abv → Cauchy abv := quotient.mk
-@[simp] theorem mk_eq_mk (f) : @eq Cauchy ⟦f⟧ (mk f) := rfl
+@[simp] theorem mk_eq_mk (f) : @eq (Cauchy abv) ⟦f⟧ (mk f) := rfl
-theorem mk_eq {f g} : mk f = mk g ↔ f ≈ g := quotient.eq
+theorem mk_eq {f g : cau_seq _ abv} : mk f = mk g ↔ f ≈ g := quotient.eq
/-- The map from the original ring into the Cauchy completion. -/
-def of_rat (x : β) : Cauchy := mk (const abv x)
+def of_rat (x : β) : Cauchy abv := mk (const abv x)
-instance : has_zero Cauchy := ⟨of_rat 0⟩
-instance : has_one Cauchy := ⟨of_rat 1⟩
-instance : inhabited Cauchy := ⟨0⟩
+instance : has_zero (Cauchy abv) := ⟨of_rat 0⟩
+instance : has_one (Cauchy abv) := ⟨of_rat 1⟩
+instance : inhabited (Cauchy abv) := ⟨0⟩
-theorem of_rat_zero : of_rat 0 = 0 := rfl
-theorem of_rat_one : of_rat 1 = 1 := rfl
+theorem of_rat_zero : (of_rat 0 : Cauchy abv) = 0 := rfl
+theorem of_rat_one : (of_rat 1 : Cauchy abv) = 1 := rfl
-@[simp] theorem mk_eq_zero {f} : mk f = 0 ↔ lim_zero f :=
+@[simp] theorem mk_eq_zero {f : cau_seq _ abv} : mk f = 0 ↔ lim_zero f :=
by have : mk f = 0 ↔ lim_zero (f - 0) := quotient.eq;
rwa sub_zero at this
-instance : has_add Cauchy :=
+instance : has_add (Cauchy abv) :=
⟨quotient.map₂ (+) $ λ f₁ g₁ hf f₂ g₂ hg, add_equiv_add hf hg⟩
@[simp] theorem mk_add (f g : cau_seq β abv) : mk f + mk g = mk (f + g) := rfl
-instance : has_neg Cauchy :=
+instance : has_neg (Cauchy abv) :=
⟨quotient.map has_neg.neg $ λ f₁ f₂ hf, neg_equiv_neg hf⟩
@[simp] theorem mk_neg (f : cau_seq β abv) : -mk f = mk (-f) := rfl
-instance : has_mul Cauchy :=
+instance : has_mul (Cauchy abv) :=
⟨quotient.map₂ (*) $ λ f₁ g₁ hf f₂ g₂ hg, mul_equiv_mul hf hg⟩
@[simp] theorem mk_mul (f g : cau_seq β abv) : mk f * mk g = mk (f * g) := rfl
-instance : has_sub Cauchy :=
+instance : has_sub (Cauchy abv) :=
⟨quotient.map₂ has_sub.sub $ λ f₁ g₁ hf f₂ g₂ hg, sub_equiv_sub hf hg⟩
@[simp] theorem mk_sub (f g : cau_seq β abv) : mk f - mk g = mk (f - g) := rfl
-instance {γ : Type*} [has_smul γ β] [is_scalar_tower γ β β] : has_smul γ Cauchy :=
+instance {γ : Type*} [has_smul γ β] [is_scalar_tower γ β β] : has_smul γ (Cauchy abv) :=
⟨λ c, quotient.map ((•) c) $ λ f₁ g₁ hf, smul_equiv_smul _ hf⟩
@[simp] theorem mk_smul {γ : Type*} [has_smul γ β] [is_scalar_tower γ β β] (c : γ)
(f : cau_seq β abv) :
c • mk f = mk (c • f) := rfl
-instance : has_pow Cauchy ℕ :=
+instance : has_pow (Cauchy abv) ℕ :=
⟨λ x n, quotient.map (^ n) (λ f₁ g₁ hf, pow_equiv_pow hf _) x⟩
@[simp] theorem mk_pow (n : ℕ) (f : cau_seq β abv) : mk f ^ n = mk (f ^ n) := rfl
-instance : has_nat_cast Cauchy := ⟨λ n, mk n⟩
-instance : has_int_cast Cauchy := ⟨λ n, mk n⟩
+instance : has_nat_cast (Cauchy abv) := ⟨λ n, mk n⟩
+instance : has_int_cast (Cauchy abv) := ⟨λ n, mk n⟩
-@[simp] theorem of_rat_nat_cast (n : ℕ) : of_rat n = n := rfl
-@[simp] theorem of_rat_int_cast (z : ℤ) : of_rat z = z := rfl
+@[simp] theorem of_rat_nat_cast (n : ℕ) : (of_rat n : Cauchy abv) = n := rfl
+@[simp] theorem of_rat_int_cast (z : ℤ) : (of_rat z : Cauchy abv) = z := rfl
-theorem of_rat_add (x y : β) : of_rat (x + y) = of_rat x + of_rat y :=
+theorem of_rat_add (x y : β) : of_rat (x + y) = (of_rat x + of_rat y : Cauchy abv) :=
congr_arg mk (const_add _ _)
-theorem of_rat_neg (x : β) : of_rat (-x) = -of_rat x :=
+theorem of_rat_neg (x : β) : of_rat (-x) = (-of_rat x : Cauchy abv) :=
congr_arg mk (const_neg _)
-theorem of_rat_mul (x y : β) : of_rat (x * y) = of_rat x * of_rat y :=
+theorem of_rat_mul (x y : β) : of_rat (x * y) = (of_rat x * of_rat y : Cauchy abv) :=
congr_arg mk (const_mul _ _)
-private lemma zero_def : 0 = mk 0 := rfl
+private lemma zero_def : 0 = (mk 0 : Cauchy abv) := rfl
-private lemma one_def : 1 = mk 1 := rfl
+private lemma one_def : 1 = (mk 1 : Cauchy abv) := rfl
-instance : ring Cauchy :=
+instance : ring (Cauchy abv) :=
function.surjective.ring mk (surjective_quotient_mk _)
zero_def.symm one_def.symm (λ _ _, (mk_add _ _).symm) (λ _ _, (mk_mul _ _).symm)
(λ _, (mk_neg _).symm) (λ _ _, (mk_sub _ _).symm)
@@ -103,24 +105,23 @@ function.surjective.ring mk (surjective_quotient_mk _)
/-- `cau_seq.completion.of_rat` as a `ring_hom` -/
@[simps]
-def of_rat_ring_hom : β →+* Cauchy :=
+def of_rat_ring_hom : β →+* Cauchy abv :=
{ to_fun := of_rat,
map_zero' := of_rat_zero,
map_one' := of_rat_one,
map_add' := of_rat_add,
map_mul' := of_rat_mul, }
-theorem of_rat_sub (x y : β) : of_rat (x - y) = of_rat x - of_rat y :=
+theorem of_rat_sub (x y : β) : of_rat (x - y) = (of_rat x - of_rat y : Cauchy abv) :=
congr_arg mk (const_sub _ _)
end
section
-parameters {α : Type*} [linear_ordered_field α]
-parameters {β : Type*} [comm_ring β] {abv : β → α} [is_absolute_value abv]
-local notation `Cauchy` := @Cauchy _ _ _ _ abv _
+variables {α : Type*} [linear_ordered_field α]
+variables {β : Type*} [comm_ring β] {abv : β → α} [is_absolute_value abv]
-instance : comm_ring Cauchy :=
+instance : comm_ring (Cauchy abv) :=
function.surjective.comm_ring mk (surjective_quotient_mk _)
zero_def.symm one_def.symm (λ _ _, (mk_add _ _).symm) (λ _ _, (mk_mul _ _).symm)
(λ _, (mk_neg _).symm) (λ _ _, (mk_sub _ _).symm)
@@ -132,15 +133,14 @@ end
open_locale classical
section
-parameters {α : Type*} [linear_ordered_field α]
-parameters {β : Type*} [division_ring β] {abv : β → α} [is_absolute_value abv]
-local notation `Cauchy` := @Cauchy _ _ _ _ abv _
+variables {α : Type*} [linear_ordered_field α]
+variables {β : Type*} [division_ring β] {abv : β → α} [is_absolute_value abv]
-instance : has_rat_cast Cauchy := ⟨λ q, of_rat q⟩
+instance : has_rat_cast (Cauchy abv) := ⟨λ q, of_rat q⟩
-@[simp] theorem of_rat_rat_cast (q : ℚ) : of_rat (↑q : β) = (q : Cauchy) := rfl
+@[simp] theorem of_rat_rat_cast (q : ℚ) : of_rat (↑q : β) = (q : Cauchy abv) := rfl
-noncomputable instance : has_inv Cauchy :=
+noncomputable instance : has_inv (Cauchy abv) :=
⟨λ x, quotient.lift_on x
(λ f, mk $ if h : lim_zero f then 0 else inv f h) $
λ f g fg, begin
@@ -156,7 +156,7 @@ noncomputable instance : has_inv Cauchy :=
mul_assoc, Ig', mul_one] }
end⟩
-@[simp] theorem inv_zero : (0 : Cauchy)⁻¹ = 0 :=
+@[simp] theorem inv_zero : (0 : Cauchy abv)⁻¹ = 0 :=
congr_arg mk $ by rw dif_pos; [refl, exact zero_lim_zero]
@[simp] theorem inv_mk {f} (hf) : (@mk α _ β _ abv _ f)⁻¹ = mk (inv f hf) :=
@@ -167,26 +167,26 @@ have lim_zero (1 - 0), from setoid.symm h,
have lim_zero 1, by simpa,
one_ne_zero $ const_lim_zero.1 this
-lemma zero_ne_one : (0 : Cauchy) ≠ 1 :=
+lemma zero_ne_one : (0 : Cauchy abv) ≠ 1 :=
λ h, cau_seq_zero_ne_one $ mk_eq.1 h
-protected theorem inv_mul_cancel {x : Cauchy} : x ≠ 0 → x⁻¹ * x = 1 :=
+protected theorem inv_mul_cancel {x : Cauchy abv} : x ≠ 0 → x⁻¹ * x = 1 :=
quotient.induction_on x $ λ f hf, begin
simp at hf, simp [hf],
exact quotient.sound (cau_seq.inv_mul_cancel hf)
end
-protected theorem mul_inv_cancel {x : Cauchy} : x ≠ 0 → x * x⁻¹ = 1 :=
+protected theorem mul_inv_cancel {x : Cauchy abv} : x ≠ 0 → x * x⁻¹ = 1 :=
quotient.induction_on x $ λ f hf, begin
simp at hf, simp [hf],
exact quotient.sound (cau_seq.mul_inv_cancel hf)
end
-theorem of_rat_inv (x : β) : of_rat (x⁻¹) = ((of_rat x)⁻¹ : Cauchy) :=
+theorem of_rat_inv (x : β) : of_rat (x⁻¹) = ((of_rat x)⁻¹ : Cauchy abv) :=
congr_arg mk $ by split_ifs with h; [simp [const_lim_zero.1 h], refl]
/-- The Cauchy completion forms a division ring. -/
-noncomputable instance : division_ring Cauchy :=
+noncomputable instance : division_ring (Cauchy abv) :=
{ inv := has_inv.inv,
mul_inv_cancel := λ x, cau_seq.completion.mul_inv_cancel,
exists_pair_ne := ⟨0, 1, zero_ne_one⟩,
@@ -196,7 +196,7 @@ noncomputable instance : division_ring Cauchy :=
by rw [rat.cast_mk', of_rat_mul, of_rat_int_cast, of_rat_inv, of_rat_nat_cast],
.. Cauchy.ring }
-theorem of_rat_div (x y : β) : of_rat (x / y) = (of_rat x / of_rat y : Cauchy) :=
+theorem of_rat_div (x y : β) : of_rat (x / y) = (of_rat x / of_rat y : Cauchy abv) :=
by simp only [div_eq_mul_inv, of_rat_inv, of_rat_mul]
/-- Show the first 10 items of a representative of this equivalence class of cauchy sequences.
@@ -204,7 +204,7 @@ by simp only [div_eq_mul_inv, of_rat_inv, of_rat_mul]
The representative chosen is the one passed in the VM to `quot.mk`, so two cauchy sequences
converging to the same number may be printed differently.
-/
-meta instance [has_repr β] : has_repr Cauchy :=
+meta instance [has_repr β] : has_repr (Cauchy abv) :=
{ repr := λ r,
let N := 10, seq := r.unquot in
"(sorry /- " ++ (", ".intercalate $ (list.range N).map $ repr ∘ seq) ++ ", ... -/)" }
@@ -212,12 +212,11 @@ meta instance [has_repr β] : has_repr Cauchy :=
end
section
-parameters {α : Type*} [linear_ordered_field α]
-parameters {β : Type*} [field β] {abv : β → α} [is_absolute_value abv]
-local notation `Cauchy` := @Cauchy _ _ _ _ abv _
+variables {α : Type*} [linear_ordered_field α]
+variables {β : Type*} [field β] {abv : β → α} [is_absolute_value abv]
/-- The Cauchy completion forms a field. -/
-noncomputable instance : field Cauchy :=
+noncomputable instance : field (Cauchy abv) :=
{ .. Cauchy.division_ring,
.. Cauchy.comm_ring }
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(first ported)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -326,7 +326,7 @@ noncomputable instance : DivisionRing (Cauchy abv) :=
exists_pair_ne := ⟨0, 1, zero_ne_one⟩
inv_zero := inv_zero
ratCast := fun q => ofRat q
- ratCast_mk := fun n d hd hnd => by
+ ratCast_def := fun n d hd hnd => by
rw [Rat.cast_mk', of_rat_mul, of_rat_int_cast, of_rat_inv, of_rat_nat_cast] }
#print CauSeq.Completion.ofRat_div /-
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -3,7 +3,7 @@ Copyright (c) 2018 Mario Carneiro. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Mario Carneiro, Robert Y. Lewis
-/
-import Data.Real.CauSeq
+import Algebra.Order.CauSeq.Basic
#align_import data.real.cau_seq_completion from "leanprover-community/mathlib"@"f2f413b9d4be3a02840d0663dace76e8fe3da053"
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -88,7 +88,7 @@ theorem ofRat_one : (ofRat 1 : Cauchy abv) = 1 :=
#print CauSeq.Completion.mk_eq_zero /-
@[simp]
theorem mk_eq_zero {f : CauSeq _ abv} : mk f = 0 ↔ LimZero f := by
- have : mk f = 0 ↔ lim_zero (f - 0) := Quotient.eq' <;> rwa [sub_zero] at this
+ have : mk f = 0 ↔ lim_zero (f - 0) := Quotient.eq' <;> rwa [sub_zero] at this
#align cau_seq.completion.mk_eq_zero CauSeq.Completion.mk_eq_zero
-/
@@ -266,7 +266,7 @@ noncomputable instance : Inv (Cauchy abv) :=
have If : mk (inv f hf) * mk f = 1 := mk_eq.2 (inv_mul_cancel hf)
have Ig : mk (inv g hg) * mk g = 1 := mk_eq.2 (inv_mul_cancel hg)
have Ig' : mk g * mk (inv g hg) = 1 := mk_eq.2 (mul_inv_cancel hg)
- rw [mk_eq.2 fg, ← Ig] at If
+ rw [mk_eq.2 fg, ← Ig] at If
rw [← mul_one (mk (inv f hf)), ← Ig', ← mul_assoc, If, mul_assoc, Ig', mul_one]⟩
#print CauSeq.Completion.inv_zero /-
@@ -299,7 +299,7 @@ theorem zero_ne_one : (0 : Cauchy abv) ≠ 1 := fun h => cau_seq_zero_ne_one <|
#print CauSeq.Completion.inv_mul_cancel /-
protected theorem inv_mul_cancel {x : Cauchy abv} : x ≠ 0 → x⁻¹ * x = 1 :=
Quotient.inductionOn x fun f hf => by
- simp at hf ; simp [hf]
+ simp at hf; simp [hf]
exact Quotient.sound (CauSeq.inv_mul_cancel hf)
#align cau_seq.completion.inv_mul_cancel CauSeq.Completion.inv_mul_cancel
-/
@@ -307,7 +307,7 @@ protected theorem inv_mul_cancel {x : Cauchy abv} : x ≠ 0 → x⁻¹ * x = 1 :
#print CauSeq.Completion.mul_inv_cancel /-
protected theorem mul_inv_cancel {x : Cauchy abv} : x ≠ 0 → x * x⁻¹ = 1 :=
Quotient.inductionOn x fun f hf => by
- simp at hf ; simp [hf]
+ simp at hf; simp [hf]
exact Quotient.sound (CauSeq.mul_inv_cancel hf)
#align cau_seq.completion.mul_inv_cancel CauSeq.Completion.mul_inv_cancel
-/
@@ -473,12 +473,12 @@ theorem lim_neg (f : CauSeq β abv) : lim (-f) = -lim f :=
#print CauSeq.lim_eq_zero_iff /-
theorem lim_eq_zero_iff (f : CauSeq β abv) : lim f = 0 ↔ LimZero f :=
⟨fun h => by
- have hf := equiv_lim f <;> rw [h] at hf <;>
+ have hf := equiv_lim f <;> rw [h] at hf <;>
exact (lim_zero_congr hf).mpr (const_lim_zero.mpr rfl),
fun h =>
by
have h₁ : f = f - const abv 0 := ext fun n => by simp [sub_apply, const_apply]
- rw [h₁] at h <;> exact lim_eq_of_equiv_const h⟩
+ rw [h₁] at h <;> exact lim_eq_of_equiv_const h⟩
#align cau_seq.lim_eq_zero_iff CauSeq.lim_eq_zero_iff
-/
@@ -490,7 +490,7 @@ variable {β : Type _} [Field β] {abv : β → α} [IsAbsoluteValue abv] [IsCom
#print CauSeq.lim_inv /-
theorem lim_inv {f : CauSeq β abv} (hf : ¬LimZero f) : lim (inv f hf) = (lim f)⁻¹ :=
- have hl : lim f ≠ 0 := by rwa [← lim_eq_zero_iff] at hf
+ have hl : lim f ≠ 0 := by rwa [← lim_eq_zero_iff] at hf
lim_eq_of_equiv_const <|
show LimZero (inv f hf - const abv (lim f)⁻¹) from
have h₁ : ∀ (g f : CauSeq β abv) (hf : ¬LimZero f), LimZero (g - f * inv f hf * g) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,7 +3,7 @@ Copyright (c) 2018 Mario Carneiro. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Mario Carneiro, Robert Y. Lewis
-/
-import Mathbin.Data.Real.CauSeq
+import Data.Real.CauSeq
#align_import data.real.cau_seq_completion from "leanprover-community/mathlib"@"f2f413b9d4be3a02840d0663dace76e8fe3da053"
mathlib commit https://github.com/leanprover-community/mathlib/commit/001ffdc42920050657fd45bd2b8bfbec8eaaeb29
@@ -198,7 +198,7 @@ private theorem one_def : 1 = (mk 1 : Cauchy abv) :=
rfl
instance : Ring (Cauchy abv) :=
- Function.Surjective.ring mk (surjective_quotient_mk _) zero_def.symm one_def.symm
+ Function.Surjective.ring mk (surjective_quotient_mk' _) zero_def.symm one_def.symm
(fun _ _ => (mk_add _ _).symm) (fun _ _ => (mk_mul _ _).symm) (fun _ => (mk_neg _).symm)
(fun _ _ => (mk_sub _ _).symm) (fun _ _ => (mk_smul _ _).symm) (fun _ _ => (mk_smul _ _).symm)
(fun _ _ => (mk_pow _ _).symm) (fun _ => rfl) fun _ => rfl
@@ -230,7 +230,7 @@ variable {α : Type _} [LinearOrderedField α]
variable {β : Type _} [CommRing β] {abv : β → α} [IsAbsoluteValue abv]
instance : CommRing (Cauchy abv) :=
- Function.Surjective.commRing mk (surjective_quotient_mk _) zero_def.symm one_def.symm
+ Function.Surjective.commRing mk (surjective_quotient_mk' _) zero_def.symm one_def.symm
(fun _ _ => (mk_add _ _).symm) (fun _ _ => (mk_mul _ _).symm) (fun _ => (mk_neg _).symm)
(fun _ _ => (mk_sub _ _).symm) (fun _ _ => (mk_smul _ _).symm) (fun _ _ => (mk_smul _ _).symm)
(fun _ _ => (mk_pow _ _).symm) (fun _ => rfl) fun _ => rfl
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,14 +2,11 @@
Copyright (c) 2018 Mario Carneiro. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Mario Carneiro, Robert Y. Lewis
-
-! This file was ported from Lean 3 source module data.real.cau_seq_completion
-! leanprover-community/mathlib commit f2f413b9d4be3a02840d0663dace76e8fe3da053
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Data.Real.CauSeq
+#align_import data.real.cau_seq_completion from "leanprover-community/mathlib"@"f2f413b9d4be3a02840d0663dace76e8fe3da053"
+
/-!
# Cauchy completion
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -47,14 +47,18 @@ def mk : CauSeq _ abv → Cauchy abv :=
#align cau_seq.completion.mk CauSeq.Completion.mk
-/
+#print CauSeq.Completion.mk_eq_mk /-
@[simp]
theorem mk_eq_mk (f) : @Eq (Cauchy abv) ⟦f⟧ (mk f) :=
rfl
#align cau_seq.completion.mk_eq_mk CauSeq.Completion.mk_eq_mk
+-/
+#print CauSeq.Completion.mk_eq /-
theorem mk_eq {f g : CauSeq _ abv} : mk f = mk g ↔ f ≈ g :=
Quotient.eq'
#align cau_seq.completion.mk_eq CauSeq.Completion.mk_eq
+-/
#print CauSeq.Completion.ofRat /-
/-- The map from the original ring into the Cauchy completion. -/
@@ -72,67 +76,85 @@ instance : One (Cauchy abv) :=
instance : Inhabited (Cauchy abv) :=
⟨0⟩
+#print CauSeq.Completion.ofRat_zero /-
theorem ofRat_zero : (ofRat 0 : Cauchy abv) = 0 :=
rfl
#align cau_seq.completion.of_rat_zero CauSeq.Completion.ofRat_zero
+-/
+#print CauSeq.Completion.ofRat_one /-
theorem ofRat_one : (ofRat 1 : Cauchy abv) = 1 :=
rfl
#align cau_seq.completion.of_rat_one CauSeq.Completion.ofRat_one
+-/
+#print CauSeq.Completion.mk_eq_zero /-
@[simp]
theorem mk_eq_zero {f : CauSeq _ abv} : mk f = 0 ↔ LimZero f := by
have : mk f = 0 ↔ lim_zero (f - 0) := Quotient.eq' <;> rwa [sub_zero] at this
#align cau_seq.completion.mk_eq_zero CauSeq.Completion.mk_eq_zero
+-/
instance : Add (Cauchy abv) :=
⟨Quotient.map₂ (· + ·) fun f₁ g₁ hf f₂ g₂ hg => add_equiv_add hf hg⟩
+#print CauSeq.Completion.mk_add /-
@[simp]
theorem mk_add (f g : CauSeq β abv) : mk f + mk g = mk (f + g) :=
rfl
#align cau_seq.completion.mk_add CauSeq.Completion.mk_add
+-/
instance : Neg (Cauchy abv) :=
⟨Quotient.map Neg.neg fun f₁ f₂ hf => neg_equiv_neg hf⟩
+#print CauSeq.Completion.mk_neg /-
@[simp]
theorem mk_neg (f : CauSeq β abv) : -mk f = mk (-f) :=
rfl
#align cau_seq.completion.mk_neg CauSeq.Completion.mk_neg
+-/
instance : Mul (Cauchy abv) :=
⟨Quotient.map₂ (· * ·) fun f₁ g₁ hf f₂ g₂ hg => mul_equiv_mul hf hg⟩
+#print CauSeq.Completion.mk_mul /-
@[simp]
theorem mk_mul (f g : CauSeq β abv) : mk f * mk g = mk (f * g) :=
rfl
#align cau_seq.completion.mk_mul CauSeq.Completion.mk_mul
+-/
instance : Sub (Cauchy abv) :=
⟨Quotient.map₂ Sub.sub fun f₁ g₁ hf f₂ g₂ hg => sub_equiv_sub hf hg⟩
+#print CauSeq.Completion.mk_sub /-
@[simp]
theorem mk_sub (f g : CauSeq β abv) : mk f - mk g = mk (f - g) :=
rfl
#align cau_seq.completion.mk_sub CauSeq.Completion.mk_sub
+-/
instance {γ : Type _} [SMul γ β] [IsScalarTower γ β β] : SMul γ (Cauchy abv) :=
⟨fun c => Quotient.map ((· • ·) c) fun f₁ g₁ hf => smul_equiv_smul _ hf⟩
+#print CauSeq.Completion.mk_smul /-
@[simp]
theorem mk_smul {γ : Type _} [SMul γ β] [IsScalarTower γ β β] (c : γ) (f : CauSeq β abv) :
c • mk f = mk (c • f) :=
rfl
#align cau_seq.completion.mk_smul CauSeq.Completion.mk_smul
+-/
instance : Pow (Cauchy abv) ℕ :=
⟨fun x n => Quotient.map (· ^ n) (fun f₁ g₁ hf => pow_equiv_pow hf _) x⟩
+#print CauSeq.Completion.mk_pow /-
@[simp]
theorem mk_pow (n : ℕ) (f : CauSeq β abv) : mk f ^ n = mk (f ^ n) :=
rfl
#align cau_seq.completion.mk_pow CauSeq.Completion.mk_pow
+-/
instance : NatCast (Cauchy abv) :=
⟨fun n => mk n⟩
@@ -140,27 +162,37 @@ instance : NatCast (Cauchy abv) :=
instance : IntCast (Cauchy abv) :=
⟨fun n => mk n⟩
+#print CauSeq.Completion.ofRat_natCast /-
@[simp]
theorem ofRat_natCast (n : ℕ) : (ofRat n : Cauchy abv) = n :=
rfl
#align cau_seq.completion.of_rat_nat_cast CauSeq.Completion.ofRat_natCast
+-/
+#print CauSeq.Completion.ofRat_intCast /-
@[simp]
theorem ofRat_intCast (z : ℤ) : (ofRat z : Cauchy abv) = z :=
rfl
#align cau_seq.completion.of_rat_int_cast CauSeq.Completion.ofRat_intCast
+-/
+#print CauSeq.Completion.ofRat_add /-
theorem ofRat_add (x y : β) : ofRat (x + y) = (ofRat x + ofRat y : Cauchy abv) :=
congr_arg mk (const_add _ _)
#align cau_seq.completion.of_rat_add CauSeq.Completion.ofRat_add
+-/
+#print CauSeq.Completion.ofRat_neg /-
theorem ofRat_neg (x : β) : ofRat (-x) = (-ofRat x : Cauchy abv) :=
congr_arg mk (const_neg _)
#align cau_seq.completion.of_rat_neg CauSeq.Completion.ofRat_neg
+-/
+#print CauSeq.Completion.ofRat_mul /-
theorem ofRat_mul (x y : β) : ofRat (x * y) = (ofRat x * ofRat y : Cauchy abv) :=
congr_arg mk (const_mul _ _)
#align cau_seq.completion.of_rat_mul CauSeq.Completion.ofRat_mul
+-/
private theorem zero_def : 0 = (mk 0 : Cauchy abv) :=
rfl
@@ -186,9 +218,11 @@ def ofRatRingHom : β →+* Cauchy abv where
#align cau_seq.completion.of_rat_ring_hom CauSeq.Completion.ofRatRingHom
-/
+#print CauSeq.Completion.ofRat_sub /-
theorem ofRat_sub (x y : β) : ofRat (x - y) = (ofRat x - ofRat y : Cauchy abv) :=
congr_arg mk (const_sub _ _)
#align cau_seq.completion.of_rat_sub CauSeq.Completion.ofRat_sub
+-/
end
@@ -217,10 +251,12 @@ variable {β : Type _} [DivisionRing β] {abv : β → α} [IsAbsoluteValue abv]
instance : HasRatCast (Cauchy abv) :=
⟨fun q => ofRat q⟩
+#print CauSeq.Completion.ofRat_ratCast /-
@[simp]
theorem ofRat_ratCast (q : ℚ) : ofRat (↑q : β) = (q : Cauchy abv) :=
rfl
#align cau_seq.completion.of_rat_rat_cast CauSeq.Completion.ofRat_ratCast
+-/
noncomputable instance : Inv (Cauchy abv) :=
⟨fun x =>
@@ -236,40 +272,54 @@ noncomputable instance : Inv (Cauchy abv) :=
rw [mk_eq.2 fg, ← Ig] at If
rw [← mul_one (mk (inv f hf)), ← Ig', ← mul_assoc, If, mul_assoc, Ig', mul_one]⟩
+#print CauSeq.Completion.inv_zero /-
@[simp]
theorem inv_zero : (0 : Cauchy abv)⁻¹ = 0 :=
congr_arg mk <| by rw [dif_pos] <;> [rfl; exact zero_lim_zero]
#align cau_seq.completion.inv_zero CauSeq.Completion.inv_zero
+-/
+#print CauSeq.Completion.inv_mk /-
@[simp]
theorem inv_mk {f} (hf) : (@mk α _ β _ abv _ f)⁻¹ = mk (inv f hf) :=
congr_arg mk <| by rw [dif_neg]
#align cau_seq.completion.inv_mk CauSeq.Completion.inv_mk
+-/
+#print CauSeq.Completion.cau_seq_zero_ne_one /-
theorem cau_seq_zero_ne_one : ¬(0 : CauSeq _ abv) ≈ 1 := fun h =>
have : LimZero (1 - 0) := Setoid.symm h
have : LimZero 1 := by simpa
one_ne_zero <| const_limZero.1 this
#align cau_seq.completion.cau_seq_zero_ne_one CauSeq.Completion.cau_seq_zero_ne_one
+-/
+#print CauSeq.Completion.zero_ne_one /-
theorem zero_ne_one : (0 : Cauchy abv) ≠ 1 := fun h => cau_seq_zero_ne_one <| mk_eq.1 h
#align cau_seq.completion.zero_ne_one CauSeq.Completion.zero_ne_one
+-/
+#print CauSeq.Completion.inv_mul_cancel /-
protected theorem inv_mul_cancel {x : Cauchy abv} : x ≠ 0 → x⁻¹ * x = 1 :=
Quotient.inductionOn x fun f hf => by
simp at hf ; simp [hf]
exact Quotient.sound (CauSeq.inv_mul_cancel hf)
#align cau_seq.completion.inv_mul_cancel CauSeq.Completion.inv_mul_cancel
+-/
+#print CauSeq.Completion.mul_inv_cancel /-
protected theorem mul_inv_cancel {x : Cauchy abv} : x ≠ 0 → x * x⁻¹ = 1 :=
Quotient.inductionOn x fun f hf => by
simp at hf ; simp [hf]
exact Quotient.sound (CauSeq.mul_inv_cancel hf)
#align cau_seq.completion.mul_inv_cancel CauSeq.Completion.mul_inv_cancel
+-/
+#print CauSeq.Completion.ofRat_inv /-
theorem ofRat_inv (x : β) : ofRat x⁻¹ = ((ofRat x)⁻¹ : Cauchy abv) :=
congr_arg mk <| by split_ifs with h <;> [simp [const_lim_zero.1 h]; rfl]
#align cau_seq.completion.of_rat_inv CauSeq.Completion.ofRat_inv
+-/
/-- The Cauchy completion forms a division ring. -/
noncomputable instance : DivisionRing (Cauchy abv) :=
@@ -282,9 +332,11 @@ noncomputable instance : DivisionRing (Cauchy abv) :=
ratCast_mk := fun n d hd hnd => by
rw [Rat.cast_mk', of_rat_mul, of_rat_int_cast, of_rat_inv, of_rat_nat_cast] }
+#print CauSeq.Completion.ofRat_div /-
theorem ofRat_div (x y : β) : ofRat (x / y) = (ofRat x / ofRat y : Cauchy abv) := by
simp only [div_eq_mul_inv, of_rat_inv, of_rat_mul]
#align cau_seq.completion.of_rat_div CauSeq.Completion.ofRat_div
+-/
/-- Show the first 10 items of a representative of this equivalence class of cauchy sequences.
@@ -337,9 +389,11 @@ variable {β : Type _} [Ring β] {abv : β → α} [IsAbsoluteValue abv]
variable [IsComplete β abv]
+#print CauSeq.complete /-
theorem complete : ∀ s : CauSeq β abv, ∃ b : β, s ≈ const abv b :=
IsComplete.isComplete
#align cau_seq.complete CauSeq.complete
+-/
#print CauSeq.lim /-
/-- The limit of a Cauchy sequence in a complete ring. Chosen non-computably. -/
@@ -348,21 +402,29 @@ noncomputable def lim (s : CauSeq β abv) : β :=
#align cau_seq.lim CauSeq.lim
-/
+#print CauSeq.equiv_lim /-
theorem equiv_lim (s : CauSeq β abv) : s ≈ const abv (lim s) :=
Classical.choose_spec (complete s)
#align cau_seq.equiv_lim CauSeq.equiv_lim
+-/
+#print CauSeq.eq_lim_of_const_equiv /-
theorem eq_lim_of_const_equiv {f : CauSeq β abv} {x : β} (h : CauSeq.const abv x ≈ f) : x = lim f :=
const_equiv.mp <| Setoid.trans h <| equiv_lim f
#align cau_seq.eq_lim_of_const_equiv CauSeq.eq_lim_of_const_equiv
+-/
+#print CauSeq.lim_eq_of_equiv_const /-
theorem lim_eq_of_equiv_const {f : CauSeq β abv} {x : β} (h : f ≈ CauSeq.const abv x) : lim f = x :=
(eq_lim_of_const_equiv <| Setoid.symm h).symm
#align cau_seq.lim_eq_of_equiv_const CauSeq.lim_eq_of_equiv_const
+-/
+#print CauSeq.lim_eq_lim_of_equiv /-
theorem lim_eq_lim_of_equiv {f g : CauSeq β abv} (h : f ≈ g) : lim f = lim g :=
lim_eq_of_equiv_const <| Setoid.trans h <| equiv_lim g
#align cau_seq.lim_eq_lim_of_equiv CauSeq.lim_eq_lim_of_equiv
+-/
#print CauSeq.lim_const /-
@[simp]
@@ -371,13 +433,16 @@ theorem lim_const (x : β) : lim (const abv x) = x :=
#align cau_seq.lim_const CauSeq.lim_const
-/
+#print CauSeq.lim_add /-
theorem lim_add (f g : CauSeq β abv) : lim f + lim g = lim (f + g) :=
eq_lim_of_const_equiv <|
show LimZero (const abv (lim f + lim g) - (f + g)) by
rw [const_add, add_sub_add_comm] <;>
exact add_lim_zero (Setoid.symm (equiv_lim f)) (Setoid.symm (equiv_lim g))
#align cau_seq.lim_add CauSeq.lim_add
+-/
+#print CauSeq.lim_mul_lim /-
theorem lim_mul_lim (f g : CauSeq β abv) : lim f * lim g = lim (f * g) :=
eq_lim_of_const_equiv <|
show LimZero (const abv (lim f * lim g) - f * g)
@@ -391,18 +456,24 @@ theorem lim_mul_lim (f g : CauSeq β abv) : lim f * lim g = lim (f * g) :=
add_lim_zero (mul_lim_zero_left _ (Setoid.symm (equiv_lim _)))
(mul_lim_zero_right _ (Setoid.symm (equiv_lim _)))
#align cau_seq.lim_mul_lim CauSeq.lim_mul_lim
+-/
+#print CauSeq.lim_mul /-
theorem lim_mul (f : CauSeq β abv) (x : β) : lim f * x = lim (f * const abv x) := by
rw [← lim_mul_lim, lim_const]
#align cau_seq.lim_mul CauSeq.lim_mul
+-/
+#print CauSeq.lim_neg /-
theorem lim_neg (f : CauSeq β abv) : lim (-f) = -lim f :=
lim_eq_of_equiv_const
(show LimZero (-f - const abv (-lim f)) by
rw [const_neg, sub_neg_eq_add, add_comm, ← sub_eq_add_neg] <;>
exact Setoid.symm (equiv_lim f))
#align cau_seq.lim_neg CauSeq.lim_neg
+-/
+#print CauSeq.lim_eq_zero_iff /-
theorem lim_eq_zero_iff (f : CauSeq β abv) : lim f = 0 ↔ LimZero f :=
⟨fun h => by
have hf := equiv_lim f <;> rw [h] at hf <;>
@@ -412,6 +483,7 @@ theorem lim_eq_zero_iff (f : CauSeq β abv) : lim f = 0 ↔ LimZero f :=
have h₁ : f = f - const abv 0 := ext fun n => by simp [sub_apply, const_apply]
rw [h₁] at h <;> exact lim_eq_of_equiv_const h⟩
#align cau_seq.lim_eq_zero_iff CauSeq.lim_eq_zero_iff
+-/
end
@@ -419,6 +491,7 @@ section
variable {β : Type _} [Field β] {abv : β → α} [IsAbsoluteValue abv] [IsComplete β abv]
+#print CauSeq.lim_inv /-
theorem lim_inv {f : CauSeq β abv} (hf : ¬LimZero f) : lim (inv f hf) = (lim f)⁻¹ :=
have hl : lim f ≠ 0 := by rwa [← lim_eq_zero_iff] at hf
lim_eq_of_equiv_const <|
@@ -443,6 +516,7 @@ theorem lim_inv {f : CauSeq β abv} (hf : ¬LimZero f) : lim (inv f hf) = (lim f
(by rw [← mul_assoc] <;> exact h₁ _ _ _)
(limZero_congr h₂).mpr <| mul_limZero_left _ (Setoid.symm (equiv_lim f))
#align cau_seq.lim_inv CauSeq.lim_inv
+-/
end
@@ -450,21 +524,29 @@ section
variable [IsComplete α abs]
+#print CauSeq.lim_le /-
theorem lim_le {f : CauSeq α abs} {x : α} (h : f ≤ CauSeq.const abs x) : lim f ≤ x :=
CauSeq.const_le.1 <| CauSeq.le_of_eq_of_le (Setoid.symm (equiv_lim f)) h
#align cau_seq.lim_le CauSeq.lim_le
+-/
+#print CauSeq.le_lim /-
theorem le_lim {f : CauSeq α abs} {x : α} (h : CauSeq.const abs x ≤ f) : x ≤ lim f :=
CauSeq.const_le.1 <| CauSeq.le_of_le_of_eq h (equiv_lim f)
#align cau_seq.le_lim CauSeq.le_lim
+-/
+#print CauSeq.lt_lim /-
theorem lt_lim {f : CauSeq α abs} {x : α} (h : CauSeq.const abs x < f) : x < lim f :=
CauSeq.const_lt.1 <| CauSeq.lt_of_lt_of_eq h (equiv_lim f)
#align cau_seq.lt_lim CauSeq.lt_lim
+-/
+#print CauSeq.lim_lt /-
theorem lim_lt {f : CauSeq α abs} {x : α} (h : f < CauSeq.const abs x) : lim f < x :=
CauSeq.const_lt.1 <| CauSeq.lt_of_eq_of_lt (Setoid.symm (equiv_lim f)) h
#align cau_seq.lim_lt CauSeq.lim_lt
+-/
end
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -82,7 +82,7 @@ theorem ofRat_one : (ofRat 1 : Cauchy abv) = 1 :=
@[simp]
theorem mk_eq_zero {f : CauSeq _ abv} : mk f = 0 ↔ LimZero f := by
- have : mk f = 0 ↔ lim_zero (f - 0) := Quotient.eq' <;> rwa [sub_zero] at this
+ have : mk f = 0 ↔ lim_zero (f - 0) := Quotient.eq' <;> rwa [sub_zero] at this
#align cau_seq.completion.mk_eq_zero CauSeq.Completion.mk_eq_zero
instance : Add (Cauchy abv) :=
@@ -233,12 +233,12 @@ noncomputable instance : Inv (Cauchy abv) :=
have If : mk (inv f hf) * mk f = 1 := mk_eq.2 (inv_mul_cancel hf)
have Ig : mk (inv g hg) * mk g = 1 := mk_eq.2 (inv_mul_cancel hg)
have Ig' : mk g * mk (inv g hg) = 1 := mk_eq.2 (mul_inv_cancel hg)
- rw [mk_eq.2 fg, ← Ig] at If
+ rw [mk_eq.2 fg, ← Ig] at If
rw [← mul_one (mk (inv f hf)), ← Ig', ← mul_assoc, If, mul_assoc, Ig', mul_one]⟩
@[simp]
theorem inv_zero : (0 : Cauchy abv)⁻¹ = 0 :=
- congr_arg mk <| by rw [dif_pos] <;> [rfl;exact zero_lim_zero]
+ congr_arg mk <| by rw [dif_pos] <;> [rfl; exact zero_lim_zero]
#align cau_seq.completion.inv_zero CauSeq.Completion.inv_zero
@[simp]
@@ -257,18 +257,18 @@ theorem zero_ne_one : (0 : Cauchy abv) ≠ 1 := fun h => cau_seq_zero_ne_one <|
protected theorem inv_mul_cancel {x : Cauchy abv} : x ≠ 0 → x⁻¹ * x = 1 :=
Quotient.inductionOn x fun f hf => by
- simp at hf; simp [hf]
+ simp at hf ; simp [hf]
exact Quotient.sound (CauSeq.inv_mul_cancel hf)
#align cau_seq.completion.inv_mul_cancel CauSeq.Completion.inv_mul_cancel
protected theorem mul_inv_cancel {x : Cauchy abv} : x ≠ 0 → x * x⁻¹ = 1 :=
Quotient.inductionOn x fun f hf => by
- simp at hf; simp [hf]
+ simp at hf ; simp [hf]
exact Quotient.sound (CauSeq.mul_inv_cancel hf)
#align cau_seq.completion.mul_inv_cancel CauSeq.Completion.mul_inv_cancel
theorem ofRat_inv (x : β) : ofRat x⁻¹ = ((ofRat x)⁻¹ : Cauchy abv) :=
- congr_arg mk <| by split_ifs with h <;> [simp [const_lim_zero.1 h];rfl]
+ congr_arg mk <| by split_ifs with h <;> [simp [const_lim_zero.1 h]; rfl]
#align cau_seq.completion.of_rat_inv CauSeq.Completion.ofRat_inv
/-- The Cauchy completion forms a division ring. -/
@@ -405,12 +405,12 @@ theorem lim_neg (f : CauSeq β abv) : lim (-f) = -lim f :=
theorem lim_eq_zero_iff (f : CauSeq β abv) : lim f = 0 ↔ LimZero f :=
⟨fun h => by
- have hf := equiv_lim f <;> rw [h] at hf <;>
+ have hf := equiv_lim f <;> rw [h] at hf <;>
exact (lim_zero_congr hf).mpr (const_lim_zero.mpr rfl),
fun h =>
by
have h₁ : f = f - const abv 0 := ext fun n => by simp [sub_apply, const_apply]
- rw [h₁] at h <;> exact lim_eq_of_equiv_const h⟩
+ rw [h₁] at h <;> exact lim_eq_of_equiv_const h⟩
#align cau_seq.lim_eq_zero_iff CauSeq.lim_eq_zero_iff
end
@@ -420,7 +420,7 @@ section
variable {β : Type _} [Field β] {abv : β → α} [IsAbsoluteValue abv] [IsComplete β abv]
theorem lim_inv {f : CauSeq β abv} (hf : ¬LimZero f) : lim (inv f hf) = (lim f)⁻¹ :=
- have hl : lim f ≠ 0 := by rwa [← lim_eq_zero_iff] at hf
+ have hl : lim f ≠ 0 := by rwa [← lim_eq_zero_iff] at hf
lim_eq_of_equiv_const <|
show LimZero (inv f hf - const abv (lim f)⁻¹) from
have h₁ : ∀ (g f : CauSeq β abv) (hf : ¬LimZero f), LimZero (g - f * inv f hf * g) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -206,7 +206,7 @@ instance : CommRing (Cauchy abv) :=
end
-open Classical
+open scoped Classical
section
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -47,23 +47,11 @@ def mk : CauSeq _ abv → Cauchy abv :=
#align cau_seq.completion.mk CauSeq.Completion.mk
-/
-/- warning: cau_seq.completion.mk_eq_mk -> CauSeq.Completion.mk_eq_mk is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (f : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (Quotient.mk'.{succ u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.equiv.{u1, u2} α β _inst_1 _inst_2 abv _inst_3) f) (CauSeq.Completion.mk.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 f)
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} α] {β : Type.{u1}} [_inst_2 : Ring.{u1} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u2, u1} α (OrderedCommSemiring.toOrderedSemiring.{u2} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} α (LinearOrderedField.toLinearOrderedSemifield.{u2} α _inst_1))))) β (Ring.toSemiring.{u1} β _inst_2) abv] (f : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv), Eq.{succ u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (Quotient.mk.{succ u1} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.equiv.{u2, u1} α β _inst_1 _inst_2 abv _inst_3) f) (CauSeq.Completion.mk.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 f)
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.mk_eq_mk CauSeq.Completion.mk_eq_mkₓ'. -/
@[simp]
theorem mk_eq_mk (f) : @Eq (Cauchy abv) ⟦f⟧ (mk f) :=
rfl
#align cau_seq.completion.mk_eq_mk CauSeq.Completion.mk_eq_mk
-/- warning: cau_seq.completion.mk_eq -> CauSeq.Completion.mk_eq is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] {f : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv} {g : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv}, Iff (Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.mk.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 f) (CauSeq.Completion.mk.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 g)) (HasEquivₓ.Equiv.{succ u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (setoidHasEquiv.{succ u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.equiv.{u1, u2} α β _inst_1 _inst_2 abv _inst_3)) f g)
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} α] {β : Type.{u1}} [_inst_2 : Ring.{u1} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u2, u1} α (OrderedCommSemiring.toOrderedSemiring.{u2} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} α (LinearOrderedField.toLinearOrderedSemifield.{u2} α _inst_1))))) β (Ring.toSemiring.{u1} β _inst_2) abv] {f : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv} {g : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv}, Iff (Eq.{succ u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.mk.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 f) (CauSeq.Completion.mk.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 g)) (HasEquiv.Equiv.{succ u1, 0} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (instHasEquiv.{succ u1} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.equiv.{u2, u1} α β _inst_1 _inst_2 abv _inst_3)) f g)
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.mk_eq CauSeq.Completion.mk_eqₓ'. -/
theorem mk_eq {f g : CauSeq _ abv} : mk f = mk g ↔ f ≈ g :=
Quotient.eq'
#align cau_seq.completion.mk_eq CauSeq.Completion.mk_eq
@@ -84,32 +72,14 @@ instance : One (Cauchy abv) :=
instance : Inhabited (Cauchy abv) :=
⟨0⟩
-/- warning: cau_seq.completion.of_rat_zero -> CauSeq.Completion.ofRat_zero is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv], Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β _inst_2))))))))) (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) 0 (OfNat.mk.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) 0 (Zero.zero.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasZero.{u1, u2} α _inst_1 β _inst_2 abv _inst_3))))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv], Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (OfNat.ofNat.{u2} β 0 (Zero.toOfNat0.{u2} β (MonoidWithZero.toZero.{u2} β (Semiring.toMonoidWithZero.{u2} β (Ring.toSemiring.{u2} β _inst_2)))))) (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) 0 (Zero.toOfNat0.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instZeroCauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)))
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.of_rat_zero CauSeq.Completion.ofRat_zeroₓ'. -/
theorem ofRat_zero : (ofRat 0 : Cauchy abv) = 0 :=
rfl
#align cau_seq.completion.of_rat_zero CauSeq.Completion.ofRat_zero
-/- warning: cau_seq.completion.of_rat_one -> CauSeq.Completion.ofRat_one is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv], Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β _inst_2)))))))) (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) 1 (OfNat.mk.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) 1 (One.one.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasOne.{u1, u2} α _inst_1 β _inst_2 abv _inst_3))))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv], Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (OfNat.ofNat.{u2} β 1 (One.toOfNat1.{u2} β (Semiring.toOne.{u2} β (Ring.toSemiring.{u2} β _inst_2))))) (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) 1 (One.toOfNat1.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instOneCauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)))
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.of_rat_one CauSeq.Completion.ofRat_oneₓ'. -/
theorem ofRat_one : (ofRat 1 : Cauchy abv) = 1 :=
rfl
#align cau_seq.completion.of_rat_one CauSeq.Completion.ofRat_one
-/- warning: cau_seq.completion.mk_eq_zero -> CauSeq.Completion.mk_eq_zero is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] {f : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv}, Iff (Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.mk.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 f) (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) 0 (OfNat.mk.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) 0 (Zero.zero.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasZero.{u1, u2} α _inst_1 β _inst_2 abv _inst_3))))) (CauSeq.LimZero.{u1, u2} α β _inst_1 _inst_2 abv f)
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} α] {β : Type.{u1}} [_inst_2 : Ring.{u1} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u2, u1} α (OrderedCommSemiring.toOrderedSemiring.{u2} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} α (LinearOrderedField.toLinearOrderedSemifield.{u2} α _inst_1))))) β (Ring.toSemiring.{u1} β _inst_2) abv] {f : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv}, Iff (Eq.{succ u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.mk.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 f) (OfNat.ofNat.{u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) 0 (Zero.toOfNat0.{u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instZeroCauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3)))) (CauSeq.LimZero.{u2, u1} α β _inst_1 _inst_2 abv f)
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.mk_eq_zero CauSeq.Completion.mk_eq_zeroₓ'. -/
@[simp]
theorem mk_eq_zero {f : CauSeq _ abv} : mk f = 0 ↔ LimZero f := by
have : mk f = 0 ↔ lim_zero (f - 0) := Quotient.eq' <;> rwa [sub_zero] at this
@@ -118,12 +88,6 @@ theorem mk_eq_zero {f : CauSeq _ abv} : mk f = 0 ↔ LimZero f := by
instance : Add (Cauchy abv) :=
⟨Quotient.map₂ (· + ·) fun f₁ g₁ hf f₂ g₂ hg => add_equiv_add hf hg⟩
-/- warning: cau_seq.completion.mk_add -> CauSeq.Completion.mk_add is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (f : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (g : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (HAdd.hAdd.{u2, u2, u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (instHAdd.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasAdd.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)) (CauSeq.Completion.mk.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 f) (CauSeq.Completion.mk.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 g)) (CauSeq.Completion.mk.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (HAdd.hAdd.{u2, u2, u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (instHAdd.{u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.hasAdd.{u1, u2} α β _inst_1 _inst_2 abv _inst_3)) f g))
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} α] {β : Type.{u1}} [_inst_2 : Ring.{u1} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u2, u1} α (OrderedCommSemiring.toOrderedSemiring.{u2} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} α (LinearOrderedField.toLinearOrderedSemifield.{u2} α _inst_1))))) β (Ring.toSemiring.{u1} β _inst_2) abv] (f : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (g : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv), Eq.{succ u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (HAdd.hAdd.{u1, u1, u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (instHAdd.{u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instAddCauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3)) (CauSeq.Completion.mk.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 f) (CauSeq.Completion.mk.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 g)) (CauSeq.Completion.mk.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 (HAdd.hAdd.{u1, u1, u1} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (instHAdd.{u1} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.instAddCauSeq.{u2, u1} α β _inst_1 _inst_2 abv _inst_3)) f g))
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.mk_add CauSeq.Completion.mk_addₓ'. -/
@[simp]
theorem mk_add (f g : CauSeq β abv) : mk f + mk g = mk (f + g) :=
rfl
@@ -132,12 +96,6 @@ theorem mk_add (f g : CauSeq β abv) : mk f + mk g = mk (f + g) :=
instance : Neg (Cauchy abv) :=
⟨Quotient.map Neg.neg fun f₁ f₂ hf => neg_equiv_neg hf⟩
-/- warning: cau_seq.completion.mk_neg -> CauSeq.Completion.mk_neg is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (f : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (Neg.neg.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasNeg.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.mk.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 f)) (CauSeq.Completion.mk.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (Neg.neg.{u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.hasNeg.{u1, u2} α β _inst_1 _inst_2 abv _inst_3) f))
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} α] {β : Type.{u1}} [_inst_2 : Ring.{u1} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u2, u1} α (OrderedCommSemiring.toOrderedSemiring.{u2} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} α (LinearOrderedField.toLinearOrderedSemifield.{u2} α _inst_1))))) β (Ring.toSemiring.{u1} β _inst_2) abv] (f : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv), Eq.{succ u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (Neg.neg.{u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instNegCauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.mk.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 f)) (CauSeq.Completion.mk.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 (Neg.neg.{u1} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.instNegCauSeq.{u2, u1} α β _inst_1 _inst_2 abv _inst_3) f))
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.mk_neg CauSeq.Completion.mk_negₓ'. -/
@[simp]
theorem mk_neg (f : CauSeq β abv) : -mk f = mk (-f) :=
rfl
@@ -146,12 +104,6 @@ theorem mk_neg (f : CauSeq β abv) : -mk f = mk (-f) :=
instance : Mul (Cauchy abv) :=
⟨Quotient.map₂ (· * ·) fun f₁ g₁ hf f₂ g₂ hg => mul_equiv_mul hf hg⟩
-/- warning: cau_seq.completion.mk_mul -> CauSeq.Completion.mk_mul is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (f : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (g : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (HMul.hMul.{u2, u2, u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (instHMul.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasMul.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)) (CauSeq.Completion.mk.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 f) (CauSeq.Completion.mk.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 g)) (CauSeq.Completion.mk.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (HMul.hMul.{u2, u2, u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (instHMul.{u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.hasMul.{u1, u2} α β _inst_1 _inst_2 abv _inst_3)) f g))
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} α] {β : Type.{u1}} [_inst_2 : Ring.{u1} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u2, u1} α (OrderedCommSemiring.toOrderedSemiring.{u2} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} α (LinearOrderedField.toLinearOrderedSemifield.{u2} α _inst_1))))) β (Ring.toSemiring.{u1} β _inst_2) abv] (f : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (g : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv), Eq.{succ u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (HMul.hMul.{u1, u1, u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (instHMul.{u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instMulCauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3)) (CauSeq.Completion.mk.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 f) (CauSeq.Completion.mk.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 g)) (CauSeq.Completion.mk.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 (HMul.hMul.{u1, u1, u1} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (instHMul.{u1} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.instMulCauSeq.{u2, u1} α β _inst_1 _inst_2 abv _inst_3)) f g))
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.mk_mul CauSeq.Completion.mk_mulₓ'. -/
@[simp]
theorem mk_mul (f g : CauSeq β abv) : mk f * mk g = mk (f * g) :=
rfl
@@ -160,12 +112,6 @@ theorem mk_mul (f g : CauSeq β abv) : mk f * mk g = mk (f * g) :=
instance : Sub (Cauchy abv) :=
⟨Quotient.map₂ Sub.sub fun f₁ g₁ hf f₂ g₂ hg => sub_equiv_sub hf hg⟩
-/- warning: cau_seq.completion.mk_sub -> CauSeq.Completion.mk_sub is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (f : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (g : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (HSub.hSub.{u2, u2, u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (instHSub.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasSub.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)) (CauSeq.Completion.mk.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 f) (CauSeq.Completion.mk.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 g)) (CauSeq.Completion.mk.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (HSub.hSub.{u2, u2, u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (instHSub.{u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.hasSub.{u1, u2} α β _inst_1 _inst_2 abv _inst_3)) f g))
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} α] {β : Type.{u1}} [_inst_2 : Ring.{u1} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u2, u1} α (OrderedCommSemiring.toOrderedSemiring.{u2} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} α (LinearOrderedField.toLinearOrderedSemifield.{u2} α _inst_1))))) β (Ring.toSemiring.{u1} β _inst_2) abv] (f : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (g : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv), Eq.{succ u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (HSub.hSub.{u1, u1, u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (instHSub.{u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instSubCauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3)) (CauSeq.Completion.mk.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 f) (CauSeq.Completion.mk.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 g)) (CauSeq.Completion.mk.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 (HSub.hSub.{u1, u1, u1} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (instHSub.{u1} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.instSubCauSeq.{u2, u1} α β _inst_1 _inst_2 abv _inst_3)) f g))
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.mk_sub CauSeq.Completion.mk_subₓ'. -/
@[simp]
theorem mk_sub (f g : CauSeq β abv) : mk f - mk g = mk (f - g) :=
rfl
@@ -174,12 +120,6 @@ theorem mk_sub (f g : CauSeq β abv) : mk f - mk g = mk (f - g) :=
instance {γ : Type _} [SMul γ β] [IsScalarTower γ β β] : SMul γ (Cauchy abv) :=
⟨fun c => Quotient.map ((· • ·) c) fun f₁ g₁ hf => smul_equiv_smul _ hf⟩
-/- warning: cau_seq.completion.mk_smul -> CauSeq.Completion.mk_smul is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] {γ : Type.{u3}} [_inst_4 : SMul.{u3, u2} γ β] [_inst_5 : IsScalarTower.{u3, u2, u2} γ β β _inst_4 (Mul.toSMul.{u2} β (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β _inst_2))) _inst_4] (c : γ) (f : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (SMul.smul.{u3, u2} γ (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasSmul.{u1, u2, u3} α _inst_1 β _inst_2 abv _inst_3 γ _inst_4 _inst_5) c (CauSeq.Completion.mk.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 f)) (CauSeq.Completion.mk.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (SMul.smul.{u3, u2} γ (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.hasSmul.{u3, u1, u2} γ α β _inst_1 _inst_2 abv _inst_3 _inst_4 _inst_5) c f))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] {γ : Type.{u3}} [_inst_4 : SMul.{u3, u2} γ β] [_inst_5 : IsScalarTower.{u3, u2, u2} γ β β _inst_4 (MulAction.toSMul.{u2, u2} β β (MonoidWithZero.toMonoid.{u2} β (Semiring.toMonoidWithZero.{u2} β (Ring.toSemiring.{u2} β _inst_2))) (Monoid.toMulAction.{u2} β (MonoidWithZero.toMonoid.{u2} β (Semiring.toMonoidWithZero.{u2} β (Ring.toSemiring.{u2} β _inst_2))))) _inst_4] (c : γ) (f : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (HSMul.hSMul.{u3, u2, u2} γ (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (instHSMul.{u3, u2} γ (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instSMulCauchy.{u1, u2, u3} α _inst_1 β _inst_2 abv _inst_3 γ _inst_4 _inst_5)) c (CauSeq.Completion.mk.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 f)) (CauSeq.Completion.mk.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (HSMul.hSMul.{u3, u2, u2} γ (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (instHSMul.{u3, u2} γ (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.instSMulCauSeq.{u1, u2, u3} α β γ _inst_1 _inst_2 abv _inst_3 _inst_4 _inst_5)) c f))
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.mk_smul CauSeq.Completion.mk_smulₓ'. -/
@[simp]
theorem mk_smul {γ : Type _} [SMul γ β] [IsScalarTower γ β β] (c : γ) (f : CauSeq β abv) :
c • mk f = mk (c • f) :=
@@ -189,12 +129,6 @@ theorem mk_smul {γ : Type _} [SMul γ β] [IsScalarTower γ β β] (c : γ) (f
instance : Pow (Cauchy abv) ℕ :=
⟨fun x n => Quotient.map (· ^ n) (fun f₁ g₁ hf => pow_equiv_pow hf _) x⟩
-/- warning: cau_seq.completion.mk_pow -> CauSeq.Completion.mk_pow is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (n : Nat) (f : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (HPow.hPow.{u2, 0, u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) Nat (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (instHPow.{u2, 0} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) Nat (CauSeq.Completion.Nat.hasPow.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)) (CauSeq.Completion.mk.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 f) n) (CauSeq.Completion.mk.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (HPow.hPow.{u2, 0, u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) Nat (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (instHPow.{u2, 0} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) Nat (CauSeq.Nat.hasPow.{u1, u2} α β _inst_1 _inst_2 abv _inst_3)) f n))
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} α] {β : Type.{u1}} [_inst_2 : Ring.{u1} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u2, u1} α (OrderedCommSemiring.toOrderedSemiring.{u2} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} α (LinearOrderedField.toLinearOrderedSemifield.{u2} α _inst_1))))) β (Ring.toSemiring.{u1} β _inst_2) abv] (n : Nat) (f : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv), Eq.{succ u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (HPow.hPow.{u1, 0, u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) Nat (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (instHPow.{u1, 0} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) Nat (CauSeq.Completion.instPowCauchyNat.{u2, u1} α _inst_1 β _inst_2 abv _inst_3)) (CauSeq.Completion.mk.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 f) n) (CauSeq.Completion.mk.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 (HPow.hPow.{u1, 0, u1} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) Nat (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (instHPow.{u1, 0} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) Nat (CauSeq.instPowCauSeqNat.{u2, u1} α β _inst_1 _inst_2 abv _inst_3)) f n))
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.mk_pow CauSeq.Completion.mk_powₓ'. -/
@[simp]
theorem mk_pow (n : ℕ) (f : CauSeq β abv) : mk f ^ n = mk (f ^ n) :=
rfl
@@ -206,54 +140,24 @@ instance : NatCast (Cauchy abv) :=
instance : IntCast (Cauchy abv) :=
⟨fun n => mk n⟩
-/- warning: cau_seq.completion.of_rat_nat_cast -> CauSeq.Completion.ofRat_natCast is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (n : Nat), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat β (HasLiftT.mk.{1, succ u2} Nat β (CoeTCₓ.coe.{1, succ u2} Nat β (Nat.castCoe.{u2} β (AddMonoidWithOne.toNatCast.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β _inst_2))))))) n)) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (HasLiftT.mk.{1, succ u2} Nat (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CoeTCₓ.coe.{1, succ u2} Nat (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (Nat.castCoe.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasNatCast.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)))) n)
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (n : Nat), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (Nat.cast.{u2} β (Semiring.toNatCast.{u2} β (Ring.toSemiring.{u2} β _inst_2)) n)) (Nat.cast.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instNatCastCauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) n)
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.of_rat_nat_cast CauSeq.Completion.ofRat_natCastₓ'. -/
@[simp]
theorem ofRat_natCast (n : ℕ) : (ofRat n : Cauchy abv) = n :=
rfl
#align cau_seq.completion.of_rat_nat_cast CauSeq.Completion.ofRat_natCast
-/- warning: cau_seq.completion.of_rat_int_cast -> CauSeq.Completion.ofRat_intCast is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (z : Int), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int β (HasLiftT.mk.{1, succ u2} Int β (CoeTCₓ.coe.{1, succ u2} Int β (Int.castCoe.{u2} β (AddGroupWithOne.toHasIntCast.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β _inst_2)))))) z)) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (HasLiftT.mk.{1, succ u2} Int (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CoeTCₓ.coe.{1, succ u2} Int (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (Int.castCoe.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasIntCast.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)))) z)
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (z : Int), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (Int.cast.{u2} β (Ring.toIntCast.{u2} β _inst_2) z)) (Int.cast.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instIntCastCauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) z)
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.of_rat_int_cast CauSeq.Completion.ofRat_intCastₓ'. -/
@[simp]
theorem ofRat_intCast (z : ℤ) : (ofRat z : Cauchy abv) = z :=
rfl
#align cau_seq.completion.of_rat_int_cast CauSeq.Completion.ofRat_intCast
-/- warning: cau_seq.completion.of_rat_add -> CauSeq.Completion.ofRat_add is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (x : β) (y : β), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (HAdd.hAdd.{u2, u2, u2} β β β (instHAdd.{u2} β (Distrib.toHasAdd.{u2} β (Ring.toDistrib.{u2} β _inst_2))) x y)) (HAdd.hAdd.{u2, u2, u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (instHAdd.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasAdd.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 x) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 y))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (x : β) (y : β), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (HAdd.hAdd.{u2, u2, u2} β β β (instHAdd.{u2} β (Distrib.toAdd.{u2} β (NonUnitalNonAssocSemiring.toDistrib.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β _inst_2)))))) x y)) (HAdd.hAdd.{u2, u2, u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (instHAdd.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instAddCauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 x) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 y))
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.of_rat_add CauSeq.Completion.ofRat_addₓ'. -/
theorem ofRat_add (x y : β) : ofRat (x + y) = (ofRat x + ofRat y : Cauchy abv) :=
congr_arg mk (const_add _ _)
#align cau_seq.completion.of_rat_add CauSeq.Completion.ofRat_add
-/- warning: cau_seq.completion.of_rat_neg -> CauSeq.Completion.ofRat_neg is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (x : β), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (Neg.neg.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β _inst_2))))) x)) (Neg.neg.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasNeg.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 x))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (x : β), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (Neg.neg.{u2} β (Ring.toNeg.{u2} β _inst_2) x)) (Neg.neg.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instNegCauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 x))
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.of_rat_neg CauSeq.Completion.ofRat_negₓ'. -/
theorem ofRat_neg (x : β) : ofRat (-x) = (-ofRat x : Cauchy abv) :=
congr_arg mk (const_neg _)
#align cau_seq.completion.of_rat_neg CauSeq.Completion.ofRat_neg
-/- warning: cau_seq.completion.of_rat_mul -> CauSeq.Completion.ofRat_mul is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (x : β) (y : β), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β _inst_2))) x y)) (HMul.hMul.{u2, u2, u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (instHMul.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasMul.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 x) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 y))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (x : β) (y : β), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (NonUnitalNonAssocRing.toMul.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β _inst_2)))) x y)) (HMul.hMul.{u2, u2, u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (instHMul.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instMulCauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 x) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 y))
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.of_rat_mul CauSeq.Completion.ofRat_mulₓ'. -/
theorem ofRat_mul (x y : β) : ofRat (x * y) = (ofRat x * ofRat y : Cauchy abv) :=
congr_arg mk (const_mul _ _)
#align cau_seq.completion.of_rat_mul CauSeq.Completion.ofRat_mul
@@ -282,12 +186,6 @@ def ofRatRingHom : β →+* Cauchy abv where
#align cau_seq.completion.of_rat_ring_hom CauSeq.Completion.ofRatRingHom
-/
-/- warning: cau_seq.completion.of_rat_sub -> CauSeq.Completion.ofRat_sub is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (x : β) (y : β), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (HSub.hSub.{u2, u2, u2} β β β (instHSub.{u2} β (SubNegMonoid.toHasSub.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β _inst_2)))))) x y)) (HSub.hSub.{u2, u2, u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (instHSub.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasSub.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 x) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 y))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (x : β) (y : β), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (HSub.hSub.{u2, u2, u2} β β β (instHSub.{u2} β (Ring.toSub.{u2} β _inst_2)) x y)) (HSub.hSub.{u2, u2, u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (instHSub.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instSubCauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 x) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 y))
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.of_rat_sub CauSeq.Completion.ofRat_subₓ'. -/
theorem ofRat_sub (x y : β) : ofRat (x - y) = (ofRat x - ofRat y : Cauchy abv) :=
congr_arg mk (const_sub _ _)
#align cau_seq.completion.of_rat_sub CauSeq.Completion.ofRat_sub
@@ -319,12 +217,6 @@ variable {β : Type _} [DivisionRing β] {abv : β → α} [IsAbsoluteValue abv]
instance : HasRatCast (Cauchy abv) :=
⟨fun q => ofRat q⟩
-/- warning: cau_seq.completion.of_rat_rat_cast -> CauSeq.Completion.ofRat_ratCast is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : DivisionRing.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β (DivisionRing.toRing.{u2} β _inst_2)) abv] (q : Rat), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3 ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Rat β (HasLiftT.mk.{1, succ u2} Rat β (CoeTCₓ.coe.{1, succ u2} Rat β (Rat.castCoe.{u2} β (DivisionRing.toHasRatCast.{u2} β _inst_2)))) q)) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Rat (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (HasLiftT.mk.{1, succ u2} Rat (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CoeTCₓ.coe.{1, succ u2} Rat (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (Rat.castCoe.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.hasRatCast.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)))) q)
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : DivisionRing.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (DivisionSemiring.toSemiring.{u2} β (DivisionRing.toDivisionSemiring.{u2} β _inst_2)) abv] (q : Rat), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3 (Rat.cast.{u2} β (DivisionRing.toRatCast.{u2} β _inst_2) q)) (Rat.cast.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.instRatCastCauchyToRing.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) q)
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.of_rat_rat_cast CauSeq.Completion.ofRat_ratCastₓ'. -/
@[simp]
theorem ofRat_ratCast (q : ℚ) : ofRat (↑q : β) = (q : Cauchy abv) :=
rfl
@@ -344,79 +236,37 @@ noncomputable instance : Inv (Cauchy abv) :=
rw [mk_eq.2 fg, ← Ig] at If
rw [← mul_one (mk (inv f hf)), ← Ig', ← mul_assoc, If, mul_assoc, Ig', mul_one]⟩
-/- warning: cau_seq.completion.inv_zero -> CauSeq.Completion.inv_zero is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : DivisionRing.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β (DivisionRing.toRing.{u2} β _inst_2)) abv], Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (Inv.inv.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.hasInv.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) 0 (OfNat.mk.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) 0 (Zero.zero.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.hasZero.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3))))) (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) 0 (OfNat.mk.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) 0 (Zero.zero.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.hasZero.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3))))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : DivisionRing.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (DivisionSemiring.toSemiring.{u2} β (DivisionRing.toDivisionSemiring.{u2} β _inst_2)) abv], Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (Inv.inv.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.instInvCauchyToRing.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) 0 (Zero.toOfNat0.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.instZeroCauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3)))) (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) 0 (Zero.toOfNat0.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.instZeroCauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3)))
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.inv_zero CauSeq.Completion.inv_zeroₓ'. -/
@[simp]
theorem inv_zero : (0 : Cauchy abv)⁻¹ = 0 :=
congr_arg mk <| by rw [dif_pos] <;> [rfl;exact zero_lim_zero]
#align cau_seq.completion.inv_zero CauSeq.Completion.inv_zero
-/- warning: cau_seq.completion.inv_mk -> CauSeq.Completion.inv_mk is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : DivisionRing.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β (DivisionRing.toRing.{u2} β _inst_2)) abv] {f : CauSeq.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv} (hf : Not (CauSeq.LimZero.{u1, u2} α β _inst_1 (DivisionRing.toRing.{u2} β _inst_2) abv f)), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (Inv.inv.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.hasInv.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.mk.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3 f)) (CauSeq.Completion.mk.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3 (CauSeq.inv.{u1, u2} α β _inst_1 _inst_2 abv _inst_3 f hf))
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} α] {β : Type.{u1}} [_inst_2 : DivisionRing.{u1} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u2, u1} α (OrderedCommSemiring.toOrderedSemiring.{u2} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} α (LinearOrderedField.toLinearOrderedSemifield.{u2} α _inst_1))))) β (DivisionSemiring.toSemiring.{u1} β (DivisionRing.toDivisionSemiring.{u1} β _inst_2)) abv] {f : CauSeq.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv} (hf : Not (CauSeq.LimZero.{u2, u1} α β _inst_1 (DivisionRing.toRing.{u1} β _inst_2) abv f)), Eq.{succ u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3) (Inv.inv.{u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3) (CauSeq.Completion.instInvCauchyToRing.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.mk.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3 f)) (CauSeq.Completion.mk.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3 (CauSeq.inv.{u2, u1} α β _inst_1 _inst_2 abv _inst_3 f hf))
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.inv_mk CauSeq.Completion.inv_mkₓ'. -/
@[simp]
theorem inv_mk {f} (hf) : (@mk α _ β _ abv _ f)⁻¹ = mk (inv f hf) :=
congr_arg mk <| by rw [dif_neg]
#align cau_seq.completion.inv_mk CauSeq.Completion.inv_mk
-/- warning: cau_seq.completion.cau_seq_zero_ne_one -> CauSeq.Completion.cau_seq_zero_ne_one is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : DivisionRing.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β (DivisionRing.toRing.{u2} β _inst_2)) abv], Not (HasEquivₓ.Equiv.{succ u2} (CauSeq.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv) (setoidHasEquiv.{succ u2} (CauSeq.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv) (CauSeq.equiv.{u1, u2} α β _inst_1 (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3)) (OfNat.ofNat.{u2} (CauSeq.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv) 0 (OfNat.mk.{u2} (CauSeq.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv) 0 (Zero.zero.{u2} (CauSeq.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv) (CauSeq.hasZero.{u1, u2} α β _inst_1 (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3)))) (OfNat.ofNat.{u2} (CauSeq.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv) 1 (OfNat.mk.{u2} (CauSeq.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv) 1 (One.one.{u2} (CauSeq.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv) (CauSeq.hasOne.{u1, u2} α β _inst_1 (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3)))))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : DivisionRing.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (DivisionSemiring.toSemiring.{u2} β (DivisionRing.toDivisionSemiring.{u2} β _inst_2)) abv], Not (HasEquiv.Equiv.{succ u2, 0} (CauSeq.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv) (instHasEquiv.{succ u2} (CauSeq.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv) (CauSeq.equiv.{u1, u2} α β _inst_1 (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3)) (OfNat.ofNat.{u2} (CauSeq.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv) 0 (Zero.toOfNat0.{u2} (CauSeq.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv) (CauSeq.instZeroCauSeq.{u1, u2} α β _inst_1 (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3))) (OfNat.ofNat.{u2} (CauSeq.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv) 1 (One.toOfNat1.{u2} (CauSeq.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv) (CauSeq.instOneCauSeq.{u1, u2} α β _inst_1 (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3))))
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.cau_seq_zero_ne_one CauSeq.Completion.cau_seq_zero_ne_oneₓ'. -/
theorem cau_seq_zero_ne_one : ¬(0 : CauSeq _ abv) ≈ 1 := fun h =>
have : LimZero (1 - 0) := Setoid.symm h
have : LimZero 1 := by simpa
one_ne_zero <| const_limZero.1 this
#align cau_seq.completion.cau_seq_zero_ne_one CauSeq.Completion.cau_seq_zero_ne_one
-/- warning: cau_seq.completion.zero_ne_one -> CauSeq.Completion.zero_ne_one is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : DivisionRing.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β (DivisionRing.toRing.{u2} β _inst_2)) abv], Ne.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) 0 (OfNat.mk.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) 0 (Zero.zero.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.hasZero.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3)))) (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) 1 (OfNat.mk.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) 1 (One.one.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.hasOne.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3))))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : DivisionRing.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (DivisionSemiring.toSemiring.{u2} β (DivisionRing.toDivisionSemiring.{u2} β _inst_2)) abv], Ne.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) 0 (Zero.toOfNat0.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.instZeroCauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3))) (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) 1 (One.toOfNat1.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.instOneCauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3)))
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.zero_ne_one CauSeq.Completion.zero_ne_oneₓ'. -/
theorem zero_ne_one : (0 : Cauchy abv) ≠ 1 := fun h => cau_seq_zero_ne_one <| mk_eq.1 h
#align cau_seq.completion.zero_ne_one CauSeq.Completion.zero_ne_one
-/- warning: cau_seq.completion.inv_mul_cancel -> CauSeq.Completion.inv_mul_cancel is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : DivisionRing.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β (DivisionRing.toRing.{u2} β _inst_2)) abv] {x : CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3}, (Ne.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) x (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) 0 (OfNat.mk.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) 0 (Zero.zero.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.hasZero.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3))))) -> (Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (HMul.hMul.{u2, u2, u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (instHMul.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.hasMul.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3)) (Inv.inv.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.hasInv.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) x) x) (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) 1 (OfNat.mk.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) 1 (One.one.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.hasOne.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3)))))
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} α] {β : Type.{u1}} [_inst_2 : DivisionRing.{u1} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u2, u1} α (OrderedCommSemiring.toOrderedSemiring.{u2} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} α (LinearOrderedField.toLinearOrderedSemifield.{u2} α _inst_1))))) β (DivisionSemiring.toSemiring.{u1} β (DivisionRing.toDivisionSemiring.{u1} β _inst_2)) abv] {x : CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3}, (Ne.{succ u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3) x (OfNat.ofNat.{u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3) 0 (Zero.toOfNat0.{u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3) (CauSeq.Completion.instZeroCauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3)))) -> (Eq.{succ u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3) (HMul.hMul.{u1, u1, u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3) (instHMul.{u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3) (CauSeq.Completion.instMulCauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3)) (Inv.inv.{u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3) (CauSeq.Completion.instInvCauchyToRing.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) x) x) (OfNat.ofNat.{u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3) 1 (One.toOfNat1.{u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3) (CauSeq.Completion.instOneCauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3))))
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.inv_mul_cancel CauSeq.Completion.inv_mul_cancelₓ'. -/
protected theorem inv_mul_cancel {x : Cauchy abv} : x ≠ 0 → x⁻¹ * x = 1 :=
Quotient.inductionOn x fun f hf => by
simp at hf; simp [hf]
exact Quotient.sound (CauSeq.inv_mul_cancel hf)
#align cau_seq.completion.inv_mul_cancel CauSeq.Completion.inv_mul_cancel
-/- warning: cau_seq.completion.mul_inv_cancel -> CauSeq.Completion.mul_inv_cancel is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : DivisionRing.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β (DivisionRing.toRing.{u2} β _inst_2)) abv] {x : CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3}, (Ne.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) x (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) 0 (OfNat.mk.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) 0 (Zero.zero.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.hasZero.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3))))) -> (Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (HMul.hMul.{u2, u2, u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (instHMul.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.hasMul.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3)) x (Inv.inv.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.hasInv.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) x)) (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) 1 (OfNat.mk.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) 1 (One.one.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.hasOne.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3)))))
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} α] {β : Type.{u1}} [_inst_2 : DivisionRing.{u1} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u2, u1} α (OrderedCommSemiring.toOrderedSemiring.{u2} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} α (LinearOrderedField.toLinearOrderedSemifield.{u2} α _inst_1))))) β (DivisionSemiring.toSemiring.{u1} β (DivisionRing.toDivisionSemiring.{u1} β _inst_2)) abv] {x : CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3}, (Ne.{succ u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3) x (OfNat.ofNat.{u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3) 0 (Zero.toOfNat0.{u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3) (CauSeq.Completion.instZeroCauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3)))) -> (Eq.{succ u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3) (HMul.hMul.{u1, u1, u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3) (instHMul.{u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3) (CauSeq.Completion.instMulCauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3)) x (Inv.inv.{u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3) (CauSeq.Completion.instInvCauchyToRing.{u2, u1} α _inst_1 β _inst_2 abv _inst_3) x)) (OfNat.ofNat.{u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3) 1 (One.toOfNat1.{u1} (CauSeq.Completion.Cauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3) (CauSeq.Completion.instOneCauchy.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β _inst_2) abv _inst_3))))
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.mul_inv_cancel CauSeq.Completion.mul_inv_cancelₓ'. -/
protected theorem mul_inv_cancel {x : Cauchy abv} : x ≠ 0 → x * x⁻¹ = 1 :=
Quotient.inductionOn x fun f hf => by
simp at hf; simp [hf]
exact Quotient.sound (CauSeq.mul_inv_cancel hf)
#align cau_seq.completion.mul_inv_cancel CauSeq.Completion.mul_inv_cancel
-/- warning: cau_seq.completion.of_rat_inv -> CauSeq.Completion.ofRat_inv is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : DivisionRing.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β (DivisionRing.toRing.{u2} β _inst_2)) abv] (x : β), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3 (Inv.inv.{u2} β (DivInvMonoid.toHasInv.{u2} β (DivisionRing.toDivInvMonoid.{u2} β _inst_2)) x)) (Inv.inv.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.hasInv.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3 x))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : DivisionRing.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (DivisionSemiring.toSemiring.{u2} β (DivisionRing.toDivisionSemiring.{u2} β _inst_2)) abv] (x : β), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3 (Inv.inv.{u2} β (DivisionRing.toInv.{u2} β _inst_2) x)) (Inv.inv.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.instInvCauchyToRing.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3 x))
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.of_rat_inv CauSeq.Completion.ofRat_invₓ'. -/
theorem ofRat_inv (x : β) : ofRat x⁻¹ = ((ofRat x)⁻¹ : Cauchy abv) :=
congr_arg mk <| by split_ifs with h <;> [simp [const_lim_zero.1 h];rfl]
#align cau_seq.completion.of_rat_inv CauSeq.Completion.ofRat_inv
@@ -432,12 +282,6 @@ noncomputable instance : DivisionRing (Cauchy abv) :=
ratCast_mk := fun n d hd hnd => by
rw [Rat.cast_mk', of_rat_mul, of_rat_int_cast, of_rat_inv, of_rat_nat_cast] }
-/- warning: cau_seq.completion.of_rat_div -> CauSeq.Completion.ofRat_div is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : DivisionRing.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β (DivisionRing.toRing.{u2} β _inst_2)) abv] (x : β) (y : β), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3 (HDiv.hDiv.{u2, u2, u2} β β β (instHDiv.{u2} β (DivInvMonoid.toHasDiv.{u2} β (DivisionRing.toDivInvMonoid.{u2} β _inst_2))) x y)) (HDiv.hDiv.{u2, u2, u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (instHDiv.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (DivInvMonoid.toHasDiv.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (DivisionRing.toDivInvMonoid.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.divisionRing.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)))) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3 x) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3 y))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : DivisionRing.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (DivisionSemiring.toSemiring.{u2} β (DivisionRing.toDivisionSemiring.{u2} β _inst_2)) abv] (x : β) (y : β), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3 (HDiv.hDiv.{u2, u2, u2} β β β (instHDiv.{u2} β (DivisionRing.toDiv.{u2} β _inst_2)) x y)) (HDiv.hDiv.{u2, u2, u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (instHDiv.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (DivisionRing.toDiv.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.divisionRing.{u1, u2} α _inst_1 β _inst_2 abv _inst_3))) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3 x) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3 y))
-Case conversion may be inaccurate. Consider using '#align cau_seq.completion.of_rat_div CauSeq.Completion.ofRat_divₓ'. -/
theorem ofRat_div (x y : β) : ofRat (x / y) = (ofRat x / ofRat y : Cauchy abv) := by
simp only [div_eq_mul_inv, of_rat_inv, of_rat_mul]
#align cau_seq.completion.of_rat_div CauSeq.Completion.ofRat_div
@@ -493,12 +337,6 @@ variable {β : Type _} [Ring β] {abv : β → α} [IsAbsoluteValue abv]
variable [IsComplete β abv]
-/- warning: cau_seq.complete -> CauSeq.complete is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] [_inst_4 : CauSeq.IsComplete.{u1, u2} α _inst_1 β _inst_2 abv _inst_3] (s : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv), Exists.{succ u2} β (fun (b : β) => HasEquivₓ.Equiv.{succ u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (setoidHasEquiv.{succ u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.equiv.{u1, u2} α β _inst_1 _inst_2 abv _inst_3)) s (CauSeq.const.{u1, u2} α β _inst_1 _inst_2 abv _inst_3 b))
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} α] {β : Type.{u1}} [_inst_2 : Ring.{u1} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u2, u1} α (OrderedCommSemiring.toOrderedSemiring.{u2} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} α (LinearOrderedField.toLinearOrderedSemifield.{u2} α _inst_1))))) β (Ring.toSemiring.{u1} β _inst_2) abv] [_inst_4 : CauSeq.IsComplete.{u2, u1} α _inst_1 β _inst_2 abv _inst_3] (s : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv), Exists.{succ u1} β (fun (b : β) => HasEquiv.Equiv.{succ u1, 0} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (instHasEquiv.{succ u1} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.equiv.{u2, u1} α β _inst_1 _inst_2 abv _inst_3)) s (CauSeq.const.{u2, u1} α β _inst_1 _inst_2 abv _inst_3 b))
-Case conversion may be inaccurate. Consider using '#align cau_seq.complete CauSeq.completeₓ'. -/
theorem complete : ∀ s : CauSeq β abv, ∃ b : β, s ≈ const abv b :=
IsComplete.isComplete
#align cau_seq.complete CauSeq.complete
@@ -510,42 +348,18 @@ noncomputable def lim (s : CauSeq β abv) : β :=
#align cau_seq.lim CauSeq.lim
-/
-/- warning: cau_seq.equiv_lim -> CauSeq.equiv_lim is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] [_inst_4 : CauSeq.IsComplete.{u1, u2} α _inst_1 β _inst_2 abv _inst_3] (s : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv), HasEquivₓ.Equiv.{succ u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (setoidHasEquiv.{succ u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.equiv.{u1, u2} α β _inst_1 _inst_2 abv _inst_3)) s (CauSeq.const.{u1, u2} α β _inst_1 _inst_2 abv _inst_3 (CauSeq.lim.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 _inst_4 s))
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} α] {β : Type.{u1}} [_inst_2 : Ring.{u1} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u2, u1} α (OrderedCommSemiring.toOrderedSemiring.{u2} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} α (LinearOrderedField.toLinearOrderedSemifield.{u2} α _inst_1))))) β (Ring.toSemiring.{u1} β _inst_2) abv] [_inst_4 : CauSeq.IsComplete.{u2, u1} α _inst_1 β _inst_2 abv _inst_3] (s : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv), HasEquiv.Equiv.{succ u1, 0} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (instHasEquiv.{succ u1} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.equiv.{u2, u1} α β _inst_1 _inst_2 abv _inst_3)) s (CauSeq.const.{u2, u1} α β _inst_1 _inst_2 abv _inst_3 (CauSeq.lim.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 _inst_4 s))
-Case conversion may be inaccurate. Consider using '#align cau_seq.equiv_lim CauSeq.equiv_limₓ'. -/
theorem equiv_lim (s : CauSeq β abv) : s ≈ const abv (lim s) :=
Classical.choose_spec (complete s)
#align cau_seq.equiv_lim CauSeq.equiv_lim
-/- warning: cau_seq.eq_lim_of_const_equiv -> CauSeq.eq_lim_of_const_equiv is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] [_inst_4 : CauSeq.IsComplete.{u1, u2} α _inst_1 β _inst_2 abv _inst_3] {f : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv} {x : β}, (HasEquivₓ.Equiv.{succ u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (setoidHasEquiv.{succ u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.equiv.{u1, u2} α β _inst_1 _inst_2 abv _inst_3)) (CauSeq.const.{u1, u2} α β _inst_1 _inst_2 abv _inst_3 x) f) -> (Eq.{succ u2} β x (CauSeq.lim.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 _inst_4 f))
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} α] {β : Type.{u1}} [_inst_2 : Ring.{u1} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u2, u1} α (OrderedCommSemiring.toOrderedSemiring.{u2} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} α (LinearOrderedField.toLinearOrderedSemifield.{u2} α _inst_1))))) β (Ring.toSemiring.{u1} β _inst_2) abv] [_inst_4 : CauSeq.IsComplete.{u2, u1} α _inst_1 β _inst_2 abv _inst_3] {f : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv} {x : β}, (HasEquiv.Equiv.{succ u1, 0} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (instHasEquiv.{succ u1} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.equiv.{u2, u1} α β _inst_1 _inst_2 abv _inst_3)) (CauSeq.const.{u2, u1} α β _inst_1 _inst_2 abv _inst_3 x) f) -> (Eq.{succ u1} β x (CauSeq.lim.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 _inst_4 f))
-Case conversion may be inaccurate. Consider using '#align cau_seq.eq_lim_of_const_equiv CauSeq.eq_lim_of_const_equivₓ'. -/
theorem eq_lim_of_const_equiv {f : CauSeq β abv} {x : β} (h : CauSeq.const abv x ≈ f) : x = lim f :=
const_equiv.mp <| Setoid.trans h <| equiv_lim f
#align cau_seq.eq_lim_of_const_equiv CauSeq.eq_lim_of_const_equiv
-/- warning: cau_seq.lim_eq_of_equiv_const -> CauSeq.lim_eq_of_equiv_const is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] [_inst_4 : CauSeq.IsComplete.{u1, u2} α _inst_1 β _inst_2 abv _inst_3] {f : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv} {x : β}, (HasEquivₓ.Equiv.{succ u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (setoidHasEquiv.{succ u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.equiv.{u1, u2} α β _inst_1 _inst_2 abv _inst_3)) f (CauSeq.const.{u1, u2} α β _inst_1 _inst_2 abv _inst_3 x)) -> (Eq.{succ u2} β (CauSeq.lim.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 _inst_4 f) x)
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} α] {β : Type.{u1}} [_inst_2 : Ring.{u1} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u2, u1} α (OrderedCommSemiring.toOrderedSemiring.{u2} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} α (LinearOrderedField.toLinearOrderedSemifield.{u2} α _inst_1))))) β (Ring.toSemiring.{u1} β _inst_2) abv] [_inst_4 : CauSeq.IsComplete.{u2, u1} α _inst_1 β _inst_2 abv _inst_3] {f : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv} {x : β}, (HasEquiv.Equiv.{succ u1, 0} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (instHasEquiv.{succ u1} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.equiv.{u2, u1} α β _inst_1 _inst_2 abv _inst_3)) f (CauSeq.const.{u2, u1} α β _inst_1 _inst_2 abv _inst_3 x)) -> (Eq.{succ u1} β (CauSeq.lim.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 _inst_4 f) x)
-Case conversion may be inaccurate. Consider using '#align cau_seq.lim_eq_of_equiv_const CauSeq.lim_eq_of_equiv_constₓ'. -/
theorem lim_eq_of_equiv_const {f : CauSeq β abv} {x : β} (h : f ≈ CauSeq.const abv x) : lim f = x :=
(eq_lim_of_const_equiv <| Setoid.symm h).symm
#align cau_seq.lim_eq_of_equiv_const CauSeq.lim_eq_of_equiv_const
-/- warning: cau_seq.lim_eq_lim_of_equiv -> CauSeq.lim_eq_lim_of_equiv is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] [_inst_4 : CauSeq.IsComplete.{u1, u2} α _inst_1 β _inst_2 abv _inst_3] {f : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv} {g : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv}, (HasEquivₓ.Equiv.{succ u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (setoidHasEquiv.{succ u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.equiv.{u1, u2} α β _inst_1 _inst_2 abv _inst_3)) f g) -> (Eq.{succ u2} β (CauSeq.lim.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 _inst_4 f) (CauSeq.lim.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 _inst_4 g))
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} α] {β : Type.{u1}} [_inst_2 : Ring.{u1} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u2, u1} α (OrderedCommSemiring.toOrderedSemiring.{u2} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} α (LinearOrderedField.toLinearOrderedSemifield.{u2} α _inst_1))))) β (Ring.toSemiring.{u1} β _inst_2) abv] [_inst_4 : CauSeq.IsComplete.{u2, u1} α _inst_1 β _inst_2 abv _inst_3] {f : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv} {g : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv}, (HasEquiv.Equiv.{succ u1, 0} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (instHasEquiv.{succ u1} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.equiv.{u2, u1} α β _inst_1 _inst_2 abv _inst_3)) f g) -> (Eq.{succ u1} β (CauSeq.lim.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 _inst_4 f) (CauSeq.lim.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 _inst_4 g))
-Case conversion may be inaccurate. Consider using '#align cau_seq.lim_eq_lim_of_equiv CauSeq.lim_eq_lim_of_equivₓ'. -/
theorem lim_eq_lim_of_equiv {f g : CauSeq β abv} (h : f ≈ g) : lim f = lim g :=
lim_eq_of_equiv_const <| Setoid.trans h <| equiv_lim g
#align cau_seq.lim_eq_lim_of_equiv CauSeq.lim_eq_lim_of_equiv
@@ -557,12 +371,6 @@ theorem lim_const (x : β) : lim (const abv x) = x :=
#align cau_seq.lim_const CauSeq.lim_const
-/
-/- warning: cau_seq.lim_add -> CauSeq.lim_add is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] [_inst_4 : CauSeq.IsComplete.{u1, u2} α _inst_1 β _inst_2 abv _inst_3] (f : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (g : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv), Eq.{succ u2} β (HAdd.hAdd.{u2, u2, u2} β β β (instHAdd.{u2} β (Distrib.toHasAdd.{u2} β (Ring.toDistrib.{u2} β _inst_2))) (CauSeq.lim.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 _inst_4 f) (CauSeq.lim.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 _inst_4 g)) (CauSeq.lim.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 _inst_4 (HAdd.hAdd.{u2, u2, u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (instHAdd.{u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.hasAdd.{u1, u2} α β _inst_1 _inst_2 abv _inst_3)) f g))
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} α] {β : Type.{u1}} [_inst_2 : Ring.{u1} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u2, u1} α (OrderedCommSemiring.toOrderedSemiring.{u2} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} α (LinearOrderedField.toLinearOrderedSemifield.{u2} α _inst_1))))) β (Ring.toSemiring.{u1} β _inst_2) abv] [_inst_4 : CauSeq.IsComplete.{u2, u1} α _inst_1 β _inst_2 abv _inst_3] (f : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (g : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv), Eq.{succ u1} β (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (Distrib.toAdd.{u1} β (NonUnitalNonAssocSemiring.toDistrib.{u1} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β _inst_2)))))) (CauSeq.lim.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 _inst_4 f) (CauSeq.lim.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 _inst_4 g)) (CauSeq.lim.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 _inst_4 (HAdd.hAdd.{u1, u1, u1} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (instHAdd.{u1} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.instAddCauSeq.{u2, u1} α β _inst_1 _inst_2 abv _inst_3)) f g))
-Case conversion may be inaccurate. Consider using '#align cau_seq.lim_add CauSeq.lim_addₓ'. -/
theorem lim_add (f g : CauSeq β abv) : lim f + lim g = lim (f + g) :=
eq_lim_of_const_equiv <|
show LimZero (const abv (lim f + lim g) - (f + g)) by
@@ -570,12 +378,6 @@ theorem lim_add (f g : CauSeq β abv) : lim f + lim g = lim (f + g) :=
exact add_lim_zero (Setoid.symm (equiv_lim f)) (Setoid.symm (equiv_lim g))
#align cau_seq.lim_add CauSeq.lim_add
-/- warning: cau_seq.lim_mul_lim -> CauSeq.lim_mul_lim is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] [_inst_4 : CauSeq.IsComplete.{u1, u2} α _inst_1 β _inst_2 abv _inst_3] (f : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (g : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv), Eq.{succ u2} β (HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β _inst_2))) (CauSeq.lim.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 _inst_4 f) (CauSeq.lim.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 _inst_4 g)) (CauSeq.lim.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 _inst_4 (HMul.hMul.{u2, u2, u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (instHMul.{u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.hasMul.{u1, u2} α β _inst_1 _inst_2 abv _inst_3)) f g))
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} α] {β : Type.{u1}} [_inst_2 : Ring.{u1} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u2, u1} α (OrderedCommSemiring.toOrderedSemiring.{u2} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} α (LinearOrderedField.toLinearOrderedSemifield.{u2} α _inst_1))))) β (Ring.toSemiring.{u1} β _inst_2) abv] [_inst_4 : CauSeq.IsComplete.{u2, u1} α _inst_1 β _inst_2 abv _inst_3] (f : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (g : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv), Eq.{succ u1} β (HMul.hMul.{u1, u1, u1} β β β (instHMul.{u1} β (NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β _inst_2)))) (CauSeq.lim.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 _inst_4 f) (CauSeq.lim.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 _inst_4 g)) (CauSeq.lim.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 _inst_4 (HMul.hMul.{u1, u1, u1} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (instHMul.{u1} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.instMulCauSeq.{u2, u1} α β _inst_1 _inst_2 abv _inst_3)) f g))
-Case conversion may be inaccurate. Consider using '#align cau_seq.lim_mul_lim CauSeq.lim_mul_limₓ'. -/
theorem lim_mul_lim (f g : CauSeq β abv) : lim f * lim g = lim (f * g) :=
eq_lim_of_const_equiv <|
show LimZero (const abv (lim f * lim g) - f * g)
@@ -590,22 +392,10 @@ theorem lim_mul_lim (f g : CauSeq β abv) : lim f * lim g = lim (f * g) :=
(mul_lim_zero_right _ (Setoid.symm (equiv_lim _)))
#align cau_seq.lim_mul_lim CauSeq.lim_mul_lim
-/- warning: cau_seq.lim_mul -> CauSeq.lim_mul is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] [_inst_4 : CauSeq.IsComplete.{u1, u2} α _inst_1 β _inst_2 abv _inst_3] (f : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (x : β), Eq.{succ u2} β (HMul.hMul.{u2, u2, u2} β β β (instHMul.{u2} β (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β _inst_2))) (CauSeq.lim.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 _inst_4 f) x) (CauSeq.lim.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 _inst_4 (HMul.hMul.{u2, u2, u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (instHMul.{u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.hasMul.{u1, u2} α β _inst_1 _inst_2 abv _inst_3)) f (CauSeq.const.{u1, u2} α β _inst_1 _inst_2 abv _inst_3 x)))
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} α] {β : Type.{u1}} [_inst_2 : Ring.{u1} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u2, u1} α (OrderedCommSemiring.toOrderedSemiring.{u2} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} α (LinearOrderedField.toLinearOrderedSemifield.{u2} α _inst_1))))) β (Ring.toSemiring.{u1} β _inst_2) abv] [_inst_4 : CauSeq.IsComplete.{u2, u1} α _inst_1 β _inst_2 abv _inst_3] (f : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (x : β), Eq.{succ u1} β (HMul.hMul.{u1, u1, u1} β β β (instHMul.{u1} β (NonUnitalNonAssocRing.toMul.{u1} β (NonAssocRing.toNonUnitalNonAssocRing.{u1} β (Ring.toNonAssocRing.{u1} β _inst_2)))) (CauSeq.lim.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 _inst_4 f) x) (CauSeq.lim.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 _inst_4 (HMul.hMul.{u1, u1, u1} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (instHMul.{u1} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.instMulCauSeq.{u2, u1} α β _inst_1 _inst_2 abv _inst_3)) f (CauSeq.const.{u2, u1} α β _inst_1 _inst_2 abv _inst_3 x)))
-Case conversion may be inaccurate. Consider using '#align cau_seq.lim_mul CauSeq.lim_mulₓ'. -/
theorem lim_mul (f : CauSeq β abv) (x : β) : lim f * x = lim (f * const abv x) := by
rw [← lim_mul_lim, lim_const]
#align cau_seq.lim_mul CauSeq.lim_mul
-/- warning: cau_seq.lim_neg -> CauSeq.lim_neg is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] [_inst_4 : CauSeq.IsComplete.{u1, u2} α _inst_1 β _inst_2 abv _inst_3] (f : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv), Eq.{succ u2} β (CauSeq.lim.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 _inst_4 (Neg.neg.{u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.hasNeg.{u1, u2} α β _inst_1 _inst_2 abv _inst_3) f)) (Neg.neg.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β _inst_2))))) (CauSeq.lim.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 _inst_4 f))
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} α] {β : Type.{u1}} [_inst_2 : Ring.{u1} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u2, u1} α (OrderedCommSemiring.toOrderedSemiring.{u2} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} α (LinearOrderedField.toLinearOrderedSemifield.{u2} α _inst_1))))) β (Ring.toSemiring.{u1} β _inst_2) abv] [_inst_4 : CauSeq.IsComplete.{u2, u1} α _inst_1 β _inst_2 abv _inst_3] (f : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv), Eq.{succ u1} β (CauSeq.lim.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 _inst_4 (Neg.neg.{u1} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.instNegCauSeq.{u2, u1} α β _inst_1 _inst_2 abv _inst_3) f)) (Neg.neg.{u1} β (Ring.toNeg.{u1} β _inst_2) (CauSeq.lim.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 _inst_4 f))
-Case conversion may be inaccurate. Consider using '#align cau_seq.lim_neg CauSeq.lim_negₓ'. -/
theorem lim_neg (f : CauSeq β abv) : lim (-f) = -lim f :=
lim_eq_of_equiv_const
(show LimZero (-f - const abv (-lim f)) by
@@ -613,12 +403,6 @@ theorem lim_neg (f : CauSeq β abv) : lim (-f) = -lim f :=
exact Setoid.symm (equiv_lim f))
#align cau_seq.lim_neg CauSeq.lim_neg
-/- warning: cau_seq.lim_eq_zero_iff -> CauSeq.lim_eq_zero_iff is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] [_inst_4 : CauSeq.IsComplete.{u1, u2} α _inst_1 β _inst_2 abv _inst_3] (f : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv), Iff (Eq.{succ u2} β (CauSeq.lim.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 _inst_4 f) (OfNat.ofNat.{u2} β 0 (OfNat.mk.{u2} β 0 (Zero.zero.{u2} β (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β _inst_2))))))))) (CauSeq.LimZero.{u1, u2} α β _inst_1 _inst_2 abv f)
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} α] {β : Type.{u1}} [_inst_2 : Ring.{u1} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u2, u1} α (OrderedCommSemiring.toOrderedSemiring.{u2} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} α (LinearOrderedField.toLinearOrderedSemifield.{u2} α _inst_1))))) β (Ring.toSemiring.{u1} β _inst_2) abv] [_inst_4 : CauSeq.IsComplete.{u2, u1} α _inst_1 β _inst_2 abv _inst_3] (f : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv), Iff (Eq.{succ u1} β (CauSeq.lim.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 _inst_4 f) (OfNat.ofNat.{u1} β 0 (Zero.toOfNat0.{u1} β (MonoidWithZero.toZero.{u1} β (Semiring.toMonoidWithZero.{u1} β (Ring.toSemiring.{u1} β _inst_2)))))) (CauSeq.LimZero.{u2, u1} α β _inst_1 _inst_2 abv f)
-Case conversion may be inaccurate. Consider using '#align cau_seq.lim_eq_zero_iff CauSeq.lim_eq_zero_iffₓ'. -/
theorem lim_eq_zero_iff (f : CauSeq β abv) : lim f = 0 ↔ LimZero f :=
⟨fun h => by
have hf := equiv_lim f <;> rw [h] at hf <;>
@@ -635,12 +419,6 @@ section
variable {β : Type _} [Field β] {abv : β → α} [IsAbsoluteValue abv] [IsComplete β abv]
-/- warning: cau_seq.lim_inv -> CauSeq.lim_inv is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Field.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2))) abv] [_inst_4 : CauSeq.IsComplete.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2)) abv _inst_3] {f : CauSeq.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2)) abv} (hf : Not (CauSeq.LimZero.{u1, u2} α β _inst_1 (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2)) abv f)), Eq.{succ u2} β (CauSeq.lim.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2)) abv _inst_3 _inst_4 (CauSeq.inv.{u1, u2} α β _inst_1 (Field.toDivisionRing.{u2} β _inst_2) abv _inst_3 f hf)) (Inv.inv.{u2} β (DivInvMonoid.toHasInv.{u2} β (DivisionRing.toDivInvMonoid.{u2} β (Field.toDivisionRing.{u2} β _inst_2))) (CauSeq.lim.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β (Field.toDivisionRing.{u2} β _inst_2)) abv _inst_3 _inst_4 f))
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} α] {β : Type.{u1}} [_inst_2 : Field.{u1} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u2, u1} α (OrderedCommSemiring.toOrderedSemiring.{u2} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} α (LinearOrderedField.toLinearOrderedSemifield.{u2} α _inst_1))))) β (DivisionSemiring.toSemiring.{u1} β (Semifield.toDivisionSemiring.{u1} β (Field.toSemifield.{u1} β _inst_2))) abv] [_inst_4 : CauSeq.IsComplete.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β _inst_2)) abv _inst_3] {f : CauSeq.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β _inst_2)) abv} (hf : Not (CauSeq.LimZero.{u2, u1} α β _inst_1 (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β _inst_2)) abv f)), Eq.{succ u1} β (CauSeq.lim.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β _inst_2)) abv _inst_3 _inst_4 (CauSeq.inv.{u2, u1} α β _inst_1 (Field.toDivisionRing.{u1} β _inst_2) abv _inst_3 f hf)) (Inv.inv.{u1} β (Field.toInv.{u1} β _inst_2) (CauSeq.lim.{u2, u1} α _inst_1 β (DivisionRing.toRing.{u1} β (Field.toDivisionRing.{u1} β _inst_2)) abv _inst_3 _inst_4 f))
-Case conversion may be inaccurate. Consider using '#align cau_seq.lim_inv CauSeq.lim_invₓ'. -/
theorem lim_inv {f : CauSeq β abv} (hf : ¬LimZero f) : lim (inv f hf) = (lim f)⁻¹ :=
have hl : lim f ≠ 0 := by rwa [← lim_eq_zero_iff] at hf
lim_eq_of_equiv_const <|
@@ -672,42 +450,18 @@ section
variable [IsComplete α abs]
-/- warning: cau_seq.lim_le -> CauSeq.lim_le is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))} {x : α}, (LE.le.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (CauSeq.hasLe.{u1} α _inst_1) f (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x)) -> (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α (OrderedAddCommGroup.toPartialOrder.{u1} α (StrictOrderedRing.toOrderedAddCommGroup.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))) (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f) x)
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))} {x : α}, (LE.le.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))) (CauSeq.instLECauSeqToRingToDivisionRingToFieldAbsToHasAbsToNegToSupToSemilatticeSupToLatticeInstDistribLatticeToLinearOrderToLinearOrderedRingToLinearOrderedCommRing.{u1} α _inst_1) f (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x)) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (StrictOrderedRing.toPartialOrder.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))) (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f) x)
-Case conversion may be inaccurate. Consider using '#align cau_seq.lim_le CauSeq.lim_leₓ'. -/
theorem lim_le {f : CauSeq α abs} {x : α} (h : f ≤ CauSeq.const abs x) : lim f ≤ x :=
CauSeq.const_le.1 <| CauSeq.le_of_eq_of_le (Setoid.symm (equiv_lim f)) h
#align cau_seq.lim_le CauSeq.lim_le
-/- warning: cau_seq.le_lim -> CauSeq.le_lim is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))} {x : α}, (LE.le.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (CauSeq.hasLe.{u1} α _inst_1) (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x) f) -> (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α (OrderedAddCommGroup.toPartialOrder.{u1} α (StrictOrderedRing.toOrderedAddCommGroup.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))) x (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))} {x : α}, (LE.le.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))) (CauSeq.instLECauSeqToRingToDivisionRingToFieldAbsToHasAbsToNegToSupToSemilatticeSupToLatticeInstDistribLatticeToLinearOrderToLinearOrderedRingToLinearOrderedCommRing.{u1} α _inst_1) (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x) f) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (StrictOrderedRing.toPartialOrder.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))) x (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f))
-Case conversion may be inaccurate. Consider using '#align cau_seq.le_lim CauSeq.le_limₓ'. -/
theorem le_lim {f : CauSeq α abs} {x : α} (h : CauSeq.const abs x ≤ f) : x ≤ lim f :=
CauSeq.const_le.1 <| CauSeq.le_of_le_of_eq h (equiv_lim f)
#align cau_seq.le_lim CauSeq.le_lim
-/- warning: cau_seq.lt_lim -> CauSeq.lt_lim is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))} {x : α}, (LT.lt.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (CauSeq.hasLt.{u1} α _inst_1) (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x) f) -> (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (OrderedAddCommGroup.toPartialOrder.{u1} α (StrictOrderedRing.toOrderedAddCommGroup.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))) x (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))} {x : α}, (LT.lt.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))) (CauSeq.instLTCauSeqToRingToDivisionRingToFieldAbsToHasAbsToNegToSupToSemilatticeSupToLatticeInstDistribLatticeToLinearOrderToLinearOrderedRingToLinearOrderedCommRing.{u1} α _inst_1) (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x) f) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (StrictOrderedRing.toPartialOrder.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))) x (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f))
-Case conversion may be inaccurate. Consider using '#align cau_seq.lt_lim CauSeq.lt_limₓ'. -/
theorem lt_lim {f : CauSeq α abs} {x : α} (h : CauSeq.const abs x < f) : x < lim f :=
CauSeq.const_lt.1 <| CauSeq.lt_of_lt_of_eq h (equiv_lim f)
#align cau_seq.lt_lim CauSeq.lt_lim
-/- warning: cau_seq.lim_lt -> CauSeq.lim_lt is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))} {x : α}, (LT.lt.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (CauSeq.hasLt.{u1} α _inst_1) f (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x)) -> (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (OrderedAddCommGroup.toPartialOrder.{u1} α (StrictOrderedRing.toOrderedAddCommGroup.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))) (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f) x)
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))} {x : α}, (LT.lt.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))) (CauSeq.instLTCauSeqToRingToDivisionRingToFieldAbsToHasAbsToNegToSupToSemilatticeSupToLatticeInstDistribLatticeToLinearOrderToLinearOrderedRingToLinearOrderedCommRing.{u1} α _inst_1) f (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x)) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (StrictOrderedRing.toPartialOrder.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))) (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f) x)
-Case conversion may be inaccurate. Consider using '#align cau_seq.lim_lt CauSeq.lim_ltₓ'. -/
theorem lim_lt {f : CauSeq α abs} {x : α} (h : f < CauSeq.const abs x) : lim f < x :=
CauSeq.const_lt.1 <| CauSeq.lt_of_eq_of_lt (Setoid.symm (equiv_lim f)) h
#align cau_seq.lim_lt CauSeq.lim_lt
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -337,8 +337,7 @@ noncomputable instance : Inv (Cauchy abv) :=
have := lim_zero_congr fg
by_cases hf : lim_zero f
· simp [hf, this.1 hf, Setoid.refl]
- · have hg := mt this.2 hf
- simp [hf, hg]
+ · have hg := mt this.2 hf; simp [hf, hg]
have If : mk (inv f hf) * mk f = 1 := mk_eq.2 (inv_mul_cancel hf)
have Ig : mk (inv g hg) * mk g = 1 := mk_eq.2 (inv_mul_cancel hg)
have Ig' : mk g * mk (inv g hg) = 1 := mk_eq.2 (mul_inv_cancel hg)
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -260,11 +260,9 @@ theorem ofRat_mul (x y : β) : ofRat (x * y) = (ofRat x * ofRat y : Cauchy abv)
private theorem zero_def : 0 = (mk 0 : Cauchy abv) :=
rfl
-#align cau_seq.completion.zero_def cau_seq.completion.zero_def
private theorem one_def : 1 = (mk 1 : Cauchy abv) :=
rfl
-#align cau_seq.completion.one_def cau_seq.completion.one_def
instance : Ring (Cauchy abv) :=
Function.Surjective.ring mk (surjective_quotient_mk _) zero_def.symm one_def.symm
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -355,7 +355,7 @@ but is expected to have type
Case conversion may be inaccurate. Consider using '#align cau_seq.completion.inv_zero CauSeq.Completion.inv_zeroₓ'. -/
@[simp]
theorem inv_zero : (0 : Cauchy abv)⁻¹ = 0 :=
- congr_arg mk <| by rw [dif_pos] <;> [rfl, exact zero_lim_zero]
+ congr_arg mk <| by rw [dif_pos] <;> [rfl;exact zero_lim_zero]
#align cau_seq.completion.inv_zero CauSeq.Completion.inv_zero
/- warning: cau_seq.completion.inv_mk -> CauSeq.Completion.inv_mk is a dubious translation:
@@ -421,7 +421,7 @@ but is expected to have type
forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : DivisionRing.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (DivisionSemiring.toSemiring.{u2} β (DivisionRing.toDivisionSemiring.{u2} β _inst_2)) abv] (x : β), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3 (Inv.inv.{u2} β (DivisionRing.toInv.{u2} β _inst_2) x)) (Inv.inv.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.instInvCauchyToRing.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3 x))
Case conversion may be inaccurate. Consider using '#align cau_seq.completion.of_rat_inv CauSeq.Completion.ofRat_invₓ'. -/
theorem ofRat_inv (x : β) : ofRat x⁻¹ = ((ofRat x)⁻¹ : Cauchy abv) :=
- congr_arg mk <| by split_ifs with h <;> [simp [const_lim_zero.1 h], rfl]
+ congr_arg mk <| by split_ifs with h <;> [simp [const_lim_zero.1 h];rfl]
#align cau_seq.completion.of_rat_inv CauSeq.Completion.ofRat_inv
/-- The Cauchy completion forms a division ring. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -677,7 +677,7 @@ variable [IsComplete α abs]
/- warning: cau_seq.lim_le -> CauSeq.lim_le is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))} {x : α}, (LE.le.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (CauSeq.hasLe.{u1} α _inst_1) f (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x)) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (OrderedAddCommGroup.toPartialOrder.{u1} α (StrictOrderedRing.toOrderedAddCommGroup.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))) (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f) x)
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))} {x : α}, (LE.le.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (CauSeq.hasLe.{u1} α _inst_1) f (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x)) -> (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α (OrderedAddCommGroup.toPartialOrder.{u1} α (StrictOrderedRing.toOrderedAddCommGroup.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))) (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f) x)
but is expected to have type
forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))} {x : α}, (LE.le.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))) (CauSeq.instLECauSeqToRingToDivisionRingToFieldAbsToHasAbsToNegToSupToSemilatticeSupToLatticeInstDistribLatticeToLinearOrderToLinearOrderedRingToLinearOrderedCommRing.{u1} α _inst_1) f (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x)) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (StrictOrderedRing.toPartialOrder.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))) (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f) x)
Case conversion may be inaccurate. Consider using '#align cau_seq.lim_le CauSeq.lim_leₓ'. -/
@@ -687,7 +687,7 @@ theorem lim_le {f : CauSeq α abs} {x : α} (h : f ≤ CauSeq.const abs x) : lim
/- warning: cau_seq.le_lim -> CauSeq.le_lim is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))} {x : α}, (LE.le.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (CauSeq.hasLe.{u1} α _inst_1) (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x) f) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (OrderedAddCommGroup.toPartialOrder.{u1} α (StrictOrderedRing.toOrderedAddCommGroup.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))) x (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f))
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))} {x : α}, (LE.le.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (CauSeq.hasLe.{u1} α _inst_1) (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x) f) -> (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α (OrderedAddCommGroup.toPartialOrder.{u1} α (StrictOrderedRing.toOrderedAddCommGroup.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))) x (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f))
but is expected to have type
forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))} {x : α}, (LE.le.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))) (CauSeq.instLECauSeqToRingToDivisionRingToFieldAbsToHasAbsToNegToSupToSemilatticeSupToLatticeInstDistribLatticeToLinearOrderToLinearOrderedRingToLinearOrderedCommRing.{u1} α _inst_1) (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x) f) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (StrictOrderedRing.toPartialOrder.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))) x (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f))
Case conversion may be inaccurate. Consider using '#align cau_seq.le_lim CauSeq.le_limₓ'. -/
@@ -697,7 +697,7 @@ theorem le_lim {f : CauSeq α abs} {x : α} (h : CauSeq.const abs x ≤ f) : x
/- warning: cau_seq.lt_lim -> CauSeq.lt_lim is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))} {x : α}, (LT.lt.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (CauSeq.hasLt.{u1} α _inst_1) (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x) f) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (OrderedAddCommGroup.toPartialOrder.{u1} α (StrictOrderedRing.toOrderedAddCommGroup.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))) x (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f))
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))} {x : α}, (LT.lt.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (CauSeq.hasLt.{u1} α _inst_1) (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x) f) -> (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (OrderedAddCommGroup.toPartialOrder.{u1} α (StrictOrderedRing.toOrderedAddCommGroup.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))) x (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f))
but is expected to have type
forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))} {x : α}, (LT.lt.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))) (CauSeq.instLTCauSeqToRingToDivisionRingToFieldAbsToHasAbsToNegToSupToSemilatticeSupToLatticeInstDistribLatticeToLinearOrderToLinearOrderedRingToLinearOrderedCommRing.{u1} α _inst_1) (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x) f) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (StrictOrderedRing.toPartialOrder.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))) x (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f))
Case conversion may be inaccurate. Consider using '#align cau_seq.lt_lim CauSeq.lt_limₓ'. -/
@@ -707,7 +707,7 @@ theorem lt_lim {f : CauSeq α abs} {x : α} (h : CauSeq.const abs x < f) : x < l
/- warning: cau_seq.lim_lt -> CauSeq.lim_lt is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))} {x : α}, (LT.lt.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (CauSeq.hasLt.{u1} α _inst_1) f (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x)) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (OrderedAddCommGroup.toPartialOrder.{u1} α (StrictOrderedRing.toOrderedAddCommGroup.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))) (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f) x)
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))} {x : α}, (LT.lt.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (CauSeq.hasLt.{u1} α _inst_1) f (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x)) -> (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (OrderedAddCommGroup.toPartialOrder.{u1} α (StrictOrderedRing.toOrderedAddCommGroup.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))) (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f) x)
but is expected to have type
forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))} {x : α}, (LT.lt.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))) (CauSeq.instLTCauSeqToRingToDivisionRingToFieldAbsToHasAbsToNegToSupToSemilatticeSupToLatticeInstDistribLatticeToLinearOrderToLinearOrderedRingToLinearOrderedCommRing.{u1} α _inst_1) f (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x)) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (StrictOrderedRing.toPartialOrder.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))) (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f) x)
Case conversion may be inaccurate. Consider using '#align cau_seq.lim_lt CauSeq.lim_ltₓ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/08e1d8d4d989df3a6df86f385e9053ec8a372cc1
@@ -98,7 +98,7 @@ theorem ofRat_zero : (ofRat 0 : Cauchy abv) = 0 :=
lean 3 declaration is
forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv], Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β _inst_2)))))))) (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) 1 (OfNat.mk.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) 1 (One.one.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasOne.{u1, u2} α _inst_1 β _inst_2 abv _inst_3))))
but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv], Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (OfNat.ofNat.{u2} β 1 (One.toOfNat1.{u2} β (NonAssocRing.toOne.{u2} β (Ring.toNonAssocRing.{u2} β _inst_2))))) (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) 1 (One.toOfNat1.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instOneCauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)))
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv], Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (OfNat.ofNat.{u2} β 1 (One.toOfNat1.{u2} β (Semiring.toOne.{u2} β (Ring.toSemiring.{u2} β _inst_2))))) (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) 1 (One.toOfNat1.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instOneCauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)))
Case conversion may be inaccurate. Consider using '#align cau_seq.completion.of_rat_one CauSeq.Completion.ofRat_oneₓ'. -/
theorem ofRat_one : (ofRat 1 : Cauchy abv) = 1 :=
rfl
@@ -210,7 +210,7 @@ instance : IntCast (Cauchy abv) :=
lean 3 declaration is
forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (n : Nat), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat β (HasLiftT.mk.{1, succ u2} Nat β (CoeTCₓ.coe.{1, succ u2} Nat β (Nat.castCoe.{u2} β (AddMonoidWithOne.toNatCast.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β _inst_2))))))) n)) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (HasLiftT.mk.{1, succ u2} Nat (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CoeTCₓ.coe.{1, succ u2} Nat (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (Nat.castCoe.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasNatCast.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)))) n)
but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (n : Nat), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (Nat.cast.{u2} β (NonAssocRing.toNatCast.{u2} β (Ring.toNonAssocRing.{u2} β _inst_2)) n)) (Nat.cast.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instNatCastCauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) n)
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (n : Nat), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (Nat.cast.{u2} β (Semiring.toNatCast.{u2} β (Ring.toSemiring.{u2} β _inst_2)) n)) (Nat.cast.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instNatCastCauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) n)
Case conversion may be inaccurate. Consider using '#align cau_seq.completion.of_rat_nat_cast CauSeq.Completion.ofRat_natCastₓ'. -/
@[simp]
theorem ofRat_natCast (n : ℕ) : (ofRat n : Cauchy abv) = n :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce86f4e05e9a9b8da5e316b22c76ce76440c56a1
@@ -96,7 +96,7 @@ theorem ofRat_zero : (ofRat 0 : Cauchy abv) = 0 :=
/- warning: cau_seq.completion.of_rat_one -> CauSeq.Completion.ofRat_one is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv], Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (NonAssocRing.toAddGroupWithOne.{u2} β (Ring.toNonAssocRing.{u2} β _inst_2)))))))) (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) 1 (OfNat.mk.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) 1 (One.one.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasOne.{u1, u2} α _inst_1 β _inst_2 abv _inst_3))))
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv], Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β _inst_2)))))))) (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) 1 (OfNat.mk.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) 1 (One.one.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasOne.{u1, u2} α _inst_1 β _inst_2 abv _inst_3))))
but is expected to have type
forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv], Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (OfNat.ofNat.{u2} β 1 (One.toOfNat1.{u2} β (NonAssocRing.toOne.{u2} β (Ring.toNonAssocRing.{u2} β _inst_2))))) (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) 1 (One.toOfNat1.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instOneCauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)))
Case conversion may be inaccurate. Consider using '#align cau_seq.completion.of_rat_one CauSeq.Completion.ofRat_oneₓ'. -/
@@ -208,7 +208,7 @@ instance : IntCast (Cauchy abv) :=
/- warning: cau_seq.completion.of_rat_nat_cast -> CauSeq.Completion.ofRat_natCast is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (n : Nat), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat β (HasLiftT.mk.{1, succ u2} Nat β (CoeTCₓ.coe.{1, succ u2} Nat β (Nat.castCoe.{u2} β (AddMonoidWithOne.toNatCast.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (NonAssocRing.toAddGroupWithOne.{u2} β (Ring.toNonAssocRing.{u2} β _inst_2))))))) n)) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (HasLiftT.mk.{1, succ u2} Nat (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CoeTCₓ.coe.{1, succ u2} Nat (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (Nat.castCoe.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasNatCast.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)))) n)
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (n : Nat), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat β (HasLiftT.mk.{1, succ u2} Nat β (CoeTCₓ.coe.{1, succ u2} Nat β (Nat.castCoe.{u2} β (AddMonoidWithOne.toNatCast.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β _inst_2))))))) n)) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (HasLiftT.mk.{1, succ u2} Nat (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CoeTCₓ.coe.{1, succ u2} Nat (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (Nat.castCoe.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasNatCast.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)))) n)
but is expected to have type
forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (n : Nat), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (Nat.cast.{u2} β (NonAssocRing.toNatCast.{u2} β (Ring.toNonAssocRing.{u2} β _inst_2)) n)) (Nat.cast.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instNatCastCauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) n)
Case conversion may be inaccurate. Consider using '#align cau_seq.completion.of_rat_nat_cast CauSeq.Completion.ofRat_natCastₓ'. -/
@@ -219,7 +219,7 @@ theorem ofRat_natCast (n : ℕ) : (ofRat n : Cauchy abv) = n :=
/- warning: cau_seq.completion.of_rat_int_cast -> CauSeq.Completion.ofRat_intCast is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (z : Int), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int β (HasLiftT.mk.{1, succ u2} Int β (CoeTCₓ.coe.{1, succ u2} Int β (Int.castCoe.{u2} β (AddGroupWithOne.toHasIntCast.{u2} β (NonAssocRing.toAddGroupWithOne.{u2} β (Ring.toNonAssocRing.{u2} β _inst_2)))))) z)) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (HasLiftT.mk.{1, succ u2} Int (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CoeTCₓ.coe.{1, succ u2} Int (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (Int.castCoe.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasIntCast.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)))) z)
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (z : Int), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int β (HasLiftT.mk.{1, succ u2} Int β (CoeTCₓ.coe.{1, succ u2} Int β (Int.castCoe.{u2} β (AddGroupWithOne.toHasIntCast.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β _inst_2)))))) z)) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (HasLiftT.mk.{1, succ u2} Int (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CoeTCₓ.coe.{1, succ u2} Int (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (Int.castCoe.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasIntCast.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)))) z)
but is expected to have type
forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (z : Int), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (Int.cast.{u2} β (Ring.toIntCast.{u2} β _inst_2) z)) (Int.cast.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instIntCastCauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) z)
Case conversion may be inaccurate. Consider using '#align cau_seq.completion.of_rat_int_cast CauSeq.Completion.ofRat_intCastₓ'. -/
@@ -240,7 +240,7 @@ theorem ofRat_add (x y : β) : ofRat (x + y) = (ofRat x + ofRat y : Cauchy abv)
/- warning: cau_seq.completion.of_rat_neg -> CauSeq.Completion.ofRat_neg is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (x : β), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (Neg.neg.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (NonAssocRing.toAddGroupWithOne.{u2} β (Ring.toNonAssocRing.{u2} β _inst_2))))) x)) (Neg.neg.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasNeg.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 x))
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (x : β), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (Neg.neg.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β _inst_2))))) x)) (Neg.neg.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasNeg.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 x))
but is expected to have type
forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (x : β), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (Neg.neg.{u2} β (Ring.toNeg.{u2} β _inst_2) x)) (Neg.neg.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instNegCauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 x))
Case conversion may be inaccurate. Consider using '#align cau_seq.completion.of_rat_neg CauSeq.Completion.ofRat_negₓ'. -/
@@ -286,7 +286,7 @@ def ofRatRingHom : β →+* Cauchy abv where
/- warning: cau_seq.completion.of_rat_sub -> CauSeq.Completion.ofRat_sub is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (x : β) (y : β), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (HSub.hSub.{u2, u2, u2} β β β (instHSub.{u2} β (SubNegMonoid.toHasSub.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (NonAssocRing.toAddGroupWithOne.{u2} β (Ring.toNonAssocRing.{u2} β _inst_2)))))) x y)) (HSub.hSub.{u2, u2, u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (instHSub.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasSub.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 x) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 y))
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (x : β) (y : β), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (HSub.hSub.{u2, u2, u2} β β β (instHSub.{u2} β (SubNegMonoid.toHasSub.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β _inst_2)))))) x y)) (HSub.hSub.{u2, u2, u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (instHSub.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasSub.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 x) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 y))
but is expected to have type
forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (x : β) (y : β), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (HSub.hSub.{u2, u2, u2} β β β (instHSub.{u2} β (Ring.toSub.{u2} β _inst_2)) x y)) (HSub.hSub.{u2, u2, u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (instHSub.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instSubCauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 x) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 y))
Case conversion may be inaccurate. Consider using '#align cau_seq.completion.of_rat_sub CauSeq.Completion.ofRat_subₓ'. -/
@@ -605,7 +605,7 @@ theorem lim_mul (f : CauSeq β abv) (x : β) : lim f * x = lim (f * const abv x)
/- warning: cau_seq.lim_neg -> CauSeq.lim_neg is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] [_inst_4 : CauSeq.IsComplete.{u1, u2} α _inst_1 β _inst_2 abv _inst_3] (f : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv), Eq.{succ u2} β (CauSeq.lim.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 _inst_4 (Neg.neg.{u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.hasNeg.{u1, u2} α β _inst_1 _inst_2 abv _inst_3) f)) (Neg.neg.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (NonAssocRing.toAddGroupWithOne.{u2} β (Ring.toNonAssocRing.{u2} β _inst_2))))) (CauSeq.lim.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 _inst_4 f))
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] [_inst_4 : CauSeq.IsComplete.{u1, u2} α _inst_1 β _inst_2 abv _inst_3] (f : CauSeq.{u1, u2} α _inst_1 β _inst_2 abv), Eq.{succ u2} β (CauSeq.lim.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 _inst_4 (Neg.neg.{u2} (CauSeq.{u1, u2} α _inst_1 β _inst_2 abv) (CauSeq.hasNeg.{u1, u2} α β _inst_1 _inst_2 abv _inst_3) f)) (Neg.neg.{u2} β (SubNegMonoid.toHasNeg.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddGroupWithOne.toAddGroup.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β _inst_2))))) (CauSeq.lim.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 _inst_4 f))
but is expected to have type
forall {α : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} α] {β : Type.{u1}} [_inst_2 : Ring.{u1} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u2, u1} α (OrderedCommSemiring.toOrderedSemiring.{u2} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} α (LinearOrderedField.toLinearOrderedSemifield.{u2} α _inst_1))))) β (Ring.toSemiring.{u1} β _inst_2) abv] [_inst_4 : CauSeq.IsComplete.{u2, u1} α _inst_1 β _inst_2 abv _inst_3] (f : CauSeq.{u2, u1} α _inst_1 β _inst_2 abv), Eq.{succ u1} β (CauSeq.lim.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 _inst_4 (Neg.neg.{u1} (CauSeq.{u2, u1} α _inst_1 β _inst_2 abv) (CauSeq.instNegCauSeq.{u2, u1} α β _inst_1 _inst_2 abv _inst_3) f)) (Neg.neg.{u1} β (Ring.toNeg.{u1} β _inst_2) (CauSeq.lim.{u2, u1} α _inst_1 β _inst_2 abv _inst_3 _inst_4 f))
Case conversion may be inaccurate. Consider using '#align cau_seq.lim_neg CauSeq.lim_negₓ'. -/
@@ -677,7 +677,7 @@ variable [IsComplete α abs]
/- warning: cau_seq.lim_le -> CauSeq.lim_le is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))} {x : α}, (LE.le.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (CauSeq.hasLe.{u1} α _inst_1) f (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x)) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (OrderedAddCommGroup.toPartialOrder.{u1} α (StrictOrderedRing.toOrderedAddCommGroup.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))) (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f) x)
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))} {x : α}, (LE.le.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (CauSeq.hasLe.{u1} α _inst_1) f (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x)) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (OrderedAddCommGroup.toPartialOrder.{u1} α (StrictOrderedRing.toOrderedAddCommGroup.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))) (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f) x)
but is expected to have type
forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))} {x : α}, (LE.le.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))) (CauSeq.instLECauSeqToRingToDivisionRingToFieldAbsToHasAbsToNegToSupToSemilatticeSupToLatticeInstDistribLatticeToLinearOrderToLinearOrderedRingToLinearOrderedCommRing.{u1} α _inst_1) f (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x)) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (StrictOrderedRing.toPartialOrder.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))) (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f) x)
Case conversion may be inaccurate. Consider using '#align cau_seq.lim_le CauSeq.lim_leₓ'. -/
@@ -687,7 +687,7 @@ theorem lim_le {f : CauSeq α abs} {x : α} (h : f ≤ CauSeq.const abs x) : lim
/- warning: cau_seq.le_lim -> CauSeq.le_lim is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))} {x : α}, (LE.le.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (CauSeq.hasLe.{u1} α _inst_1) (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x) f) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (OrderedAddCommGroup.toPartialOrder.{u1} α (StrictOrderedRing.toOrderedAddCommGroup.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))) x (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f))
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))} {x : α}, (LE.le.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (CauSeq.hasLe.{u1} α _inst_1) (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x) f) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (OrderedAddCommGroup.toPartialOrder.{u1} α (StrictOrderedRing.toOrderedAddCommGroup.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))) x (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f))
but is expected to have type
forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))} {x : α}, (LE.le.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))) (CauSeq.instLECauSeqToRingToDivisionRingToFieldAbsToHasAbsToNegToSupToSemilatticeSupToLatticeInstDistribLatticeToLinearOrderToLinearOrderedRingToLinearOrderedCommRing.{u1} α _inst_1) (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x) f) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (StrictOrderedRing.toPartialOrder.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))) x (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f))
Case conversion may be inaccurate. Consider using '#align cau_seq.le_lim CauSeq.le_limₓ'. -/
@@ -697,7 +697,7 @@ theorem le_lim {f : CauSeq α abs} {x : α} (h : CauSeq.const abs x ≤ f) : x
/- warning: cau_seq.lt_lim -> CauSeq.lt_lim is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))} {x : α}, (LT.lt.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (CauSeq.hasLt.{u1} α _inst_1) (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x) f) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (OrderedAddCommGroup.toPartialOrder.{u1} α (StrictOrderedRing.toOrderedAddCommGroup.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))) x (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f))
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))} {x : α}, (LT.lt.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (CauSeq.hasLt.{u1} α _inst_1) (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x) f) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (OrderedAddCommGroup.toPartialOrder.{u1} α (StrictOrderedRing.toOrderedAddCommGroup.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))) x (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f))
but is expected to have type
forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))} {x : α}, (LT.lt.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))) (CauSeq.instLTCauSeqToRingToDivisionRingToFieldAbsToHasAbsToNegToSupToSemilatticeSupToLatticeInstDistribLatticeToLinearOrderToLinearOrderedRingToLinearOrderedCommRing.{u1} α _inst_1) (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x) f) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (StrictOrderedRing.toPartialOrder.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))) x (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f))
Case conversion may be inaccurate. Consider using '#align cau_seq.lt_lim CauSeq.lt_limₓ'. -/
@@ -707,7 +707,7 @@ theorem lt_lim {f : CauSeq α abs} {x : α} (h : CauSeq.const abs x < f) : x < l
/- warning: cau_seq.lim_lt -> CauSeq.lim_lt is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))} {x : α}, (LT.lt.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (CauSeq.hasLt.{u1} α _inst_1) f (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x)) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (OrderedAddCommGroup.toPartialOrder.{u1} α (StrictOrderedRing.toOrderedAddCommGroup.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))) (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f) x)
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))} {x : α}, (LT.lt.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (CauSeq.hasLt.{u1} α _inst_1) f (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x)) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (OrderedAddCommGroup.toPartialOrder.{u1} α (StrictOrderedRing.toOrderedAddCommGroup.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))) (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (AddCommGroupWithOne.toAddGroupWithOne.{u1} α (Ring.toAddCommGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f) x)
but is expected to have type
forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))} {x : α}, (LT.lt.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))) (CauSeq.instLTCauSeqToRingToDivisionRingToFieldAbsToHasAbsToNegToSupToSemilatticeSupToLatticeInstDistribLatticeToLinearOrderToLinearOrderedRingToLinearOrderedCommRing.{u1} α _inst_1) f (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x)) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (StrictOrderedRing.toPartialOrder.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))) (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f) x)
Case conversion may be inaccurate. Consider using '#align cau_seq.lim_lt CauSeq.lim_ltₓ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/b19481deb571022990f1baa9cbf9172e6757a479
@@ -94,11 +94,15 @@ theorem ofRat_zero : (ofRat 0 : Cauchy abv) = 0 :=
rfl
#align cau_seq.completion.of_rat_zero CauSeq.Completion.ofRat_zero
-#print CauSeq.Completion.ofRat_one /-
+/- warning: cau_seq.completion.of_rat_one -> CauSeq.Completion.ofRat_one is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv], Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (NonAssocRing.toAddGroupWithOne.{u2} β (Ring.toNonAssocRing.{u2} β _inst_2)))))))) (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) 1 (OfNat.mk.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) 1 (One.one.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasOne.{u1, u2} α _inst_1 β _inst_2 abv _inst_3))))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv], Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (OfNat.ofNat.{u2} β 1 (One.toOfNat1.{u2} β (NonAssocRing.toOne.{u2} β (Ring.toNonAssocRing.{u2} β _inst_2))))) (OfNat.ofNat.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) 1 (One.toOfNat1.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instOneCauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)))
+Case conversion may be inaccurate. Consider using '#align cau_seq.completion.of_rat_one CauSeq.Completion.ofRat_oneₓ'. -/
theorem ofRat_one : (ofRat 1 : Cauchy abv) = 1 :=
rfl
#align cau_seq.completion.of_rat_one CauSeq.Completion.ofRat_one
--/
/- warning: cau_seq.completion.mk_eq_zero -> CauSeq.Completion.mk_eq_zero is a dubious translation:
lean 3 declaration is
@@ -202,12 +206,16 @@ instance : NatCast (Cauchy abv) :=
instance : IntCast (Cauchy abv) :=
⟨fun n => mk n⟩
-#print CauSeq.Completion.ofRat_natCast /-
+/- warning: cau_seq.completion.of_rat_nat_cast -> CauSeq.Completion.ofRat_natCast is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (n : Nat), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat β (HasLiftT.mk.{1, succ u2} Nat β (CoeTCₓ.coe.{1, succ u2} Nat β (Nat.castCoe.{u2} β (AddMonoidWithOne.toNatCast.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (NonAssocRing.toAddGroupWithOne.{u2} β (Ring.toNonAssocRing.{u2} β _inst_2))))))) n)) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (HasLiftT.mk.{1, succ u2} Nat (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CoeTCₓ.coe.{1, succ u2} Nat (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (Nat.castCoe.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.Cauchy.hasNatCast.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)))) n)
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : Ring.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β _inst_2) abv] (n : Nat), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β _inst_2 abv _inst_3 (Nat.cast.{u2} β (NonAssocRing.toNatCast.{u2} β (Ring.toNonAssocRing.{u2} β _inst_2)) n)) (Nat.cast.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) (CauSeq.Completion.instNatCastCauchy.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) n)
+Case conversion may be inaccurate. Consider using '#align cau_seq.completion.of_rat_nat_cast CauSeq.Completion.ofRat_natCastₓ'. -/
@[simp]
theorem ofRat_natCast (n : ℕ) : (ofRat n : Cauchy abv) = n :=
rfl
#align cau_seq.completion.of_rat_nat_cast CauSeq.Completion.ofRat_natCast
--/
/- warning: cau_seq.completion.of_rat_int_cast -> CauSeq.Completion.ofRat_intCast is a dubious translation:
lean 3 declaration is
mathlib commit https://github.com/leanprover-community/mathlib/commit/3180fab693e2cee3bff62675571264cb8778b212
@@ -310,14 +310,14 @@ variable {α : Type _} [LinearOrderedField α]
variable {β : Type _} [DivisionRing β] {abv : β → α} [IsAbsoluteValue abv]
-instance : RatCast (Cauchy abv) :=
+instance : HasRatCast (Cauchy abv) :=
⟨fun q => ofRat q⟩
/- warning: cau_seq.completion.of_rat_rat_cast -> CauSeq.Completion.ofRat_ratCast is a dubious translation:
lean 3 declaration is
forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : DivisionRing.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (StrictOrderedSemiring.toOrderedSemiring.{u1} α (StrictOrderedRing.toStrictOrderedSemiring.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) β (Ring.toSemiring.{u2} β (DivisionRing.toRing.{u2} β _inst_2)) abv] (q : Rat), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3 ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Rat β (HasLiftT.mk.{1, succ u2} Rat β (CoeTCₓ.coe.{1, succ u2} Rat β (Rat.castCoe.{u2} β (DivisionRing.toHasRatCast.{u2} β _inst_2)))) q)) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Rat (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (HasLiftT.mk.{1, succ u2} Rat (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CoeTCₓ.coe.{1, succ u2} Rat (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (Rat.castCoe.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.Cauchy.hasRatCast.{u1, u2} α _inst_1 β _inst_2 abv _inst_3)))) q)
but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : DivisionRing.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (DivisionSemiring.toSemiring.{u2} β (DivisionRing.toDivisionSemiring.{u2} β _inst_2)) abv] (q : Rat), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3 (RatCast.ratCast.{u2} β (DivisionRing.toRatCast.{u2} β _inst_2) q)) (RatCast.ratCast.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.instRatCastCauchyToRing.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) q)
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] {β : Type.{u2}} [_inst_2 : DivisionRing.{u2} β] {abv : β -> α} [_inst_3 : IsAbsoluteValue.{u1, u2} α (OrderedCommSemiring.toOrderedSemiring.{u1} α (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} α (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} α (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} α (LinearOrderedField.toLinearOrderedSemifield.{u1} α _inst_1))))) β (DivisionSemiring.toSemiring.{u2} β (DivisionRing.toDivisionSemiring.{u2} β _inst_2)) abv] (q : Rat), Eq.{succ u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.ofRat.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3 (Rat.cast.{u2} β (DivisionRing.toRatCast.{u2} β _inst_2) q)) (Rat.cast.{u2} (CauSeq.Completion.Cauchy.{u1, u2} α _inst_1 β (DivisionRing.toRing.{u2} β _inst_2) abv _inst_3) (CauSeq.Completion.instRatCastCauchyToRing.{u1, u2} α _inst_1 β _inst_2 abv _inst_3) q)
Case conversion may be inaccurate. Consider using '#align cau_seq.completion.of_rat_rat_cast CauSeq.Completion.ofRat_ratCastₓ'. -/
@[simp]
theorem ofRat_ratCast (q : ℚ) : ofRat (↑q : β) = (q : Cauchy abv) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/9da1b3534b65d9661eb8f42443598a92bbb49211
@@ -671,7 +671,7 @@ variable [IsComplete α abs]
lean 3 declaration is
forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))} {x : α}, (LE.le.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (CauSeq.hasLe.{u1} α _inst_1) f (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x)) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (OrderedAddCommGroup.toPartialOrder.{u1} α (StrictOrderedRing.toOrderedAddCommGroup.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))) (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f) x)
but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))} {x : α}, (LE.le.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))) (CauSeq.instLECauSeqToRingToDivisionRingToFieldAbsToHasAbsToNegToHasSupToSemilatticeSupToLatticeInstDistribLatticeToLinearOrderToLinearOrderedRingToLinearOrderedCommRing.{u1} α _inst_1) f (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x)) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (StrictOrderedRing.toPartialOrder.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))) (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f) x)
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))} {x : α}, (LE.le.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))) (CauSeq.instLECauSeqToRingToDivisionRingToFieldAbsToHasAbsToNegToSupToSemilatticeSupToLatticeInstDistribLatticeToLinearOrderToLinearOrderedRingToLinearOrderedCommRing.{u1} α _inst_1) f (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x)) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (StrictOrderedRing.toPartialOrder.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))) (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f) x)
Case conversion may be inaccurate. Consider using '#align cau_seq.lim_le CauSeq.lim_leₓ'. -/
theorem lim_le {f : CauSeq α abs} {x : α} (h : f ≤ CauSeq.const abs x) : lim f ≤ x :=
CauSeq.const_le.1 <| CauSeq.le_of_eq_of_le (Setoid.symm (equiv_lim f)) h
@@ -681,7 +681,7 @@ theorem lim_le {f : CauSeq α abs} {x : α} (h : f ≤ CauSeq.const abs x) : lim
lean 3 declaration is
forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))} {x : α}, (LE.le.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (CauSeq.hasLe.{u1} α _inst_1) (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x) f) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (OrderedAddCommGroup.toPartialOrder.{u1} α (StrictOrderedRing.toOrderedAddCommGroup.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))) x (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f))
but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))} {x : α}, (LE.le.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))) (CauSeq.instLECauSeqToRingToDivisionRingToFieldAbsToHasAbsToNegToHasSupToSemilatticeSupToLatticeInstDistribLatticeToLinearOrderToLinearOrderedRingToLinearOrderedCommRing.{u1} α _inst_1) (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x) f) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (StrictOrderedRing.toPartialOrder.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))) x (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f))
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))} {x : α}, (LE.le.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))) (CauSeq.instLECauSeqToRingToDivisionRingToFieldAbsToHasAbsToNegToSupToSemilatticeSupToLatticeInstDistribLatticeToLinearOrderToLinearOrderedRingToLinearOrderedCommRing.{u1} α _inst_1) (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x) f) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (StrictOrderedRing.toPartialOrder.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))) x (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f))
Case conversion may be inaccurate. Consider using '#align cau_seq.le_lim CauSeq.le_limₓ'. -/
theorem le_lim {f : CauSeq α abs} {x : α} (h : CauSeq.const abs x ≤ f) : x ≤ lim f :=
CauSeq.const_le.1 <| CauSeq.le_of_le_of_eq h (equiv_lim f)
@@ -691,7 +691,7 @@ theorem le_lim {f : CauSeq α abs} {x : α} (h : CauSeq.const abs x ≤ f) : x
lean 3 declaration is
forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))} {x : α}, (LT.lt.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (CauSeq.hasLt.{u1} α _inst_1) (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x) f) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (OrderedAddCommGroup.toPartialOrder.{u1} α (StrictOrderedRing.toOrderedAddCommGroup.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))) x (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f))
but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))} {x : α}, (LT.lt.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))) (CauSeq.instLTCauSeqToRingToDivisionRingToFieldAbsToHasAbsToNegToHasSupToSemilatticeSupToLatticeInstDistribLatticeToLinearOrderToLinearOrderedRingToLinearOrderedCommRing.{u1} α _inst_1) (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x) f) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (StrictOrderedRing.toPartialOrder.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))) x (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f))
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))} {x : α}, (LT.lt.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))) (CauSeq.instLTCauSeqToRingToDivisionRingToFieldAbsToHasAbsToNegToSupToSemilatticeSupToLatticeInstDistribLatticeToLinearOrderToLinearOrderedRingToLinearOrderedCommRing.{u1} α _inst_1) (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x) f) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (StrictOrderedRing.toPartialOrder.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))) x (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f))
Case conversion may be inaccurate. Consider using '#align cau_seq.lt_lim CauSeq.lt_limₓ'. -/
theorem lt_lim {f : CauSeq α abs} {x : α} (h : CauSeq.const abs x < f) : x < lim f :=
CauSeq.const_lt.1 <| CauSeq.lt_of_lt_of_eq h (equiv_lim f)
@@ -701,7 +701,7 @@ theorem lt_lim {f : CauSeq α abs} {x : α} (h : CauSeq.const abs x < f) : x < l
lean 3 declaration is
forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))} {x : α}, (LT.lt.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (CauSeq.hasLt.{u1} α _inst_1) f (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x)) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (OrderedAddCommGroup.toPartialOrder.{u1} α (StrictOrderedRing.toOrderedAddCommGroup.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))) (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddGroupWithOne.toAddGroup.{u1} α (NonAssocRing.toAddGroupWithOne.{u1} α (Ring.toNonAssocRing.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (LinearOrder.toLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f) x)
but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))} {x : α}, (LT.lt.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))) (CauSeq.instLTCauSeqToRingToDivisionRingToFieldAbsToHasAbsToNegToHasSupToSemilatticeSupToLatticeInstDistribLatticeToLinearOrderToLinearOrderedRingToLinearOrderedCommRing.{u1} α _inst_1) f (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x)) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (StrictOrderedRing.toPartialOrder.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))) (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toHasSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f) x)
+ forall {α : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} α] [_inst_2 : CauSeq.IsComplete.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))] {f : CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))} {x : α}, (LT.lt.{u1} (CauSeq.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))))))) (CauSeq.instLTCauSeqToRingToDivisionRingToFieldAbsToHasAbsToNegToSupToSemilatticeSupToLatticeInstDistribLatticeToLinearOrderToLinearOrderedRingToLinearOrderedCommRing.{u1} α _inst_1) f (CauSeq.const.{u1, u1} α α _inst_1 (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (StrictOrderedRing.toRing.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) x)) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (StrictOrderedRing.toPartialOrder.{u1} α (LinearOrderedRing.toStrictOrderedRing.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1)))))) (CauSeq.lim.{u1, u1} α _inst_1 α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1))) (Abs.abs.{u1} α (Neg.toHasAbs.{u1} α (Ring.toNeg.{u1} α (DivisionRing.toRing.{u1} α (Field.toDivisionRing.{u1} α (LinearOrderedField.toField.{u1} α _inst_1)))) (SemilatticeSup.toSup.{u1} α (Lattice.toSemilatticeSup.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α (LinearOrderedRing.toLinearOrder.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))))))))) (IsAbsoluteValue.abs_isAbsoluteValue.{u1} α (LinearOrderedCommRing.toLinearOrderedRing.{u1} α (LinearOrderedField.toLinearOrderedCommRing.{u1} α _inst_1))) _inst_2 f) x)
Case conversion may be inaccurate. Consider using '#align cau_seq.lim_lt CauSeq.lim_ltₓ'. -/
theorem lim_lt {f : CauSeq α abs} {x : α} (h : f < CauSeq.const abs x) : lim f < x :=
CauSeq.const_lt.1 <| CauSeq.lt_of_eq_of_lt (Setoid.symm (equiv_lim f)) h
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
NNRat.cast
(#11203)
Define the canonical coercion from the nonnegative rationals to any division semiring.
From LeanAPAP
@@ -203,8 +203,10 @@ section
variable {α : Type*} [LinearOrderedField α]
variable {β : Type*} [DivisionRing β] {abv : β → α} [IsAbsoluteValue abv]
+instance instNNRatCast : NNRatCast (Cauchy abv) where nnratCast q := ofRat q
instance instRatCast : RatCast (Cauchy abv) where ratCast q := ofRat q
+@[simp, norm_cast] lemma ofRat_nnratCast (q : ℚ≥0) : ofRat (q : β) = (q : Cauchy abv) := rfl
@[simp, norm_cast] lemma ofRat_ratCast (q : ℚ) : ofRat (q : β) = (q : Cauchy abv) := rfl
#align cau_seq.completion.of_rat_rat_cast CauSeq.Completion.ofRat_ratCast
@@ -272,8 +274,11 @@ noncomputable instance Cauchy.divisionRing : DivisionRing (Cauchy abv) where
exists_pair_ne := ⟨0, 1, zero_ne_one⟩
inv_zero := inv_zero
mul_inv_cancel x := CauSeq.Completion.mul_inv_cancel
+ nnqsmul := (· • ·)
qsmul := (· • ·)
+ nnratCast_def q := by simp_rw [← ofRat_nnratCast, NNRat.cast_def, ofRat_div, ofRat_natCast]
ratCast_def q := by rw [← ofRat_ratCast, Rat.cast_def, ofRat_div, ofRat_natCast, ofRat_intCast]
+ nnqsmul_def q x := Quotient.inductionOn x fun f ↦ congr_arg mk <| ext fun i ↦ NNRat.smul_def _ _
qsmul_def q x := Quotient.inductionOn x fun f ↦ congr_arg mk <| ext fun i ↦ Rat.smul_def _ _
/-- Show the first 10 items of a representative of this equivalence class of cauchy sequences.
NNRat.cast
(#12360)
This is the parts of the diff of #11203 which don't mention NNRat.cast
.
where
notation.qsmul := _
instead of qsmul := qsmulRec _
to make the instances more robust to definition changes.qsmulRec
.qsmul
before ratCast_def
in instance declarations.rat_smul
to qsmul
.@@ -203,12 +203,9 @@ section
variable {α : Type*} [LinearOrderedField α]
variable {β : Type*} [DivisionRing β] {abv : β → α} [IsAbsoluteValue abv]
-instance : RatCast (Cauchy abv) :=
- ⟨fun q => ofRat q⟩
+instance instRatCast : RatCast (Cauchy abv) where ratCast q := ofRat q
-@[simp, coe]
-theorem ofRat_ratCast (q : ℚ) : ofRat (↑q : β) = (q : (Cauchy abv)) :=
- rfl
+@[simp, norm_cast] lemma ofRat_ratCast (q : ℚ) : ofRat (q : β) = (q : Cauchy abv) := rfl
#align cau_seq.completion.of_rat_rat_cast CauSeq.Completion.ofRat_ratCast
noncomputable instance : Inv (Cauchy abv) :=
@@ -275,8 +272,8 @@ noncomputable instance Cauchy.divisionRing : DivisionRing (Cauchy abv) where
exists_pair_ne := ⟨0, 1, zero_ne_one⟩
inv_zero := inv_zero
mul_inv_cancel x := CauSeq.Completion.mul_inv_cancel
- ratCast_def q := by rw [← ofRat_ratCast, Rat.cast_def, ofRat_div, ofRat_natCast, ofRat_intCast]
qsmul := (· • ·)
+ ratCast_def q := by rw [← ofRat_ratCast, Rat.cast_def, ofRat_div, ofRat_natCast, ofRat_intCast]
qsmul_def q x := Quotient.inductionOn x fun f ↦ congr_arg mk <| ext fun i ↦ Rat.smul_def _ _
/-- Show the first 10 items of a representative of this equivalence class of cauchy sequences.
Rat
internals in the definition of Field
(#11639)
Soon, there will be NNRat
analogs of the Rat
fields in the definition of Field
. NNRat
is less nicely a structure than Rat
, hence there is a need to reduce the dependency of Field
on the internals of Rat
.
This PR achieves this by restating Field.ratCast_mk'
in terms of Rat.num
, Rat.den
. This requires fixing a few downstream instances.
Reduce the diff of #11203.
Co-authored-by: Floris van Doorn <fpvdoorn@gmail.com>
@@ -264,21 +264,20 @@ theorem ofRat_inv (x : β) : ofRat x⁻¹ = ((ofRat x)⁻¹ : (Cauchy abv)) :=
[simp only [const_limZero.1 h, GroupWithZero.inv_zero, const_zero]; rfl]
#align cau_seq.completion.of_rat_inv CauSeq.Completion.ofRat_inv
-/- porting note: needed to rewrite the proof of ratCast_mk due to simp issues -/
+noncomputable instance instDivInvMonoid : DivInvMonoid (Cauchy abv) where
+
+lemma ofRat_div (x y : β) : ofRat (x / y) = (ofRat x / ofRat y : Cauchy abv) := by
+ simp only [div_eq_mul_inv, ofRat_inv, ofRat_mul]
+#align cau_seq.completion.of_rat_div CauSeq.Completion.ofRat_div
+
/-- The Cauchy completion forms a division ring. -/
noncomputable instance Cauchy.divisionRing : DivisionRing (Cauchy abv) where
exists_pair_ne := ⟨0, 1, zero_ne_one⟩
inv_zero := inv_zero
mul_inv_cancel x := CauSeq.Completion.mul_inv_cancel
- ratCast q := ofRat q
- ratCast_mk n d hd hnd := by rw [← ofRat_ratCast, Rat.cast_mk', ofRat_mul, ofRat_inv]; rfl
+ ratCast_def q := by rw [← ofRat_ratCast, Rat.cast_def, ofRat_div, ofRat_natCast, ofRat_intCast]
qsmul := (· • ·)
- qsmul_eq_mul' q x := Quotient.inductionOn x fun f =>
- congr_arg mk <| ext fun i => DivisionRing.qsmul_eq_mul' _ _
-
-theorem ofRat_div (x y : β) : ofRat (x / y) = (ofRat x / ofRat y : Cauchy abv) := by
- simp only [div_eq_mul_inv, ofRat_inv, ofRat_mul]
-#align cau_seq.completion.of_rat_div CauSeq.Completion.ofRat_div
+ qsmul_def q x := Quotient.inductionOn x fun f ↦ congr_arg mk <| ext fun i ↦ Rat.smul_def _ _
/-- Show the first 10 items of a representative of this equivalence class of cauchy sequences.
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -22,7 +22,6 @@ open CauSeq
section
variable {α : Type*} [LinearOrderedField α]
-
variable {β : Type*} [Ring β] (abv : β → α) [IsAbsoluteValue abv]
-- TODO: rename this to `CauSeq.Completion` instead of `CauSeq.Completion.Cauchy`.
@@ -187,7 +186,6 @@ end
section
variable {α : Type*} [LinearOrderedField α]
-
variable {β : Type*} [CommRing β] {abv : β → α} [IsAbsoluteValue abv]
instance Cauchy.commRing : CommRing (Cauchy abv) :=
@@ -203,7 +201,6 @@ open scoped Classical
section
variable {α : Type*} [LinearOrderedField α]
-
variable {β : Type*} [DivisionRing β] {abv : β → α} [IsAbsoluteValue abv]
instance : RatCast (Cauchy abv) :=
@@ -299,7 +296,6 @@ end
section
variable {α : Type*} [LinearOrderedField α]
-
variable {β : Type*} [Field β] {abv : β → α} [IsAbsoluteValue abv]
/-- The Cauchy completion forms a field. -/
@@ -331,7 +327,6 @@ end
section
variable {β : Type*} [Ring β] {abv : β → α} [IsAbsoluteValue abv]
-
variable [IsComplete β abv]
theorem complete : ∀ s : CauSeq β abv, ∃ b : β, s ≈ const abv b :=
@@ -267,8 +267,7 @@ theorem ofRat_inv (x : β) : ofRat x⁻¹ = ((ofRat x)⁻¹ : (Cauchy abv)) :=
[simp only [const_limZero.1 h, GroupWithZero.inv_zero, const_zero]; rfl]
#align cau_seq.completion.of_rat_inv CauSeq.Completion.ofRat_inv
-/- porting note: This takes a long time to compile.
- Also needed to rewrite the proof of ratCast_mk due to simp issues -/
+/- porting note: needed to rewrite the proof of ratCast_mk due to simp issues -/
/-- The Cauchy completion forms a division ring. -/
noncomputable instance Cauchy.divisionRing : DivisionRing (Cauchy abv) where
exists_pair_ne := ⟨0, 1, zero_ne_one⟩
@@ -276,7 +275,9 @@ noncomputable instance Cauchy.divisionRing : DivisionRing (Cauchy abv) where
mul_inv_cancel x := CauSeq.Completion.mul_inv_cancel
ratCast q := ofRat q
ratCast_mk n d hd hnd := by rw [← ofRat_ratCast, Rat.cast_mk', ofRat_mul, ofRat_inv]; rfl
- qsmul := qsmulRec _ -- TODO: fix instance diamond
+ qsmul := (· • ·)
+ qsmul_eq_mul' q x := Quotient.inductionOn x fun f =>
+ congr_arg mk <| ext fun i => DivisionRing.qsmul_eq_mul' _ _
theorem ofRat_div (x y : β) : ofRat (x / y) = (ofRat x / ofRat y : Cauchy abv) := by
simp only [div_eq_mul_inv, ofRat_inv, ofRat_mul]
@@ -276,6 +276,7 @@ noncomputable instance Cauchy.divisionRing : DivisionRing (Cauchy abv) where
mul_inv_cancel x := CauSeq.Completion.mul_inv_cancel
ratCast q := ofRat q
ratCast_mk n d hd hnd := by rw [← ofRat_ratCast, Rat.cast_mk', ofRat_mul, ofRat_inv]; rfl
+ qsmul := qsmulRec _ -- TODO: fix instance diamond
theorem ofRat_div (x y : β) : ofRat (x / y) = (ofRat x / ofRat y : Cauchy abv) := by
simp only [div_eq_mul_inv, ofRat_inv, ofRat_mul]
@@ -263,7 +263,8 @@ protected theorem mul_inv_cancel {x : (Cauchy abv)} : x ≠ 0 → x * x⁻¹ = 1
#align cau_seq.completion.mul_inv_cancel CauSeq.Completion.mul_inv_cancel
theorem ofRat_inv (x : β) : ofRat x⁻¹ = ((ofRat x)⁻¹ : (Cauchy abv)) :=
- congr_arg mk <| by split_ifs with h <;> [simp [const_limZero.1 h]; rfl]
+ congr_arg mk <| by split_ifs with h <;>
+ [simp only [const_limZero.1 h, GroupWithZero.inv_zero, const_zero]; rfl]
#align cau_seq.completion.of_rat_inv CauSeq.Completion.ofRat_inv
/- porting note: This takes a long time to compile.
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.
@@ -198,7 +198,7 @@ instance Cauchy.commRing : CommRing (Cauchy abv) :=
end
-open Classical
+open scoped Classical
section
@@ -228,7 +228,7 @@ noncomputable instance : Inv (Cauchy abv) :=
rw [mk_eq.2 fg, ← Ig] at If
rw [← mul_one (mk (inv f hf)), ← Ig', ← mul_assoc, If, mul_assoc, Ig', mul_one]⟩
--- porting note: simp can prove this
+-- porting note (#10618): simp can prove this
-- @[simp]
theorem inv_zero : (0 : (Cauchy abv))⁻¹ = 0 :=
congr_arg mk <| by rw [dif_pos] <;> [rfl; exact zero_limZero]
Data.Real.CauSeq
to Algebra.Order.CauSeq.Basic
Data.Real.CauSeqCompletion
to Algebra.Order.CauSeq.Completion
CauSeq
from Data.Complex.Exponential
to a new file Algebra.Order.CauSeq.BigOperators
Module
from Algebra.BigOperators.Intervals
to a new file Algebra.BigOperators.Module
abv_sum_le_sum_abv
as it's a duplicate of IsAbsoluteValue.abv_sum
@@ -3,7 +3,7 @@ Copyright (c) 2018 Mario Carneiro. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Mario Carneiro, Robert Y. Lewis
-/
-import Mathlib.Data.Real.CauSeq
+import Mathlib.Algebra.Order.CauSeq.Basic
#align_import data.real.cau_seq_completion from "leanprover-community/mathlib"@"cf4c49c445991489058260d75dae0ff2b1abca28"
(· op ·) a
by (a op ·)
(#8843)
I used the regex \(\(· (.) ·\) (.)\)
, replacing with ($2 $1 ·)
.
@@ -109,7 +109,7 @@ theorem mk_sub (f g : CauSeq β abv) : mk f - mk g = mk (f - g) :=
#align cau_seq.completion.mk_sub CauSeq.Completion.mk_sub
instance {γ : Type*} [SMul γ β] [IsScalarTower γ β β] : SMul γ (Cauchy abv) :=
- ⟨fun c => (Quotient.map ((· • ·) c)) fun _ _ hf => smul_equiv_smul _ hf⟩
+ ⟨fun c => (Quotient.map (c • ·)) fun _ _ hf => smul_equiv_smul _ hf⟩
@[simp]
theorem mk_smul {γ : Type*} [SMul γ β] [IsScalarTower γ β β] (c : γ) (f : CauSeq β abv) :
Removes nonterminal simps on lines looking like simp [...]
@@ -221,7 +221,7 @@ noncomputable instance : Inv (Cauchy abv) :=
by_cases hf : LimZero f
· simp [hf, this.1 hf, Setoid.refl]
· have hg := mt this.2 hf
- simp [hf, hg]
+ simp only [hf, dite_false, hg]
have If : mk (inv f hf) * mk f = 1 := mk_eq.2 (inv_mul_cancel hf)
have Ig : mk (inv g hg) * mk g = 1 := mk_eq.2 (inv_mul_cancel hg)
have Ig' : mk g * mk (inv g hg) = 1 := mk_eq.2 (mul_inv_cancel hg)
@@ -251,14 +251,14 @@ theorem zero_ne_one : (0 : (Cauchy abv)) ≠ 1 := fun h => cau_seq_zero_ne_one <
protected theorem inv_mul_cancel {x : (Cauchy abv)} : x ≠ 0 → x⁻¹ * x = 1 :=
Quotient.inductionOn x fun f hf => by
simp only [mk_eq_mk, ne_eq, mk_eq_zero] at hf
- simp [hf]
+ simp only [mk_eq_mk, hf, not_false_eq_true, inv_mk, mk_mul]
exact Quotient.sound (CauSeq.inv_mul_cancel hf)
#align cau_seq.completion.inv_mul_cancel CauSeq.Completion.inv_mul_cancel
protected theorem mul_inv_cancel {x : (Cauchy abv)} : x ≠ 0 → x * x⁻¹ = 1 :=
Quotient.inductionOn x fun f hf => by
simp only [mk_eq_mk, ne_eq, mk_eq_zero] at hf
- simp [hf]
+ simp only [mk_eq_mk, hf, not_false_eq_true, inv_mk, mk_mul]
exact Quotient.sound (CauSeq.mul_inv_cancel hf)
#align cau_seq.completion.mul_inv_cancel CauSeq.Completion.mul_inv_cancel
The mathlib3 lemma is about quotient.mk, which takes an instance argument and is translated into mathlib4 as Quotient.mk'.
@@ -162,7 +162,7 @@ private theorem one_def : 1 = @mk _ _ _ _ abv _ 1 :=
rfl
instance Cauchy.ring : Ring (Cauchy abv) :=
- Function.Surjective.ring mk (surjective_quotient_mk _) zero_def.symm one_def.symm
+ Function.Surjective.ring mk (surjective_quotient_mk' _) zero_def.symm one_def.symm
(fun _ _ => (mk_add _ _).symm) (fun _ _ => (mk_mul _ _).symm) (fun _ => (mk_neg _).symm)
(fun _ _ => (mk_sub _ _).symm) (fun _ _ => (mk_smul _ _).symm) (fun _ _ => (mk_smul _ _).symm)
(fun _ _ => (mk_pow _ _).symm) (fun _ => rfl) fun _ => rfl
@@ -191,7 +191,7 @@ variable {α : Type*} [LinearOrderedField α]
variable {β : Type*} [CommRing β] {abv : β → α} [IsAbsoluteValue abv]
instance Cauchy.commRing : CommRing (Cauchy abv) :=
- Function.Surjective.commRing mk (surjective_quotient_mk _) zero_def.symm one_def.symm
+ Function.Surjective.commRing mk (surjective_quotient_mk' _) zero_def.symm one_def.symm
(fun _ _ => (mk_add _ _).symm) (fun _ _ => (mk_mul _ _).symm) (fun _ => (mk_neg _).symm)
(fun _ _ => (mk_sub _ _).symm) (fun _ _ => (mk_smul _ _).symm) (fun _ _ => (mk_smul _ _).symm)
(fun _ _ => (mk_pow _ _).symm) (fun _ => rfl) fun _ => rfl
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -21,9 +21,9 @@ open CauSeq
section
-variable {α : Type _} [LinearOrderedField α]
+variable {α : Type*} [LinearOrderedField α]
-variable {β : Type _} [Ring β] (abv : β → α) [IsAbsoluteValue abv]
+variable {β : Type*} [Ring β] (abv : β → α) [IsAbsoluteValue abv]
-- TODO: rename this to `CauSeq.Completion` instead of `CauSeq.Completion.Cauchy`.
/-- The Cauchy completion of a ring with absolute value. -/
@@ -108,11 +108,11 @@ theorem mk_sub (f g : CauSeq β abv) : mk f - mk g = mk (f - g) :=
rfl
#align cau_seq.completion.mk_sub CauSeq.Completion.mk_sub
-instance {γ : Type _} [SMul γ β] [IsScalarTower γ β β] : SMul γ (Cauchy abv) :=
+instance {γ : Type*} [SMul γ β] [IsScalarTower γ β β] : SMul γ (Cauchy abv) :=
⟨fun c => (Quotient.map ((· • ·) c)) fun _ _ hf => smul_equiv_smul _ hf⟩
@[simp]
-theorem mk_smul {γ : Type _} [SMul γ β] [IsScalarTower γ β β] (c : γ) (f : CauSeq β abv) :
+theorem mk_smul {γ : Type*} [SMul γ β] [IsScalarTower γ β β] (c : γ) (f : CauSeq β abv) :
c • mk f = mk (c • f) :=
rfl
#align cau_seq.completion.mk_smul CauSeq.Completion.mk_smul
@@ -186,9 +186,9 @@ end
section
-variable {α : Type _} [LinearOrderedField α]
+variable {α : Type*} [LinearOrderedField α]
-variable {β : Type _} [CommRing β] {abv : β → α} [IsAbsoluteValue abv]
+variable {β : Type*} [CommRing β] {abv : β → α} [IsAbsoluteValue abv]
instance Cauchy.commRing : CommRing (Cauchy abv) :=
Function.Surjective.commRing mk (surjective_quotient_mk _) zero_def.symm one_def.symm
@@ -202,9 +202,9 @@ open Classical
section
-variable {α : Type _} [LinearOrderedField α]
+variable {α : Type*} [LinearOrderedField α]
-variable {β : Type _} [DivisionRing β] {abv : β → α} [IsAbsoluteValue abv]
+variable {β : Type*} [DivisionRing β] {abv : β → α} [IsAbsoluteValue abv]
instance : RatCast (Cauchy abv) :=
⟨fun q => ofRat q⟩
@@ -295,9 +295,9 @@ end
section
-variable {α : Type _} [LinearOrderedField α]
+variable {α : Type*} [LinearOrderedField α]
-variable {β : Type _} [Field β] {abv : β → α} [IsAbsoluteValue abv]
+variable {β : Type*} [Field β] {abv : β → α} [IsAbsoluteValue abv]
/-- The Cauchy completion forms a field. -/
noncomputable instance Cauchy.field : Field (Cauchy abv) :=
@@ -307,13 +307,13 @@ end
end CauSeq.Completion
-variable {α : Type _} [LinearOrderedField α]
+variable {α : Type*} [LinearOrderedField α]
namespace CauSeq
section
-variable (β : Type _) [Ring β] (abv : β → α) [IsAbsoluteValue abv]
+variable (β : Type*) [Ring β] (abv : β → α) [IsAbsoluteValue abv]
/-- A class stating that a ring with an absolute value is complete, i.e. every Cauchy
sequence has a limit. -/
@@ -327,7 +327,7 @@ end
section
-variable {β : Type _} [Ring β] {abv : β → α} [IsAbsoluteValue abv]
+variable {β : Type*} [Ring β] {abv : β → α} [IsAbsoluteValue abv]
variable [IsComplete β abv]
@@ -409,7 +409,7 @@ end
section
-variable {β : Type _} [Field β] {abv : β → α} [IsAbsoluteValue abv] [IsComplete β abv]
+variable {β : Type*} [Field β] {abv : β → α} [IsAbsoluteValue abv] [IsComplete β abv]
theorem lim_inv {f : CauSeq β abv} (hf : ¬LimZero f) : lim (inv f hf) = (lim f)⁻¹ :=
have hl : lim f ≠ 0 := by rwa [← lim_eq_zero_iff] at hf
@@ -2,14 +2,11 @@
Copyright (c) 2018 Mario Carneiro. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Mario Carneiro, Robert Y. Lewis
-
-! This file was ported from Lean 3 source module data.real.cau_seq_completion
-! leanprover-community/mathlib commit cf4c49c445991489058260d75dae0ff2b1abca28
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Data.Real.CauSeq
+#align_import data.real.cau_seq_completion from "leanprover-community/mathlib"@"cf4c49c445991489058260d75dae0ff2b1abca28"
+
/-!
# Cauchy completion
@@ -28,7 +28,7 @@ variable {α : Type _} [LinearOrderedField α]
variable {β : Type _} [Ring β] (abv : β → α) [IsAbsoluteValue abv]
--- TODO: rename this to `CauSeq.Completion` instead of `CauSeq.Completion.Caucy`.
+-- TODO: rename this to `CauSeq.Completion` instead of `CauSeq.Completion.Cauchy`.
/-- The Cauchy completion of a ring with absolute value. -/
def Cauchy :=
@Quotient (CauSeq _ abv) CauSeq.equiv
fix-comments.py
on all files.@@ -285,7 +285,7 @@ theorem ofRat_div (x y : β) : ofRat (x / y) = (ofRat x / ofRat y : Cauchy abv)
/-- Show the first 10 items of a representative of this equivalence class of cauchy sequences.
-The representative chosen is the one passed in the VM to `quot.mk`, so two cauchy sequences
+The representative chosen is the one passed in the VM to `Quot.mk`, so two cauchy sequences
converging to the same number may be printed differently.
-/
unsafe instance [Repr β] : Repr (Cauchy abv) where
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.
@@ -234,7 +234,7 @@ noncomputable instance : Inv (Cauchy abv) :=
-- porting note: simp can prove this
-- @[simp]
theorem inv_zero : (0 : (Cauchy abv))⁻¹ = 0 :=
- congr_arg mk <| by rw [dif_pos] <;> [rfl, exact zero_limZero]
+ congr_arg mk <| by rw [dif_pos] <;> [rfl; exact zero_limZero]
#align cau_seq.completion.inv_zero CauSeq.Completion.inv_zero
@[simp]
@@ -266,7 +266,7 @@ protected theorem mul_inv_cancel {x : (Cauchy abv)} : x ≠ 0 → x * x⁻¹ = 1
#align cau_seq.completion.mul_inv_cancel CauSeq.Completion.mul_inv_cancel
theorem ofRat_inv (x : β) : ofRat x⁻¹ = ((ofRat x)⁻¹ : (Cauchy abv)) :=
- congr_arg mk <| by split_ifs with h <;> [simp [const_limZero.1 h], rfl]
+ congr_arg mk <| by split_ifs with h <;> [simp [const_limZero.1 h]; rfl]
#align cau_seq.completion.of_rat_inv CauSeq.Completion.ofRat_inv
/- porting note: This takes a long time to compile.
by
s! (#3825)
This PR puts, with one exception, every single remaining by
that lies all by itself on its own line to the previous line, thus matching the current behaviour of start-port.sh
. The exception is when the by
begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599.
Essentially this is s/\n *by$/ by/g
, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated by
s".
@@ -219,8 +219,7 @@ theorem ofRat_ratCast (q : ℚ) : ofRat (↑q : β) = (q : (Cauchy abv)) :=
noncomputable instance : Inv (Cauchy abv) :=
⟨fun x =>
- (Quotient.liftOn x fun f => mk <| if h : LimZero f then 0 else inv f h) fun f g fg =>
- by
+ (Quotient.liftOn x fun f => mk <| if h : LimZero f then 0 else inv f h) fun f g fg => by
have := limZero_congr fg
by_cases hf : LimZero f
· simp [hf, this.1 hf, Setoid.refl]
These files have been primarily modified by backports and need little modification:
topology.basic
: #1826 - modified with a porting note, which can now be removeddata.real.cau_seq_completion
: #1469 - not a backport, but forgot to update the SHAorder.filter.n_ary.basic
: #1967 - this PR forgot to update the SHAring_theory.valuation.basic
: The change is a small golf that is now included in this PRCo-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Mario Carneiro, Robert Y. Lewis
! This file was ported from Lean 3 source module data.real.cau_seq_completion
-! leanprover-community/mathlib commit 40acfb6aa7516ffe6f91136691df012a64683390
+! leanprover-community/mathlib commit cf4c49c445991489058260d75dae0ff2b1abca28
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
This PR is the result of a slight variant on the following "algorithm"
_
and make all uppercase letters into lowercase_
and make all uppercase letters into lowercase(original_lean3_name, OriginalLean4Name)
#align
statement just before the next empty line#align
statement to have been inserted too early)@@ -179,6 +179,7 @@ def ofRatRingHom : β →+* (Cauchy abv) where
map_add' := ofRat_add
map_mul' := ofRat_mul
#align cau_seq.completion.of_rat_ring_hom CauSeq.Completion.ofRatRingHom
+#align cau_seq.completion.of_rat_ring_hom_apply CauSeq.Completion.ofRatRingHom_apply
theorem ofRat_sub (x y : β) : ofRat (x - y) = (ofRat x - ofRat y : Cauchy abv) :=
congr_arg mk (const_sub _ _)
Implements a linter for lean 3 declarations containing capital letters (as suggested on Zulip).
Co-authored-by: Mario Carneiro <di.gama@gmail.com>
@@ -32,6 +32,7 @@ variable {β : Type _} [Ring β] (abv : β → α) [IsAbsoluteValue abv]
/-- The Cauchy completion of a ring with absolute value. -/
def Cauchy :=
@Quotient (CauSeq _ abv) CauSeq.equiv
+set_option linter.uppercaseLean3 false in
#align cau_seq.completion.Cauchy CauSeq.Completion.Cauchy
variable {abv}
@@ -74,7 +74,8 @@ theorem ofRat_one : (ofRat 1 : Cauchy abv) = 1 :=
@[simp]
theorem mk_eq_zero {f : CauSeq _ abv} : mk f = 0 ↔ LimZero f := by
- have : mk f = 0 ↔ LimZero (f - 0) := Quotient.eq; rwa [sub_zero] at this
+ have : mk f = 0 ↔ LimZero (f - 0) := Quotient.eq
+ rwa [sub_zero] at this
#align cau_seq.completion.mk_eq_zero CauSeq.Completion.mk_eq_zero
instance : Add (Cauchy abv) :=
@@ -251,13 +252,15 @@ theorem zero_ne_one : (0 : (Cauchy abv)) ≠ 1 := fun h => cau_seq_zero_ne_one <
protected theorem inv_mul_cancel {x : (Cauchy abv)} : x ≠ 0 → x⁻¹ * x = 1 :=
Quotient.inductionOn x fun f hf => by
- simp at hf; simp [hf]
+ simp only [mk_eq_mk, ne_eq, mk_eq_zero] at hf
+ simp [hf]
exact Quotient.sound (CauSeq.inv_mul_cancel hf)
#align cau_seq.completion.inv_mul_cancel CauSeq.Completion.inv_mul_cancel
protected theorem mul_inv_cancel {x : (Cauchy abv)} : x ≠ 0 → x * x⁻¹ = 1 :=
Quotient.inductionOn x fun f hf => by
- simp at hf; simp [hf]
+ simp only [mk_eq_mk, ne_eq, mk_eq_zero] at hf
+ simp [hf]
exact Quotient.sound (CauSeq.mul_inv_cancel hf)
#align cau_seq.completion.mul_inv_cancel CauSeq.Completion.mul_inv_cancel
@@ -376,10 +379,10 @@ theorem lim_mul_lim (f g : CauSeq β abv) : lim f * lim g = lim (f * g) :=
apply Subtype.ext
rw [coe_add]
simp [sub_mul, mul_sub]
- rw [h];
- exact
- add_limZero (mul_limZero_left _ (Setoid.symm (equiv_lim _)))
- (mul_limZero_right _ (Setoid.symm (equiv_lim _)))
+ rw [h]
+ exact
+ add_limZero (mul_limZero_left _ (Setoid.symm (equiv_lim _)))
+ (mul_limZero_right _ (Setoid.symm (equiv_lim _)))
#align cau_seq.lim_mul_lim CauSeq.lim_mul_lim
theorem lim_mul (f : CauSeq β abv) (x : β) : lim f * x = lim (f * const abv x) := by
@@ -389,8 +392,8 @@ theorem lim_mul (f : CauSeq β abv) (x : β) : lim f * x = lim (f * const abv x)
theorem lim_neg (f : CauSeq β abv) : lim (-f) = -lim f :=
lim_eq_of_equiv_const
(show LimZero (-f - const abv (-lim f)) by
- rw [const_neg, sub_neg_eq_add, add_comm, ← sub_eq_add_neg];
- exact Setoid.symm (equiv_lim f))
+ rw [const_neg, sub_neg_eq_add, add_comm, ← sub_eq_add_neg]
+ exact Setoid.symm (equiv_lim f))
#align cau_seq.lim_neg CauSeq.lim_neg
theorem lim_eq_zero_iff (f : CauSeq β abv) : lim f = 0 ↔ LimZero f :=
@@ -426,15 +429,13 @@ theorem lim_inv {f : CauSeq β abv} (hf : ¬LimZero f) : lim (inv f hf) = (lim f
LimZero
(inv f hf - const abv (lim f)⁻¹ -
(const abv (lim f) - f) * (inv f hf * const abv (lim f)⁻¹)) := by
- rw [sub_mul, ← sub_add, sub_sub, sub_add_eq_sub_sub, sub_right_comm, sub_add];
- exact
- show
- LimZero
- (inv f hf - const abv (lim f) * (inv f hf * const abv (lim f)⁻¹) -
- (const abv (lim f)⁻¹ - f * (inv f hf * const abv (lim f)⁻¹)))
- from
- sub_limZero (by rw [← mul_assoc, mul_right_comm, const_inv hl]; exact h₁ _ _ _)
- (by rw [← mul_assoc]; exact h₁ _ _ _)
+ rw [sub_mul, ← sub_add, sub_sub, sub_add_eq_sub_sub, sub_right_comm, sub_add]
+ show LimZero
+ (inv f hf - const abv (lim f) * (inv f hf * const abv (lim f)⁻¹) -
+ (const abv (lim f)⁻¹ - f * (inv f hf * const abv (lim f)⁻¹)))
+ exact sub_limZero
+ (by rw [← mul_assoc, mul_right_comm, const_inv hl]; exact h₁ _ _ _)
+ (by rw [← mul_assoc]; exact h₁ _ _ _)
(limZero_congr h₂).mpr <| mul_limZero_left _ (Setoid.symm (equiv_lim f))
#align cau_seq.lim_inv CauSeq.lim_inv
@@ -279,17 +279,16 @@ theorem ofRat_div (x y : β) : ofRat (x / y) = (ofRat x / ofRat y : Cauchy abv)
simp only [div_eq_mul_inv, ofRat_inv, ofRat_mul]
#align cau_seq.completion.of_rat_div CauSeq.Completion.ofRat_div
--- Porting note: removed
--- /-- Show the first 10 items of a representative of this equivalence class of cauchy sequences.
-
--- The representative chosen is the one passed in the VM to `quot.mk`, so two cauchy sequences
--- converging to the same number may be printed differently.
--- -/
--- unsafe instance [Repr β] : Repr (Cauchy abv) where
--- reprPrec r _ :=
--- let N := 10
--- let seq := r.unquot
--- "(sorry /- " ++ Std.Format.joinSep ((List.range N).map <| repr ∘ seq) ", " ++ ", ... -/)"
+/-- Show the first 10 items of a representative of this equivalence class of cauchy sequences.
+
+The representative chosen is the one passed in the VM to `quot.mk`, so two cauchy sequences
+converging to the same number may be printed differently.
+-/
+unsafe instance [Repr β] : Repr (Cauchy abv) where
+ reprPrec r _ :=
+ let N := 10
+ let seq := r.unquot
+ "(sorry /- " ++ Std.Format.joinSep ((List.range N).map <| repr ∘ seq) ", " ++ ", ... -/)"
end
This is quite painful due to parameter
use in mathlib3.
Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: ChrisHughes24 <chrishughes24@gmail.com> Co-authored-by: Heather Macbeth <25316162+hrmacbeth@users.noreply.github.com> Co-authored-by: Chris Hughes <33847686+ChrisHughes24@users.noreply.github.com>
The unported dependencies are