Analysis I, Section 8.3: Uncountable sets
I have attempted to make the translation as faithful a paraphrasing as possible of the original text. When there is a choice between a more idiomatic Lean solution and a more faithful translation, I have generally chosen the latter. In particular, there will be places where the Lean code could be "golfed" to be more elegant and idiomatic, but I have consciously avoided doing so.
Main constructions and results of this section:
-
Uncountable sets.
Some non-trivial API is provided beyond what is given in the textbook in order connect these notions with existing summation notions.
namespace Chapter8Theorem 8.3.1
theorem EqualCard.power_set_false (X:Type) : ¬ EqualCard X (Set X) := X:Type⊢ ¬EqualCard X (Set X)
-- This proof is written to follow the structure of the original text.
X:Typethis:EqualCard X (Set X)⊢ False; X:Typef:X → Set Xhf:Function.Bijective f⊢ False
X:Typef:X → Set Xhf:Function.Bijective fA:Set _fvar.7 := {x | x ∉ @_fvar.22 x}⊢ False; X:Typef:X → Set Xhf:Function.Bijective fA:Set _fvar.7 := {x | x ∉ @_fvar.22 x}x:Xhx:f x = A⊢ False
X:Typef:X → Set Xhf:Function.Bijective fA:Set _fvar.7 := {x | x ∉ @_fvar.22 x}x:Xhx:f x = Ah:x ∈ A⊢ FalseX:Typef:X → Set Xhf:Function.Bijective fA:Set _fvar.7 := {x | x ∉ @_fvar.22 x}x:Xhx:f x = Ah:x ∉ A⊢ False X:Typef:X → Set Xhf:Function.Bijective fA:Set _fvar.7 := {x | x ∉ @_fvar.22 x}x:Xhx:f x = Ah:x ∈ A⊢ FalseX:Typef:X → Set Xhf:Function.Bijective fA:Set _fvar.7 := {x | x ∉ @_fvar.22 x}x:Xhx:f x = Ah:x ∉ A⊢ False X:Typef:X → Set Xhf:Function.Bijective fA:Set _fvar.7 := {x | x ∉ @_fvar.22 x}x:Xhx:f x = Ah:x ∉ Ah':?_mvar.204 := _fvar.190⊢ False
X:Typef:X → Set Xhf:Function.Bijective fA:Set _fvar.7 := {x | x ∉ @_fvar.22 x}x:Xhx:f x = Ah:x ∈ Ah':?_mvar.197 := _fvar.183⊢ False X:Typef:X → Set Xhf:Function.Bijective fA:Set _fvar.7 := {x | x ∉ @_fvar.22 x}x:Xhx:f x = Ah:x ∈ Ah':_fvar.123 ∉ @_fvar.22 _fvar.123 := _fvar.183⊢ False; All goals completed! 🐙
X:Typef:X → Set Xhf:Function.Bijective fA:Set _fvar.7 := {x | x ∉ @_fvar.22 x}x:Xhx:f x = Ah:x ∉ Ah':x ∉ f x⊢ False
have : x ∈ A := X:Type⊢ ¬EqualCard X (Set X) All goals completed! 🐙
All goals completed! 🐙theorem Uncountable.iff (X:Type) : Uncountable X ↔ ¬ AtMostCountable X := X:Type⊢ Uncountable X ↔ ¬AtMostCountable X
All goals completed! 🐙theorem Uncountable.equiv {X Y: Type} (hXY : EqualCard X Y) :
Uncountable X ↔ Uncountable Y := X:TypeY:TypehXY:EqualCard X Y⊢ Uncountable X ↔ Uncountable Y
All goals completed! 🐙Corollary 8.3.3
theorem Uncountable.power_set_nat : Uncountable (Set ℕ) := ⊢ Uncountable (Set ℕ)
-- This proof is written to follow the structure of the original text.
⊢ ¬AtMostCountable (Set ℕ)
⊢ ¬(CountablyInfinite (Set ℕ) ∨ Finite (Set ℕ))
have : ¬ CountablyInfinite (Set ℕ) := ⊢ Uncountable (Set ℕ)
this:?_mvar.3902 := Chapter8.EqualCard.power_set_false ℕ⊢ ¬CountablyInfinite (Set ℕ)
this:CountablyInfinite (Set ℕ)⊢ EqualCard ℕ (Set ℕ); All goals completed! 🐙
have : ¬ Finite (Set ℕ) := ⊢ Uncountable (Set ℕ)
this✝:¬Chapter8.CountablyInfinite (Set ℕ) := ?_mvar.3896this:Finite (Set ℕ)⊢ False
have : Finite ((fun x:ℕ ↦ ({x}:Set ℕ)) '' .univ) := Finite.Set.subset (s := .univ) (this✝:¬Chapter8.CountablyInfinite (Set ℕ) :=
have this := Chapter8.EqualCard.power_set_false ℕ;
Mathlib.Tactic.Contrapose.mtr
(Eq.mpr
(id
(implies_congr (Mathlib.Tactic.PushNeg.not_not_eq (Chapter8.CountablyInfinite (Set ℕ)))
(Mathlib.Tactic.PushNeg.not_not_eq (Chapter8.EqualCard ℕ (Set ℕ)))))
fun this => Chapter8.EqualCard.symm this)
thisthis:Finite (Set ℕ)⊢ (fun x => {x}) '' Set.univ ⊆ Set.univ All goals completed! 🐙)
replace : Finite ℕ := ⊢ Uncountable (Set ℕ)
this✝¹:¬Chapter8.CountablyInfinite (Set ℕ) := ?_mvar.3896this✝:Finite (Set ℕ)this:Finite ↑((fun x => {x}) '' Set.univ) := Finite.Set.subset Set.univ ?_mvar.4390⊢ Set.univ.Finite
this✝¹:¬Chapter8.CountablyInfinite (Set ℕ) := ?_mvar.3896this✝:Finite (Set ℕ)this:Finite ↑((fun x => {x}) '' Set.univ) := Finite.Set.subset Set.univ ?_mvar.4390⊢ Finite ↑Set.univ
this✝¹:¬Chapter8.CountablyInfinite (Set ℕ) := ?_mvar.3896this✝:Finite (Set ℕ)this:Finite ↑((fun x => {x}) '' Set.univ) := Finite.Set.subset Set.univ ?_mvar.4390⊢ Set.InjOn (fun x => {x}) Set.univ
this✝¹:¬Chapter8.CountablyInfinite (Set ℕ) := ?_mvar.3896this✝:Finite (Set ℕ)this:Finite ↑((fun x => {x}) '' Set.univ) := Finite.Set.subset Set.univ ?_mvar.4390x₁✝:ℕa✝²:x₁✝ ∈ Set.univx₂✝:ℕa✝¹:x₂✝ ∈ Set.univa✝:(fun x => {x}) x₁✝ = (fun x => {x}) x₂✝⊢ x₁✝ = x₂✝; All goals completed! 🐙
have hinf : ¬ Finite ℕ := ⊢ Uncountable (Set ℕ) this✝¹:¬Chapter8.CountablyInfinite (Set ℕ) := ?_mvar.3896this✝:Finite (Set ℕ)this:Finite ℕ := ?_mvar.5522⊢ Infinite ℕ; All goals completed! 🐙
All goals completed! 🐙
All goals completed! 🐙open Real in
/-- Corollary 8.3.4 -/
theorem Uncountable.real : Uncountable ℝ := ⊢ Uncountable ℝ
-- This proof is written to follow the structure of the original text.
a:ℕ → ℝ := fun n => 10 ^ (-↑n)⊢ Uncountable ℝ
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑n⊢ Uncountable ℝ
have hsummable (A: Set ℕ) : Summable (fun n:A ↦ a n) := ⊢ Uncountable ℝ
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nA:Set ℕ⊢ Summable a
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nA:Set ℕn:ℕ⊢ a n = (1 / 10) ^ na:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nA:Set ℕ⊢ 0 ≤ 1 / 10a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nA:Set ℕ⊢ 1 / 10 < 1 a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nA:Set ℕn:ℕ⊢ a n = (1 / 10) ^ na:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nA:Set ℕ⊢ 0 ≤ 1 / 10a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nA:Set ℕ⊢ 1 / 10 < 1 try All goals completed! 🐙
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nA:Set ℕn:ℕ⊢ 10 ^ (-↑n) = (1 / 10) ^ n
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nA:Set ℕn:ℕ⊢ (10 ^ ↑n)⁻¹ = (10 ^ n)⁻¹a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nA:Set ℕn:ℕ⊢ 0 ≤ 10; a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nA:Set ℕn:ℕ⊢ 0 ≤ 10; All goals completed! 🐙
have h_decomp {A B C: Set ℕ} (hC : C = A ∪ B) (hAB: ∀ n, n ∉ A ∩ B) : ∑' n:C, a n = ∑' n:A, a n + ∑' n:B, a n := ⊢ Uncountable ℝ
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 AA:Set ℕB:Set ℕC:Set ℕhC:C = A ∪ BhAB:∀ (n : ℕ), n ∉ A ∩ B⊢ ∑' (n : ↑C), a ↑n = ∑' (x : ↑(A ∪ B)), a ↑xa:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 AA:Set ℕB:Set ℕC:Set ℕhC:C = A ∪ BhAB:∀ (n : ℕ), n ∉ A ∩ B⊢ T2Space ℝa:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 AA:Set ℕB:Set ℕC:Set ℕhC:C = A ∪ BhAB:∀ (n : ℕ), n ∉ A ∩ B⊢ ContinuousAdd ℝa:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 AA:Set ℕB:Set ℕC:Set ℕhC:C = A ∪ BhAB:∀ (n : ℕ), n ∉ A ∩ B⊢ Disjoint A Ba:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 AA:Set ℕB:Set ℕC:Set ℕhC:C = A ∪ BhAB:∀ (n : ℕ), n ∉ A ∩ B⊢ Summable (a ∘ Subtype.val)a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 AA:Set ℕB:Set ℕC:Set ℕhC:C = A ∪ BhAB:∀ (n : ℕ), n ∉ A ∩ B⊢ Summable (a ∘ Subtype.val) a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 AA:Set ℕB:Set ℕC:Set ℕhC:C = A ∪ BhAB:∀ (n : ℕ), n ∉ A ∩ B⊢ ∑' (n : ↑C), a ↑n = ∑' (x : ↑(A ∪ B)), a ↑xa:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 AA:Set ℕB:Set ℕC:Set ℕhC:C = A ∪ BhAB:∀ (n : ℕ), n ∉ A ∩ B⊢ T2Space ℝa:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 AA:Set ℕB:Set ℕC:Set ℕhC:C = A ∪ BhAB:∀ (n : ℕ), n ∉ A ∩ B⊢ ContinuousAdd ℝa:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 AA:Set ℕB:Set ℕC:Set ℕhC:C = A ∪ BhAB:∀ (n : ℕ), n ∉ A ∩ B⊢ Disjoint A Ba:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 AA:Set ℕB:Set ℕC:Set ℕhC:C = A ∪ BhAB:∀ (n : ℕ), n ∉ A ∩ B⊢ Summable (a ∘ Subtype.val)a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 AA:Set ℕB:Set ℕC:Set ℕhC:C = A ∪ BhAB:∀ (n : ℕ), n ∉ A ∩ B⊢ Summable (a ∘ Subtype.val) first | a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 AA:Set ℕB:Set ℕC:Set ℕhC:C = A ∪ BhAB:∀ (n : ℕ), n ∉ A ∩ B⊢ Summable (a ∘ Subtype.val) | try All goals completed! 🐙
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 AA:Set ℕB:Set ℕC:Set ℕhC:C = A ∪ BhAB:∀ (n : ℕ), n ∉ A ∩ B⊢ ∑' (n : ↑C), a ↑n = ∑' (x : ↑(A ∪ B)), a ↑x All goals completed! 🐙
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 AA:Set ℕB:Set ℕC:Set ℕhC:C = A ∪ BhAB:∀ (n : ℕ), n ∉ A ∩ B⊢ A ∩ B = ∅; All goals completed! 🐙
have h_nonneg (A:Set ℕ) : ∑' n:A, a n ≥ 0 := ⊢ Uncountable ℝ a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 Ah_decomp:∀ {A : Set ℕ} {B : Set ℕ} {C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A} {B} {C} hC hAB => @?_mvar.13645 A B C hC hABA:Set ℕ⊢ 0 ≤ ∑' (n : ↑A), (10 ^ ↑n)⁻¹; All goals completed! 🐙
have h_congr {A B: Set ℕ} (hAB: A = B) : ∑' n:A, a n = ∑' n:B, a n := ⊢ Uncountable ℝ All goals completed! 🐙
have : Function.Injective f := ⊢ Uncountable ℝ
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 Ah_decomp:∀ {A : Set ℕ} {B : Set ℕ} {C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A} {B} {C} hC hAB => @?_mvar.13645 A B C hC hABh_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 := fun A => @?_mvar.18320 Ah_congr:∀ {A : Set ℕ} {B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n := fun {A} {B} hAB => @?_mvar.32425 A B hABA:Set ℕB:Set ℕhAB:f A = f B⊢ A = B; a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 Ah_decomp:∀ {A : Set ℕ} {B : Set ℕ} {C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A} {B} {C} hC hAB => @?_mvar.13645 A B C hC hABh_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 := fun A => @?_mvar.18320 Ah_congr:∀ {A : Set ℕ} {B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n := fun {A} {B} hAB => @?_mvar.32425 A B hABA:Set ℕB:Set ℕhAB:f A = f Bthis:A ≠ B⊢ False
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 Ah_decomp:∀ {A : Set ℕ} {B : Set ℕ} {C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A} {B} {C} hC hAB => @?_mvar.13645 A B C hC hABh_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 := fun A => @?_mvar.18320 Ah_congr:∀ {A : Set ℕ} {B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n := fun {A} {B} hAB => @?_mvar.32425 A B hABA:Set ℕB:Set ℕhAB:f A = f Bthis:(symmDiff A B).Nonempty⊢ False
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 Ah_decomp:∀ {A : Set ℕ} {B : Set ℕ} {C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A} {B} {C} hC hAB => @?_mvar.13645 A B C hC hABh_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 := fun A => @?_mvar.18320 Ah_congr:∀ {A : Set ℕ} {B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n := fun {A} {B} hAB => @?_mvar.32425 A B hABA:Set ℕB:Set ℕhAB:f A = f Bthis:Nat.min (symmDiff A B) ∈ symmDiff A B ∧ ∀ n ∈ symmDiff A B, Nat.min (symmDiff A B) ≤ n⊢ False
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 Ah_decomp:∀ {A : Set ℕ} {B : Set ℕ} {C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A} {B} {C} hC hAB => @?_mvar.13645 A B C hC hABh_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 := fun A => @?_mvar.18320 Ah_congr:∀ {A : Set ℕ} {B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n := fun {A} {B} hAB => @?_mvar.32425 A B hABA:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.32459 _fvar.32462)this:n₀ ∈ symmDiff A B ∧ ∀ n ∈ symmDiff A B, n₀ ≤ n⊢ False
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 Ah_decomp:∀ {A : Set ℕ} {B : Set ℕ} {C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A} {B} {C} hC hAB => @?_mvar.13645 A B C hC hABh_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 := fun A => @?_mvar.18320 Ah_congr:∀ {A : Set ℕ} {B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n := fun {A} {B} hAB => @?_mvar.32425 A B hABA:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.32459 _fvar.32462)this:(n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ A) ∧ ∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ n⊢ False; a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 Ah_decomp:∀ {A : Set ℕ} {B : Set ℕ} {C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A} {B} {C} hC hAB => @?_mvar.13645 A B C hC hABh_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 := fun A => @?_mvar.18320 Ah_congr:∀ {A : Set ℕ} {B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n := fun {A} {B} hAB => @?_mvar.32425 A B hABA:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.32459 _fvar.32462)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah2:∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ n⊢ False
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 Ah_decomp:∀ {A : Set ℕ} {B : Set ℕ} {C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A} {B} {C} hC hAB => @?_mvar.13645 A B C hC hABh_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 := fun A => @?_mvar.18320 Ah_congr:∀ {A : Set ℕ} {B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n := fun {A} {B} hAB => @?_mvar.32425 A B hABA:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.32459 _fvar.32462)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah2:∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ nthis:∀ ⦃A B : Set ℕ⦄,
f A = f B →
let n₀ := Nat.min (symmDiff A B);
n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ A → (∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ n) → n₀ ∈ A ∧ n₀ ∉ B → Falseh:¬(n₀ ∈ A ∧ n₀ ∉ B)⊢ Falsea:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 Ah_decomp:∀ {A : Set ℕ} {B : Set ℕ} {C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A} {B} {C} hC hAB => @?_mvar.13645 A B C hC hABh_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 := fun A => @?_mvar.18320 Ah_congr:∀ {A : Set ℕ} {B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n := fun {A} {B} hAB => @?_mvar.32425 A B hABA:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah2:∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ nh:n₀ ∈ A ∧ n₀ ∉ B⊢ False
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 Ah_decomp:∀ {A : Set ℕ} {B : Set ℕ} {C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A} {B} {C} hC hAB => @?_mvar.13645 A B C hC hABh_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 := fun A => @?_mvar.18320 Ah_congr:∀ {A : Set ℕ} {B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n := fun {A} {B} hAB => @?_mvar.32425 A B hABA:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.32459 _fvar.32462)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah2:∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ nthis:∀ ⦃A B : Set ℕ⦄,
f A = f B →
let n₀ := Nat.min (symmDiff A B);
n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ A → (∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ n) → n₀ ∈ A ∧ n₀ ∉ B → Falseh:¬(n₀ ∈ A ∧ n₀ ∉ B)⊢ False a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 Ah_decomp:∀ {A : Set ℕ} {B : Set ℕ} {C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A} {B} {C} hC hAB => @?_mvar.13645 A B C hC hABh_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 := fun A => @?_mvar.18320 Ah_congr:∀ {A : Set ℕ} {B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n := fun {A} {B} hAB => @?_mvar.32425 A B hABA:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.32459 _fvar.32462)h2:∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ nthis:∀ ⦃A B : Set ℕ⦄,
f A = f B →
let n₀ := Nat.min (symmDiff A B);
n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ A → (∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ n) → n₀ ∈ A ∧ n₀ ∉ B → Falseh:¬(n₀ ∈ A ∧ n₀ ∉ B)h1:n₀ ∈ B ∧ n₀ ∉ A⊢ False
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 Ah_decomp:∀ {A : Set ℕ} {B : Set ℕ} {C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A} {B} {C} hC hAB => @?_mvar.13645 A B C hC hABh_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 := fun A => @?_mvar.18320 Ah_congr:∀ {A : Set ℕ} {B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n := fun {A} {B} hAB => @?_mvar.32425 A B hABA:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.32459 _fvar.32462)h2:∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ nthis:∀ ⦃A B : Set ℕ⦄,
f A = f B →
let n₀ := Nat.min (symmDiff A B);
n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ A → (∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ n) → n₀ ∈ A ∧ n₀ ∉ B → Falseh:¬(n₀ ∈ A ∧ n₀ ∉ B)h1:n₀ ∈ B ∧ n₀ ∉ A⊢ Nat.min (symmDiff B A) ∈ B ∧ Nat.min (symmDiff B A) ∉ A ∨ Nat.min (symmDiff B A) ∈ A ∧ Nat.min (symmDiff B A) ∉ Ba:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 Ah_decomp:∀ {A : Set ℕ} {B : Set ℕ} {C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A} {B} {C} hC hAB => @?_mvar.13645 A B C hC hABh_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 := fun A => @?_mvar.18320 Ah_congr:∀ {A : Set ℕ} {B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n := fun {A} {B} hAB => @?_mvar.32425 A B hABA:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.32459 _fvar.32462)h2:∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ nthis:∀ ⦃A B : Set ℕ⦄,
f A = f B →
let n₀ := Nat.min (symmDiff A B);
n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ A → (∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ n) → n₀ ∈ A ∧ n₀ ∉ B → Falseh:¬(n₀ ∈ A ∧ n₀ ∉ B)h1:n₀ ∈ B ∧ n₀ ∉ A⊢ ∀ (n : ℕ), n ∈ B ∧ n ∉ A ∨ n ∈ A ∧ n ∉ B → Nat.min (symmDiff B A) ≤ na:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 Ah_decomp:∀ {A : Set ℕ} {B : Set ℕ} {C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A} {B} {C} hC hAB => @?_mvar.13645 A B C hC hABh_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 := fun A => @?_mvar.18320 Ah_congr:∀ {A : Set ℕ} {B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n := fun {A} {B} hAB => @?_mvar.32425 A B hABA:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.32459 _fvar.32462)h2:∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ nthis:∀ ⦃A B : Set ℕ⦄,
f A = f B →
let n₀ := Nat.min (symmDiff A B);
n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ A → (∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ n) → n₀ ∈ A ∧ n₀ ∉ B → Falseh:¬(n₀ ∈ A ∧ n₀ ∉ B)h1:n₀ ∈ B ∧ n₀ ∉ A⊢ Nat.min (symmDiff B A) ∈ B ∧ Nat.min (symmDiff B A) ∉ A a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 Ah_decomp:∀ {A : Set ℕ} {B : Set ℕ} {C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A} {B} {C} hC hAB => @?_mvar.13645 A B C hC hABh_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 := fun A => @?_mvar.18320 Ah_congr:∀ {A : Set ℕ} {B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n := fun {A} {B} hAB => @?_mvar.32425 A B hABA:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.32459 _fvar.32462)h2:∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ nthis:∀ ⦃A B : Set ℕ⦄,
f A = f B →
let n₀ := Nat.min (symmDiff A B);
n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ A → (∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ n) → n₀ ∈ A ∧ n₀ ∉ B → Falseh:¬(n₀ ∈ A ∧ n₀ ∉ B)h1:n₀ ∈ B ∧ n₀ ∉ A⊢ Nat.min (symmDiff B A) ∈ B ∧ Nat.min (symmDiff B A) ∉ A ∨ Nat.min (symmDiff B A) ∈ A ∧ Nat.min (symmDiff B A) ∉ Ba:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 Ah_decomp:∀ {A : Set ℕ} {B : Set ℕ} {C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A} {B} {C} hC hAB => @?_mvar.13645 A B C hC hABh_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 := fun A => @?_mvar.18320 Ah_congr:∀ {A : Set ℕ} {B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n := fun {A} {B} hAB => @?_mvar.32425 A B hABA:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.32459 _fvar.32462)h2:∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ nthis:∀ ⦃A B : Set ℕ⦄,
f A = f B →
let n₀ := Nat.min (symmDiff A B);
n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ A → (∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ n) → n₀ ∈ A ∧ n₀ ∉ B → Falseh:¬(n₀ ∈ A ∧ n₀ ∉ B)h1:n₀ ∈ B ∧ n₀ ∉ A⊢ ∀ (n : ℕ), n ∈ B ∧ n ∉ A ∨ n ∈ A ∧ n ∉ B → Nat.min (symmDiff B A) ≤ na:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 Ah_decomp:∀ {A : Set ℕ} {B : Set ℕ} {C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A} {B} {C} hC hAB => @?_mvar.13645 A B C hC hABh_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 := fun A => @?_mvar.18320 Ah_congr:∀ {A : Set ℕ} {B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n := fun {A} {B} hAB => @?_mvar.32425 A B hABA:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.32459 _fvar.32462)h2:∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ nthis:∀ ⦃A B : Set ℕ⦄,
f A = f B →
let n₀ := Nat.min (symmDiff A B);
n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ A → (∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ n) → n₀ ∈ A ∧ n₀ ∉ B → Falseh:¬(n₀ ∈ A ∧ n₀ ∉ B)h1:n₀ ∈ B ∧ n₀ ∉ A⊢ Nat.min (symmDiff B A) ∈ B ∧ Nat.min (symmDiff B A) ∉ A a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 Ah_decomp:∀ {A : Set ℕ} {B : Set ℕ} {C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A} {B} {C} hC hAB => @?_mvar.13645 A B C hC hABh_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 := fun A => @?_mvar.18320 Ah_congr:∀ {A : Set ℕ} {B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n := fun {A} {B} hAB => @?_mvar.32425 A B hABA:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.32459 _fvar.32462)h2:∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ nthis:∀ ⦃A B : Set ℕ⦄,
f A = f B →
let n₀ := Nat.min (symmDiff A B);
n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ A → (∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ n) → n₀ ∈ A ∧ n₀ ∉ B → Falseh:¬(n₀ ∈ A ∧ n₀ ∉ B)h1:n₀ ∈ B ∧ n₀ ∉ A⊢ Nat.min (symmDiff A B) ∈ B ∧ Nat.min (symmDiff A B) ∉ A a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 Ah_decomp:∀ {A : Set ℕ} {B : Set ℕ} {C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A} {B} {C} hC hAB => @?_mvar.13645 A B C hC hABh_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 := fun A => @?_mvar.18320 Ah_congr:∀ {A : Set ℕ} {B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n := fun {A} {B} hAB => @?_mvar.32425 A B hABA:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.32459 _fvar.32462)h2:∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ nthis:∀ ⦃A B : Set ℕ⦄,
f A = f B →
let n₀ := Nat.min (symmDiff A B);
n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ A → (∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ n) → n₀ ∈ A ∧ n₀ ∉ B → Falseh:¬(n₀ ∈ A ∧ n₀ ∉ B)h1:n₀ ∈ B ∧ n₀ ∉ A⊢ Nat.min (symmDiff A B) ∈ B ∧ Nat.min (symmDiff A B) ∉ A ∨ Nat.min (symmDiff A B) ∈ A ∧ Nat.min (symmDiff A B) ∉ Ba:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 Ah_decomp:∀ {A : Set ℕ} {B : Set ℕ} {C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A} {B} {C} hC hAB => @?_mvar.13645 A B C hC hABh_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 := fun A => @?_mvar.18320 Ah_congr:∀ {A : Set ℕ} {B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n := fun {A} {B} hAB => @?_mvar.32425 A B hABA:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.32459 _fvar.32462)h2:∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ nthis:∀ ⦃A B : Set ℕ⦄,
f A = f B →
let n₀ := Nat.min (symmDiff A B);
n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ A → (∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ n) → n₀ ∈ A ∧ n₀ ∉ B → Falseh:¬(n₀ ∈ A ∧ n₀ ∉ B)h1:n₀ ∈ B ∧ n₀ ∉ A⊢ ∀ (n : ℕ), n ∈ B ∧ n ∉ A ∨ n ∈ A ∧ n ∉ B → Nat.min (symmDiff A B) ≤ na:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n := fun A => @?_mvar.11064 Ah_decomp:∀ {A : Set ℕ} {B : Set ℕ} {C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A} {B} {C} hC hAB => @?_mvar.13645 A B C hC hABh_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 := fun A => @?_mvar.18320 Ah_congr:∀ {A : Set ℕ} {B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n := fun {A} {B} hAB => @?_mvar.32425 A B hABA:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.32459 _fvar.32462)h2:∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ nthis:∀ ⦃A B : Set ℕ⦄,
f A = f B →
let n₀ := Nat.min (symmDiff A B);
n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ A → (∀ (n : ℕ), n ∈ A ∧ n ∉ B ∨ n ∈ B ∧ n ∉ A → n₀ ≤ n) → n₀ ∈ A ∧ n₀ ∉ B → Falseh:¬(n₀ ∈ A ∧ n₀ ∉ B)h1:n₀ ∈ B ∧ n₀ ∉ A⊢ Nat.min (symmDiff A B) ∈ B ∧ Nat.min (symmDiff A B) ∉ A All goals completed! 🐙
replace h2 {n:ℕ} (hn: n < n₀) : n ∈ A ↔ n ∈ B := ⊢ Uncountable ℝ All goals completed! 🐙
have : (0:ℝ) > 0 := calc
_ = f A - f B := a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hn⊢ 0 = f A - f B All goals completed! 🐙
_ = ∑' n:A, a n - ∑' n:B, a n := rfl
_ = (∑' n:{n ∈ A|n ≤ n₀}, a n + ∑' n:{n ∈ A|n > n₀}, a n) -
(∑' n:{n ∈ B|n ≤ n₀}, a n + ∑' n:{n ∈ B|n > n₀}, a n) := a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hn⊢ ∑' (n : ↑A), a ↑n - ∑' (n : ↑B), a ↑n =
∑' (n : ↑{n | n ∈ A ∧ n ≤ n₀}), a ↑n + ∑' (n : ↑{n | n ∈ A ∧ n > n₀}), a ↑n -
(∑' (n : ↑{n | n ∈ B ∧ n ≤ n₀}), a ↑n + ∑' (n : ↑{n | n ∈ B ∧ n > n₀}), a ↑n)
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hn⊢ ∑' (n : ↑A), a ↑n = ∑' (n : ↑{n | n ∈ A ∧ n ≤ n₀}), a ↑n + ∑' (n : ↑{n | n ∈ A ∧ n > n₀}), a ↑na:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hn⊢ ∑' (n : ↑B), a ↑n = ∑' (n : ↑{n | n ∈ B ∧ n ≤ n₀}), a ↑n + ∑' (n : ↑{n | n ∈ B ∧ n > n₀}), a ↑n; all_goals a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hn⊢ ∑' (n : ↑B), a ↑n = ∑' (n : ↑{n | n ∈ B ∧ n ≤ n₀}), a ↑n + ∑' (n : ↑{n | n ∈ B ∧ n > n₀}), a ↑n
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hn⊢ B = {n | n ∈ B ∧ n ≤ n₀} ∪ {n | n ∈ B ∧ n > n₀}a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hn⊢ ∀ (n : ℕ), n ∉ {n | n ∈ B ∧ n ≤ n₀} ∩ {n | n ∈ B ∧ n > n₀}
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hn⊢ B = {n | n ∈ B ∧ n ≤ n₀} ∪ {n | n ∈ B ∧ n > n₀} a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hnn:ℕ⊢ n ∈ B ↔ n ∈ {n | n ∈ B ∧ n ≤ n₀} ∪ {n | n ∈ B ∧ n > n₀}; a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hnn:ℕ⊢ n ∈ B ↔ n ∈ B ∧ n ≤ n₀ ∨ n ∈ B ∧ n₀ < n; All goals completed! 🐙
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hnn:ℕhn:n ∈ {n | n ∈ B ∧ n ≤ n₀} ∩ {n | n ∈ B ∧ n > n₀}⊢ False; a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hnn:ℕhn:(n ∈ B ∧ n ≤ n₀) ∧ n ∈ B ∧ n₀ < n⊢ False; All goals completed! 🐙
}
_ = ((∑' n:{n ∈ A|n < n₀}, a n + ∑' n:{n ∈ A|n = n₀}, a n) + ∑' n:{n ∈ A|n > n₀}, a n) -
((∑' n:{n ∈ B|n < n₀}, a n + ∑' n:{n ∈ B|n = n₀}, a n) + ∑' n:{n ∈ B|n > n₀}, a n) := a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hn⊢ ∑' (n : ↑{n | n ∈ A ∧ n ≤ n₀}), a ↑n + ∑' (n : ↑{n | n ∈ A ∧ n > n₀}), a ↑n -
(∑' (n : ↑{n | n ∈ B ∧ n ≤ n₀}), a ↑n + ∑' (n : ↑{n | n ∈ B ∧ n > n₀}), a ↑n) =
∑' (n : ↑{n | n ∈ A ∧ n < n₀}), a ↑n + ∑' (n : ↑{n | n ∈ A ∧ n = n₀}), a ↑n + ∑' (n : ↑{n | n ∈ A ∧ n > n₀}), a ↑n -
(∑' (n : ↑{n | n ∈ B ∧ n < n₀}), a ↑n + ∑' (n : ↑{n | n ∈ B ∧ n = n₀}), a ↑n + ∑' (n : ↑{n | n ∈ B ∧ n > n₀}), a ↑n)
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hn⊢ ∑' (n : ↑{n | n ∈ A ∧ n ≤ n₀}), a ↑n = ∑' (n : ↑{n | n ∈ A ∧ n < n₀}), a ↑n + ∑' (n : ↑{n | n ∈ A ∧ n = n₀}), a ↑na:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hn⊢ ∑' (n : ↑{n | n ∈ B ∧ n ≤ n₀}), a ↑n = ∑' (n : ↑{n | n ∈ B ∧ n < n₀}), a ↑n + ∑' (n : ↑{n | n ∈ B ∧ n = n₀}), a ↑n; all_goals a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hn⊢ ∑' (n : ↑{n | n ∈ B ∧ n ≤ n₀}), a ↑n = ∑' (n : ↑{n | n ∈ B ∧ n < n₀}), a ↑n + ∑' (n : ↑{n | n ∈ B ∧ n = n₀}), a ↑n
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hn⊢ {n | n ∈ B ∧ n ≤ n₀} = {n | n ∈ B ∧ n < n₀} ∪ {n | n ∈ B ∧ n = n₀}a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hn⊢ ∀ (n : ℕ), n ∉ {n | n ∈ B ∧ n < n₀} ∩ {n | n ∈ B ∧ n = n₀}
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hn⊢ {n | n ∈ B ∧ n ≤ n₀} = {n | n ∈ B ∧ n < n₀} ∪ {n | n ∈ B ∧ n = n₀} a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hnn:ℕ⊢ n ∈ {n | n ∈ B ∧ n ≤ n₀} ↔ n ∈ {n | n ∈ B ∧ n < n₀} ∪ {n | n ∈ B ∧ n = n₀}; All goals completed! 🐙
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hnn:ℕhn:n ∈ {n | n ∈ B ∧ n < n₀} ∩ {n | n ∈ B ∧ n = n₀}⊢ False; a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hnn:ℕhn:(n ∈ B ∧ n < n₀) ∧ n ∈ B ∧ n = n₀⊢ False; All goals completed! 🐙
}
_ = ((∑' n:{n ∈ A|n < n₀}, a n + a n₀) + ∑' n:{n ∈ A|n > n₀}, a n) -
((∑' n:{n ∈ B|n < n₀}, a n + 0) + ∑' n:{n ∈ B|n > n₀}, a n) := a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hn⊢ ∑' (n : ↑{n | n ∈ A ∧ n < n₀}), a ↑n + ∑' (n : ↑{n | n ∈ A ∧ n = n₀}), a ↑n + ∑' (n : ↑{n | n ∈ A ∧ n > n₀}), a ↑n -
(∑' (n : ↑{n | n ∈ B ∧ n < n₀}), a ↑n + ∑' (n : ↑{n | n ∈ B ∧ n = n₀}), a ↑n +
∑' (n : ↑{n | n ∈ B ∧ n > n₀}), a ↑n) =
∑' (n : ↑{n | n ∈ A ∧ n < n₀}), a ↑n + a n₀ + ∑' (n : ↑{n | n ∈ A ∧ n > n₀}), a ↑n -
(∑' (n : ↑{n | n ∈ B ∧ n < n₀}), a ↑n + 0 + ∑' (n : ↑{n | n ∈ B ∧ n > n₀}), a ↑n)
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hn⊢ ∑' (n : ↑{n | n ∈ A ∧ n = n₀}), a ↑n = a n₀a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hn⊢ ∑' (n : ↑{n | n ∈ B ∧ n = n₀}), a ↑n = 0
a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hn⊢ ∑' (n : ↑{n | n ∈ A ∧ n = n₀}), a ↑n = a n₀ calc
_ = ∑' n:({n₀}:Set ℕ), a n := a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hn⊢ ∑' (n : ↑{n | n ∈ A ∧ n = n₀}), a ↑n = ∑' (n : ↑{n₀}), a ↑n a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hn⊢ {n | n ∈ A ∧ n = n₀} = {n₀}; a:ℕ → ℝ := fun n => 10 ^ (-↑n)f:Set ℕ → ℝ := fun A => ∑' (n : ↑A), @_fvar.10315 ↑nhsummable:∀ (A : Set ℕ), Summable fun n => @_fvar.10315 ↑n :=
fun A =>
Summable.subtype
(Eq.mpr
(eq_of_heq
((fun α β inst inst' e'_3 inst_1 f f' e'_5 =>
Eq.casesOn (motive := fun a x => inst' = a → e'_3 ≍ x → Summable f ≍ Summable f') e'_3
(fun h =>
Eq.ndrec (motive := fun inst' => ∀ (e_3 : inst = inst'), e_3 ≍ Eq.refl inst → Summable f ≍ Summable f')
(fun e_3 h =>
Eq.casesOn (motive := fun a x => f' = a → e'_5 ≍ x → Summable f ≍ Summable f') e'_5
(fun h =>
Eq.ndrec (motive := fun f' => ∀ (e_5 : f = f'), e_5 ≍ Eq.refl f → Summable f ≍ Summable f')
(fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5)
(Eq.refl f') (HEq.refl e'_5))
(Eq.symm h) e'_3)
(Eq.refl inst') (HEq.refl e'_3))
ℝ ℕ Real.instAddCommGroup.toAddCommMonoid Real.instAddCommMonoid
(Eq.refl Real.instAddCommGroup.toAddCommMonoid) PseudoMetricSpace.toUniformSpace.toTopologicalSpace
_fvar.10315 (fun n => (1 / 10) ^ n)
(funext fun n =>
Eq.mpr
(id
(Eq.trans
(congrArg (Eq (@_fvar.10315 n))
(Eq.trans
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))
(congrArg (fun x => x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(congrArg (fun x => @_fvar.10315 n = x ^ n)
(Mathlib.Meta.NormNum.IsNNRat.to_eq
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
Nat.cast_one (Eq.refl 10)))))
(id
(Eq.mpr (id (congrArg (fun _a => 10 ^ (-↑n) = _a) (one_div_pow 10 n)))
(Eq.mpr
(id
(congrArg (fun _a => _a = 1 / 10 ^ n)
(Real.rpow_neg
(Mathlib.Meta.NormNum.isNat_le_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10)) (Eq.refl true))
↑n)))
(Eq.mpr (id (congrArg (fun _a => (10 ^ ↑n)⁻¹ = _a) (one_div (10 ^ n))))
(of_eq_true
(Eq.trans (congrArg (fun x => x⁻¹ = (10 ^ n)⁻¹) (Real.rpow_natCast 10 n))
(eq_self (10 ^ n)⁻¹))))))))))
(summable_geometric_of_lt_one
(Mathlib.Meta.NormNum.isRat_le_true
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10))))
(Eq.refl true))
(Mathlib.Meta.NormNum.isNNRat_lt_true
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))))
(Eq.refl (Nat.mul 1 1)) (Eq.refl 10)))
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)) (Eq.refl true))))
Ah_decomp:∀ {A B C : Set ℕ},
C = A ∪ B →
(∀ (n : ℕ), n ∉ A ∩ B) → ∑' (n : ↑C), @_fvar.10315 ↑n = ∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B C} hC hAB =>
Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ (∑' (n : ↑C), @_fvar.10315 ↑n) (∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x)
(Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (x : ↑(A ∪ B)), @_fvar.10315 ↑x) hC))
(Eq.refl (∑' (n : ↑(A ∪ B)), @_fvar.10315 ↑n)))
(∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n)
(∑' (x : ↑A), @_fvar.10315 ↑x + ∑' (x : ↑B), @_fvar.10315 ↑x)
(Eq.refl (∑' (n : ↑A), @_fvar.10315 ↑n + ∑' (n : ↑B), @_fvar.10315 ↑n))))
(Summable.tsum_union_disjoint
(Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty)))
(Chapter8.Uncountable.real._proof_2 hAB))
(@_fvar.11065 A) (@_fvar.11065 B))h_nonneg:∀ (A : Set ℕ), ∑' (n : ↑A), @_fvar.10315 ↑n ≥ 0 :=
fun A =>
Eq.mpr
(id
(Eq.trans
(congrArg (fun x => tsum x ≥ 0)
(funext fun n =>
congrFun
(funext fun n =>
Eq.trans (Real.rpow_neg_natCast 10 n)
(Eq.trans (zpow_neg 10 ↑n) (congrArg Inv.inv (zpow_natCast 10 n))))
↑n))
ge_iff_le._simp_1))
(tsum_nonneg fun n =>
le_of_lt
(inv_pos_of_pos
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
↑n)))h_congr:∀ {A B : Set ℕ}, A = B → ∑' (n : ↑A), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n :=
fun {A B} hAB =>
Eq.mpr (id (congrArg (fun _a => ∑' (n : ↑_a), @_fvar.10315 ↑n = ∑' (n : ↑B), @_fvar.10315 ↑n) hAB))
(Eq.refl (∑' (n : ↑B), @_fvar.10315 ↑n))A:Set ℕB:Set ℕhAB:f A = f Bn₀:ℕ := Chapter8.Nat.min (symmDiff _fvar.41696 _fvar.41697)h1:n₀ ∈ A ∧ n₀ ∉ B ∨ n₀ ∈ B ∧ n₀ ∉ Ah:n₀ ∈ A ∧ n₀ ∉ Bh2:∀ {n : ℕ}, n < _fvar.41699 → (n ∈ _fvar.41696 ↔ n ∈ _fvar.41697) :=
fun {n} hn =>
Chapter8.Uncountable.real._proof_8 _fvar.13646 _fvar.18321 _fvar.32426 _fvar.41698 _fvar.41700 _fvar.41701 _fvar.41706
hnn:ℕ⊢ n ∈ {n | n ∈ A ∧ n = n₀} ↔ n ∈ {n₀}; a: