Imports
import Mathlib.Tactic import Analysis.Section_8_1 import Analysis.Section_8_2

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 Chapter8

Theorem 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 fFalse X:Typef:X Set Xhf:Function.Bijective fA:Set X := {x | x f x}False; X:Typef:X Set Xhf:Function.Bijective fA:Set X := {x | x f x}x:Xhx:f x = AFalse X:Typef:X Set Xhf:Function.Bijective fA:Set X := {x | x f x}x:Xhx:f x = Ah:x AFalseX:Typef:X Set Xhf:Function.Bijective fA:Set X := {x | x f x}x:Xhx:f x = Ah:x AFalse X:Typef:X Set Xhf:Function.Bijective fA:Set X := {x | x f x}x:Xhx:f x = Ah:x AFalseX:Typef:X Set Xhf:Function.Bijective fA:Set X := {x | x f x}x:Xhx:f x = Ah:x AFalse X:Typef:X Set Xhf:Function.Bijective fA:Set X := {x | x f x}x:Xhx:f x = Ah:x Ah':x AFalse X:Typef:X Set Xhf:Function.Bijective fA:Set X := {x | x f x}x:Xhx:f x = Ah:x Ah':x AFalse X:Typef:X Set Xhf:Function.Bijective fA:Set X := {x | x f x}x:Xhx:f x = Ah:x Ah':x f xFalse; All goals completed! 🐙 X:Typef:X Set Xhf:Function.Bijective fA:Set X := {x | x f x}x:Xhx:f x = Ah:x Ah':x f xFalse 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:TypeUncountable 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 YUncountable 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:¬EqualCard (Set )¬CountablyInfinite (Set ) this:CountablyInfinite (Set )EqualCard (Set ); All goals completed! 🐙 have : ¬ Finite (Set ) := Uncountable (Set ) this✝:¬CountablyInfinite (Set )this:Finite (Set )False have : Finite ((fun x: ({x}:Set )) '' .univ) := Finite.Set.subset (s := .univ) (this✝:¬CountablyInfinite (Set )this:Finite (Set )(fun x {x}) '' Set.univ Set.univ All goals completed! 🐙) replace : Finite := Uncountable (Set ) this✝¹:¬CountablyInfinite (Set )this✝:Finite (Set )this:Finite ((fun x {x}) '' Set.univ)Set.univ.Finite this✝¹:¬CountablyInfinite (Set )this✝:Finite (Set )this:Finite ((fun x {x}) '' Set.univ)Finite Set.univ this✝¹:¬CountablyInfinite (Set )this✝:Finite (Set )this:Finite ((fun x {x}) '' Set.univ)Set.InjOn (fun x {x}) Set.univ intro _ this✝¹:¬CountablyInfinite (Set )this✝:Finite (Set )this:Finite ((fun x {x}) '' Set.univ)x₁✝:a✝:x₁✝ Set.univ x₂ : ⦄, x₂ Set.univ (fun x {x}) x₁✝ = (fun x {x}) x₂ x₁✝ = x₂ this✝¹:¬CountablyInfinite (Set )this✝:Finite (Set )this:Finite ((fun x {x}) '' Set.univ)x₁✝:a✝:x₁✝ Set.univx₂✝:x₂✝ Set.univ (fun x {x}) x₁✝ = (fun x {x}) x₂✝ x₁✝ = x₂✝ this✝¹:¬CountablyInfinite (Set )this✝:Finite (Set )this:Finite ((fun x {x}) '' Set.univ)x₁✝:a✝¹:x₁✝ Set.univx₂✝:a✝:x₂✝ Set.univ(fun x {x}) x₁✝ = (fun x {x}) x₂✝ x₁✝ = x₂✝ this✝¹:¬CountablyInfinite (Set )this✝:Finite (Set )this:Finite ((fun x {x}) '' Set.univ)x₁✝: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✝¹:¬CountablyInfinite (Set )this✝:Finite (Set )this:Finite Infinite ; All goals completed! 🐙 All goals completed! 🐙 All goals completed! 🐙

Corollary 8.3.4

open Real intheorem 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), a nUncountable have hsummable (A: Set ) : Summable (fun n:A a n) := Uncountable a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nA:Set Summable a a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nA:Set n:a n = (1 / 10) ^ na: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nA:Set 0 1 / 10a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nA:Set 1 / 10 < 1 a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nA:Set n:a n = (1 / 10) ^ na: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nA:Set 0 1 / 10a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nA:Set 1 / 10 < 1 try All goals completed! 🐙 a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nA:Set n:10 ^ (-n) = (1 / 10) ^ n a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nA:Set n:(10 ^ n)⁻¹ = (10 ^ n)⁻¹a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nA:Set n:0 10; a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a 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), a nhsummable: (A : Set ), Summable fun n a nA: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), a nhsummable: (A : Set ), Summable fun n a nA:Set B:Set C:Set hC:C = A BhAB: (n : ), n A BT2Space a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nA:Set B:Set C:Set hC:C = A BhAB: (n : ), n A BContinuousAdd a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nA:Set B:Set C:Set hC:C = A BhAB: (n : ), n A BDisjoint A Ba: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nA:Set B:Set C:Set hC:C = A BhAB: (n : ), n A BSummable (a Subtype.val)a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nA:Set B:Set C:Set hC:C = A BhAB: (n : ), n A BSummable (a Subtype.val) a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nA: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), a nhsummable: (A : Set ), Summable fun n a nA:Set B:Set C:Set hC:C = A BhAB: (n : ), n A BT2Space a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nA:Set B:Set C:Set hC:C = A BhAB: (n : ), n A BContinuousAdd a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nA:Set B:Set C:Set hC:C = A BhAB: (n : ), n A BDisjoint A Ba: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nA:Set B:Set C:Set hC:C = A BhAB: (n : ), n A BSummable (a Subtype.val)a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nA:Set B:Set C:Set hC:C = A BhAB: (n : ), n A BSummable (a Subtype.val) first | a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nA:Set B:Set C:Set hC:C = A BhAB: (n : ), n A BSummable (a Subtype.val) | try All goals completed! 🐙 a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nA: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), a nhsummable: (A : Set ), Summable fun n a nA:Set B:Set C:Set hC:C = A BhAB: (n : ), n A BA 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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nA: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 intro A a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set f A = f B A = B a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f BA = B; a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bthis:A BFalse a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bthis:(symmDiff A B).NonemptyFalse a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA: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) nFalse a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)this:n₀ symmDiff A B n symmDiff A B, n₀ nFalse a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)this:(n₀ A n₀ B n₀ B n₀ A) (n : ), n A n B n B n A n₀ nFalse; a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah2: (n : ), n A n B n B n A n₀ nFalse a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah2: (n : ), n A n B n B n A n₀ nh:n₀ A n₀ BFalse a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)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₀ AFalse a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)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₀ ANat.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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)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₀ ANat.min (symmDiff B A) B Nat.min (symmDiff B A) A a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)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₀ ANat.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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)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₀ ANat.min (symmDiff B A) B Nat.min (symmDiff B A) A a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)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₀ ANat.min (symmDiff A B) B Nat.min (symmDiff A B) A a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)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₀ ANat.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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)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₀ ANat.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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)B = {n | n B n n₀} {n | n B n > n₀}a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A 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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)B = {n | n B n n₀} {n | n B n > n₀} a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)n:n B n {n | n B n n₀} {n | n B n > n₀}; a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)n:n B n B n n₀ n B n₀ < n; All goals completed! 🐙 intro n a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)n:hn:n {n | n B n n₀} {n | n B n > n₀}False; a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)n:hn:(n B n n₀) n B n₀ < nFalse; 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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B){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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A 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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B){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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)n:n {n | n B n n₀} n {n | n B n < n₀} {n | n B n = n₀}; All goals completed! 🐙 intro n a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)n:hn:n {n | n B n < n₀} {n | n B n = n₀}False; a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)n: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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (n : {n | n A n = n₀}), a n = a n₀a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (n : {n | n B n = n₀}), a n = 0 a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (n : {n | n A n = n₀}), a n = ∑' (n : {n₀}), a n a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B){n | n A n = n₀} = {n₀}; a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)n:n {n | n A n = n₀} n {n₀}; a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)n:n = n₀ n A; All goals completed! 🐙 _ = _ := a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (n : {n₀}), a n = a n₀ All goals completed! 🐙 a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (n : {n | n B n = n₀}), a n = 0 calc _ = ∑' n:(:Set ), a n := a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (n : {n | n B n = n₀}), a n = ∑' (n : ), a n a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B){n | n B n = n₀} = ; a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)n:n {n | n B n = n₀} n ; a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)n:n B ¬n = n₀; All goals completed! 🐙 _ = _ := a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (n : ), a n = 0 All goals completed! 🐙 _ = (∑' n:{n A|n < n₀}, a n - ∑' n:{n B|n < n₀}, a n) + a n₀ + ∑' n:{n A|n > n₀}, a n - ∑' n:{n B|n > n₀}, a n := a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (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) = ∑' (n : {n | n A n < n₀}), a n - ∑' (n : {n | n B n < n₀}), a n + a n₀ + ∑' (n : {n | n A n > n₀}), a n - ∑' (n : {n | n B n > n₀}), a n All goals completed! 🐙 _ = 0 + a n₀ + ∑' n:{n A|n > n₀}, a n - ∑' n:{n B|n > n₀}, a n := a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (n : {n | n A n < n₀}), a n - ∑' (n : {n | n B n < n₀}), a n + a n₀ + ∑' (n : {n | n A n > n₀}), a n - ∑' (n : {n | n B n > n₀}), a n = 0 + a n₀ + ∑' (n : {n | n A n > n₀}), a n - ∑' (n : {n | n B n > n₀}), a n a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (n : {n | n A n < n₀}), a n - ∑' (n : {n | n B n < n₀}), a n = 0; a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (n : {n | n A n < n₀}), a n = ∑' (n : {n | n B n < n₀}), a n; a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B){n | n A n < n₀} = {n | n B n < n₀}; All goals completed! 🐙 _ 0 + a n₀ + 0 - ∑' n:{n|n > n₀}, a n := a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)0 + a n₀ + ∑' (n : {n | n A n > n₀}), a n - ∑' (n : {n | n B n > n₀}), a n 0 + a n₀ + 0 - ∑' (n : {n | n > n₀}), a n a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)0 ∑' (n : {n | n A n > n₀}), a na: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (n : {n | n B n > n₀}), a n ∑' (n : {n | n > n₀}), a n; a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (n : {n | n B n > n₀}), a n ∑' (n : {n | n > n₀}), a n calc _ = ∑' (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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (n : {n | 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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B){n | n > n₀} = {n | n B n > n₀} {n | n B n > n₀}a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A 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), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B){n | n > n₀} = {n | n B n > n₀} {n | n B n > n₀} a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)n:n {n | n > n₀} n {n | n B n > n₀} {n | n B n > n₀}; a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)n:n₀ < n n B n₀ < n n B n₀ < n; All goals completed! 🐙 intro n a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)n:hn:n {n | n B n > n₀} {n | n B n > n₀}False; a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)n:hn:(n B n₀ < n) n B n₀ < nFalse; All goals completed! 🐙 _ ∑' (n : {n B|n > n₀}), a n + 0 := a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (n : {n | n B n > n₀}), a n + ∑' (n : {n | n B n > n₀}), a n ∑' (n : {n | n B n > n₀}), a n + 0 a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)0 ∑' (n : {n | n B n > n₀}), a n; All goals completed! 🐙 _ = _ := a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (n : {n | n B n > n₀}), a n + 0 = ∑' (n : {n | n B n > n₀}), a n All goals completed! 🐙 _ = 0 + (10:)^(-(n₀:)) + 0 - (1 / (9:)) * (10:)^(-(n₀:)) := a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)0 + a n₀ + 0 - ∑' (n : {n | n > n₀}), a n = 0 + 10 ^ (-n₀) + 0 - 1 / 9 * 10 ^ (-n₀) a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)∑' (n : {n | n > n₀}), a n = 1 / 9 * 10 ^ (-n₀) set ι : {n | n > n₀} := fun j j+(n₀+1), a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)j:j + (n₀ + 1) {n | n > n₀} a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)j:n₀ < j + (n₀ + 1); All goals completed! 🐙 have : Function.Bijective ι := a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)0 + a n₀ + 0 - ∑' (n : {n | n > n₀}), a n = 0 + 10 ^ (-n₀) + 0 - 1 / 9 * 10 ^ (-n₀) a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), Function.Injective ιa: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), Function.Surjective ι a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), Function.Injective ι intro j a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), j:k:ι j = ι k j = k a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), j:k:hjk:ι j = ι kj = k; All goals completed! 🐙 a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), n:hn:n {n | n > n₀} a, ι a = n, hn; a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), n:hn:n₀ < n a, a + (n₀ + 1) = n; a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), n:hn:n₀ < nn - n₀ - 1 + (n₀ + 1) = n; All goals completed! 🐙 a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ι∑' (c : ), a ((Equiv.ofBijective ι ) c) = 1 / 9 * 10 ^ (-n₀) a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ι∑' (c : ), (10 ^ ((Equiv.ofBijective (fun j j + (n₀ + 1), ) ) c))⁻¹ = 9⁻¹ * (10 ^ n₀)⁻¹ calc _ = ∑' j:, (10:)^(-1-n₀:) * (1/(10:))^j := a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ι∑' (c : ), (10 ^ ((Equiv.ofBijective (fun j j + (n₀ + 1), ) ) c))⁻¹ = ∑' (j : ), 10 ^ (-1 - n₀) * (1 / 10) ^ j a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ι (b : ), (10 ^ ((Equiv.ofBijective (fun j j + (n₀ + 1), ) ) b))⁻¹ = 10 ^ (-1 - n₀) * (1 / 10) ^ b; a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ιj:(10 ^ ((Equiv.ofBijective (fun j j + (n₀ + 1), ) ) j))⁻¹ = 10 ^ (-1 - n₀) * (1 / 10) ^ j a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ιj:(10 ^ (j + (n₀ + 1)))⁻¹ = 10 ^ (-1 - n₀) * (1 / 10) ^ j a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ιj:(10 ^ j * (10 ^ n₀ * 10 ^ 1))⁻¹ = 10⁻¹ / 10 ^ n₀ * (1 / 10) ^ ja: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ιj:0 10a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ιj:0 < 10 a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ιj:(10 ^ j * (10 ^ n₀ * 10 ^ 1))⁻¹ = 10⁻¹ / 10 ^ n₀ * (1 / 10) ^ ja: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ιj:0 10a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ιj:0 < 10 try All goals completed! 🐙 a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ιj:10⁻¹ * (10 ^ n₀)⁻¹ = 10⁻¹ / 10 ^ n₀; All goals completed! 🐙 _ = (10:)^(-1-n₀:) * ∑' j:, (1/(10:))^j := tsum_mul_left _ = _ := a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ι10 ^ (-1 - n₀) * ∑' (j : ), (1 / 10) ^ j = 9⁻¹ * (10 ^ n₀)⁻¹ a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ι(10 ^ n₀)⁻¹ * 10 ^ (-1) * (1 - 1 / 10)⁻¹ = 9⁻¹ * (10 ^ n₀)⁻¹a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ι0 10a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ι0 < 10a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ι-1 - n₀ = -n₀ + -1a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ι0 1 / 10a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ι1 / 10 < 1 a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ι(10 ^ n₀)⁻¹ * 10 ^ (-1) * (1 - 1 / 10)⁻¹ = 9⁻¹ * (10 ^ n₀)⁻¹a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ι0 10a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ι0 < 10a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ι-1 - n₀ = -n₀ + -1a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ι0 1 / 10a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ι1 / 10 < 1 try a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ι1 / 10 < 1 a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ι-1 - n₀ = -n₀ + -1a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ι1 / 10 < 1; a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)ι: {n | n > n₀} := fun j j + (n₀ + 1), :Function.Bijective ι1 / 10 < 1; All goals completed! 🐙 _ = (8 / (9:)) * (10:)^(-(n₀:)) := a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)0 + 10 ^ (-n₀) + 0 - 1 / 9 * 10 ^ (-n₀) = 8 / 9 * 10 ^ (-n₀) All goals completed! 🐙 _ > 0 := a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nA:Set B:Set hAB:f A = f Bn₀: := Nat.min (symmDiff A B)h1:n₀ A n₀ B n₀ B n₀ Ah:n₀ A n₀ Bh2: {n : }, n < n₀ (n A n B)8 / 9 * 10 ^ (-n₀) > 0 All goals completed! 🐙 All goals completed! 🐙 a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nthis:EqualCard (Set ) (Set.range f)Uncountable a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nthis:Uncountable (Set.range f)Uncountable a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nthis:¬Uncountable ¬Uncountable (Set.range f) a: := fun n 10 ^ (-n)f:Set := fun A ∑' (n : A), a nhsummable: (A : Set ), Summable fun n a nh_decomp: {A B C : Set }, C = A B (∀ (n : ), n A B) ∑' (n : C), a n = ∑' (n : A), a n + ∑' (n : B), a nh_nonneg: (A : Set ), ∑' (n : A), a n 0h_congr: {A B : Set }, A = B ∑' (n : A), a n = ∑' (n : B), a nthis:Countable Countable (Set.range f) All goals completed! 🐙
/-- Exercise 8.3.1 -/ declaration uses `sorry`example {X:Type} [Finite X] : Nat.card (Set X) = 2 ^ Nat.card X := X:Typeinst✝:Finite XNat.card (Set X) = 2 ^ Nat.card X All goals completed! 🐙

Exercise 8.3.2. Some subtle type changes due to how sets are implemented in Mathlib. Also we shift the sequence D by one so that we can work in Set A rather than Set B.

open Classical intheorem declaration uses `sorry`Schroder_Bernstein_lemma {X: Type} {A B C: Set X} (hAB: A B) (hBC: B C) (f: C A) : let D : Set A := Nat.rec ((f.image ((B.embeddingOfSubset _ hBC).image)) {x:B | x A}) (fun _ (f.image ((B.embeddingOfSubset _ hBC).image) (A.embeddingOfSubset _ hAB).image)) Set.univ.PairwiseDisjoint D let g : A B := fun x if h: x n, D n y:B, f y, hBC y.property = x then h.2.choose else x, hAB x.property Function.Bijective g := X:TypeA:Set XB:Set XC:Set XhAB:A BhBC:B Cf:C Alet D := fun t Nat.rec ((f.image (B.embeddingOfSubset C hBC).image) {x | x A}) (fun x f.image (B.embeddingOfSubset C hBC).image (A.embeddingOfSubset B hAB).image) t; Set.univ.PairwiseDisjoint D let g := fun x if h : x n, D n y, f y, = x then .choose else x, ; Function.Bijective g All goals completed! 🐙
abbrev LeCard (X Y: Type) : Prop := f: X Y, Function.Injective f

Exercise 8.3.3

theorem declaration uses `sorry`Schroder_Bernstein {X Y:Type} (hXY : LeCard X Y) (hYX : LeCard Y X) : EqualCard X Y := X:TypeY:TypehXY:LeCard X YhYX:LeCard Y XEqualCard X Y All goals completed! 🐙
abbrev LtCard (X Y: Type) : Prop := LeCard X Y ¬ EqualCard X Y/-- Exercise 8.3.4 -/ declaration uses `sorry`example {X:Type} : LtCard X (Set X) := X:TypeLtCard X (Set X) All goals completed! 🐙declaration uses `sorry`example {A B C: Type} (hAB: LtCard A B) (hBC: LtCard B C) : LtCard A C := A:TypeB:TypeC:TypehAB:LtCard A BhBC:LtCard B CLtCard A C All goals completed! 🐙abbrev declaration uses `sorry`CardOrder : Preorder Type := { le := LeCard lt := LtCard le_refl := (a : Type), LeCard a a All goals completed! 🐙 le_trans := (a b c : Type), LeCard a b LeCard b c LeCard a c All goals completed! 🐙 lt_iff_le_not_ge := (a b : Type), LtCard a b LeCard a b ¬LeCard b a All goals completed! 🐙 }/-- Exercise 8.3.5 -/ declaration uses `sorry`example (X:Type) : ¬ CountablyInfinite (Set X) := X:Type¬CountablyInfinite (Set X) All goals completed! 🐙end Chapter8