File: Mathlib/Order/Irreducible.lean

full_name: SupIrred
code: /-- A sup-irreducible element is a non-bottom element which isn't the supremum of anything smaller.
-/
def SupIrred (a : α) : Prop 
goal: Prop

full_name: SupPrime
code: /-- A sup-prime element is a non-bottom element which isn't less than the supremum of anything
smaller. -/
def SupPrime (a : α) : Prop 
goal: Prop

full_name: SupIrred.not_isMin
code: theorem SupIrred.not_isMin (ha : SupIrred a) : ¬IsMin a 
goal: ¬IsMin a

full_name: SupPrime.not_isMin
code: theorem SupPrime.not_isMin (ha : SupPrime a) : ¬IsMin a 
goal: ¬IsMin a

full_name: IsMin.not_supIrred
code: theorem IsMin.not_supIrred (ha : IsMin a) : ¬SupIrred a 
goal: ¬SupIrred a

full_name: IsMin.not_supPrime
code: theorem IsMin.not_supPrime (ha : IsMin a) : ¬SupPrime a 
goal: ¬SupPrime a

full_name: not_supIrred
code: @[simp]
theorem not_supIrred : ¬SupIrred a ↔ IsMin a ∨ ∃ b c, b ⊔ c = a ∧ b < a ∧ c < a 
goal: ¬SupIrred a ↔ IsMin a ∨ ∃ b c, b ⊔ c = a ∧ b < a ∧ c < a

full_name: not_supPrime
code: @[simp]
theorem not_supPrime : ¬SupPrime a ↔ IsMin a ∨ ∃ b c, a ≤ b ⊔ c ∧ ¬a ≤ b ∧ ¬a ≤ c 
goal: ¬SupPrime a ↔ IsMin a ∨ ∃ b c, a ≤ b ⊔ c ∧ ¬a ≤ b ∧ ¬a ≤ c

full_name: SupPrime.supIrred
code: protected theorem SupPrime.supIrred : SupPrime a → SupIrred a 
goal: SupPrime a → SupIrred a

full_name: SupPrime.le_sup
code: theorem SupPrime.le_sup (ha : SupPrime a) : a ≤ b ⊔ c ↔ a ≤ b ∨ a ≤ c 
goal: a ≤ b ⊔ c ↔ a ≤ b ∨ a ≤ c

full_name: not_supIrred_bot
code: @[simp]
theorem not_supIrred_bot : ¬SupIrred (⊥ : α) 
goal: ¬SupIrred ⊥

full_name: not_supPrime_bot
code: @[simp]
theorem not_supPrime_bot : ¬SupPrime (⊥ : α) 
goal: ¬SupPrime ⊥

full_name: SupIrred.ne_bot
code: theorem SupIrred.ne_bot (ha : SupIrred a) : a ≠ ⊥ 
goal: a ≠ ⊥

full_name: SupPrime.ne_bot
code: theorem SupPrime.ne_bot (ha : SupPrime a) : a ≠ ⊥ 
goal: a ≠ ⊥

full_name: SupIrred.finset_sup_eq
code: theorem SupIrred.finset_sup_eq (ha : SupIrred a) (h : s.sup f = a) : ∃ i ∈ s, f i = a 
goal: ∃ i ∈ s, f i = a

full_name: SupPrime.le_finset_sup
code: theorem SupPrime.le_finset_sup (ha : SupPrime a) : a ≤ s.sup f ↔ ∃ i ∈ s, a ≤ f i 
goal: a ≤ s.sup f ↔ ∃ i ∈ s, a ≤ f i

full_name: exists_supIrred_decomposition
code: /-- In a well-founded lattice, any element is the supremum of finitely many sup-irreducible
elements. This is the order-theoretic analogue of prime factorisation. -/
theorem exists_supIrred_decomposition (a : α) :
    ∃ s : Finset α, s.sup id = a ∧ ∀ ⦃b⦄, b ∈ s → SupIrred b 
goal: ∃ s, s.sup id = a ∧ ∀ ⦃b : α⦄, b ∈ s → SupIrred b

full_name: InfIrred
code: /-- An inf-irreducible element is a non-top element which isn't the infimum of anything bigger. -/
def InfIrred (a : α) : Prop 
goal: Prop

full_name: InfPrime
code: /-- An inf-prime element is a non-top element which isn't bigger than the infimum of anything
bigger. -/
def InfPrime (a : α) : Prop 
goal: Prop

full_name: IsMax.not_infIrred
code: @[simp]
theorem IsMax.not_infIrred (ha : IsMax a) : ¬InfIrred a 
goal: ¬InfIrred a

full_name: IsMax.not_infPrime
code: @[simp]
theorem IsMax.not_infPrime (ha : IsMax a) : ¬InfPrime a 
goal: ¬InfPrime a

full_name: not_infIrred
code: @[simp]
theorem not_infIrred : ¬InfIrred a ↔ IsMax a ∨ ∃ b c, b ⊓ c = a ∧ a < b ∧ a < c 
goal: ¬InfIrred a ↔ IsMax a ∨ ∃ b c, b ⊓ c = a ∧ a < b ∧ a < c

full_name: not_infPrime
code: @[simp]
theorem not_infPrime : ¬InfPrime a ↔ IsMax a ∨ ∃ b c, b ⊓ c ≤ a ∧ ¬b ≤ a ∧ ¬c ≤ a 
goal: ¬InfPrime a ↔ IsMax a ∨ ∃ b c, b ⊓ c ≤ a ∧ ¬b ≤ a ∧ ¬c ≤ a

full_name: InfPrime.infIrred
code: protected theorem InfPrime.infIrred : InfPrime a → InfIrred a 
goal: InfPrime a → InfIrred a

full_name: InfPrime.inf_le
code: theorem InfPrime.inf_le (ha : InfPrime a) : b ⊓ c ≤ a ↔ b ≤ a ∨ c ≤ a 
goal: b ⊓ c ≤ a ↔ b ≤ a ∨ c ≤ a

full_name: not_infIrred_top
code: theorem not_infIrred_top : ¬InfIrred (⊤ : α) 
goal: ¬InfIrred ⊤

full_name: not_infPrime_top
code: theorem not_infPrime_top : ¬InfPrime (⊤ : α) 
goal: ¬InfPrime ⊤

full_name: InfIrred.ne_top
code: theorem InfIrred.ne_top (ha : InfIrred a) : a ≠ ⊤ 
goal: a ≠ ⊤

full_name: InfPrime.ne_top
code: theorem InfPrime.ne_top (ha : InfPrime a) : a ≠ ⊤ 
goal: a ≠ ⊤

full_name: InfIrred.finset_inf_eq
code: theorem InfIrred.finset_inf_eq : InfIrred a → s.inf f = a → ∃ i ∈ s, f i = a 
goal: InfIrred a → s.inf f = a → ∃ i ∈ s, f i = a

full_name: InfPrime.finset_inf_le
code: theorem InfPrime.finset_inf_le (ha : InfPrime a) : s.inf f ≤ a ↔ ∃ i ∈ s, f i ≤ a 
goal: s.inf f ≤ a ↔ ∃ i ∈ s, f i ≤ a

full_name: exists_infIrred_decomposition
code: /-- In a cowell-founded lattice, any element is the infimum of finitely many inf-irreducible
elements. This is the order-theoretic analogue of prime factorisation. -/
theorem exists_infIrred_decomposition (a : α) :
    ∃ s : Finset α, s.inf id = a ∧ ∀ ⦃b⦄, b ∈ s → InfIrred b 
goal: ∃ s, s.inf id = a ∧ ∀ ⦃b : α⦄, b ∈ s → InfIrred b

full_name: infIrred_toDual
code: @[simp]
theorem infIrred_toDual {a : α} : InfIrred (toDual a) ↔ SupIrred a 
goal: InfIrred (OrderDual.toDual a) ↔ SupIrred a

full_name: infPrime_toDual
code: @[simp]
theorem infPrime_toDual {a : α} : InfPrime (toDual a) ↔ SupPrime a 
goal: InfPrime (OrderDual.toDual a) ↔ SupPrime a

full_name: supIrred_ofDual
code: @[simp]
theorem supIrred_ofDual {a : αᵒᵈ} : SupIrred (ofDual a) ↔ InfIrred a 
goal: SupIrred (OrderDual.ofDual a) ↔ InfIrred a

full_name: supPrime_ofDual
code: @[simp]
theorem supPrime_ofDual {a : αᵒᵈ} : SupPrime (ofDual a) ↔ InfPrime a 
goal: SupPrime (OrderDual.ofDual a) ↔ InfPrime a

full_name: supIrred_toDual
code: @[simp]
theorem supIrred_toDual {a : α} : SupIrred (toDual a) ↔ InfIrred a 
goal: SupIrred (OrderDual.toDual a) ↔ InfIrred a

full_name: supPrime_toDual
code: @[simp]
theorem supPrime_toDual {a : α} : SupPrime (toDual a) ↔ InfPrime a 
goal: SupPrime (OrderDual.toDual a) ↔ InfPrime a

full_name: infIrred_ofDual
code: @[simp]
theorem infIrred_ofDual {a : αᵒᵈ} : InfIrred (ofDual a) ↔ SupIrred a 
goal: InfIrred (OrderDual.ofDual a) ↔ SupIrred a

full_name: infPrime_ofDual
code: @[simp]
theorem infPrime_ofDual {a : αᵒᵈ} : InfPrime (ofDual a) ↔ SupPrime a 
goal: InfPrime (OrderDual.ofDual a) ↔ SupPrime a

full_name: supPrime_iff_supIrred
code: @[simp]
theorem supPrime_iff_supIrred : SupPrime a ↔ SupIrred a 
goal: SupPrime a ↔ SupIrred a

full_name: infPrime_iff_infIrred
code: @[simp]
theorem infPrime_iff_infIrred : InfPrime a ↔ InfIrred a 
goal: InfPrime a ↔ InfIrred a

full_name: supPrime_iff_not_isMin
code: theorem supPrime_iff_not_isMin : SupPrime a ↔ ¬IsMin a 
goal: SupPrime a ↔ ¬IsMin a

full_name: infPrime_iff_not_isMax
code: theorem infPrime_iff_not_isMax : InfPrime a ↔ ¬IsMax a 
goal: InfPrime a ↔ ¬IsMax a

full_name: supIrred_iff_not_isMin
code: @[simp]
theorem supIrred_iff_not_isMin : SupIrred a ↔ ¬IsMin a 
goal: SupIrred a ↔ ¬IsMin a

full_name: infIrred_iff_not_isMax
code: @[simp]
theorem infIrred_iff_not_isMax : InfIrred a ↔ ¬IsMax a 
goal: InfIrred a ↔ ¬IsMax a