File: Mathlib/Order/Birkhoff.lean

full_name: UpperSet.infIrred_Ici
code: @[simp] lemma infIrred_Ici (a : α) : InfIrred (Ici a) 
goal: InfIrred (UpperSet.Ici a)

full_name: UpperSet.infIrred_iff_of_finite
code: @[simp] lemma infIrred_iff_of_finite : InfIrred s ↔ ∃ a, Ici a = s 
goal: InfIrred s ↔ ∃ a, UpperSet.Ici a = s

full_name: LowerSet.supIrred_Iic
code: @[simp] lemma supIrred_Iic (a : α) : SupIrred (Iic a) 
goal: SupIrred (LowerSet.Iic a)

full_name: LowerSet.supIrred_iff_of_finite
code: @[simp] lemma supIrred_iff_of_finite : SupIrred s ↔ ∃ a, Iic a = s 
goal: SupIrred s ↔ ∃ a, LowerSet.Iic a = s

full_name: OrderEmbedding.supIrredLowerSet
code: /-- The **Birkhoff Embedding** of a finite partial order as sup-irreducible elements in its
lattice of lower sets. -/
def supIrredLowerSet : α ↪o {s : LowerSet α // SupIrred s} 
goal: α ↪o { s // SupIrred s }

full_name: OrderEmbedding.infIrredUpperSet
code: /-- The **Birkhoff Embedding** of a finite partial order as inf-irreducible elements in its
lattice of lower sets. -/
def infIrredUpperSet : α ↪o {s : UpperSet α // InfIrred s} 
goal: α ↪o { s // InfIrred s }

full_name: OrderEmbedding.supIrredLowerSet_apply
code: @[simp] lemma supIrredLowerSet_apply (a : α) : supIrredLowerSet a = ⟨Iic a, supIrred_Iic _⟩ 
goal: OrderEmbedding.supIrredLowerSet a = ⟨LowerSet.Iic a, ⋯⟩

full_name: OrderEmbedding.infIrredUpperSet_apply
code: @[simp] lemma infIrredUpperSet_apply (a : α) : infIrredUpperSet a = ⟨Ici a, infIrred_Ici _⟩ 
goal: OrderEmbedding.infIrredUpperSet a = ⟨UpperSet.Ici a, ⋯⟩

full_name: OrderEmbedding.supIrredLowerSet_surjective
code: lemma supIrredLowerSet_surjective : Surjective (supIrredLowerSet (α := α)) 
goal: Function.Surjective ⇑OrderEmbedding.supIrredLowerSet

full_name: OrderEmbedding.infIrredUpperSet_surjective
code: lemma infIrredUpperSet_surjective : Surjective (infIrredUpperSet (α := α)) 
goal: Function.Surjective ⇑OrderEmbedding.infIrredUpperSet

full_name: OrderIso.supIrredLowerSet
code: /-- **Birkhoff Representation for partial orders.** Any partial order is isomorphic
to the partial order of sup-irreducible elements in its lattice of lower sets. -/
noncomputable def supIrredLowerSet : α ≃o {s : LowerSet α // SupIrred s} 
goal: α ≃o { s // SupIrred s }

full_name: OrderIso.infIrredUpperSet
code: /-- **Birkhoff Representation for partial orders.** Any partial order is isomorphic
to the partial order of inf-irreducible elements in its lattice of upper sets. -/
noncomputable def infIrredUpperSet : α ≃o {s : UpperSet α // InfIrred s} 
goal: α ≃o { s // InfIrred s }

full_name: OrderIso.supIrredLowerSet_apply
code: @[simp] lemma supIrredLowerSet_apply (a : α) : supIrredLowerSet a = ⟨Iic a, supIrred_Iic _⟩ 
goal: OrderIso.supIrredLowerSet a = ⟨LowerSet.Iic a, ⋯⟩

full_name: OrderIso.infIrredUpperSet_apply
code: @[simp] lemma infIrredUpperSet_apply (a : α) : infIrredUpperSet a = ⟨Ici a, infIrred_Ici _⟩ 
goal: OrderIso.infIrredUpperSet a = ⟨UpperSet.Ici a, ⋯⟩

full_name: OrderIso.supIrredLowerSet_symm_apply
code: @[simp] lemma supIrredLowerSet_symm_apply (s : {s : LowerSet α // SupIrred s}) [Fintype s] :
    supIrredLowerSet.symm s = (s.1 : Set α).toFinset.sup id 
goal: OrderIso.supIrredLowerSet.symm s = (↑↑s).toFinset.sup id

full_name: OrderIso.infIrredUpperSet_symm_apply
code: @[simp] lemma infIrredUpperSet_symm_apply (s : {s : UpperSet α // InfIrred s}) [Fintype s] :
    infIrredUpperSet.symm s = (s.1 : Set α).toFinset.inf id 
goal: OrderIso.infIrredUpperSet.symm s = (↑↑s).toFinset.inf id

full_name: OrderIso.lowerSetSupIrred
code: /-- **Birkhoff Representation for finite distributive lattices**. Any nonempty finite distributive
lattice is isomorphic to the lattice of lower sets of its sup-irreducible elements. -/
noncomputable def OrderIso.lowerSetSupIrred : α ≃o LowerSet {a : α // SupIrred a} 
goal: α ≃o LowerSet { a // SupIrred a }

full_name: OrderEmbedding.birkhoffSet
code: /-- **Birkhoff's Representation Theorem**. Any finite distributive lattice can be embedded in a
powerset lattice. -/
noncomputable def birkhoffSet : α ↪o Set {a : α // SupIrred a} 
goal: α ↪o Set { a // SupIrred a }

full_name: OrderEmbedding.birkhoffFinset
code: /-- **Birkhoff's Representation Theorem**. Any finite distributive lattice can be embedded in a
powerset lattice. -/
noncomputable def birkhoffFinset : α ↪o Finset {a : α // SupIrred a} 
goal: α ↪o Finset { a // SupIrred a }

full_name: OrderEmbedding.coe_birkhoffFinset
code: @[simp] lemma coe_birkhoffFinset (a : α) : birkhoffFinset a = birkhoffSet a 
goal: ↑(OrderEmbedding.birkhoffFinset a) = OrderEmbedding.birkhoffSet a

full_name: OrderEmbedding.birkhoffSet_sup
code: @[simp] lemma birkhoffSet_sup (a b : α) : birkhoffSet (a ⊔ b) = birkhoffSet a ∪ birkhoffSet b 
goal: OrderEmbedding.birkhoffSet (a ⊔ b) = OrderEmbedding.birkhoffSet a ∪ OrderEmbedding.birkhoffSet b

full_name: OrderEmbedding.birkhoffSet_inf
code: @[simp] lemma birkhoffSet_inf (a b : α) : birkhoffSet (a ⊓ b) = birkhoffSet a ∩ birkhoffSet b 
goal: OrderEmbedding.birkhoffSet (a ⊓ b) = OrderEmbedding.birkhoffSet a ∩ OrderEmbedding.birkhoffSet b

full_name: OrderEmbedding.birkhoffFinset_sup
code: @[simp] lemma birkhoffFinset_sup (a b : α) :
    birkhoffFinset (a ⊔ b) = birkhoffFinset a ∪ birkhoffFinset b 
goal: OrderEmbedding.birkhoffFinset (a ⊔ b) = OrderEmbedding.birkhoffFinset a ∪ OrderEmbedding.birkhoffFinset b

full_name: OrderEmbedding.birkhoffFinset_inf
code: @[simp] lemma birkhoffFinset_inf (a b : α) :
    birkhoffFinset (a ⊓ b) = birkhoffFinset a ∩ birkhoffFinset b 
goal: OrderEmbedding.birkhoffFinset (a ⊓ b) = OrderEmbedding.birkhoffFinset a ∩ OrderEmbedding.birkhoffFinset b

full_name: OrderEmbedding.birkhoffSet_apply
code: @[simp] lemma birkhoffSet_apply (a : α) :
    birkhoffSet a = OrderIso.lowerSetSupIrred a 
goal: OrderEmbedding.birkhoffSet a = ↑(OrderIso.lowerSetSupIrred a)

full_name: LatticeHom.birkhoffSet
code: /-- **Birkhoff's Representation Theorem**. Any finite distributive lattice can be embedded in a
powerset lattice. -/
noncomputable def birkhoffSet : LatticeHom α (Set {a : α // SupIrred a}) 
goal: LatticeHom α (Set { a // SupIrred a })

full_name: LatticeHom.birkhoffFinset
code: /-- **Birkhoff's Representation Theorem**. Any finite distributive lattice can be embedded in a
powerset lattice. -/
noncomputable def birkhoffFinset : LatticeHom α (Finset {a : α // SupIrred a}) 
goal: LatticeHom α (Finset { a // SupIrred a })

full_name: LatticeHom.birkhoffFinset_injective
code: lemma birkhoffFinset_injective : Injective (birkhoffFinset (α := α)) 
goal: Function.Injective ⇑LatticeHom.birkhoffFinset

full_name: exists_birkhoff_representation
code: lemma exists_birkhoff_representation.{u} (α : Type u) [Finite α] [DistribLattice α] :
    ∃ (β : Type u) (_ : DecidableEq β) (_ : Fintype β) (f : LatticeHom α (Finset β)),
      Injective f 
goal: ∃ β x x_1 f, Function.Injective ⇑f