File: Mathlib/Data/Set/Constructions.lean

full_name: FiniteInter
code: /-- A structure encapsulating the fact that a set of sets is closed under finite intersection. -/
structure FiniteInter : Prop where
  /-- `univ_mem` states that `Set.univ` is in `S`. -/
  univ_mem : Set.univ ∈ S
  /-- `inter_mem` states that any two intersections of sets in `S` is also in `S`. -/
  inter_mem : ∀ ⦃s⦄, s ∈ S → ∀ ⦃t⦄, t ∈ S → s ∩ t ∈ S
goal: Prop

full_name: FiniteInter.univ_mem
code: /-- A structure encapsulating the fact that a set of sets is closed under finite intersection. -/
structure FiniteInter : Prop where
  /-- `univ_mem` states that `Set.univ` is in `S`. -/
  univ_mem : Set.univ ∈ S
  /-- `inter_mem` states that any two intersections of sets in `S` is also in `S`. -/
  inter_mem : ∀ ⦃s⦄, s ∈ S → ∀ ⦃t⦄, t ∈ S → s ∩ t ∈ S
goal: Set.univ ∈ S

full_name: FiniteInter.inter_mem
code: /-- A structure encapsulating the fact that a set of sets is closed under finite intersection. -/
structure FiniteInter : Prop where
  /-- `univ_mem` states that `Set.univ` is in `S`. -/
  univ_mem : Set.univ ∈ S
  /-- `inter_mem` states that any two intersections of sets in `S` is also in `S`. -/
  inter_mem : ∀ ⦃s⦄, s ∈ S → ∀ ⦃t⦄, t ∈ S → s ∩ t ∈ S
goal: s ∈ S → ∀ ⦃t : Set α⦄, t ∈ S → s ∩ t ∈ S

full_name: FiniteInter.finiteInterClosure.inter
code: /-- The smallest set of sets containing `S` which is closed under finite intersections. -/
inductive finiteInterClosure : Set (Set α)
  | basic {s} : s ∈ S → finiteInterClosure s
  | univ : finiteInterClosure Set.univ
  | inter {s t} : finiteInterClosure s → finiteInterClosure t → finiteInterClosure (s ∩ t)
goal: FiniteInter.finiteInterClosure S s → FiniteInter.finiteInterClosure S t → FiniteInter.finiteInterClosure S (s ∩ t)

full_name: FiniteInter.finiteInterClosure
code: /-- The smallest set of sets containing `S` which is closed under finite intersections. -/
inductive finiteInterClosure : Set (Set α)
  | basic {s} : s ∈ S → finiteInterClosure s
  | univ : finiteInterClosure Set.univ
  | inter {s t} : finiteInterClosure s → finiteInterClosure t → finiteInterClosure (s ∩ t)
goal: Set (Set α)

full_name: FiniteInter.finiteInterClosure.univ
code: /-- The smallest set of sets containing `S` which is closed under finite intersections. -/
inductive finiteInterClosure : Set (Set α)
  | basic {s} : s ∈ S → finiteInterClosure s
  | univ : finiteInterClosure Set.univ
  | inter {s t} : finiteInterClosure s → finiteInterClosure t → finiteInterClosure (s ∩ t)
goal: FiniteInter.finiteInterClosure S Set.univ

full_name: FiniteInter.finiteInterClosure.basic
code: /-- The smallest set of sets containing `S` which is closed under finite intersections. -/
inductive finiteInterClosure : Set (Set α)
  | basic {s} : s ∈ S → finiteInterClosure s
  | univ : finiteInterClosure Set.univ
  | inter {s t} : finiteInterClosure s → finiteInterClosure t → finiteInterClosure (s ∩ t)
goal: s ∈ S → FiniteInter.finiteInterClosure S s

full_name: FiniteInter.finiteInterClosure_finiteInter
code: theorem finiteInterClosure_finiteInter : FiniteInter (finiteInterClosure S) 
goal: FiniteInter (FiniteInter.finiteInterClosure S)

full_name: FiniteInter.finiteInter_mem
code: theorem finiteInter_mem (cond : FiniteInter S) (F : Finset (Set α)) :
    ↑F ⊆ S → ⋂₀ (↑F : Set (Set α)) ∈ S 
goal: ↑F ⊆ S → ⋂₀ ↑F ∈ S

full_name: FiniteInter.finiteInterClosure_insert
code: theorem finiteInterClosure_insert {A : Set α} (cond : FiniteInter S) (P)
    (H : P ∈ finiteInterClosure (insert A S)) : P ∈ S ∨ ∃ Q ∈ S, P = A ∩ Q 
goal: P ∈ S ∨ ∃ Q ∈ S, P = A ∩ Q

full_name: FiniteInter.mk₂
code: theorem mk₂ (h: ∀ ⦃s⦄, s ∈ S → ∀ ⦃t⦄, t ∈ S → s ∩ t ∈ S) :
    FiniteInter (insert (univ : Set α) S) 
goal: FiniteInter (insert Set.univ S)