Theorem: Filter.mem_cardinaleGenerate_iff
File: Mathlib/Order/Filter/CardinalInter.lean

tactic: constructor <;> intro h
state_before: ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s : Set α
hreg : c.IsRegular
⊢ s ∈ cardinalGenerate g ⋯ ↔ ∃ S ⊆ g, #↑S < c ∧ ⋂₀ S ⊆ s
state_after: case mp
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s : Set α
hreg : c.IsRegular
h : s ∈ cardinalGenerate g ⋯
⊢ ∃ S ⊆ g, #↑S < c ∧ ⋂₀ S ⊆ s

case mpr
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s : Set α
hreg : c.IsRegular
h : ∃ S ⊆ g, #↑S < c ∧ ⋂₀ S ⊆ s
⊢ s ∈ cardinalGenerate g ⋯

tactic: rcases h with ⟨S, Sg, Sct, hS⟩
state_before: case mpr
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s : Set α
hreg : c.IsRegular
h : ∃ S ⊆ g, #↑S < c ∧ ⋂₀ S ⊆ s
⊢ s ∈ cardinalGenerate g ⋯
state_after: case mpr.intro.intro.intro
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s : Set α
hreg : c.IsRegular
S : Set (Set α)
Sg : S ⊆ g
Sct : #↑S < c
hS : ⋂₀ S ⊆ s
⊢ s ∈ cardinalGenerate g ⋯

tactic: have : CardinalInterFilter (cardinalGenerate g (IsRegular.nat_lt hreg 2)) c :=
  cardinalInter_ofCardinalGenerate _ _
state_before: case mpr.intro.intro.intro
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s : Set α
hreg : c.IsRegular
S : Set (Set α)
Sg : S ⊆ g
Sct : #↑S < c
hS : ⋂₀ S ⊆ s
⊢ s ∈ cardinalGenerate g ⋯
state_after: case mpr.intro.intro.intro
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s : Set α
hreg : c.IsRegular
S : Set (Set α)
Sg : S ⊆ g
Sct : #↑S < c
hS : ⋂₀ S ⊆ s
this : CardinalInterFilter (cardinalGenerate g ⋯) c
⊢ s ∈ cardinalGenerate g ⋯

tactic: exact mem_of_superset ((cardinal_sInter_mem Sct).mpr
  (fun s H => CardinalGenerateSets.basic (Sg H))) hS
state_before: case mpr.intro.intro.intro
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s : Set α
hreg : c.IsRegular
S : Set (Set α)
Sg : S ⊆ g
Sct : #↑S < c
hS : ⋂₀ S ⊆ s
this : CardinalInterFilter (cardinalGenerate g ⋯) c
⊢ s ∈ cardinalGenerate g ⋯
state_after: no goals

tactic: induction' h with s hs s t _ st ih S Sct _ ih
state_before: case mp
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s : Set α
hreg : c.IsRegular
h : s ∈ cardinalGenerate g ⋯
⊢ ∃ S ⊆ g, #↑S < c ∧ ⋂₀ S ⊆ s
state_after: case mp.basic
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s✝ : Set α
hreg : c.IsRegular
s : Set α
hs : s ∈ g
⊢ ∃ S ⊆ g, #↑S < c ∧ ⋂₀ S ⊆ s

case mp.univ
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s : Set α
hreg : c.IsRegular
⊢ ∃ S ⊆ g, #↑S < c ∧ ⋂₀ S ⊆ Set.univ

case mp.superset
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s✝ : Set α
hreg : c.IsRegular
s t : Set α
a✝ : CardinalGenerateSets g s
st : s ⊆ t
ih : ∃ S ⊆ g, #↑S < c ∧ ⋂₀ S ⊆ s
⊢ ∃ S ⊆ g, #↑S < c ∧ ⋂₀ S ⊆ t

case mp.sInter
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s : Set α
hreg : c.IsRegular
S : Set (Set α)
Sct : #↑S < c
a✝ : ∀ s ∈ S, CardinalGenerateSets g s
ih : ∀ s ∈ S, ∃ S ⊆ g, #↑S < c ∧ ⋂₀ S ⊆ s
⊢ ∃ S_1 ⊆ g, #↑S_1 < c ∧ ⋂₀ S_1 ⊆ ⋂₀ S

tactic: choose T Tg Tct hT using ih
state_before: case mp.sInter
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s : Set α
hreg : c.IsRegular
S : Set (Set α)
Sct : #↑S < c
a✝ : ∀ s ∈ S, CardinalGenerateSets g s
ih : ∀ s ∈ S, ∃ S ⊆ g, #↑S < c ∧ ⋂₀ S ⊆ s
⊢ ∃ S_1 ⊆ g, #↑S_1 < c ∧ ⋂₀ S_1 ⊆ ⋂₀ S
state_after: case mp.sInter
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s : Set α
hreg : c.IsRegular
S : Set (Set α)
Sct : #↑S < c
a✝ : ∀ s ∈ S, CardinalGenerateSets g s
T : (s : Set α) → s ∈ S → Set (Set α)
Tg : ∀ (s : Set α) (a : s ∈ S), T s a ⊆ g
Tct : ∀ (s : Set α) (a : s ∈ S), #↑(T s a) < c
hT : ∀ (s : Set α) (a : s ∈ S), ⋂₀ T s a ⊆ s
⊢ ∃ S_1 ⊆ g, #↑S_1 < c ∧ ⋂₀ S_1 ⊆ ⋂₀ S

tactic: refine ⟨⋃ (s) (H : s ∈ S), T s H, by simpa,
  (Cardinal.card_biUnion_lt_iff_forall_of_isRegular hreg Sct).2 Tct, ?_⟩
state_before: case mp.sInter
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s : Set α
hreg : c.IsRegular
S : Set (Set α)
Sct : #↑S < c
a✝ : ∀ s ∈ S, CardinalGenerateSets g s
T : (s : Set α) → s ∈ S → Set (Set α)
Tg : ∀ (s : Set α) (a : s ∈ S), T s a ⊆ g
Tct : ∀ (s : Set α) (a : s ∈ S), #↑(T s a) < c
hT : ∀ (s : Set α) (a : s ∈ S), ⋂₀ T s a ⊆ s
⊢ ∃ S_1 ⊆ g, #↑S_1 < c ∧ ⋂₀ S_1 ⊆ ⋂₀ S
state_after: case mp.sInter
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s : Set α
hreg : c.IsRegular
S : Set (Set α)
Sct : #↑S < c
a✝ : ∀ s ∈ S, CardinalGenerateSets g s
T : (s : Set α) → s ∈ S → Set (Set α)
Tg : ∀ (s : Set α) (a : s ∈ S), T s a ⊆ g
Tct : ∀ (s : Set α) (a : s ∈ S), #↑(T s a) < c
hT : ∀ (s : Set α) (a : s ∈ S), ⋂₀ T s a ⊆ s
⊢ ⋂₀ ⋃ s, ⋃ (H : s ∈ S), T s H ⊆ ⋂₀ S

tactic: apply subset_sInter
state_before: case mp.sInter
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s : Set α
hreg : c.IsRegular
S : Set (Set α)
Sct : #↑S < c
a✝ : ∀ s ∈ S, CardinalGenerateSets g s
T : (s : Set α) → s ∈ S → Set (Set α)
Tg : ∀ (s : Set α) (a : s ∈ S), T s a ⊆ g
Tct : ∀ (s : Set α) (a : s ∈ S), #↑(T s a) < c
hT : ∀ (s : Set α) (a : s ∈ S), ⋂₀ T s a ⊆ s
⊢ ⋂₀ ⋃ s, ⋃ (H : s ∈ S), T s H ⊆ ⋂₀ S
state_after: case mp.sInter.h
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s : Set α
hreg : c.IsRegular
S : Set (Set α)
Sct : #↑S < c
a✝ : ∀ s ∈ S, CardinalGenerateSets g s
T : (s : Set α) → s ∈ S → Set (Set α)
Tg : ∀ (s : Set α) (a : s ∈ S), T s a ⊆ g
Tct : ∀ (s : Set α) (a : s ∈ S), #↑(T s a) < c
hT : ∀ (s : Set α) (a : s ∈ S), ⋂₀ T s a ⊆ s
⊢ ∀ t' ∈ S, ⋂₀ ⋃ s, ⋃ (H : s ∈ S), T s H ⊆ t'

tactic: apply fun s H => subset_trans (sInter_subset_sInter (subset_iUnion₂ s H)) (hT s H)
state_before: case mp.sInter.h
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s : Set α
hreg : c.IsRegular
S : Set (Set α)
Sct : #↑S < c
a✝ : ∀ s ∈ S, CardinalGenerateSets g s
T : (s : Set α) → s ∈ S → Set (Set α)
Tg : ∀ (s : Set α) (a : s ∈ S), T s a ⊆ g
Tct : ∀ (s : Set α) (a : s ∈ S), #↑(T s a) < c
hT : ∀ (s : Set α) (a : s ∈ S), ⋂₀ T s a ⊆ s
⊢ ∀ t' ∈ S, ⋂₀ ⋃ s, ⋃ (H : s ∈ S), T s H ⊆ t'
state_after: no goals

tactic: refine ⟨{s}, singleton_subset_iff.mpr hs, ?_⟩
state_before: case mp.basic
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s✝ : Set α
hreg : c.IsRegular
s : Set α
hs : s ∈ g
⊢ ∃ S ⊆ g, #↑S < c ∧ ⋂₀ S ⊆ s
state_after: case mp.basic
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s✝ : Set α
hreg : c.IsRegular
s : Set α
hs : s ∈ g
⊢ #↑{s} < c ∧ ⋂₀ {s} ⊆ s

tactic: norm_num
state_before: case mp.basic
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s✝ : Set α
hreg : c.IsRegular
s : Set α
hs : s ∈ g
⊢ #↑{s} < c ∧ ⋂₀ {s} ⊆ s
state_after: case mp.basic
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s✝ : Set α
hreg : c.IsRegular
s : Set α
hs : s ∈ g
⊢ 1 < c ∧ s ⊆ s

tactic: exact ⟨IsRegular.nat_lt hreg 1, subset_rfl⟩
state_before: case mp.basic
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s✝ : Set α
hreg : c.IsRegular
s : Set α
hs : s ∈ g
⊢ 1 < c ∧ s ⊆ s
state_after: no goals

tactic: exact ⟨∅, ⟨empty_subset g, mk_eq_zero (∅ : Set <| Set α) ▸ IsRegular.nat_lt hreg 0, by simp⟩⟩
state_before: case mp.univ
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s : Set α
hreg : c.IsRegular
⊢ ∃ S ⊆ g, #↑S < c ∧ ⋂₀ S ⊆ Set.univ
state_after: no goals

tactic: simp
state_before: ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s : Set α
hreg : c.IsRegular
⊢ ⋂₀ ∅ ⊆ Set.univ
state_after: no goals

tactic: exact Exists.imp (by tauto) ih
state_before: case mp.superset
ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s✝ : Set α
hreg : c.IsRegular
s t : Set α
a✝ : CardinalGenerateSets g s
st : s ⊆ t
ih : ∃ S ⊆ g, #↑S < c ∧ ⋂₀ S ⊆ s
⊢ ∃ S ⊆ g, #↑S < c ∧ ⋂₀ S ⊆ t
state_after: no goals

tactic: tauto
state_before: ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s✝ : Set α
hreg : c.IsRegular
s t : Set α
a✝ : CardinalGenerateSets g s
st : s ⊆ t
ih : ∃ S ⊆ g, #↑S < c ∧ ⋂₀ S ⊆ s
⊢ ∀ (a : Set (Set α)), a ⊆ g ∧ #↑a < c ∧ ⋂₀ a ⊆ s → a ⊆ g ∧ #↑a < c ∧ ⋂₀ a ⊆ t
state_after: no goals

tactic: simpa
state_before: ι α β : Type u
c : Cardinal.{u}
l : Filter α
inst✝ : CardinalInterFilter l c
g : Set (Set α)
s : Set α
hreg : c.IsRegular
S : Set (Set α)
Sct : #↑S < c
a✝ : ∀ s ∈ S, CardinalGenerateSets g s
T : (s : Set α) → s ∈ S → Set (Set α)
Tg : ∀ (s : Set α) (a : s ∈ S), T s a ⊆ g
Tct : ∀ (s : Set α) (a : s ∈ S), #↑(T s a) < c
hT : ∀ (s : Set α) (a : s ∈ S), ⋂₀ T s a ⊆ s
⊢ ⋃ s, ⋃ (H : s ∈ S), T s H ⊆ g
state_after: no goals