Documentation

Mathlib.Data.Real.CauSeqCompletion

Cauchy completion #

This file generalizes the Cauchy completion of (ℚ, abs) to the completion of a ring with absolute value.

def CauSeq.Completion.Cauchy {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] (abv : βα) [inst : IsAbsoluteValue abv] :
Type u_2

The Cauchy completion of a ring with absolute value.

Equations
def CauSeq.Completion.mk {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] :

The map from Cauchy sequences into the Cauchy completion.

Equations
  • CauSeq.Completion.mk = Quotient.mk''
@[simp]
theorem CauSeq.Completion.mk_eq_mk {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] (f : CauSeq β abv) :
theorem CauSeq.Completion.mk_eq {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] {f : CauSeq β abv} {g : CauSeq β abv} :
def CauSeq.Completion.ofRat {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] (x : β) :

The map from the original ring into the Cauchy completion.

Equations
instance CauSeq.Completion.instZeroCauchy {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] :
Equations
instance CauSeq.Completion.instOneCauchy {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] :
Equations
instance CauSeq.Completion.instInhabitedCauchy {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] :
Equations
  • CauSeq.Completion.instInhabitedCauchy = { default := 0 }
theorem CauSeq.Completion.ofRat_zero {α : Type u_2} [inst : LinearOrderedField α] {β : Type u_1} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] :
theorem CauSeq.Completion.ofRat_one {α : Type u_2} [inst : LinearOrderedField α] {β : Type u_1} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] :
@[simp]
theorem CauSeq.Completion.mk_eq_zero {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] {f : CauSeq β abv} :
instance CauSeq.Completion.instAddCauchy {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] :
Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem CauSeq.Completion.mk_add {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] (f : CauSeq β abv) (g : CauSeq β abv) :
instance CauSeq.Completion.instNegCauchy {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] :
Equations
@[simp]
theorem CauSeq.Completion.mk_neg {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] (f : CauSeq β abv) :
instance CauSeq.Completion.instMulCauchy {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] :
Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem CauSeq.Completion.mk_mul {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] (f : CauSeq β abv) (g : CauSeq β abv) :
instance CauSeq.Completion.instSubCauchy {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] :
Equations
@[simp]
theorem CauSeq.Completion.mk_sub {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] (f : CauSeq β abv) (g : CauSeq β abv) :
instance CauSeq.Completion.instSMulCauchy {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] {γ : Type u_3} [inst : SMul γ β] [inst : IsScalarTower γ β β] :
Equations
@[simp]
theorem CauSeq.Completion.mk_smul {α : Type u_3} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] {γ : Type u_1} [inst : SMul γ β] [inst : IsScalarTower γ β β] (c : γ) (f : CauSeq β abv) :
instance CauSeq.Completion.instPowCauchyNat {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] :
Equations
  • CauSeq.Completion.instPowCauchyNat = { pow := fun x n => Quotient.map (fun x => x ^ n) (_ : ∀ (x x_1 : CauSeq β abv), x x_1x ^ n x_1 ^ n) x }
@[simp]
theorem CauSeq.Completion.mk_pow {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] (n : ) (f : CauSeq β abv) :
instance CauSeq.Completion.instNatCastCauchy {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] :
Equations
instance CauSeq.Completion.instIntCastCauchy {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] :
Equations
@[simp]
theorem CauSeq.Completion.ofRat_natCast {α : Type u_2} [inst : LinearOrderedField α] {β : Type u_1} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] (n : ) :
@[simp]
theorem CauSeq.Completion.ofRat_intCast {α : Type u_2} [inst : LinearOrderedField α] {β : Type u_1} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] (z : ) :
theorem CauSeq.Completion.ofRat_add {α : Type u_2} [inst : LinearOrderedField α] {β : Type u_1} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] (x : β) (y : β) :
theorem CauSeq.Completion.ofRat_neg {α : Type u_2} [inst : LinearOrderedField α] {β : Type u_1} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] (x : β) :
theorem CauSeq.Completion.ofRat_mul {α : Type u_2} [inst : LinearOrderedField α] {β : Type u_1} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] (x : β) (y : β) :
instance CauSeq.Completion.Cauchy.ring {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] :
Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem CauSeq.Completion.ofRatRingHom_apply {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] (x : β) :
CauSeq.Completion.ofRatRingHom x = CauSeq.Completion.ofRat x
def CauSeq.Completion.ofRatRingHom {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] :

CauSeq.Completion.ofRat as a RingHom

Equations
  • One or more equations did not get rendered due to their size.
theorem CauSeq.Completion.ofRat_sub {α : Type u_2} [inst : LinearOrderedField α] {β : Type u_1} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] (x : β) (y : β) :
instance CauSeq.Completion.Cauchy.commRing {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : CommRing β] {abv : βα} [inst : IsAbsoluteValue abv] :
Equations
  • One or more equations did not get rendered due to their size.
instance CauSeq.Completion.instRatCastCauchyToRing {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : DivisionRing β] {abv : βα} [inst : IsAbsoluteValue abv] :
Equations
@[simp]
theorem CauSeq.Completion.ofRat_ratCast {α : Type u_2} [inst : LinearOrderedField α] {β : Type u_1} [inst : DivisionRing β] {abv : βα} [inst : IsAbsoluteValue abv] (q : ) :
noncomputable instance CauSeq.Completion.instInvCauchyToRing {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : DivisionRing β] {abv : βα} [inst : IsAbsoluteValue abv] :
Equations
  • One or more equations did not get rendered due to their size.
theorem CauSeq.Completion.inv_zero {α : Type u_2} [inst : LinearOrderedField α] {β : Type u_1} [inst : DivisionRing β] {abv : βα} [inst : IsAbsoluteValue abv] :
0⁻¹ = 0
@[simp]
theorem CauSeq.Completion.inv_mk {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : DivisionRing β] {abv : βα} [inst : IsAbsoluteValue abv] {f : CauSeq β abv} (hf : ¬CauSeq.LimZero f) :
theorem CauSeq.Completion.cau_seq_zero_ne_one {α : Type u_2} [inst : LinearOrderedField α] {β : Type u_1} [inst : DivisionRing β] {abv : βα} [inst : IsAbsoluteValue abv] :
¬0 1
theorem CauSeq.Completion.zero_ne_one {α : Type u_2} [inst : LinearOrderedField α] {β : Type u_1} [inst : DivisionRing β] {abv : βα} [inst : IsAbsoluteValue abv] :
0 1
theorem CauSeq.Completion.inv_mul_cancel {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : DivisionRing β] {abv : βα} [inst : IsAbsoluteValue abv] {x : CauSeq.Completion.Cauchy abv} :
x 0x⁻¹ * x = 1
theorem CauSeq.Completion.mul_inv_cancel {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : DivisionRing β] {abv : βα} [inst : IsAbsoluteValue abv] {x : CauSeq.Completion.Cauchy abv} :
x 0x * x⁻¹ = 1
theorem CauSeq.Completion.ofRat_inv {α : Type u_2} [inst : LinearOrderedField α] {β : Type u_1} [inst : DivisionRing β] {abv : βα} [inst : IsAbsoluteValue abv] (x : β) :
noncomputable instance CauSeq.Completion.Cauchy.divisionRing {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : DivisionRing β] {abv : βα} [inst : IsAbsoluteValue abv] :

The Cauchy completion forms a division ring.

Equations
theorem CauSeq.Completion.ofRat_div {α : Type u_2} [inst : LinearOrderedField α] {β : Type u_1} [inst : DivisionRing β] {abv : βα} [inst : IsAbsoluteValue abv] (x : β) (y : β) :
unsafe instance CauSeq.Completion.instReprCauchyToRing {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : DivisionRing β] {abv : βα} [inst : IsAbsoluteValue abv] [inst : Repr β] :

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.

Equations
  • One or more equations did not get rendered due to their size.
noncomputable instance CauSeq.Completion.Cauchy.field {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Field β] {abv : βα} [inst : IsAbsoluteValue abv] :

The Cauchy completion forms a field.

Equations
  • One or more equations did not get rendered due to their size.
class CauSeq.IsComplete {α : Type u_1} [inst : LinearOrderedField α] (β : Type u_2) [inst : Ring β] (abv : βα) [inst : IsAbsoluteValue abv] :

A class stating that a ring with an absolute value is complete, i.e. every Cauchy sequence has a limit.

Instances
    theorem CauSeq.complete {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] [inst : CauSeq.IsComplete β abv] (s : CauSeq β abv) :
    b, s CauSeq.const abv b
    noncomputable def CauSeq.lim {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] [inst : CauSeq.IsComplete β abv] (s : CauSeq β abv) :
    β

    The limit of a Cauchy sequence in a complete ring. Chosen non-computably.

    Equations
    theorem CauSeq.equiv_lim {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] [inst : CauSeq.IsComplete β abv] (s : CauSeq β abv) :
    theorem CauSeq.eq_lim_of_const_equiv {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] [inst : CauSeq.IsComplete β abv] {f : CauSeq β abv} {x : β} (h : CauSeq.const abv x f) :
    theorem CauSeq.lim_eq_of_equiv_const {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] [inst : CauSeq.IsComplete β abv] {f : CauSeq β abv} {x : β} (h : f CauSeq.const abv x) :
    theorem CauSeq.lim_eq_lim_of_equiv {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] [inst : CauSeq.IsComplete β abv] {f : CauSeq β abv} {g : CauSeq β abv} (h : f g) :
    @[simp]
    theorem CauSeq.lim_const {α : Type u_2} [inst : LinearOrderedField α] {β : Type u_1} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] [inst : CauSeq.IsComplete β abv] (x : β) :
    theorem CauSeq.lim_add {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] [inst : CauSeq.IsComplete β abv] (f : CauSeq β abv) (g : CauSeq β abv) :
    theorem CauSeq.lim_mul_lim {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] [inst : CauSeq.IsComplete β abv] (f : CauSeq β abv) (g : CauSeq β abv) :
    theorem CauSeq.lim_mul {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] [inst : CauSeq.IsComplete β abv] (f : CauSeq β abv) (x : β) :
    theorem CauSeq.lim_neg {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] [inst : CauSeq.IsComplete β abv] (f : CauSeq β abv) :
    theorem CauSeq.lim_eq_zero_iff {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Ring β] {abv : βα} [inst : IsAbsoluteValue abv] [inst : CauSeq.IsComplete β abv] (f : CauSeq β abv) :
    theorem CauSeq.lim_inv {α : Type u_1} [inst : LinearOrderedField α] {β : Type u_2} [inst : Field β] {abv : βα} [inst : IsAbsoluteValue abv] [inst : CauSeq.IsComplete β abv] {f : CauSeq β abv} (hf : ¬CauSeq.LimZero f) :
    theorem CauSeq.lim_le {α : Type u_1} [inst : LinearOrderedField α] [inst : CauSeq.IsComplete α abs] {f : CauSeq α abs} {x : α} (h : f CauSeq.const abs x) :
    theorem CauSeq.le_lim {α : Type u_1} [inst : LinearOrderedField α] [inst : CauSeq.IsComplete α abs] {f : CauSeq α abs} {x : α} (h : CauSeq.const abs x f) :
    theorem CauSeq.lt_lim {α : Type u_1} [inst : LinearOrderedField α] [inst : CauSeq.IsComplete α abs] {f : CauSeq α abs} {x : α} (h : CauSeq.const abs x < f) :
    theorem CauSeq.lim_lt {α : Type u_1} [inst : LinearOrderedField α] [inst : CauSeq.IsComplete α abs] {f : CauSeq α abs} {x : α} (h : f < CauSeq.const abs x) :