/-
Copyright 2025 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.
-/
import FormalConjecturesUtilUnion-closed sets conjecture
Reference: Wikipedia
In this file, we:
state the conjecture
state three solved variants of the conjecture, without proof
prove two solved variants of the conjecture
prove the conjecture is sharp
open Finsetvariable {n : Type*} [DecidableEq n] {A : Finset (Finset n)}namespace UnionClosedabbrev IsUnionClosed (A : Finset (Finset n)) : Prop :=
∀ᵉ (X ∈ A) (Y ∈ A), X ∪ Y ∈ A@[category API, AMS 5]
lemma isUnionClosed_univ (n : Type*) [DecidableEq n] [Fintype n] :
IsUnionClosed (univ (α := Finset n)) := n:Type u_2inst✝¹:DecidableEq ninst✝:Fintype n⊢ IsUnionClosed univ
All goals completed! 🐙n:Type u_1inst✝:DecidableEq nS:Finset nX:Finset nhX:X ⊆ SY:Finset nhY:Y ⊆ S⊢ X ∪ Y ⊆ S
exact union_subset hX hY All goals completed! 🐙For every finite union-closed family of sets, other than the family containing only the empty set, there exists an element that belongs to at least half of the sets in the family.
@[category research open, AMS 5]
theorem union_closed
[Nonempty n]
(h_ne_singleton_empty : A ≠ {∅})
(h_union_closed : IsUnionClosed A) :
∃ i : n, (1 / 2 : ℚ) * #A ≤ #{x ∈ A | i ∈ x} := by n:Type u_1inst✝¹:DecidableEq nA:Finset (Finset n)inst✝:Nonempty nh_ne_singleton_empty:A ≠ {∅}h_union_closed:IsUnionClosed A⊢ ∃ i, 1 / 2 * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))
sorry All goals completed! 🐙Yu [Yu23] showed that the union-closed sets conjecture holds with a constant of approximately 0.38234 instead of 1/2. [Yu23] Yu, Lei (2023). "Dimension-free bounds for the union-closed sets conjecture". Entropy. 25 (5): 767.
@[category research solved, AMS 5]
theorem union_closed.variants.yu
[Nonempty n]
(h_ne_singleton_empty : A ≠ {∅})
(h_union_closed : IsUnionClosed A) :
∃ i : n, (0.38234 : ℚ) * #A ≤ #{x ∈ A | i ∈ x} := by n:Type u_1inst✝¹:DecidableEq nA:Finset (Finset n)inst✝:Nonempty nh_ne_singleton_empty:A ≠ {∅}h_union_closed:IsUnionClosed A⊢ ∃ i, 0.38234 * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))
sorry All goals completed! 🐙Vuckovic and Zivkovic [Vu17] showed that the union-closed sets conjecture holds for set families whose universal set has cardinality at most 12. [Vu17] Vuckovic, Bojan; Zivkovic, Miodrag (2017). "The 12-Element Case of Frankl's Conjecture" (PDF). IPSI BGD Transactions on Internet Research. 13 (1): 65.
@[category research solved, AMS 5]
theorem union_closed.variants.univ_card
[Fintype n] [Nonempty n]
(h_ne_singleton_empty : A ≠ {∅})
(h_union_closed : IsUnionClosed A)
(h_card : Fintype.card n ≤ 12) :
∃ i : n, (1 / 2 : ℚ) * #A ≤ #{x ∈ A | i ∈ x} := by n:Type u_1inst✝²:DecidableEq nA:Finset (Finset n)inst✝¹:Fintype ninst✝:Nonempty nh_ne_singleton_empty:A ≠ {∅}h_union_closed:IsUnionClosed Ah_card:Fintype.card n ≤ 12⊢ ∃ i, 1 / 2 * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))
sorry All goals completed! 🐙
Roberts and Simpson [Ro10] showed that the union-closed sets conjecture holds for set families of
size at most 46.
Their method, however, combined with the result of [Vu17], further shows that it holds for #A ≤ 50
as well.
[Ro10] Roberts, Ian; Simpson, Jamie (2010). "A note on the union-closed sets conjecture" (PDF). Australas. J. Combin. 47: 265–267.
[Vu17] Vuckovic, Bojan; Zivkovic, Miodrag (2017). "The 12-Element Case of Frankl's Conjecture" (PDF). IPSI BGD Transactions on Internet Research. 13 (1): 65.
@[category research solved, AMS 5]
theorem union_closed.variants.family_card
[Nonempty n]
(h_ne_singleton_empty : A ≠ {∅})
(h_union_closed : IsUnionClosed A)
(hA : #A ≤ 50) :
∃ i : n, (1 / 2 : ℚ) * #A ≤ #{x ∈ A | i ∈ x} := by n:Type u_1inst✝¹:DecidableEq nA:Finset (Finset n)inst✝:Nonempty nh_ne_singleton_empty:A ≠ {∅}h_union_closed:IsUnionClosed AhA:#A ≤ 50⊢ ∃ i, 1 / 2 * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))
sorry All goals completed! 🐙We can show the union-closed sets conjecture is true for the case where the universal set has cardinality 2, by brute force.
@[category research solved, AMS 5]
theorem union_closed.variants.univ_card_two (A : Finset (Finset (Fin 2)))
(h_ne_singleton_empty : A ≠ {∅})
(h_union_closed : IsUnionClosed A) :
∃ i, (1 / 2 : ℚ) * #A ≤ #{x ∈ A | i ∈ x} := by A:Finset (Finset (Fin 2))h_ne_singleton_empty:A ≠ {∅}h_union_closed:IsUnionClosed A⊢ ∃ i, 1 / 2 * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))
decide +revert +kernel All goals completed! 🐙We can show the union-closed sets conjecture is true for the case where the set family contains some singleton.
@[category research solved, AMS 5]
theorem union_closed.variants.singleton_mem
(h_union_closed : IsUnionClosed A)
(i : n) (hi : {i} ∈ A) :
∃ i, (1 / 2 : ℚ) * #A ≤ #{x ∈ A | i ∈ x} := by n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ A⊢ ∃ i, 1 / 2 * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))
use i h n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ A⊢ 1 / 2 * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))
set B : Finset (Finset n) := {x ∈ A | i ∉ x} h n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}⊢ 1 / 2 * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))
set C : Finset (Finset n) := {x ∈ A | i ∈ x} h n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}⊢ 1 / 2 * ↑(#A) ≤ ↑(#C)
have h₁ : (B : Set <| Finset n).InjOn (insert i) := by n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ A⊢ ∃ i, 1 / 2 * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x})) h n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑B⊢ 1 / 2 * ↑(#A) ≤ ↑(#C)
simp only [Set.InjOn, coe_filter, Set.mem_ofPred_eq, and_imp, B] n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}⊢ ∀ ⦃x₁ : Finset n⦄, x₁ ∈ A → i ∉ x₁ → ∀ ⦃x₂ : Finset n⦄, x₂ ∈ A → i ∉ x₂ → insert i x₁ = insert i x₂ → x₁ = x₂ h n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑B⊢ 1 / 2 * ↑(#A) ≤ ↑(#C)
rintro x - hx y - hy hxy n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}x:Finset nhx:i ∉ xy:Finset nhy:i ∉ yhxy:insert i x = insert i y⊢ x = yh n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑B⊢ 1 / 2 * ↑(#A) ≤ ↑(#C)
have := congr(($hxy).erase i) n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}x:Finset nhx:i ∉ xy:Finset nhy:i ∉ yhxy:insert i x = insert i ythis:(insert i x).erase i = (insert i y).erase i⊢ x = yh n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑B⊢ 1 / 2 * ↑(#A) ≤ ↑(#C)
rwa [erase_insert hx, n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}x:Finset nhx:i ∉ xy:Finset nhy:i ∉ yhxy:insert i x = insert i ythis:x = (insert i y).erase i⊢ x = yh n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑B⊢ 1 / 2 * ↑(#A) ≤ ↑(#C) erase_insert hy n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}x:Finset nhx:i ∉ xy:Finset nhy:i ∉ yhxy:insert i x = insert i ythis:x = y⊢ x = yh n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑B⊢ 1 / 2 * ↑(#A) ≤ ↑(#C)] n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}x:Finset nhx:i ∉ xy:Finset nhy:i ∉ yhxy:insert i x = insert i ythis:x = y⊢ x = yh n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑B⊢ 1 / 2 * ↑(#A) ≤ ↑(#C) at thish n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑B⊢ 1 / 2 * ↑(#A) ≤ ↑(#C)
have h₂ : (B : Set <| Finset n).MapsTo (insert i) C := by n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ A⊢ ∃ i, 1 / 2 * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x})) h n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑Bh₂:Set.MapsTo (insert i) ↑B ↑C⊢ 1 / 2 * ↑(#A) ≤ ↑(#C)
simp only [Set.MapsTo, coe_filter, Set.mem_ofPred_eq, mem_insert, true_or, and_true,
and_imp, B, C] n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑B⊢ ∀ ⦃x : Finset n⦄, x ∈ A → i ∉ x → insert i x ∈ Ah n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑Bh₂:Set.MapsTo (insert i) ↑B ↑C⊢ 1 / 2 * ↑(#A) ≤ ↑(#C)
intro x hx hix n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑Bx:Finset nhx:x ∈ Ahix:i ∉ x⊢ insert i x ∈ Ah n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑Bh₂:Set.MapsTo (insert i) ↑B ↑C⊢ 1 / 2 * ↑(#A) ≤ ↑(#C)
rw [Finset.insert_eq n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑Bx:Finset nhx:x ∈ Ahix:i ∉ x⊢ {i} ∪ x ∈ A n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑Bx:Finset nhx:x ∈ Ahix:i ∉ x⊢ {i} ∪ x ∈ Ah n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑Bh₂:Set.MapsTo (insert i) ↑B ↑C⊢ 1 / 2 * ↑(#A) ≤ ↑(#C)] n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑Bx:Finset nhx:x ∈ Ahix:i ∉ x⊢ {i} ∪ x ∈ Ah n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑Bh₂:Set.MapsTo (insert i) ↑B ↑C⊢ 1 / 2 * ↑(#A) ≤ ↑(#C)
exact h_union_closed _ hi _ hxh n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑Bh₂:Set.MapsTo (insert i) ↑B ↑C⊢ 1 / 2 * ↑(#A) ≤ ↑(#C)h n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑Bh₂:Set.MapsTo (insert i) ↑B ↑C⊢ 1 / 2 * ↑(#A) ≤ ↑(#C)
have h₃ : #B ≤ #C := Finset.card_le_card_of_injOn _ h₂ h₁ h n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑Bh₂:Set.MapsTo (insert i) ↑B ↑Ch₃:#B ≤ #C⊢ 1 / 2 * ↑(#A) ≤ ↑(#C)
have h₄ : #C + #B = #A := by n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ A⊢ ∃ i, 1 / 2 * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x})) h n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑Bh₂:Set.MapsTo (insert i) ↑B ↑Ch₃:#B ≤ #Ch₄:#C + #B = #A⊢ 1 / 2 * ↑(#A) ≤ ↑(#C) rw [card_filter_add_card_filter_not n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑Bh₂:Set.MapsTo (insert i) ↑B ↑Ch₃:#B ≤ #C⊢ #A = #Ah n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑Bh₂:Set.MapsTo (insert i) ↑B ↑Ch₃:#B ≤ #Ch₄:#C + #B = #A⊢ 1 / 2 * ↑(#A) ≤ ↑(#C)]h n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑Bh₂:Set.MapsTo (insert i) ↑B ↑Ch₃:#B ≤ #Ch₄:#C + #B = #A⊢ 1 / 2 * ↑(#A) ≤ ↑(#C)h n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑Bh₂:Set.MapsTo (insert i) ↑B ↑Ch₃:#B ≤ #Ch₄:#C + #B = #A⊢ 1 / 2 * ↑(#A) ≤ ↑(#C)
have : #A ≤ 2 * #C := by n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ A⊢ ∃ i, 1 / 2 * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x})) h n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑Bh₂:Set.MapsTo (insert i) ↑B ↑Ch₃:#B ≤ #Ch₄:#C + #B = #Athis:#A ≤ 2 * #C⊢ 1 / 2 * ↑(#A) ≤ ↑(#C) omegah n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑Bh₂:Set.MapsTo (insert i) ↑B ↑Ch₃:#B ≤ #Ch₄:#C + #B = #Athis:#A ≤ 2 * #C⊢ 1 / 2 * ↑(#A) ≤ ↑(#C)h n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑Bh₂:Set.MapsTo (insert i) ↑B ↑Ch₃:#B ≤ #Ch₄:#C + #B = #Athis:#A ≤ 2 * #C⊢ 1 / 2 * ↑(#A) ≤ ↑(#C)
cancel_denoms h n:Type u_1inst✝:DecidableEq nA:Finset (Finset n)h_union_closed:IsUnionClosed Ai:nhi:{i} ∈ AB:Finset (Finset n) := {x ∈ A | i ∉ x}C:Finset (Finset n) := {x ∈ A | i ∈ x}h₁:Set.InjOn (insert i) ↑Bh₂:Set.MapsTo (insert i) ↑B ↑Ch₃:#B ≤ #Ch₄:#C + #B = #Athis:#A ≤ 2 * #C⊢ ↑(#A) ≤ 2 * ↑(#C)
norm_cast All goals completed! 🐙
The union-closed sets conjecture is sharp in the sense that if we replace the constant 1/2 with
any larger constant, then the conjecture fails.
@[category research solved, AMS 5]
theorem union_closed.variants.sharpness [Fintype n] (c : ℝ) (hc : 1 / 2 < c) :
¬ (∀ A : Finset (Finset n), A ≠ {∅} → IsUnionClosed A →
∃ i : n, c * #A ≤ #{x ∈ A | i ∈ x}) := by n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < c⊢ ¬∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))
intro h n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))⊢ False
-- We can safely assume `n` is nonempty.
obtain hn | hn := isEmpty_or_nonempty n inl n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:IsEmpty n⊢ Falseinr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:Nonempty n⊢ False
· inl n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:IsEmpty n⊢ False specialize h ∅ inl n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∅ ≠ {∅} → IsUnionClosed ∅ → ∃ i, c * ↑(#∅) ≤ ↑(#({x ∈ ∅ | i ∈ x}))hn:IsEmpty n⊢ False
simp only [ne_eq, card_empty, CharP.cast_eq_zero, mul_zero, filter_empty, le_refl,
IsEmpty.exists_iff, imp_false, not_forall, notMem_empty, exists_const, Decidable.not_not] at h inl n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < chn:IsEmpty nh:∅ = {∅}⊢ False
have : ∅ ∈ (∅ : Finset (Finset n)) := by n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < c⊢ ¬∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x})) inl n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < chn:IsEmpty nh:∅ = {∅}this:∅ ∈ ∅⊢ False simp [h] inl n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < chn:IsEmpty nh:∅ = {∅}this:∅ ∈ ∅⊢ Falseinl n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < chn:IsEmpty nh:∅ = {∅}this:∅ ∈ ∅⊢ False
simp at this All goals completed! 🐙
-- Use A as the set of all subsets of `n`, which is not singleton empty and is union-closed.
let A : Finset (Finset n) := univ inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:Nonempty nA:Finset (Finset n) := univ⊢ False
have h_ne_singleton_empty : A ≠ {∅} := by n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < c⊢ ¬∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x})) inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}⊢ False
have : #A = 2 ^ Fintype.card n := by n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < c⊢ ¬∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x})) n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:Nonempty nA:Finset (Finset n) := univthis:#A = 2 ^ Fintype.card n⊢ A ≠ {∅}inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}⊢ False simp [A] n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:Nonempty nA:Finset (Finset n) := univthis:#A = 2 ^ Fintype.card n⊢ A ≠ {∅}inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}⊢ False n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:Nonempty nA:Finset (Finset n) := univthis:#A = 2 ^ Fintype.card n⊢ A ≠ {∅}inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}⊢ False
have : 1 < #A := by n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < c⊢ ¬∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x})) n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:Nonempty nA:Finset (Finset n) := univthis✝:#A = 2 ^ Fintype.card nthis:1 < #A⊢ A ≠ {∅}inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}⊢ False simp [this] n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:Nonempty nA:Finset (Finset n) := univthis✝:#A = 2 ^ Fintype.card nthis:1 < #A⊢ A ≠ {∅}inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}⊢ False n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:Nonempty nA:Finset (Finset n) := univthis✝:#A = 2 ^ Fintype.card nthis:1 < #A⊢ A ≠ {∅}inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}⊢ False
intro h n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch✝:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:Nonempty nA:Finset (Finset n) := univthis✝:#A = 2 ^ Fintype.card nthis:1 < #Ah:A = {∅}⊢ Falseinr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}⊢ False
simp [h] at thisinr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}⊢ Falseinr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}⊢ False
obtain ⟨i, hi⟩ := h univ h_ne_singleton_empty (isUnionClosed_univ n) inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})⊢ False
have hn : 1 ≤ Fintype.card n := by n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < c⊢ ¬∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x})) inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card n⊢ False
rw [Nat.add_one_le_iff n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})⊢ 0 < Fintype.card n n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})⊢ 0 < Fintype.card ninr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card n⊢ False] n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})⊢ 0 < Fintype.card ninr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card n⊢ False
exact Fintype.card_posinr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card n⊢ Falseinr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card n⊢ False
-- Now the number of sets containing `i` is `2 ^ (Fintype.card n - 1)`
have : #{x : Finset n | i ∈ x} = 2 ^ (Fintype.card n - 1) := by n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < c⊢ ¬∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x})) inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False
have : ({x : Finset n | i ∈ x} : Finset _) = (univ.erase i).powerset.image (insert i) := by n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < c⊢ ¬∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x})) n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ #{x | i ∈ x} = 2 ^ (Fintype.card n - 1)inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False
ext x n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nx:Finset n⊢ x ∈ {x | i ∈ x} ↔ x ∈ image (insert i) (univ.erase i).powerset n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ #{x | i ∈ x} = 2 ^ (Fintype.card n - 1)inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False
simp only [mem_filter, mem_univ, true_and, mem_image, mem_powerset, subset_erase, subset_univ] n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nx:Finset n⊢ i ∈ x ↔ ∃ a, i ∉ a ∧ insert i a = x n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ #{x | i ∈ x} = 2 ^ (Fintype.card n - 1)inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False
constructor mp n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nx:Finset n⊢ i ∈ x → ∃ a, i ∉ a ∧ insert i a = xmpr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nx:Finset n⊢ (∃ a, i ∉ a ∧ insert i a = x) → i ∈ x n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ #{x | i ∈ x} = 2 ^ (Fintype.card n - 1)inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False
· mp n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nx:Finset n⊢ i ∈ x → ∃ a, i ∉ a ∧ insert i a = x n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ #{x | i ∈ x} = 2 ^ (Fintype.card n - 1)inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False intro h mp n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch✝:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nx:Finset nh:i ∈ x⊢ ∃ a, i ∉ a ∧ insert i a = x n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ #{x | i ∈ x} = 2 ^ (Fintype.card n - 1)inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False
use x.erase i h n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch✝:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nx:Finset nh:i ∈ x⊢ i ∉ x.erase i ∧ insert i (x.erase i) = x n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ #{x | i ∈ x} = 2 ^ (Fintype.card n - 1)inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False
simp [h] All goals completed! 🐙 n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ #{x | i ∈ x} = 2 ^ (Fintype.card n - 1)inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False
· mpr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nx:Finset n⊢ (∃ a, i ∉ a ∧ insert i a = x) → i ∈ x n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ #{x | i ∈ x} = 2 ^ (Fintype.card n - 1)inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False rintro ⟨_, _, rfl⟩ mpr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nw✝:Finset nleft✝:i ∉ w✝⊢ i ∈ insert i w✝ n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ #{x | i ∈ x} = 2 ^ (Fintype.card n - 1)inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False
simp n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ #{x | i ∈ x} = 2 ^ (Fintype.card n - 1)inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ #{x | i ∈ x} = 2 ^ (Fintype.card n - 1)inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False
rw [this, n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ #(image (insert i) (univ.erase i).powerset) = 2 ^ (Fintype.card n - 1) n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ 2 ^ #(univ.erase i) = 2 ^ (Fintype.card n - 1)n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ Set.InjOn (insert i) ↑(univ.erase i).powersetinr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False card_image_of_injOn, n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ #(univ.erase i).powerset = 2 ^ (Fintype.card n - 1)n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ Set.InjOn (insert i) ↑(univ.erase i).powerset n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ 2 ^ #(univ.erase i) = 2 ^ (Fintype.card n - 1)n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ Set.InjOn (insert i) ↑(univ.erase i).powersetinr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False card_powerset n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ 2 ^ #(univ.erase i) = 2 ^ (Fintype.card n - 1)n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ Set.InjOn (insert i) ↑(univ.erase i).powerset n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ 2 ^ #(univ.erase i) = 2 ^ (Fintype.card n - 1)n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ Set.InjOn (insert i) ↑(univ.erase i).powersetinr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False] n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ 2 ^ #(univ.erase i) = 2 ^ (Fintype.card n - 1)n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ Set.InjOn (insert i) ↑(univ.erase i).powersetinr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False
· n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerset⊢ 2 ^ #(univ.erase i) = 2 ^ (Fintype.card n - 1)inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False simp All goals completed! 🐙inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False
intro a ha b hb h n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch✝:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerseta:Finset nha:a ∈ ↑(univ.erase i).powersetb:Finset nhb:b ∈ ↑(univ.erase i).powerseth:insert i a = insert i b⊢ a = binr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False
simp only [coe_powerset, coe_erase, coe_univ, Set.mem_preimage, Set.mem_powerset_iff,
Set.subset_sdiff, Set.subset_univ, Set.disjoint_singleton_right, mem_coe, true_and] at ha hb n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch✝:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:{x | i ∈ x} = image (insert i) (univ.erase i).powerseta:Finset nb:Finset nh:insert i a = insert i bha:i ∉ ahb:i ∉ b⊢ a = binr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False
have := congr(($h).erase i) n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch✝:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis✝:{x | i ∈ x} = image (insert i) (univ.erase i).powerseta:Finset nb:Finset nh:insert i a = insert i bha:i ∉ ahb:i ∉ bthis:(insert i a).erase i = (insert i b).erase i⊢ a = binr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False
rwa [erase_insert ha, n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch✝:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis✝:{x | i ∈ x} = image (insert i) (univ.erase i).powerseta:Finset nb:Finset nh:insert i a = insert i bha:i ∉ ahb:i ∉ bthis:a = (insert i b).erase i⊢ a = binr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False erase_insert hb n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch✝:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis✝:{x | i ∈ x} = image (insert i) (univ.erase i).powerseta:Finset nb:Finset nh:insert i a = insert i bha:i ∉ ahb:i ∉ bthis:a = b⊢ a = binr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False] n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch✝:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis✝:{x | i ∈ x} = image (insert i) (univ.erase i).powerseta:Finset nb:Finset nh:insert i a = insert i bha:i ∉ ahb:i ∉ bthis:a = b⊢ a = binr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False at thisinr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhi:c * ↑(#univ) ≤ ↑(#{x | i ∈ x})hn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)⊢ False
simp only [card_univ, Fintype.card_finset, Nat.cast_pow, Nat.cast_ofNat, this] at hi inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)hi:c * 2 ^ Fintype.card n ≤ 2 ^ (Fintype.card n - 1)⊢ False
rw [pow_sub₀ _ (by n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)hi:c * 2 ^ Fintype.card n ≤ 2 ^ (Fintype.card n - 1)⊢ 2 ≠ 0 inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)hi:c * 2 ^ Fintype.card n ≤ 2 ^ Fintype.card n * (2 ^ 1)⁻¹⊢ False simp All goals completed! 🐙inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)hi:c * 2 ^ Fintype.card n ≤ 2 ^ Fintype.card n * (2 ^ 1)⁻¹⊢ False) hn] at hiinr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)hi:c * 2 ^ Fintype.card n ≤ 2 ^ Fintype.card n * (2 ^ 1)⁻¹⊢ False
-- which is a contradiction.
have : (1 / 2 : ℚ) * 2 ^ (Fintype.card n) < c * 2 ^ (Fintype.card n) := by n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < c⊢ ¬∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x})) inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhn:1 ≤ Fintype.card nthis✝:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)hi:c * 2 ^ Fintype.card n ≤ 2 ^ Fintype.card n * (2 ^ 1)⁻¹this:↑(1 / 2) * 2 ^ Fintype.card n < c * 2 ^ Fintype.card n⊢ False
gcongr hbc n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhn:1 ≤ Fintype.card nthis:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)hi:c * 2 ^ Fintype.card n ≤ 2 ^ Fintype.card n * (2 ^ 1)⁻¹⊢ ↑(1 / 2) < cinr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhn:1 ≤ Fintype.card nthis✝:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)hi:c * 2 ^ Fintype.card n ≤ 2 ^ Fintype.card n * (2 ^ 1)⁻¹this:↑(1 / 2) * 2 ^ Fintype.card n < c * 2 ^ Fintype.card n⊢ False
simpa using hcinr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhn:1 ≤ Fintype.card nthis✝:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)hi:c * 2 ^ Fintype.card n ≤ 2 ^ Fintype.card n * (2 ^ 1)⁻¹this:↑(1 / 2) * 2 ^ Fintype.card n < c * 2 ^ Fintype.card n⊢ Falseinr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhn:1 ≤ Fintype.card nthis✝:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)hi:c * 2 ^ Fintype.card n ≤ 2 ^ Fintype.card n * (2 ^ 1)⁻¹this:↑(1 / 2) * 2 ^ Fintype.card n < c * 2 ^ Fintype.card n⊢ False
have : (0 : ℝ) < 0 := by n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < c⊢ ¬∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x})) inr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhn:1 ≤ Fintype.card nthis✝¹:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)hi:c * 2 ^ Fintype.card n ≤ 2 ^ Fintype.card n * (2 ^ 1)⁻¹this✝:↑(1 / 2) * 2 ^ Fintype.card n < c * 2 ^ Fintype.card nthis:0 < 0⊢ False linear_combination this + hiinr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhn:1 ≤ Fintype.card nthis✝¹:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)hi:c * 2 ^ Fintype.card n ≤ 2 ^ Fintype.card n * (2 ^ 1)⁻¹this✝:↑(1 / 2) * 2 ^ Fintype.card n < c * 2 ^ Fintype.card nthis:0 < 0⊢ Falseinr n:Type u_1inst✝¹:DecidableEq ninst✝:Fintype nc:ℝhc:1 / 2 < ch:∀ (A : Finset (Finset n)), A ≠ {∅} → IsUnionClosed A → ∃ i, c * ↑(#A) ≤ ↑(#({x ∈ A | i ∈ x}))hn✝:Nonempty nA:Finset (Finset n) := univh_ne_singleton_empty:A ≠ {∅}i:nhn:1 ≤ Fintype.card nthis✝¹:#{x | i ∈ x} = 2 ^ (Fintype.card n - 1)hi:c * 2 ^ Fintype.card n ≤ 2 ^ Fintype.card n * (2 ^ 1)⁻¹this✝:↑(1 / 2) * 2 ^ Fintype.card n < c * 2 ^ Fintype.card nthis:0 < 0⊢ False
simp at this All goals completed! 🐙
If the UC conjecture is tight for some family A then $|A| = 2^k$ for some $k$.
Reference: Conjecture 3 in https://www.nieuwarchief.nl/serie5/pdf/naw5-2023-24-4-225.pdf.
@[category research open, AMS 5]
theorem union_closed.variants.cardinality_even_of_union_closed_tight
[Nonempty n] (hA : A ≠ {∅} ∧ A ≠ ∅) (hA : IsUnionClosed A)
(UCC_tight : ∀ i, #{x ∈ A | i ∈ x} = (1 / 2 : ℝ) * #A) :
∃ k, #A = 2 ^ k := by n:Type u_1inst✝¹:DecidableEq nA:Finset (Finset n)inst✝:Nonempty nhA✝:A ≠ {∅} ∧ A ≠ ∅hA:IsUnionClosed AUCC_tight:∀ (i : n), ↑(#({x ∈ A | i ∈ x})) = 1 / 2 * ↑(#A)⊢ ∃ k, #A = 2 ^ k
sorry All goals completed! 🐙end UnionClosed