/-
Copyright 2026 The Formal Conjectures Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-/importFormalConjecturesUtil
Does every almost-disjoint family of countably infinite sets whose pairwise
intersections all have size ≠ 1 have Property B?
Formally: let α be any type, let (A_i)_{i ∈ I} be a family of countably infinite subsets
of α such that for all i ≠ j, the intersection A_i ∩ A_j is finite and
|A_i ∩ A_j| ≠ 1. Does there exist a 2-colouring f : α → Fin 2 such that no A_i is
monochromatic?
This is an open question about Property B for almost-disjoint families with a
forbidden intersection size of 1.
Note: This generalises the formulation in which the ground set is ℕ. Since every
countably infinite set is in bijection with ℕ, the two formulations are equivalent, but
working over an arbitrary ground type makes the statement apply immediately to, e.g.,
almost-disjoint families of countable subsets of an uncountable space.
If the A_i are pairwise disjoint (all intersections are empty, which in
particular satisfies |A_i ∩ A_j| ≠ 1), then Property B holds trivially.
Proof sketch: Since each A_i is infinite, it has (at least) two distinct elements
a_i and b_i. We can define a colouring that assigns colour 0 to a_i and colour 1
to b_i for each i (using disjointness, these choices don't conflict), and extend
arbitrarily elsewhere. Then no A_i is monochromatic.
If the index set is countable, the answer is yes, and the intersection
condition is unnecessary. This is Bernstein's Lemma:
every countable system of infinite sets has Property B.
For a single countably infinite set A ⊆ α, there trivially exists a 2-colouring
of α that makes A non-monochromatic: since A is infinite, it has two distinct
elements, so any colouring that assigns them different colours works.
@[categorytextbook,AMS3]theoremerdos_602.variants.single_set{α:Type*}(A:Setα)(hA:A.Infinite):∃f:α→Fin2,¬IsMonochromaticfA:=byα:Type u_1A:SetαhA:A.Infinite⊢ ∃f,¬IsMonochromaticfAclassical-- A is infinite, so it has at least two distinct elements.obtain⟨a,ha⟩:=hA.nonemptyα:Type u_1A:SetαhA:A.Infinitea:αha:a∈A⊢ ∃f,¬IsMonochromaticfA-- Pick a second element different from a.havehA2:(A\{a}).Nonempty:=byα:Type u_1A:SetαhA:A.Infinite⊢ ∃f,¬IsMonochromaticfAα:Type u_1A:SetαhA:A.Infinitea:αha:a∈AhA2:(A\{a}).Nonempty⊢ ∃f,¬IsMonochromaticfAapplySet.Infinite.nonemptyα:Type u_1A:SetαhA:A.Infinitea:αha:a∈A⊢ (A\{a}).Infiniteα:Type u_1A:SetαhA:A.Infinitea:αha:a∈AhA2:(A\{a}).Nonempty⊢ ∃f,¬IsMonochromaticfAexacthA.sdiff(Set.finite_singletona)α:Type u_1A:SetαhA:A.Infinitea:αha:a∈AhA2:(A\{a}).Nonempty⊢ ∃f,¬IsMonochromaticfAα:Type u_1A:SetαhA:A.Infinitea:αha:a∈AhA2:(A\{a}).Nonempty⊢ ∃f,¬IsMonochromaticfAobtain⟨b,hbA⟩:=hA2α:Type u_1A:SetαhA:A.Infinitea:αha:a∈Ab:αhbA:b∈A\{a}⊢ ∃f,¬IsMonochromaticfAsimponly[Set.mem_sdiff,Set.mem_singleton_iff]athbAα:Type u_1A:SetαhA:A.Infinitea:αha:a∈Ab:αhbA:b∈A∧¬b=a⊢ ∃f,¬IsMonochromaticfAobtain⟨hbA,hba⟩:=hbAα:Type u_1A:SetαhA:A.Infinitea:αha:a∈Ab:αhbA:b∈Ahba:¬b=a⊢ ∃f,¬IsMonochromaticfA-- Colour a with 0, b with 1, everything else with 0.refine⟨funn=>ifn=bthen1else0,?_⟩α:Type u_1A:SetαhA:A.Infinitea:αha:a∈Ab:αhbA:b∈Ahba:¬b=a⊢ ¬IsMonochromatic(funn↦ifn=bthen1else0)A-- The colouring is not monochromatic on A since f(a) = 0 ≠ 1 = f(b).introhMonoα:Type u_1A:SetαhA:A.Infinitea:αha:a∈Ab:αhbA:b∈Ahba:¬b=ahMono:IsMonochromatic(funn↦ifn=bthen1else0)A⊢ Falsehaveh0:(funn=>ifn=bthen(1:Fin2)else0)a=0:=byα:Type u_1A:SetαhA:A.Infinite⊢ ∃f,¬IsMonochromaticfAα:Type u_1A:SetαhA:A.Infinitea:αha:a∈Ab:αhbA:b∈Ahba:¬b=ahMono:IsMonochromatic(funn↦ifn=bthen1else0)Ah0:(funn↦ifn=bthen1else0)a=0⊢ Falsesimponly[ite_eq_right_iff]α:Type u_1A:SetαhA:A.Infinitea:αha:a∈Ab:αhbA:b∈Ahba:¬b=ahMono:IsMonochromatic(funn↦ifn=bthen1else0)A⊢ a=b→1=0α:Type u_1A:SetαhA:A.Infinitea:αha:a∈Ab:αhbA:b∈Ahba:¬b=ahMono:IsMonochromatic(funn↦ifn=bthen1else0)Ah0:(funn↦ifn=bthen1else0)a=0⊢ Falseintrohα:Type u_1A:SetαhA:A.Infinitea:αha:a∈Ab:αhbA:b∈Ahba:¬b=ahMono:IsMonochromatic(funn↦ifn=bthen1else0)Ah:a=b⊢ 1=0α:Type u_1A:SetαhA:A.Infinitea:αha:a∈Ab:αhbA:b∈Ahba:¬b=ahMono:IsMonochromatic(funn↦ifn=bthen1else0)Ah0:(funn↦ifn=bthen1else0)a=0⊢ Falseexactabsurdh(Ne.symmhba)α:Type u_1A:SetαhA:A.Infinitea:αha:a∈Ab:αhbA:b∈Ahba:¬b=ahMono:IsMonochromatic(funn↦ifn=bthen1else0)Ah0:(funn↦ifn=bthen1else0)a=0⊢ Falseα:Type u_1A:SetαhA:A.Infinitea:αha:a∈Ab:αhbA:b∈Ahba:¬b=ahMono:IsMonochromatic(funn↦ifn=bthen1else0)Ah0:(funn↦ifn=bthen1else0)a=0⊢ Falsehaveh1:(funn=>ifn=bthen(1:Fin2)else0)b=1:=byα:Type u_1A:SetαhA:A.Infinite⊢ ∃f,¬IsMonochromaticfAα:Type u_1A:SetαhA:A.Infinitea:αha:a∈Ab:αhbA:b∈Ahba:¬b=ahMono:IsMonochromatic(funn↦ifn=bthen1else0)Ah0:(funn↦ifn=bthen1else0)a=0h1:(funn↦ifn=bthen1else0)b=1⊢ Falsesimpα:Type u_1A:SetαhA:A.Infinitea:αha:a∈Ab:αhbA:b∈Ahba:¬b=ahMono:IsMonochromatic(funn↦ifn=bthen1else0)Ah0:(funn↦ifn=bthen1else0)a=0h1:(funn↦ifn=bthen1else0)b=1⊢ Falseα:Type u_1A:SetαhA:A.Infinitea:αha:a∈Ab:αhbA:b∈Ahba:¬b=ahMono:IsMonochromatic(funn↦ifn=bthen1else0)Ah0:(funn↦ifn=bthen1else0)a=0h1:(funn↦ifn=bthen1else0)b=1⊢ Falsehave:=hMonoahabhbAα:Type u_1A:SetαhA:A.Infinitea:αha:a∈Ab:αhbA:b∈Ahba:¬b=ahMono:IsMonochromatic(funn↦ifn=bthen1else0)Ah0:(funn↦ifn=bthen1else0)a=0h1:(funn↦ifn=bthen1else0)b=1this:(funn↦ifn=bthen1else0)a=(funn↦ifn=bthen1else0)b⊢ Falserw[h0,α:Type u_1A:SetαhA:A.Infinitea:αha:a∈Ab:αhbA:b∈Ahba:¬b=ahMono:IsMonochromatic(funn↦ifn=bthen1else0)Ah0:(funn↦ifn=bthen1else0)a=0h1:(funn↦ifn=bthen1else0)b=1this:0=(funn↦ifn=bthen1else0)b⊢ Falseα:Type u_1A:SetαhA:A.Infinitea:αha:a∈Ab:αhbA:b∈Ahba:¬b=ahMono:IsMonochromatic(funn↦ifn=bthen1else0)Ah0:(funn↦ifn=bthen1else0)a=0h1:(funn↦ifn=bthen1else0)b=1this:0=1⊢ Falseh1α:Type u_1A:SetαhA:A.Infinitea:αha:a∈Ab:αhbA:b∈Ahba:¬b=ahMono:IsMonochromatic(funn↦ifn=bthen1else0)Ah0:(funn↦ifn=bthen1else0)a=0h1:(funn↦ifn=bthen1else0)b=1this:0=1⊢ Falseα:Type u_1A:SetαhA:A.Infinitea:αha:a∈Ab:αhbA:b∈Ahba:¬b=ahMono:IsMonochromatic(funn↦ifn=bthen1else0)Ah0:(funn↦ifn=bthen1else0)a=0h1:(funn↦ifn=bthen1else0)b=1this:0=1⊢ False]atthisα:Type u_1A:SetαhA:A.Infinitea:αha:a∈Ab:αhbA:b∈Ahba:¬b=ahMono:IsMonochromatic(funn↦ifn=bthen1else0)Ah0:(funn↦ifn=bthen1else0)a=0h1:(funn↦ifn=bthen1else0)b=1this:0=1⊢ Falseexactabsurdthis(byα:Type u_1A:SetαhA:A.Infinitea:αha:a∈Ab:αhbA:b∈Ahba:¬b=ahMono:IsMonochromatic(funn↦ifn=bthen1else0)Ah0:(funn↦ifn=bthen1else0)a=0h1:(funn↦ifn=bthen1else0)b=1this:0=1⊢ ¬0=1decideAll goals completed! 🐙)
Empty index set.
If the index set I is empty (has no elements), then Property B holds vacuously:
any 2-colouring works, since there are no sets to be made non-monochromatic.
If the index set has exactly one element (i.e., [Unique I]), then Property B holds:
any 2-colouring that makes the single set A (default : I) non-monochromatic works.
This follows from the single-set case.
@[categorytextbook,AMS3]theoremerdos_602.variants.unique_index{α:Type*}(I:Type*)[UniqueI](A:I→Setα)(hInfinite:∀i,(Ai).Infinite):HasPropertyBIA:=byα:Type u_1I:Type u_2inst✝:UniqueIA:I→SetαhInfinite:∀(i:I),(Ai).Infinite⊢ HasPropertyBIA-- Use single_set to get a colouring making A (default) non-monochromatic.obtain⟨f,hf⟩:=erdos_602.variants.single_set(Adefault)(hInfinitedefault)α:Type u_1I:Type u_2inst✝:UniqueIA:I→SetαhInfinite:∀(i:I),(Ai).Infinitef:α→Fin2hf:¬IsMonochromaticf(Adefault)⊢ HasPropertyBIArefine⟨f,funi=>?_⟩α:Type u_1I:Type u_2inst✝:UniqueIA:I→SetαhInfinite:∀(i:I),(Ai).Infinitef:α→Fin2hf:¬IsMonochromaticf(Adefault)i:I⊢ ¬IsMonochromaticf(Ai)-- Every i equals default by uniqueness.rw[Unique.eq_defaultiα:Type u_1I:Type u_2inst✝:UniqueIA:I→SetαhInfinite:∀(i:I),(Ai).Infinitef:α→Fin2hf:¬IsMonochromaticf(Adefault)i:I⊢ ¬IsMonochromaticf(Adefault)α:Type u_1I:Type u_2inst✝:UniqueIA:I→SetαhInfinite:∀(i:I),(Ai).Infinitef:α→Fin2hf:¬IsMonochromaticf(Adefault)i:I⊢ ¬IsMonochromaticf(Adefault)]α:Type u_1I:Type u_2inst✝:UniqueIA:I→SetαhInfinite:∀(i:I),(Ai).Infinitef:α→Fin2hf:¬IsMonochromaticf(Adefault)i:I⊢ ¬IsMonochromaticf(Adefault)exacthfAll goals completed! 🐙
Two infinite sets with pairwise intersection of size ≠ 1.
If the family consists of exactly two countably infinite sets A₀ and A₁ with
|A₀ ∩ A₁| ≠ 1 (and finite), then Property B holds.
Proof sketch:
If A₀ ∩ A₁ = ∅: the sets are disjoint. Pick distinct a, b ∈ A₀ and distinct
c, d ∈ A₁. Colour b and c with 1, everything else with 0. Then A₀ has
a (colour 0) and b (colour 1), and A₁ has c (colour 1) and d (colour 0),
so neither is monochromatic.
If |A₀ ∩ A₁| ≥ 2: the intersection contains two distinct points x and y.
Assign x colour 0 and y colour 1. Both A₀ and A₁ contain x and y,
so neither is monochromatic.
@[categoryresearchsolved,AMS35]theoremerdos_602.variants.two_sets:answer(True)↔∀{α:Type*}(A:Fin2→Setα),(∀i,(Ai).Infinite)→(A0∩A1).Finite→Set.ncard(A0∩A1)≠1→HasPropertyB(Fin2)A:=by⊢ True↔∀{α:Type u_1}(A:Fin2→Setα),(∀(i:Fin2),(Ai).Infinite)→(A0∩A1).Finite→(A0∩A1).ncard≠1→HasPropertyB(Fin2)AshowTrue↔_⊢ True↔∀{α:Type u_1}(A:Fin2→Setα),(∀(i:Fin2),(Ai).Infinite)→(A0∩A1).Finite→(A0∩A1).ncard≠1→HasPropertyB(Fin2)Asimponly[true_iff]⊢ ∀{α:Type u_1}(A:Fin2→Setα),(∀(i:Fin2),(Ai).Infinite)→(A0∩A1).Finite→(A0∩A1).ncard≠1→HasPropertyB(Fin2)AintroαAhInfinitehFinhNcardα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1⊢ HasPropertyB(Fin2)Aclassical-- Case split: intersection empty or size ≥ 2.by_caseshEmpty:(A0∩A1)=∅posα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅⊢ HasPropertyB(Fin2)Anegα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅⊢ HasPropertyB(Fin2)A·posα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅⊢ HasPropertyB(Fin2)A-- Disjoint case: A 0 and A 1 are disjoint.-- Pick distinct a, b from A 0.obtain⟨a,ha0⟩:=(hInfinite0).nonemptyposα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0⊢ HasPropertyB(Fin2)AhavehA0':(A0\{a}).Nonempty:=Set.Infinite.nonempty((hInfinite0).sdiff(Set.finite_singletona))posα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0hA0':(A0\{a}).Nonempty⊢ HasPropertyB(Fin2)Aobtain⟨b,hbA0,hba⟩:=hA0'posα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:b∉{a}⊢ HasPropertyB(Fin2)Asimponly[Set.mem_singleton_iff]athbaposα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=a⊢ HasPropertyB(Fin2)A-- Pick distinct c, d from A 1.obtain⟨c,hc1⟩:=(hInfinite1).nonemptyposα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1⊢ HasPropertyB(Fin2)AhavehA1':(A1\{c}).Nonempty:=Set.Infinite.nonempty((hInfinite1).sdiff(Set.finite_singletonc))posα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1hA1':(A1\{c}).Nonempty⊢ HasPropertyB(Fin2)Aobtain⟨d,hd1,hdc⟩:=hA1'posα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:d∉{c}⊢ HasPropertyB(Fin2)Asimponly[Set.mem_singleton_iff]athdcposα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=c⊢ HasPropertyB(Fin2)A-- Disjointness facts: A 0 and A 1 are disjoint.havehDisj:∀x,x∈A0→x∉A1:=by⊢ True↔∀{α:Type u_1}(A:Fin2→Setα),(∀(i:Fin2),(Ai).Infinite)→(A0∩A1).Finite→(A0∩A1).ncard≠1→HasPropertyB(Fin2)Aposα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1⊢ HasPropertyB(Fin2)Aintroxhx0hx1α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=cx:αhx0:x∈A0hx1:x∈A1⊢ Falseposα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1⊢ HasPropertyB(Fin2)Ahavehmem:x∈A0∩A1:=⟨hx0,hx1⟩α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=cx:αhx0:x∈A0hx1:x∈A1hmem:x∈A0∩A1⊢ Falseposα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1⊢ HasPropertyB(Fin2)Arw[hEmptyα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=cx:αhx0:x∈A0hx1:x∈A1hmem:x∈∅⊢ Falseα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=cx:αhx0:x∈A0hx1:x∈A1hmem:x∈∅⊢ Falseposα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1⊢ HasPropertyB(Fin2)A]athmemα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=cx:αhx0:x∈A0hx1:x∈A1hmem:x∈∅⊢ Falseposα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1⊢ HasPropertyB(Fin2)Aexacthmemposα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1⊢ HasPropertyB(Fin2)Aposα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1⊢ HasPropertyB(Fin2)Ahavehb_ne_c:b≠c:=funh=>hDisjbhbA0(h▸hc1)posα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠c⊢ HasPropertyB(Fin2)Ahavehb_ne_d:b≠d:=funh=>hDisjbhbA0(h▸hd1)posα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠d⊢ HasPropertyB(Fin2)Ahaveha_ne_c:a≠c:=funh=>hDisjaha0(h▸hc1)posα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠c⊢ HasPropertyB(Fin2)A-- Colour b with 1, c with 1, everything else with 0.-- A 0: f(a) = 0 (a ≠ b, a ≠ c), f(b) = 1. Non-mono.-- A 1: f(c) = 1, f(d) = 0 (d ≠ b, d ≠ c). Non-mono.refine⟨funn=>ifn=b∨n=cthen1else0,funi=>?_⟩posα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠ci:Fin2⊢ ¬IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(Ai)fin_casesipos.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠c⊢ ¬IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨0,⋯⟩))pos.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠c⊢ ¬IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨1,⋯⟩))·pos.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠c⊢ ¬IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨0,⋯⟩))-- A 0 is not monochromatic: f(a) = 0 ≠ 1 = f(b).introhMonopos.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨0,⋯⟩))⊢ Falsehavehfa:(funn=>ifn=b∨n=cthen(1:Fin2)else0)a=0:=by⊢ True↔∀{α:Type u_1}(A:Fin2→Setα),(∀(i:Fin2),(Ai).Infinite)→(A0∩A1).Finite→(A0∩A1).ncard≠1→HasPropertyB(Fin2)Apos.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨0,⋯⟩))hfa:(funn↦ifn=b∨n=cthen1else0)a=0⊢ Falsesimp[showa≠bfromfunh=>hbah.symm,ha_ne_c]pos.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨0,⋯⟩))hfa:(funn↦ifn=b∨n=cthen1else0)a=0⊢ Falsepos.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨0,⋯⟩))hfa:(funn↦ifn=b∨n=cthen1else0)a=0⊢ Falsehavehfb:(funn=>ifn=b∨n=cthen(1:Fin2)else0)b=1:=by⊢ True↔∀{α:Type u_1}(A:Fin2→Setα),(∀(i:Fin2),(Ai).Infinite)→(A0∩A1).Finite→(A0∩A1).ncard≠1→HasPropertyB(Fin2)Apos.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨0,⋯⟩))hfa:(funn↦ifn=b∨n=cthen1else0)a=0hfb:(funn↦ifn=b∨n=cthen1else0)b=1⊢ Falsesimppos.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨0,⋯⟩))hfa:(funn↦ifn=b∨n=cthen1else0)a=0hfb:(funn↦ifn=b∨n=cthen1else0)b=1⊢ Falsepos.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨0,⋯⟩))hfa:(funn↦ifn=b∨n=cthen1else0)a=0hfb:(funn↦ifn=b∨n=cthen1else0)b=1⊢ Falsehave:=hMonoaha0bhbA0pos.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨0,⋯⟩))hfa:(funn↦ifn=b∨n=cthen1else0)a=0hfb:(funn↦ifn=b∨n=cthen1else0)b=1this:(funn↦ifn=b∨n=cthen1else0)a=(funn↦ifn=b∨n=cthen1else0)b⊢ Falserw[hfa,pos.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨0,⋯⟩))hfa:(funn↦ifn=b∨n=cthen1else0)a=0hfb:(funn↦ifn=b∨n=cthen1else0)b=1this:0=(funn↦ifn=b∨n=cthen1else0)b⊢ Falsepos.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨0,⋯⟩))hfa:(funn↦ifn=b∨n=cthen1else0)a=0hfb:(funn↦ifn=b∨n=cthen1else0)b=1this:0=1⊢ Falsehfbpos.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨0,⋯⟩))hfa:(funn↦ifn=b∨n=cthen1else0)a=0hfb:(funn↦ifn=b∨n=cthen1else0)b=1this:0=1⊢ Falsepos.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨0,⋯⟩))hfa:(funn↦ifn=b∨n=cthen1else0)a=0hfb:(funn↦ifn=b∨n=cthen1else0)b=1this:0=1⊢ False]atthispos.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨0,⋯⟩))hfa:(funn↦ifn=b∨n=cthen1else0)a=0hfb:(funn↦ifn=b∨n=cthen1else0)b=1this:0=1⊢ False;exactabsurdthis(byα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨0,⋯⟩))hfa:(funn↦ifn=b∨n=cthen1else0)a=0hfb:(funn↦ifn=b∨n=cthen1else0)b=1this:0=1⊢ ¬0=1decideAll goals completed! 🐙)·pos.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠c⊢ ¬IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨1,⋯⟩))-- A 1 is not monochromatic: f(c) = 1 ≠ 0 = f(d).introhMonopos.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨1,⋯⟩))⊢ Falsehavehfc:(funn=>ifn=b∨n=cthen(1:Fin2)else0)c=1:=by⊢ True↔∀{α:Type u_1}(A:Fin2→Setα),(∀(i:Fin2),(Ai).Infinite)→(A0∩A1).Finite→(A0∩A1).ncard≠1→HasPropertyB(Fin2)Apos.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨1,⋯⟩))hfc:(funn↦ifn=b∨n=cthen1else0)c=1⊢ Falsesimppos.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨1,⋯⟩))hfc:(funn↦ifn=b∨n=cthen1else0)c=1⊢ Falsepos.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨1,⋯⟩))hfc:(funn↦ifn=b∨n=cthen1else0)c=1⊢ Falsehavehfd:(funn=>ifn=b∨n=cthen(1:Fin2)else0)d=0:=by⊢ True↔∀{α:Type u_1}(A:Fin2→Setα),(∀(i:Fin2),(Ai).Infinite)→(A0∩A1).Finite→(A0∩A1).ncard≠1→HasPropertyB(Fin2)Apos.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨1,⋯⟩))hfc:(funn↦ifn=b∨n=cthen1else0)c=1hfd:(funn↦ifn=b∨n=cthen1else0)d=0⊢ Falsesimp[hb_ne_d.symm,hdc]pos.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨1,⋯⟩))hfc:(funn↦ifn=b∨n=cthen1else0)c=1hfd:(funn↦ifn=b∨n=cthen1else0)d=0⊢ Falsepos.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨1,⋯⟩))hfc:(funn↦ifn=b∨n=cthen1else0)c=1hfd:(funn↦ifn=b∨n=cthen1else0)d=0⊢ Falsehave:=hMonochc1dhd1pos.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨1,⋯⟩))hfc:(funn↦ifn=b∨n=cthen1else0)c=1hfd:(funn↦ifn=b∨n=cthen1else0)d=0this:(funn↦ifn=b∨n=cthen1else0)c=(funn↦ifn=b∨n=cthen1else0)d⊢ Falserw[hfc,pos.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨1,⋯⟩))hfc:(funn↦ifn=b∨n=cthen1else0)c=1hfd:(funn↦ifn=b∨n=cthen1else0)d=0this:1=(funn↦ifn=b∨n=cthen1else0)d⊢ Falsepos.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨1,⋯⟩))hfc:(funn↦ifn=b∨n=cthen1else0)c=1hfd:(funn↦ifn=b∨n=cthen1else0)d=0this:1=0⊢ Falsehfdpos.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨1,⋯⟩))hfc:(funn↦ifn=b∨n=cthen1else0)c=1hfd:(funn↦ifn=b∨n=cthen1else0)d=0this:1=0⊢ Falsepos.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨1,⋯⟩))hfc:(funn↦ifn=b∨n=cthen1else0)c=1hfd:(funn↦ifn=b∨n=cthen1else0)d=0this:1=0⊢ False]atthispos.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨1,⋯⟩))hfc:(funn↦ifn=b∨n=cthen1else0)c=1hfd:(funn↦ifn=b∨n=cthen1else0)d=0this:1=0⊢ False;exactabsurdthis(byα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:A0∩A1=∅a:αha0:a∈A0b:αhbA0:b∈A0hba:¬b=ac:αhc1:c∈A1d:αhd1:d∈A1hdc:¬d=chDisj:∀x∈A0,x∉A1hb_ne_c:b≠chb_ne_d:b≠dha_ne_c:a≠chMono:IsMonochromatic(funn↦ifn=b∨n=cthen1else0)(A((funi↦i)⟨1,⋯⟩))hfc:(funn↦ifn=b∨n=cthen1else0)c=1hfd:(funn↦ifn=b∨n=cthen1else0)d=0this:1=0⊢ ¬1=0decideAll goals completed! 🐙)·negα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅⊢ HasPropertyB(Fin2)A-- Intersection has size ≥ 2.havehge2:1<Set.ncard(A0∩A1):=by⊢ True↔∀{α:Type u_1}(A:Fin2→Setα),(∀(i:Fin2),(Ai).Infinite)→(A0∩A1).Finite→(A0∩A1).ncard≠1→HasPropertyB(Fin2)Anegα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncard⊢ HasPropertyB(Fin2)Ahavehpos:0<Set.ncard(A0∩A1):=by⊢ True↔∀{α:Type u_1}(A:Fin2→Setα),(∀(i:Fin2),(Ai).Infinite)→(A0∩A1).Finite→(A0∩A1).ncard≠1→HasPropertyB(Fin2)Aα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hpos:0<(A0∩A1).ncard⊢ 1<(A0∩A1).ncardnegα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncard⊢ HasPropertyB(Fin2)Arw[Set.ncard_poshFinα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅⊢ (A0∩A1).Nonemptyα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅⊢ (A0∩A1).Nonemptyα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hpos:0<(A0∩A1).ncard⊢ 1<(A0∩A1).ncardnegα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncard⊢ HasPropertyB(Fin2)A]α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅⊢ (A0∩A1).Nonemptyα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hpos:0<(A0∩A1).ncard⊢ 1<(A0∩A1).ncardnegα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncard⊢ HasPropertyB(Fin2)AexactSet.nonempty_iff_ne_empty.mprhEmptyα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hpos:0<(A0∩A1).ncard⊢ 1<(A0∩A1).ncardnegα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncard⊢ HasPropertyB(Fin2)Aα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hpos:0<(A0∩A1).ncard⊢ 1<(A0∩A1).ncardnegα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncard⊢ HasPropertyB(Fin2)Aomeganegα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncard⊢ HasPropertyB(Fin2)Anegα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncard⊢ HasPropertyB(Fin2)A-- Get two distinct elements x, y in the intersection.obtain⟨x,hxI,y,hyI,hxy⟩:=(Set.one_lt_ncardhFin).mphge2negα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠y⊢ HasPropertyB(Fin2)A-- Colour y with 1, everything else with 0.-- x ∈ A 0 ∩ A 1, y ∈ A 0 ∩ A 1, x ≠ y.refine⟨funn=>ifn=ythen1else0,funi=>?_⟩negα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yi:Fin2⊢ ¬IsMonochromatic(funn↦ifn=ythen1else0)(Ai)fin_casesineg.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠y⊢ ¬IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨0,⋯⟩))neg.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠y⊢ ¬IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨1,⋯⟩))·neg.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠y⊢ ¬IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨0,⋯⟩))-- A 0: f(x) = 0 ≠ 1 = f(y), x ≠ y, both in A 0.introhMononeg.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨0,⋯⟩))⊢ Falsehavehfx:(funn=>ifn=ythen(1:Fin2)else0)x=0:=by⊢ True↔∀{α:Type u_1}(A:Fin2→Setα),(∀(i:Fin2),(Ai).Infinite)→(A0∩A1).Finite→(A0∩A1).ncard≠1→HasPropertyB(Fin2)Aneg.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨0,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0⊢ Falsesimp[showx≠yfromhxy]neg.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨0,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0⊢ Falseneg.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨0,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0⊢ Falsehavehfy:(funn=>ifn=ythen(1:Fin2)else0)y=1:=by⊢ True↔∀{α:Type u_1}(A:Fin2→Setα),(∀(i:Fin2),(Ai).Infinite)→(A0∩A1).Finite→(A0∩A1).ncard≠1→HasPropertyB(Fin2)Aneg.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨0,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0hfy:(funn↦ifn=ythen1else0)y=1⊢ Falsesimpneg.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨0,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0hfy:(funn↦ifn=ythen1else0)y=1⊢ Falseneg.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨0,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0hfy:(funn↦ifn=ythen1else0)y=1⊢ Falsehave:=hMonoxhxI.1yhyI.1neg.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨0,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0hfy:(funn↦ifn=ythen1else0)y=1this:(funn↦ifn=ythen1else0)x=(funn↦ifn=ythen1else0)y⊢ Falserw[hfx,neg.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨0,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0hfy:(funn↦ifn=ythen1else0)y=1this:0=(funn↦ifn=ythen1else0)y⊢ Falseneg.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨0,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0hfy:(funn↦ifn=ythen1else0)y=1this:0=1⊢ Falsehfyneg.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨0,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0hfy:(funn↦ifn=ythen1else0)y=1this:0=1⊢ Falseneg.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨0,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0hfy:(funn↦ifn=ythen1else0)y=1this:0=1⊢ False]atthisneg.«_@».3279824903._hygCtx._hyg.77.«0»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨0,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0hfy:(funn↦ifn=ythen1else0)y=1this:0=1⊢ False;exactabsurdthis(byα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨0,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0hfy:(funn↦ifn=ythen1else0)y=1this:0=1⊢ ¬0=1decideAll goals completed! 🐙)·neg.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠y⊢ ¬IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨1,⋯⟩))-- A 1: f(x) = 0 ≠ 1 = f(y), both in A 1.introhMononeg.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨1,⋯⟩))⊢ Falsehavehfx:(funn=>ifn=ythen(1:Fin2)else0)x=0:=by⊢ True↔∀{α:Type u_1}(A:Fin2→Setα),(∀(i:Fin2),(Ai).Infinite)→(A0∩A1).Finite→(A0∩A1).ncard≠1→HasPropertyB(Fin2)Aneg.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨1,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0⊢ Falsesimp[showx≠yfromhxy]neg.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨1,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0⊢ Falseneg.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨1,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0⊢ Falsehavehfy:(funn=>ifn=ythen(1:Fin2)else0)y=1:=by⊢ True↔∀{α:Type u_1}(A:Fin2→Setα),(∀(i:Fin2),(Ai).Infinite)→(A0∩A1).Finite→(A0∩A1).ncard≠1→HasPropertyB(Fin2)Aneg.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨1,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0hfy:(funn↦ifn=ythen1else0)y=1⊢ Falsesimpneg.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨1,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0hfy:(funn↦ifn=ythen1else0)y=1⊢ Falseneg.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨1,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0hfy:(funn↦ifn=ythen1else0)y=1⊢ Falsehave:=hMonoxhxI.2yhyI.2neg.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨1,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0hfy:(funn↦ifn=ythen1else0)y=1this:(funn↦ifn=ythen1else0)x=(funn↦ifn=ythen1else0)y⊢ Falserw[hfx,neg.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨1,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0hfy:(funn↦ifn=ythen1else0)y=1this:0=(funn↦ifn=ythen1else0)y⊢ Falseneg.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨1,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0hfy:(funn↦ifn=ythen1else0)y=1this:0=1⊢ Falsehfyneg.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨1,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0hfy:(funn↦ifn=ythen1else0)y=1this:0=1⊢ Falseneg.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨1,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0hfy:(funn↦ifn=ythen1else0)y=1this:0=1⊢ False]atthisneg.«_@».3279824903._hygCtx._hyg.77.«1»α:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨1,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0hfy:(funn↦ifn=ythen1else0)y=1this:0=1⊢ False;exactabsurdthis(byα:Type u_1A:Fin2→SetαhInfinite:∀(i:Fin2),(Ai).InfinitehFin:(A0∩A1).FinitehNcard:(A0∩A1).ncard≠1hEmpty:¬A0∩A1=∅hge2:1<(A0∩A1).ncardx:αhxI:x∈A0∩A1y:αhyI:y∈A0∩A1hxy:x≠yhMono:IsMonochromatic(funn↦ifn=ythen1else0)(A((funi↦i)⟨1,⋯⟩))hfx:(funn↦ifn=ythen1else0)x=0hfy:(funn↦ifn=ythen1else0)y=1this:0=1⊢ ¬0=1decideAll goals completed! 🐙)/- ## Sanity checks and examples
The following `example` declarations exercise the proved variants and demonstrate that
the hypotheses of the main theorem are non-vacuous. All goals are fully closed: no `sorry`. -//- ### Auxiliary lemmas used by the examples below -/@[categorytest,AMS35]privatelemmaevens_infinite:Set.Infinite{n:ℕ|Evenn}:=Set.infinite_of_injective_forall_mem(f:=funn:ℕ=>2*n)(by⊢ Function.Injectivefunn↦2*nintroabha:ℕb:ℕh:(funn↦2*n)a=(funn↦2*n)b⊢ a=b;simponlyatha:ℕb:ℕh:2*a=2*b⊢ a=b;omegaAll goals completed! 🐙)(by⊢ ∀(x:ℕ),2*x∈{n|Evenn}intronn:ℕ⊢ 2*n∈{n|Evenn};simponly[Set.mem_ofPred_eq]n:ℕ⊢ Even(2*n);exact⟨n,byn:ℕ⊢ 2*n=n+nringAll goals completed! 🐙⟩)@[categorytest,AMS35]privatelemmaodds_infinite:Set.Infinite{n:ℕ|Oddn}:=Set.infinite_of_injective_forall_mem(f:=funn:ℕ=>2*n+1)(by⊢ Function.Injectivefunn↦2*n+1introabha:ℕb:ℕh:(funn↦2*n+1)a=(funn↦2*n+1)b⊢ a=b;simponlyatha:ℕb:ℕh:2*a+1=2*b+1⊢ a=b;omegaAll goals completed! 🐙)(by⊢ ∀(x:ℕ),2*x+1∈{n|Oddn}intronn:ℕ⊢ 2*n+1∈{n|Oddn};simponly[Set.mem_ofPred_eq]n:ℕ⊢ Odd(2*n+1);exact⟨n,byn:ℕ⊢ 2*n+1=2*n+1ringAll goals completed! 🐙⟩)@[categorytest,AMS35]privatelemmaevens_inter_odds_empty:{n:ℕ|Evenn}∩{n:ℕ|Oddn}=∅:=by⊢ {n|Evenn}∩{n|Oddn}=∅extxx:ℕ⊢ x∈{n|Evenn}∩{n|Oddn}↔x∈∅simponly[Set.mem_inter_iff,Set.mem_ofPred_eq,Set.mem_empty_iff_false,iff_false,not_and]x:ℕ⊢ Evenx→¬Oddxintro⟨k,hk⟩⟨m,hm⟩x:ℕk:ℕhk:x=k+km:ℕhm:x=2*m+1⊢ False;omegaAll goals completed! 🐙
The empty family vacuously has Property B, exercising erdos_602.variants.empty_index.
Any infinite set, viewed as a singleton family, has Property B,
exercising erdos_602.variants.unique_index.
@[categorytest,AMS35]example(A:Setℕ)(hA:A.Infinite):HasPropertyBUnit(fun_=>A):=erdos_602.variants.unique_indexUnit(fun_=>A)(fun_=>hA)/-- The evens/odds family on ℕ satisfies all three hypotheses of the main theorem:
countably infinite sets, pairwise finite (in fact empty) intersection, and
intersection size ≠ 1 (it equals 0). This shows the hypotheses are non-vacuous. -/@[categorytest,AMS35]example:letA:Fin2→Setℕ:=.Countable∧(Ai).Infinite)∧(∀ij,i≠j→(Ai∩Aj).Finite)∧(∀ij,i≠j→Set.ncard(Ai∩Aj)≠1):=by⊢ letA:=![{n|Evenn},{n|Oddn}];(∀(i:Fin2),(Ai).Countable∧(Ai).Infinite)∧(∀(ij:Fin2),i≠j→(Ai∩Aj).Finite)∧∀(ij:Fin2),i≠j→(Ai∩Aj).ncard≠1refine⟨?_,?_,?_⟩refine_1⊢ ∀(i:Fin2),(![{n|Evenn},{n|Oddn}]i).Countable∧(![{n|Evenn},{n|Oddn}]i).Infiniterefine_2⊢ ∀(ij:Fin2),i≠j→(![{n|Evenn},{n|Oddn}]i∩![{n|Evenn},{n|Oddn}]j).Finiterefine_3⊢ ∀(ij:Fin2),i≠j→(![{n|Evenn},{n|Oddn}]i∩![{n|Evenn},{n|Oddn}]j).ncard≠1·refine_1⊢ ∀(i:Fin2),(![{n|Evenn},{n|Oddn}]i).Countable∧(![{n|Evenn},{n|Oddn}]i).Infiniteintroirefine_1i:Fin2⊢ (![{n|Evenn},{n|Oddn}]i).Countable∧(![{n|Evenn},{n|Oddn}]i).Infinite;fin_casesirefine_1.«0»⊢ (⟨0,⋯⟩)).Countable∧(⟨0,⋯⟩)).Infiniterefine_1.«1»⊢ (⟨1,⋯⟩)).Countable∧(⟨1,⋯⟩)).Infinite·refine_1.«0»⊢ (⟨0,⋯⟩)).Countable∧(⟨0,⋯⟩)).Infiniteexact⟨(Set.countable_univ).mono(Set.subset_univ_),evens_infinite⟩All goals completed! 🐙·refine_1.«1»⊢ (⟨1,⋯⟩)).Countable∧(⟨1,⋯⟩)).Infiniteexact⟨(Set.countable_univ).mono(Set.subset_univ_),odds_infinite⟩All goals completed! 🐙·refine_2⊢ ∀(ij:Fin2),i≠j→(![{n|Evenn},{n|Oddn}]i∩![{n|Evenn},{n|Oddn}]j).Finiteintroijhijrefine_2i:Fin2j:Fin2hij:i≠j⊢ (![{n|Evenn},{n|Oddn}]i∩![{n|Evenn},{n|Oddn}]j).Finitefin_casesirefine_2.«0»j:Fin2hij:(funi↦i)⟨0,⋯⟩≠j⊢ (⟨0,⋯⟩)∩![{n|Evenn},{n|Oddn}]j).Finiterefine_2.«1»j:Fin2hij:(funi↦i)⟨1,⋯⟩≠j⊢ (⟨1,⋯⟩)∩![{n|Evenn},{n|Oddn}]j).Finite<;>refine_2.«0»j:Fin2hij:(funi↦i)⟨0,⋯⟩≠j⊢ (⟨0,⋯⟩)∩![{n|Evenn},{n|Oddn}]j).Finiterefine_2.«1»j:Fin2hij:(funi↦i)⟨1,⋯⟩≠j⊢ (⟨1,⋯⟩)∩![{n|Evenn},{n|Oddn}]j).Finitefin_casesjrefine_2.«1».«0»hij:(funi↦i)⟨1,⋯⟩≠(funi↦i)⟨0,⋯⟩⊢ (⟨1,⋯⟩)∩⟨0,⋯⟩)).Finiterefine_2.«1».«1»hij:(funi↦i)⟨1,⋯⟩≠(funi↦i)⟨1,⋯⟩⊢ (⟨1,⋯⟩)∩⟨1,⋯⟩)).Finiteall_goalsfirst|exactabsurdrflhijAll goals completed! 🐙|skiprefine_2.«1».«0»hij:(funi↦i)⟨1,⋯⟩≠(funi↦i)⟨0,⋯⟩⊢ (⟨1,⋯⟩)∩⟨0,⋯⟩)).Finite·refine_2.«0».«1»hij:(funi↦i)⟨0,⋯⟩≠(funi↦i)⟨1,⋯⟩⊢ (⟨0,⋯⟩)∩⟨1,⋯⟩)).Finiteshow({n:ℕ|Evenn}∩{n|Oddn}).Finiterefine_2.«0».«1»hij:(funi↦i)⟨0,⋯⟩≠(funi↦i)⟨1,⋯⟩⊢ ({n|Evenn}∩{n|Oddn}).Finiterw[evens_inter_odds_emptyrefine_2.«0».«1»hij:(funi↦i)⟨0,⋯⟩≠(funi↦i)⟨1,⋯⟩⊢ ∅.Finiterefine_2.«0».«1»hij:(funi↦i)⟨0,⋯⟩≠(funi↦i)⟨1,⋯⟩⊢ ∅.Finite]refine_2.«0».«1»hij:(funi↦i)⟨0,⋯⟩≠(funi↦i)⟨1,⋯⟩⊢ ∅.Finite;exactSet.finite_emptyAll goals completed! 🐙·refine_2.«1».«0»hij:(funi↦i)⟨1,⋯⟩≠(funi↦i)⟨0,⋯⟩⊢ (⟨1,⋯⟩)∩⟨0,⋯⟩)).Finiteshow({n:ℕ|Oddn}∩{n|Evenn}).Finiterefine_2.«1».«0»hij:(funi↦i)⟨1,⋯⟩≠(funi↦i)⟨0,⋯⟩⊢ ({n|Oddn}∩{n|Evenn}).Finiterw[Set.inter_comm,refine_2.«1».«0»hij:(funi↦i)⟨1,⋯⟩≠(funi↦i)⟨0,⋯⟩⊢ ({n|Evenn}∩{n|Oddn}).Finiterefine_2.«1».«0»hij:(funi↦i)⟨1,⋯⟩≠(funi↦i)⟨0,⋯⟩⊢ ∅.Finiteevens_inter_odds_emptyrefine_2.«1».«0»hij:(funi↦i)⟨1,⋯⟩≠(funi↦i)⟨0,⋯⟩⊢ ∅.Finiterefine_2.«1».«0»hij:(funi↦i)⟨1,⋯⟩≠(funi↦i)⟨0,⋯⟩⊢ ∅.Finite]refine_2.«1».«0»hij:(funi↦i)⟨1,⋯⟩≠(funi↦i)⟨0,⋯⟩⊢ ∅.Finite;exactSet.finite_emptyAll goals completed! 🐙·refine_3⊢ ∀(ij:Fin2),i≠j→(![{n|Evenn},{n|Oddn}]i∩![{n|Evenn},{n|Oddn}]j).ncard≠1introijhijrefine_3i:Fin2j:Fin2hij:i≠j⊢ (![{n|Evenn},{n|Oddn}]i∩![{n|Evenn},{n|Oddn}]j).ncard≠1fin_casesirefine_3.«0»j:Fin2hij:(funi↦i)⟨0,⋯⟩≠j⊢ (⟨0,⋯⟩)∩![{n|Evenn},{n|Oddn}]j).ncard≠1refine_3.«1»j:Fin2hij:(funi↦i)⟨1,⋯⟩≠j⊢ (⟨1,⋯⟩)∩![{n|Evenn},{n|Oddn}]j).ncard≠1<;>refine_3.«0»j:Fin2hij:(funi↦i)⟨0,⋯⟩≠j⊢ (⟨0,⋯⟩)∩![{n|Evenn},{n|Oddn}]j).ncard≠1refine_3.«1»j:Fin2hij:(funi↦i)⟨1,⋯⟩≠j⊢ (⟨1,⋯⟩)∩![{n|Evenn},{n|Oddn}]j).ncard≠1fin_casesjrefine_3.«1».«0»hij:(funi↦i)⟨1,⋯⟩≠(funi↦i)⟨0,⋯⟩⊢ (⟨1,⋯⟩)∩⟨0,⋯⟩)).ncard≠1refine_3.«1».«1»hij:(funi↦i)⟨1,⋯⟩≠(funi↦i)⟨1,⋯⟩⊢ (⟨1,⋯⟩)∩⟨1,⋯⟩)).ncard≠1all_goalsfirst|exactabsurdrflhijAll goals completed! 🐙|skiprefine_3.«1».«0»hij:(funi↦i)⟨1,⋯⟩≠(funi↦i)⟨0,⋯⟩⊢ (⟨1,⋯⟩)∩⟨0,⋯⟩)).ncard≠1·refine_3.«0».«1»hij:(funi↦i)⟨0,⋯⟩≠(funi↦i)⟨1,⋯⟩⊢ (⟨0,⋯⟩)∩⟨1,⋯⟩)).ncard≠1showSet.ncard({n:ℕ|Evenn}∩{n|Oddn})≠1refine_3.«0».«1»hij:(funi↦i)⟨0,⋯⟩≠(funi↦i)⟨1,⋯⟩⊢ ({n|Evenn}∩{n|Oddn}).ncard≠1rw[evens_inter_odds_empty,refine_3.«0».«1»hij:(funi↦i)⟨0,⋯⟩≠(funi↦i)⟨1,⋯⟩⊢ ∅.ncard≠1refine_3.«0».«1»hij:(funi↦i)⟨0,⋯⟩≠(funi↦i)⟨1,⋯⟩⊢ 0≠1Set.ncard_emptyrefine_3.«0».«1»hij:(funi↦i)⟨0,⋯⟩≠(funi↦i)⟨1,⋯⟩⊢ 0≠1refine_3.«0».«1»hij:(funi↦i)⟨0,⋯⟩≠(funi↦i)⟨1,⋯⟩⊢ 0≠1]refine_3.«0».«1»hij:(funi↦i)⟨0,⋯⟩≠(funi↦i)⟨1,⋯⟩⊢ 0≠1;decideAll goals completed! 🐙·refine_3.«1».«0»hij:(funi↦i)⟨1,⋯⟩≠(funi↦i)⟨0,⋯⟩⊢ (⟨1,⋯⟩)∩⟨0,⋯⟩)).ncard≠1showSet.ncard({n:ℕ|Oddn}∩{n|Evenn})≠1refine_3.«1».«0»hij:(funi↦i)⟨1,⋯⟩≠(funi↦i)⟨0,⋯⟩⊢ ({n|Oddn}∩{n|Evenn}).ncard≠1rw[Set.inter_comm,refine_3.«1».«0»hij:(funi↦i)⟨1,⋯⟩≠(funi↦i)⟨0,⋯⟩⊢ ({n|Evenn}∩{n|Oddn}).ncard≠1refine_3.«1».«0»hij:(funi↦i)⟨1,⋯⟩≠(funi↦i)⟨0,⋯⟩⊢ 0≠1evens_inter_odds_empty,refine_3.«1».«0»hij:(funi↦i)⟨1,⋯⟩≠(funi↦i)⟨0,⋯⟩⊢ ∅.ncard≠1refine_3.«1».«0»hij:(funi↦i)⟨1,⋯⟩≠(funi↦i)⟨0,⋯⟩⊢ 0≠1Set.ncard_emptyrefine_3.«1».«0»hij:(funi↦i)⟨1,⋯⟩≠(funi↦i)⟨0,⋯⟩⊢ 0≠1refine_3.«1».«0»hij:(funi↦i)⟨1,⋯⟩≠(funi↦i)⟨0,⋯⟩⊢ 0≠1]refine_3.«1».«0»hij:(funi↦i)⟨1,⋯⟩≠(funi↦i)⟨0,⋯⟩⊢ 0≠1;decideAll goals completed! 🐙/-- The evens/odds family on ℕ has Property B, witnessed by the colouring
`f(n) = 1` if `n ∈ {1, 2}`, else `f(n) = 0`. Concretely:
`f(0) = 0 ≠ 1 = f(2)` shows evens are not monochromatic, and
`f(1) = 1 ≠ 0 = f(3)` shows odds are not monochromatic. -/@[categorytest,AMS35]example:HasPropertyB(Fin2)(![{n:ℕ|Evenn},{n|Oddn}]:Fin2→Setℕ):=by⊢ HasPropertyB(Fin2)![{n|Evenn},{n|Oddn}]classicalrefine⟨funn=>ifn=2∨n=1then1else0,funihMono=>?_⟩i:Fin2hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(![{n|Evenn},{n|Oddn}]i)⊢ Falsefin_casesi«0»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))⊢ False«1»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))⊢ False·«0»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))⊢ False-- A 0 = evens: f(0) = 0 ≠ 1 = f(2)haveh0:(funn:ℕ=>ifn=2∨n=1then(1:Fin2)else0)0=0:=by⊢ HasPropertyB(Fin2)![{n|Evenn},{n|Oddn}]«0»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0⊢ Falsedecide«0»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0⊢ False«0»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0⊢ Falsehaveh2:(funn:ℕ=>ifn=2∨n=1then(1:Fin2)else0)2=1:=by⊢ HasPropertyB(Fin2)![{n|Evenn},{n|Oddn}]«0»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0h2:(funn↦ifn=2∨n=1then1else0)2=1⊢ Falsedecide«0»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0h2:(funn↦ifn=2∨n=1then1else0)2=1⊢ False«0»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0h2:(funn↦ifn=2∨n=1then1else0)2=1⊢ Falsehavehmem0:(0:ℕ)∈(![{n:ℕ|Evenn},{n|Oddn}]:Fin2→Setℕ)0:=by⊢ HasPropertyB(Fin2)![{n|Evenn},{n|Oddn}]«0»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0h2:(funn↦ifn=2∨n=1then1else0)2=1hmem0:0∈![{n|Evenn},{n|Oddn}]0⊢ Falsesimponly[Matrix.cons_val_zero,Set.mem_ofPred_eq]hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0h2:(funn↦ifn=2∨n=1then1else0)2=1⊢ Even0«0»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0h2:(funn↦ifn=2∨n=1then1else0)2=1hmem0:0∈![{n|Evenn},{n|Oddn}]0⊢ False;exact⟨0,byhMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0h2:(funn↦ifn=2∨n=1then1else0)2=1⊢ 0=0+0«0»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0h2:(funn↦ifn=2∨n=1then1else0)2=1hmem0:0∈![{n|Evenn},{n|Oddn}]0⊢ FalseringAll goals completed! 🐙«0»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0h2:(funn↦ifn=2∨n=1then1else0)2=1hmem0:0∈![{n|Evenn},{n|Oddn}]0⊢ False⟩«0»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0h2:(funn↦ifn=2∨n=1then1else0)2=1hmem0:0∈![{n|Evenn},{n|Oddn}]0⊢ Falsehavehmem2:(2:ℕ)∈(![{n:ℕ|Evenn},{n|Oddn}]:Fin2→Setℕ)0:=by⊢ HasPropertyB(Fin2)![{n|Evenn},{n|Oddn}]«0»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0h2:(funn↦ifn=2∨n=1then1else0)2=1hmem0:0∈![{n|Evenn},{n|Oddn}]0hmem2:2∈![{n|Evenn},{n|Oddn}]0⊢ Falsesimponly[Matrix.cons_val_zero,Set.mem_ofPred_eq]hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0h2:(funn↦ifn=2∨n=1then1else0)2=1hmem0:0∈![{n|Evenn},{n|Oddn}]0⊢ Even2«0»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0h2:(funn↦ifn=2∨n=1then1else0)2=1hmem0:0∈![{n|Evenn},{n|Oddn}]0hmem2:2∈![{n|Evenn},{n|Oddn}]0⊢ False;exact⟨1,byhMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0h2:(funn↦ifn=2∨n=1then1else0)2=1hmem0:0∈![{n|Evenn},{n|Oddn}]0⊢ 2=1+1«0»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0h2:(funn↦ifn=2∨n=1then1else0)2=1hmem0:0∈![{n|Evenn},{n|Oddn}]0hmem2:2∈![{n|Evenn},{n|Oddn}]0⊢ FalseringAll goals completed! 🐙«0»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0h2:(funn↦ifn=2∨n=1then1else0)2=1hmem0:0∈![{n|Evenn},{n|Oddn}]0hmem2:2∈![{n|Evenn},{n|Oddn}]0⊢ False⟩«0»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0h2:(funn↦ifn=2∨n=1then1else0)2=1hmem0:0∈![{n|Evenn},{n|Oddn}]0hmem2:2∈![{n|Evenn},{n|Oddn}]0⊢ Falsehave:=hMono0hmem02hmem2«0»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0h2:(funn↦ifn=2∨n=1then1else0)2=1hmem0:0∈![{n|Evenn},{n|Oddn}]0hmem2:2∈![{n|Evenn},{n|Oddn}]0this:(funn↦ifn=2∨n=1then1else0)0=(funn↦ifn=2∨n=1then1else0)2⊢ Falserw[h0,«0»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0h2:(funn↦ifn=2∨n=1then1else0)2=1hmem0:0∈![{n|Evenn},{n|Oddn}]0hmem2:2∈![{n|Evenn},{n|Oddn}]0this:0=(funn↦ifn=2∨n=1then1else0)2⊢ False«0»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0h2:(funn↦ifn=2∨n=1then1else0)2=1hmem0:0∈![{n|Evenn},{n|Oddn}]0hmem2:2∈![{n|Evenn},{n|Oddn}]0this:0=1⊢ Falseh2«0»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0h2:(funn↦ifn=2∨n=1then1else0)2=1hmem0:0∈![{n|Evenn},{n|Oddn}]0hmem2:2∈![{n|Evenn},{n|Oddn}]0this:0=1⊢ False«0»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0h2:(funn↦ifn=2∨n=1then1else0)2=1hmem0:0∈![{n|Evenn},{n|Oddn}]0hmem2:2∈![{n|Evenn},{n|Oddn}]0this:0=1⊢ False]atthis«0»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0h2:(funn↦ifn=2∨n=1then1else0)2=1hmem0:0∈![{n|Evenn},{n|Oddn}]0hmem2:2∈![{n|Evenn},{n|Oddn}]0this:0=1⊢ False;exactabsurdthis(byhMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨0,⋯⟩))h0:(funn↦ifn=2∨n=1then1else0)0=0h2:(funn↦ifn=2∨n=1then1else0)2=1hmem0:0∈![{n|Evenn},{n|Oddn}]0hmem2:2∈![{n|Evenn},{n|Oddn}]0this:0=1⊢ ¬0=1decideAll goals completed! 🐙)·«1»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))⊢ False-- A 1 = odds: f(1) = 1 ≠ 0 = f(3)haveh1:(funn:ℕ=>ifn=2∨n=1then(1:Fin2)else0)1=1:=by⊢ HasPropertyB(Fin2)![{n|Evenn},{n|Oddn}]«1»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1⊢ Falsedecide«1»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1⊢ False«1»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1⊢ Falsehaveh3:(funn:ℕ=>ifn=2∨n=1then(1:Fin2)else0)3=0:=by⊢ HasPropertyB(Fin2)![{n|Evenn},{n|Oddn}]«1»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1h3:(funn↦ifn=2∨n=1then1else0)3=0⊢ Falsedecide«1»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1h3:(funn↦ifn=2∨n=1then1else0)3=0⊢ False«1»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1h3:(funn↦ifn=2∨n=1then1else0)3=0⊢ Falsehavehmem1:(1:ℕ)∈(![{n:ℕ|Evenn},{n|Oddn}]:Fin2→Setℕ)1:=by⊢ HasPropertyB(Fin2)![{n|Evenn},{n|Oddn}]«1»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1h3:(funn↦ifn=2∨n=1then1else0)3=0hmem1:1∈![{n|Evenn},{n|Oddn}]1⊢ Falsesimponly[Matrix.cons_val_one]hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1h3:(funn↦ifn=2∨n=1then1else0)3=0⊢ 1∈![{n|Oddn}]0«1»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1h3:(funn↦ifn=2∨n=1then1else0)3=0hmem1:1∈![{n|Evenn},{n|Oddn}]1⊢ False;exact⟨0,byhMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1h3:(funn↦ifn=2∨n=1then1else0)3=0⊢ 1=2*0+1«1»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1h3:(funn↦ifn=2∨n=1then1else0)3=0hmem1:1∈![{n|Evenn},{n|Oddn}]1⊢ FalseringAll goals completed! 🐙«1»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1h3:(funn↦ifn=2∨n=1then1else0)3=0hmem1:1∈![{n|Evenn},{n|Oddn}]1⊢ False⟩«1»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1h3:(funn↦ifn=2∨n=1then1else0)3=0hmem1:1∈![{n|Evenn},{n|Oddn}]1⊢ Falsehavehmem3:(3:ℕ)∈(![{n:ℕ|Evenn},{n|Oddn}]:Fin2→Setℕ)1:=by⊢ HasPropertyB(Fin2)![{n|Evenn},{n|Oddn}]«1»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1h3:(funn↦ifn=2∨n=1then1else0)3=0hmem1:1∈![{n|Evenn},{n|Oddn}]1hmem3:3∈![{n|Evenn},{n|Oddn}]1⊢ Falsesimponly[Matrix.cons_val_one]hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1h3:(funn↦ifn=2∨n=1then1else0)3=0hmem1:1∈![{n|Evenn},{n|Oddn}]1⊢ 3∈![{n|Oddn}]0«1»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1h3:(funn↦ifn=2∨n=1then1else0)3=0hmem1:1∈![{n|Evenn},{n|Oddn}]1hmem3:3∈![{n|Evenn},{n|Oddn}]1⊢ False;exact⟨1,byhMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1h3:(funn↦ifn=2∨n=1then1else0)3=0hmem1:1∈![{n|Evenn},{n|Oddn}]1⊢ 3=2*1+1«1»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1h3:(funn↦ifn=2∨n=1then1else0)3=0hmem1:1∈![{n|Evenn},{n|Oddn}]1hmem3:3∈![{n|Evenn},{n|Oddn}]1⊢ FalseringAll goals completed! 🐙«1»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1h3:(funn↦ifn=2∨n=1then1else0)3=0hmem1:1∈![{n|Evenn},{n|Oddn}]1hmem3:3∈![{n|Evenn},{n|Oddn}]1⊢ False⟩«1»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1h3:(funn↦ifn=2∨n=1then1else0)3=0hmem1:1∈![{n|Evenn},{n|Oddn}]1hmem3:3∈![{n|Evenn},{n|Oddn}]1⊢ Falsehave:=hMono1hmem13hmem3«1»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1h3:(funn↦ifn=2∨n=1then1else0)3=0hmem1:1∈![{n|Evenn},{n|Oddn}]1hmem3:3∈![{n|Evenn},{n|Oddn}]1this:(funn↦ifn=2∨n=1then1else0)1=(funn↦ifn=2∨n=1then1else0)3⊢ Falserw[h1,«1»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1h3:(funn↦ifn=2∨n=1then1else0)3=0hmem1:1∈![{n|Evenn},{n|Oddn}]1hmem3:3∈![{n|Evenn},{n|Oddn}]1this:1=(funn↦ifn=2∨n=1then1else0)3⊢ False«1»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1h3:(funn↦ifn=2∨n=1then1else0)3=0hmem1:1∈![{n|Evenn},{n|Oddn}]1hmem3:3∈![{n|Evenn},{n|Oddn}]1this:1=0⊢ Falseh3«1»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1h3:(funn↦ifn=2∨n=1then1else0)3=0hmem1:1∈![{n|Evenn},{n|Oddn}]1hmem3:3∈![{n|Evenn},{n|Oddn}]1this:1=0⊢ False«1»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1h3:(funn↦ifn=2∨n=1then1else0)3=0hmem1:1∈![{n|Evenn},{n|Oddn}]1hmem3:3∈![{n|Evenn},{n|Oddn}]1this:1=0⊢ False]atthis«1»hMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1h3:(funn↦ifn=2∨n=1then1else0)3=0hmem1:1∈![{n|Evenn},{n|Oddn}]1hmem3:3∈![{n|Evenn},{n|Oddn}]1this:1=0⊢ False;exactabsurdthis(byhMono:IsMonochromatic(funn↦ifn=2∨n=1then1else0)(⟨1,⋯⟩))h1:(funn↦ifn=2∨n=1then1else0)1=1h3:(funn↦ifn=2∨n=1then1else0)3=0hmem1:1∈![{n|Evenn},{n|Oddn}]1hmem3:3∈![{n|Evenn},{n|Oddn}]1this:1=0⊢ ¬1=0decideAll goals completed! 🐙)/-- The intersection `{0, 2, 4, …} ∩ {0, 1, 3, 5, …} = {0}` has size 1, showing
the hypothesis `Set.ncard (A i ∩ A j) ≠ 1` correctly excludes this family.
This confirms the boundary condition is faithfully encoded. -/@[categorytest,AMS35]example:Set.ncard({n:ℕ|Evenn}∩{n:ℕ|n=0∨Oddn})=1:=by⊢ ({n|Evenn}∩{n|n=0∨Oddn}).ncard=1haveheq:{n:ℕ|Evenn}∩{n:ℕ|n=0∨Oddn}={0}:=byextxx:ℕ⊢ x∈{n|Evenn}∩{n|n=0∨Oddn}↔x∈{0}heq:{n|Evenn}∩{n|n=0∨Oddn}={0}⊢ ({n|Evenn}∩{n|n=0∨Oddn}).ncard=1simponly[Set.mem_inter_iff,Set.mem_ofPred_eq,Set.mem_singleton_iff]x:ℕ⊢ Evenx∧(x=0∨Oddx)↔x=0heq:{n|Evenn}∩{n|n=0∨Oddn}={0}⊢ ({n|Evenn}∩{n|n=0∨Oddn}).ncard=1constructormpx:ℕ⊢ Evenx∧(x=0∨Oddx)→x=0mprx:ℕ⊢ x=0→Evenx∧(x=0∨Oddx)heq:{n|Evenn}∩{n|n=0∨Oddn}={0}⊢ ({n|Evenn}∩{n|n=0∨Oddn}).ncard=1·mpx:ℕ⊢ Evenx∧(x=0∨Oddx)→x=0heq:{n|Evenn}∩{n|n=0∨Oddn}={0}⊢ ({n|Evenn}∩{n|n=0∨Oddn}).ncard=1rintro⟨⟨k,hk⟩,rfl|⟨m,hm⟩⟩mp.inlk:ℕhk:0=k+k⊢ 0=0mp.inrx:ℕk:ℕhk:x=k+km:ℕhm:x=2*m+1⊢ x=0heq:{n|Evenn}∩{n|n=0∨Oddn}={0}⊢ ({n|Evenn}∩{n|n=0∨Oddn}).ncard=1<;>mp.inlk:ℕhk:0=k+k⊢ 0=0mp.inrx:ℕk:ℕhk:x=k+km:ℕhm:x=2*m+1⊢ x=0heq:{n|Evenn}∩{n|n=0∨Oddn}={0}⊢ ({n|Evenn}∩{n|n=0∨Oddn}).ncard=1omegaAll goals completed! 🐙heq:{n|Evenn}∩{n|n=0∨Oddn}={0}⊢ ({n|Evenn}∩{n|n=0∨Oddn}).ncard=1·mprx:ℕ⊢ x=0→Evenx∧(x=0∨Oddx)heq:{n|Evenn}∩{n|n=0∨Oddn}={0}⊢ ({n|Evenn}∩{n|n=0∨Oddn}).ncard=1rintrorflmpr⊢ Even0∧(0=0∨Odd0)heq:{n|Evenn}∩{n|n=0∨Oddn}={0}⊢ ({n|Evenn}∩{n|n=0∨Oddn}).ncard=1;exact⟨⟨0,by⊢ 0=0+0heq:{n|Evenn}∩{n|n=0∨Oddn}={0}⊢ ({n|Evenn}∩{n|n=0∨Oddn}).ncard=1ringAll goals completed! 🐙heq:{n|Evenn}∩{n|n=0∨Oddn}={0}⊢ ({n|Evenn}∩{n|n=0∨Oddn}).ncard=1⟩,Or.inlrfl⟩heq:{n|Evenn}∩{n|n=0∨Oddn}={0}⊢ ({n|Evenn}∩{n|n=0∨Oddn}).ncard=1rw[heq,heq:{n|Evenn}∩{n|n=0∨Oddn}={0}⊢ {0}.ncard=1All goals completed! 🐙Set.ncard_singletonheq:{n|Evenn}∩{n|n=0∨Oddn}={0}⊢ 1=1All goals completed! 🐙]All goals completed! 🐙
A natural but FALSE relaxation of erdos_602.variants.disjoint: drop the
hypothesis that each A i is infinite. The original disjoint variant requires
(∀ i, (A i).Infinite). Without it, the claim is false.
Formal disproof of disjoint_without_infinite_claim.
Counterexample: Take α = ℕ, I = Fin 2, with A 0 = {0} and A 1 = {1}.
These are pairwise disjoint, satisfying the only hypothesis. But singleton sets
are vacuously monochromatic under any colouring: the only pair (x, y) ∈ {0} × {0}
is (0, 0), and f 0 = f 0 trivially. So any colouring makes A 0 monochromatic,
meaning HasPropertyB fails.