order.irreducibleMathlib.Order.Irreducible

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -146,7 +146,7 @@ theorem SupIrred.finset_sup_eq (ha : SupIrred a) (h : s.sup f = a) : ∃ i ∈ s
   induction' s using Finset.induction with i s hi ih
   · simpa [ha.ne_bot] using h.symm
   simp only [exists_prop, exists_mem_insert] at ih ⊢
-  rw [sup_insert] at h 
+  rw [sup_insert] at h
   exact (ha.2 h).imp_right ih
 #align sup_irred.finset_sup_eq SupIrred.finset_sup_eq
 -/
@@ -173,7 +173,7 @@ theorem exists_supIrred_decomposition (a : α) :
   rintro a ih
   by_cases ha : SupIrred a
   · exact ⟨{a}, by simp [ha]⟩
-  rw [not_supIrred] at ha 
+  rw [not_supIrred] at ha
   obtain ha | ⟨b, c, rfl, hb, hc⟩ := ha
   · exact ⟨∅, by simp [ha.eq_bot]⟩
   obtain ⟨s, rfl, hs⟩ := ih _ hb
Diff
@@ -143,11 +143,20 @@ theorem SupPrime.ne_bot (ha : SupPrime a) : a ≠ ⊥ := by rintro rfl; exact no
 #print SupIrred.finset_sup_eq /-
 theorem SupIrred.finset_sup_eq (ha : SupIrred a) (h : s.sup f = a) : ∃ i ∈ s, f i = a := by
   classical
+  induction' s using Finset.induction with i s hi ih
+  · simpa [ha.ne_bot] using h.symm
+  simp only [exists_prop, exists_mem_insert] at ih ⊢
+  rw [sup_insert] at h 
+  exact (ha.2 h).imp_right ih
 #align sup_irred.finset_sup_eq SupIrred.finset_sup_eq
 -/
 
 #print SupPrime.le_finset_sup /-
-theorem SupPrime.le_finset_sup (ha : SupPrime a) : a ≤ s.sup f ↔ ∃ i ∈ s, a ≤ f i := by classical
+theorem SupPrime.le_finset_sup (ha : SupPrime a) : a ≤ s.sup f ↔ ∃ i ∈ s, a ≤ f i := by
+  classical
+  induction' s using Finset.induction with i s hi ih
+  · simp [ha.ne_bot]
+  · simp only [exists_prop, exists_mem_insert, sup_insert, ha.le_sup, ih]
 #align sup_prime.le_finset_sup SupPrime.le_finset_sup
 -/
 
@@ -157,7 +166,19 @@ variable [WellFoundedLT α]
 /-- 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 := by classical
+    ∃ s : Finset α, s.sup id = a ∧ ∀ ⦃b⦄, b ∈ s → SupIrred b := by
+  classical
+  apply WellFoundedLT.induction a _
+  clear a
+  rintro a ih
+  by_cases ha : SupIrred a
+  · exact ⟨{a}, by simp [ha]⟩
+  rw [not_supIrred] at ha 
+  obtain ha | ⟨b, c, rfl, hb, hc⟩ := ha
+  · exact ⟨∅, by simp [ha.eq_bot]⟩
+  obtain ⟨s, rfl, hs⟩ := ih _ hb
+  obtain ⟨t, rfl, ht⟩ := ih _ hc
+  exact ⟨s ∪ t, sup_union, forall_mem_union.2 ⟨hs, ht⟩⟩
 #align exists_sup_irred_decomposition exists_supIrred_decomposition
 -/
 
Diff
@@ -143,20 +143,11 @@ theorem SupPrime.ne_bot (ha : SupPrime a) : a ≠ ⊥ := by rintro rfl; exact no
 #print SupIrred.finset_sup_eq /-
 theorem SupIrred.finset_sup_eq (ha : SupIrred a) (h : s.sup f = a) : ∃ i ∈ s, f i = a := by
   classical
-  induction' s using Finset.induction with i s hi ih
-  · simpa [ha.ne_bot] using h.symm
-  simp only [exists_prop, exists_mem_insert] at ih ⊢
-  rw [sup_insert] at h 
-  exact (ha.2 h).imp_right ih
 #align sup_irred.finset_sup_eq SupIrred.finset_sup_eq
 -/
 
 #print SupPrime.le_finset_sup /-
-theorem SupPrime.le_finset_sup (ha : SupPrime a) : a ≤ s.sup f ↔ ∃ i ∈ s, a ≤ f i := by
-  classical
-  induction' s using Finset.induction with i s hi ih
-  · simp [ha.ne_bot]
-  · simp only [exists_prop, exists_mem_insert, sup_insert, ha.le_sup, ih]
+theorem SupPrime.le_finset_sup (ha : SupPrime a) : a ≤ s.sup f ↔ ∃ i ∈ s, a ≤ f i := by classical
 #align sup_prime.le_finset_sup SupPrime.le_finset_sup
 -/
 
@@ -166,19 +157,7 @@ variable [WellFoundedLT α]
 /-- 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 := by
-  classical
-  apply WellFoundedLT.induction a _
-  clear a
-  rintro a ih
-  by_cases ha : SupIrred a
-  · exact ⟨{a}, by simp [ha]⟩
-  rw [not_supIrred] at ha 
-  obtain ha | ⟨b, c, rfl, hb, hc⟩ := ha
-  · exact ⟨∅, by simp [ha.eq_bot]⟩
-  obtain ⟨s, rfl, hs⟩ := ih _ hb
-  obtain ⟨t, rfl, ht⟩ := ih _ hc
-  exact ⟨s ∪ t, sup_union, forall_mem_union.2 ⟨hs, ht⟩⟩
+    ∃ s : Finset α, s.sup id = a ∧ ∀ ⦃b⦄, b ∈ s → SupIrred b := by classical
 #align exists_sup_irred_decomposition exists_supIrred_decomposition
 -/
 
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2023 Yaël Dillies. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies
 -/
-import Mathbin.Data.Finset.Lattice
-import Mathbin.Data.Fintype.Card
+import Data.Finset.Lattice
+import Data.Fintype.Card
 
 #align_import order.irreducible from "leanprover-community/mathlib"@"573eea921b01c49712ac02471911df0719297349"
 
Diff
@@ -324,16 +324,16 @@ theorem supPrime_ofDual {a : αᵒᵈ} : SupPrime (ofDual a) ↔ InfPrime a :=
 #align sup_prime_of_dual supPrime_ofDual
 -/
 
-alias infIrred_toDual ↔ _ SupIrred.dual
+alias ⟨_, SupIrred.dual⟩ := infIrred_toDual
 #align sup_irred.dual SupIrred.dual
 
-alias infPrime_toDual ↔ _ SupPrime.dual
+alias ⟨_, SupPrime.dual⟩ := infPrime_toDual
 #align sup_prime.dual SupPrime.dual
 
-alias supIrred_ofDual ↔ _ InfIrred.ofDual
+alias ⟨_, InfIrred.ofDual⟩ := supIrred_ofDual
 #align inf_irred.of_dual InfIrred.ofDual
 
-alias supPrime_ofDual ↔ _ InfPrime.ofDual
+alias ⟨_, InfPrime.ofDual⟩ := supPrime_ofDual
 #align inf_prime.of_dual InfPrime.ofDual
 
 end SemilatticeSup
@@ -370,16 +370,16 @@ theorem infPrime_ofDual {a : αᵒᵈ} : InfPrime (ofDual a) ↔ SupPrime a :=
 #align inf_prime_of_dual infPrime_ofDual
 -/
 
-alias supIrred_toDual ↔ _ InfIrred.dual
+alias ⟨_, InfIrred.dual⟩ := supIrred_toDual
 #align inf_irred.dual InfIrred.dual
 
-alias supPrime_toDual ↔ _ InfPrime.dual
+alias ⟨_, InfPrime.dual⟩ := supPrime_toDual
 #align inf_prime.dual InfPrime.dual
 
-alias infIrred_ofDual ↔ _ SupIrred.ofDual
+alias ⟨_, SupIrred.ofDual⟩ := infIrred_ofDual
 #align sup_irred.of_dual SupIrred.ofDual
 
-alias infPrime_ofDual ↔ _ SupPrime.ofDual
+alias ⟨_, SupPrime.ofDual⟩ := infPrime_ofDual
 #align sup_prime.of_dual SupPrime.ofDual
 
 end SemilatticeInf
@@ -404,10 +404,10 @@ theorem infPrime_iff_infIrred : InfPrime a ↔ InfIrred a :=
 #align inf_prime_iff_inf_irred infPrime_iff_infIrred
 -/
 
-alias supPrime_iff_supIrred ↔ _ SupIrred.supPrime
+alias ⟨_, SupIrred.supPrime⟩ := supPrime_iff_supIrred
 #align sup_irred.sup_prime SupIrred.supPrime
 
-alias infPrime_iff_infIrred ↔ _ InfIrred.infPrime
+alias ⟨_, InfIrred.infPrime⟩ := infPrime_iff_infIrred
 #align inf_irred.inf_prime InfIrred.infPrime
 
 attribute [protected] SupIrred.supPrime InfIrred.infPrime
Diff
@@ -6,11 +6,14 @@ Authors: Yaël Dillies
 import Mathbin.Data.Finset.Lattice
 import Mathbin.Data.Fintype.Card
 
-#align_import order.irreducible from "leanprover-community/mathlib"@"bf2428c9486c407ca38b5b3fb10b87dad0bc99fa"
+#align_import order.irreducible from "leanprover-community/mathlib"@"573eea921b01c49712ac02471911df0719297349"
 
 /-!
 # Irreducible and prime elements in an order
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file defines irreducible and prime elements in an order and shows that in a well-founded
 lattice every element decomposes as a supremum of irreducible elements.
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2023 Yaël Dillies. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies
-
-! This file was ported from Lean 3 source module order.irreducible
-! leanprover-community/mathlib commit bf2428c9486c407ca38b5b3fb10b87dad0bc99fa
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Data.Finset.Lattice
 import Mathbin.Data.Fintype.Card
 
+#align_import order.irreducible from "leanprover-community/mathlib"@"bf2428c9486c407ca38b5b3fb10b87dad0bc99fa"
+
 /-!
 # Irreducible and prime elements in an order
 
Diff
@@ -46,32 +46,45 @@ section SemilatticeSup
 
 variable [SemilatticeSup α] {a b c : α}
 
+#print SupIrred /-
 /-- A sup-irreducible element is a non-bottom element which isn't the supremum of anything smaller.
 -/
 def SupIrred (a : α) : Prop :=
   ¬IsMin a ∧ ∀ ⦃b c⦄, b ⊔ c = a → b = a ∨ c = a
 #align sup_irred SupIrred
+-/
 
+#print SupPrime /-
 /-- A sup-prime element is a non-bottom element which isn't less than the supremum of anything
 smaller. -/
 def SupPrime (a : α) : Prop :=
   ¬IsMin a ∧ ∀ ⦃b c⦄, a ≤ b ⊔ c → a ≤ b ∨ a ≤ c
 #align sup_prime SupPrime
+-/
 
+#print SupIrred.not_isMin /-
 theorem SupIrred.not_isMin (ha : SupIrred a) : ¬IsMin a :=
   ha.1
 #align sup_irred.not_is_min SupIrred.not_isMin
+-/
 
+#print SupPrime.not_isMin /-
 theorem SupPrime.not_isMin (ha : SupPrime a) : ¬IsMin a :=
   ha.1
 #align sup_prime.not_is_min SupPrime.not_isMin
+-/
 
+#print IsMin.not_supIrred /-
 theorem IsMin.not_supIrred (ha : IsMin a) : ¬SupIrred a := fun h => h.1 ha
 #align is_min.not_sup_irred IsMin.not_supIrred
+-/
 
+#print IsMin.not_supPrime /-
 theorem IsMin.not_supPrime (ha : IsMin a) : ¬SupPrime a := fun h => h.1 ha
 #align is_min.not_sup_prime IsMin.not_supPrime
+-/
 
+#print not_supIrred /-
 @[simp]
 theorem not_supIrred : ¬SupIrred a ↔ IsMin a ∨ ∃ b c, b ⊔ c = a ∧ b < a ∧ c < a :=
   by
@@ -80,38 +93,54 @@ theorem not_supIrred : ¬SupIrred a ↔ IsMin a ∨ ∃ b c, b ⊔ c = a ∧ b <
   rw [exists₂_congr]
   simp (config := { contextual := true }) [@eq_comm _ _ a]
 #align not_sup_irred not_supIrred
+-/
 
+#print not_supPrime /-
 @[simp]
 theorem not_supPrime : ¬SupPrime a ↔ IsMin a ∨ ∃ b c, a ≤ b ⊔ c ∧ ¬a ≤ b ∧ ¬a ≤ c := by
   rw [SupPrime, not_and_or]; push_neg; rfl
 #align not_sup_prime not_supPrime
+-/
 
+#print SupPrime.supIrred /-
 protected theorem SupPrime.supIrred : SupPrime a → SupIrred a :=
   And.imp_right fun h b c ha => by simpa [← ha] using h ha.ge
 #align sup_prime.sup_irred SupPrime.supIrred
+-/
 
+#print SupPrime.le_sup /-
 theorem SupPrime.le_sup (ha : SupPrime a) : a ≤ b ⊔ c ↔ a ≤ b ∨ a ≤ c :=
   ⟨fun h => ha.2 h, fun h => h.elim le_sup_of_le_left le_sup_of_le_right⟩
 #align sup_prime.le_sup SupPrime.le_sup
+-/
 
 variable [OrderBot α] {s : Finset ι} {f : ι → α}
 
+#print not_supIrred_bot /-
 @[simp]
 theorem not_supIrred_bot : ¬SupIrred (⊥ : α) :=
   isMin_bot.not_supIrred
 #align not_sup_irred_bot not_supIrred_bot
+-/
 
+#print not_supPrime_bot /-
 @[simp]
 theorem not_supPrime_bot : ¬SupPrime (⊥ : α) :=
   isMin_bot.not_supPrime
 #align not_sup_prime_bot not_supPrime_bot
+-/
 
+#print SupIrred.ne_bot /-
 theorem SupIrred.ne_bot (ha : SupIrred a) : a ≠ ⊥ := by rintro rfl; exact not_supIrred_bot ha
 #align sup_irred.ne_bot SupIrred.ne_bot
+-/
 
+#print SupPrime.ne_bot /-
 theorem SupPrime.ne_bot (ha : SupPrime a) : a ≠ ⊥ := by rintro rfl; exact not_supPrime_bot ha
 #align sup_prime.ne_bot SupPrime.ne_bot
+-/
 
+#print SupIrred.finset_sup_eq /-
 theorem SupIrred.finset_sup_eq (ha : SupIrred a) (h : s.sup f = a) : ∃ i ∈ s, f i = a := by
   classical
   induction' s using Finset.induction with i s hi ih
@@ -120,16 +149,20 @@ theorem SupIrred.finset_sup_eq (ha : SupIrred a) (h : s.sup f = a) : ∃ i ∈ s
   rw [sup_insert] at h 
   exact (ha.2 h).imp_right ih
 #align sup_irred.finset_sup_eq SupIrred.finset_sup_eq
+-/
 
+#print SupPrime.le_finset_sup /-
 theorem SupPrime.le_finset_sup (ha : SupPrime a) : a ≤ s.sup f ↔ ∃ i ∈ s, a ≤ f i := by
   classical
   induction' s using Finset.induction with i s hi ih
   · simp [ha.ne_bot]
   · simp only [exists_prop, exists_mem_insert, sup_insert, ha.le_sup, ih]
 #align sup_prime.le_finset_sup SupPrime.le_finset_sup
+-/
 
 variable [WellFoundedLT α]
 
+#print exists_supIrred_decomposition /-
 /-- 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 : α) :
@@ -147,6 +180,7 @@ theorem exists_supIrred_decomposition (a : α) :
   obtain ⟨t, rfl, ht⟩ := ih _ hc
   exact ⟨s ∪ t, sup_union, forall_mem_union.2 ⟨hs, ht⟩⟩
 #align exists_sup_irred_decomposition exists_supIrred_decomposition
+-/
 
 end SemilatticeSup
 
@@ -154,77 +188,107 @@ section SemilatticeInf
 
 variable [SemilatticeInf α] {a b c : α}
 
+#print InfIrred /-
 /-- An inf-irreducible element is a non-top element which isn't the infimum of anything bigger. -/
 def InfIrred (a : α) : Prop :=
   ¬IsMax a ∧ ∀ ⦃b c⦄, b ⊓ c = a → b = a ∨ c = a
 #align inf_irred InfIrred
+-/
 
+#print InfPrime /-
 /-- An inf-prime element is a non-top element which isn't bigger than the infimum of anything
 bigger. -/
 def InfPrime (a : α) : Prop :=
   ¬IsMax a ∧ ∀ ⦃b c⦄, b ⊓ c ≤ a → b ≤ a ∨ c ≤ a
 #align inf_prime InfPrime
+-/
 
+#print IsMax.not_infIrred /-
 @[simp]
 theorem IsMax.not_infIrred (ha : IsMax a) : ¬InfIrred a := fun h => h.1 ha
 #align is_max.not_inf_irred IsMax.not_infIrred
+-/
 
+#print IsMax.not_infPrime /-
 @[simp]
 theorem IsMax.not_infPrime (ha : IsMax a) : ¬InfPrime a := fun h => h.1 ha
 #align is_max.not_inf_prime IsMax.not_infPrime
+-/
 
+#print not_infIrred /-
 @[simp]
 theorem not_infIrred : ¬InfIrred a ↔ IsMax a ∨ ∃ b c, b ⊓ c = a ∧ a < b ∧ a < c :=
   @not_supIrred αᵒᵈ _ _
 #align not_inf_irred not_infIrred
+-/
 
+#print not_infPrime /-
 @[simp]
 theorem not_infPrime : ¬InfPrime a ↔ IsMax a ∨ ∃ b c, b ⊓ c ≤ a ∧ ¬b ≤ a ∧ ¬c ≤ a :=
   @not_supPrime αᵒᵈ _ _
 #align not_inf_prime not_infPrime
+-/
 
+#print InfPrime.infIrred /-
 protected theorem InfPrime.infIrred : InfPrime a → InfIrred a :=
   And.imp_right fun h b c ha => by simpa [← ha] using h ha.le
 #align inf_prime.inf_irred InfPrime.infIrred
+-/
 
+#print InfPrime.inf_le /-
 theorem InfPrime.inf_le (ha : InfPrime a) : b ⊓ c ≤ a ↔ b ≤ a ∨ c ≤ a :=
   ⟨fun h => ha.2 h, fun h => h.elim inf_le_of_left_le inf_le_of_right_le⟩
 #align inf_prime.inf_le InfPrime.inf_le
+-/
 
 variable [OrderTop α] {s : Finset ι} {f : ι → α}
 
+#print not_infIrred_top /-
 @[simp]
 theorem not_infIrred_top : ¬InfIrred (⊤ : α) :=
   isMax_top.not_infIrred
 #align not_inf_irred_top not_infIrred_top
+-/
 
+#print not_infPrime_top /-
 @[simp]
 theorem not_infPrime_top : ¬InfPrime (⊤ : α) :=
   isMax_top.not_infPrime
 #align not_inf_prime_top not_infPrime_top
+-/
 
+#print InfIrred.ne_top /-
 theorem InfIrred.ne_top (ha : InfIrred a) : a ≠ ⊤ := by rintro rfl; exact not_infIrred_top ha
 #align inf_irred.ne_top InfIrred.ne_top
+-/
 
+#print InfPrime.ne_top /-
 theorem InfPrime.ne_top (ha : InfPrime a) : a ≠ ⊤ := by rintro rfl; exact not_infPrime_top ha
 #align inf_prime.ne_top InfPrime.ne_top
+-/
 
+#print InfIrred.finset_inf_eq /-
 theorem InfIrred.finset_inf_eq : InfIrred a → s.inf f = a → ∃ i ∈ s, f i = a :=
   @SupIrred.finset_sup_eq _ αᵒᵈ _ _ _ _ _
 #align inf_irred.finset_inf_eq InfIrred.finset_inf_eq
+-/
 
+#print InfPrime.finset_inf_le /-
 theorem InfPrime.finset_inf_le (ha : InfPrime a) : s.inf f ≤ a ↔ ∃ i ∈ s, f i ≤ a :=
   @SupPrime.le_finset_sup _ αᵒᵈ _ _ _ _ _ ha
 #align inf_prime.finset_inf_le InfPrime.finset_inf_le
+-/
 
 variable [WellFoundedGT α]
 
+#print exists_infIrred_decomposition /-
 /-- 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 :=
   @exists_supIrred_decomposition αᵒᵈ _ _ _ _
 #align exists_inf_irred_decomposition exists_infIrred_decomposition
+-/
 
 end SemilatticeInf
 
@@ -232,25 +296,33 @@ section SemilatticeSup
 
 variable [SemilatticeSup α]
 
+#print infIrred_toDual /-
 @[simp]
 theorem infIrred_toDual {a : α} : InfIrred (toDual a) ↔ SupIrred a :=
   Iff.rfl
 #align inf_irred_to_dual infIrred_toDual
+-/
 
+#print infPrime_toDual /-
 @[simp]
 theorem infPrime_toDual {a : α} : InfPrime (toDual a) ↔ SupPrime a :=
   Iff.rfl
 #align inf_prime_to_dual infPrime_toDual
+-/
 
+#print supIrred_ofDual /-
 @[simp]
 theorem supIrred_ofDual {a : αᵒᵈ} : SupIrred (ofDual a) ↔ InfIrred a :=
   Iff.rfl
 #align sup_irred_of_dual supIrred_ofDual
+-/
 
+#print supPrime_ofDual /-
 @[simp]
 theorem supPrime_ofDual {a : αᵒᵈ} : SupPrime (ofDual a) ↔ InfPrime a :=
   Iff.rfl
 #align sup_prime_of_dual supPrime_ofDual
+-/
 
 alias infIrred_toDual ↔ _ SupIrred.dual
 #align sup_irred.dual SupIrred.dual
@@ -270,25 +342,33 @@ section SemilatticeInf
 
 variable [SemilatticeInf α]
 
+#print supIrred_toDual /-
 @[simp]
 theorem supIrred_toDual {a : α} : SupIrred (toDual a) ↔ InfIrred a :=
   Iff.rfl
 #align sup_irred_to_dual supIrred_toDual
+-/
 
+#print supPrime_toDual /-
 @[simp]
 theorem supPrime_toDual {a : α} : SupPrime (toDual a) ↔ InfPrime a :=
   Iff.rfl
 #align sup_prime_to_dual supPrime_toDual
+-/
 
+#print infIrred_ofDual /-
 @[simp]
 theorem infIrred_ofDual {a : αᵒᵈ} : InfIrred (ofDual a) ↔ SupIrred a :=
   Iff.rfl
 #align inf_irred_of_dual infIrred_ofDual
+-/
 
+#print infPrime_ofDual /-
 @[simp]
 theorem infPrime_ofDual {a : αᵒᵈ} : InfPrime (ofDual a) ↔ SupPrime a :=
   Iff.rfl
 #align inf_prime_of_dual infPrime_ofDual
+-/
 
 alias supIrred_toDual ↔ _ InfIrred.dual
 #align inf_irred.dual InfIrred.dual
@@ -308,17 +388,21 @@ section DistribLattice
 
 variable [DistribLattice α] {a b c : α}
 
+#print supPrime_iff_supIrred /-
 @[simp]
 theorem supPrime_iff_supIrred : SupPrime a ↔ SupIrred a :=
   ⟨SupPrime.supIrred,
     And.imp_right fun h b c => by simp_rw [← inf_eq_left, inf_sup_left]; exact @h _ _⟩
 #align sup_prime_iff_sup_irred supPrime_iff_supIrred
+-/
 
+#print infPrime_iff_infIrred /-
 @[simp]
 theorem infPrime_iff_infIrred : InfPrime a ↔ InfIrred a :=
   ⟨InfPrime.infIrred,
     And.imp_right fun h b c => by simp_rw [← sup_eq_left, sup_inf_left]; exact @h _ _⟩
 #align inf_prime_iff_inf_irred infPrime_iff_infIrred
+-/
 
 alias supPrime_iff_supIrred ↔ _ SupIrred.supPrime
 #align sup_irred.sup_prime SupIrred.supPrime
@@ -334,25 +418,33 @@ section LinearOrder
 
 variable [LinearOrder α] {a : α}
 
+#print supPrime_iff_not_isMin /-
 @[simp]
 theorem supPrime_iff_not_isMin : SupPrime a ↔ ¬IsMin a :=
   and_iff_left <| by simp
 #align sup_prime_iff_not_is_min supPrime_iff_not_isMin
+-/
 
+#print infPrime_iff_not_isMax /-
 @[simp]
 theorem infPrime_iff_not_isMax : InfPrime a ↔ ¬IsMax a :=
   and_iff_left <| by simp
 #align inf_prime_iff_not_is_max infPrime_iff_not_isMax
+-/
 
+#print supIrred_iff_not_isMin /-
 @[simp]
 theorem supIrred_iff_not_isMin : SupIrred a ↔ ¬IsMin a :=
   and_iff_left fun _ _ => by simpa only [sup_eq_max, max_eq_iff] using Or.imp And.left And.left
 #align sup_irred_iff_not_is_min supIrred_iff_not_isMin
+-/
 
+#print infIrred_iff_not_isMax /-
 @[simp]
 theorem infIrred_iff_not_isMax : InfIrred a ↔ ¬IsMax a :=
   and_iff_left fun _ _ => by simpa only [inf_eq_min, min_eq_iff] using Or.imp And.left And.left
 #align inf_irred_iff_not_is_max infIrred_iff_not_isMax
+-/
 
 end LinearOrder
 

Changes in mathlib4

mathlib3
mathlib4
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -321,7 +321,7 @@ alias ⟨_, SupIrred.supPrime⟩ := supPrime_iff_supIrred
 alias ⟨_, InfIrred.infPrime⟩ := infPrime_iff_infIrred
 #align inf_irred.inf_prime InfIrred.infPrime
 
--- porting note: was attribute [protected] SupIrred.supPrime InfIrred.infPrime
+-- Porting note: was attribute [protected] SupIrred.supPrime InfIrred.infPrime
 
 end DistribLattice
 
chore: classify simp can do this porting notes (#10619)

Classify by adding issue number (#10618) to porting notes claiming anything semantically equivalent to simp can prove this or simp can simplify this.

Diff
@@ -188,12 +188,12 @@ theorem InfPrime.inf_le (ha : InfPrime a) : b ⊓ c ≤ a ↔ b ≤ a ∨ c ≤
 
 variable [OrderTop α] {s : Finset ι} {f : ι → α}
 
--- @[simp] Porting note: simp can prove this.
+-- @[simp] Porting note (#10618): simp can prove this.
 theorem not_infIrred_top : ¬InfIrred (⊤ : α) :=
   isMax_top.not_infIrred
 #align not_inf_irred_top not_infIrred_top
 
--- @[simp] Porting note: simp can prove this.
+-- @[simp] Porting note (#10618): simp can prove this.
 theorem not_infPrime_top : ¬InfPrime (⊤ : α) :=
   isMax_top.not_infPrime
 #align not_inf_prime_top not_infPrime_top
@@ -329,12 +329,12 @@ section LinearOrder
 
 variable [LinearOrder α] {a : α}
 
--- @[simp] Porting note: simp can prove this
+-- @[simp] Porting note (#10618): simp can prove this
 theorem supPrime_iff_not_isMin : SupPrime a ↔ ¬IsMin a :=
   and_iff_left <| by simp
 #align sup_prime_iff_not_is_min supPrime_iff_not_isMin
 
--- @[simp] Porting note: simp can prove this
+-- @[simp] Porting note (#10618): simp can prove thisrove this
 theorem infPrime_iff_not_isMax : InfPrime a ↔ ¬IsMax a :=
   and_iff_left <| by simp
 #align inf_prime_iff_not_is_max infPrime_iff_not_isMax
chore: reduce imports (#9830)

This uses the improved shake script from #9772 to reduce imports across mathlib. The corresponding noshake.json file has been added to #9772.

Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -4,7 +4,6 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies
 -/
 import Mathlib.Data.Finset.Lattice
-import Mathlib.Data.Fintype.Card
 
 #align_import order.irreducible from "leanprover-community/mathlib"@"bf2428c9486c407ca38b5b3fb10b87dad0bc99fa"
 
feat: patch for new alias command (#6172)
Diff
@@ -248,16 +248,16 @@ theorem supPrime_ofDual {a : αᵒᵈ} : SupPrime (ofDual a) ↔ InfPrime a :=
   Iff.rfl
 #align sup_prime_of_dual supPrime_ofDual
 
-alias infIrred_toDual ↔ _ SupIrred.dual
+alias ⟨_, SupIrred.dual⟩ := infIrred_toDual
 #align sup_irred.dual SupIrred.dual
 
-alias infPrime_toDual ↔ _ SupPrime.dual
+alias ⟨_, SupPrime.dual⟩ := infPrime_toDual
 #align sup_prime.dual SupPrime.dual
 
-alias supIrred_ofDual ↔ _ InfIrred.ofDual
+alias ⟨_, InfIrred.ofDual⟩ := supIrred_ofDual
 #align inf_irred.of_dual InfIrred.ofDual
 
-alias supPrime_ofDual ↔ _ InfPrime.ofDual
+alias ⟨_, InfPrime.ofDual⟩ := supPrime_ofDual
 #align inf_prime.of_dual InfPrime.ofDual
 
 end SemilatticeSup
@@ -286,16 +286,16 @@ theorem infPrime_ofDual {a : αᵒᵈ} : InfPrime (ofDual a) ↔ SupPrime a :=
   Iff.rfl
 #align inf_prime_of_dual infPrime_ofDual
 
-alias supIrred_toDual ↔ _ InfIrred.dual
+alias ⟨_, InfIrred.dual⟩ := supIrred_toDual
 #align inf_irred.dual InfIrred.dual
 
-alias supPrime_toDual ↔ _ InfPrime.dual
+alias ⟨_, InfPrime.dual⟩ := supPrime_toDual
 #align inf_prime.dual InfPrime.dual
 
-alias infIrred_ofDual ↔ _ SupIrred.ofDual
+alias ⟨_, SupIrred.ofDual⟩ := infIrred_ofDual
 #align sup_irred.of_dual SupIrred.ofDual
 
-alias infPrime_ofDual ↔ _ SupPrime.ofDual
+alias ⟨_, SupPrime.ofDual⟩ := infPrime_ofDual
 #align sup_prime.of_dual SupPrime.ofDual
 
 end SemilatticeInf
@@ -316,10 +316,10 @@ theorem infPrime_iff_infIrred : InfPrime a ↔ InfIrred a :=
     And.imp_right fun h b c => by simp_rw [← sup_eq_left, sup_inf_left]; exact @h _ _⟩
 #align inf_prime_iff_inf_irred infPrime_iff_infIrred
 
-alias supPrime_iff_supIrred ↔ _ SupIrred.supPrime
+alias ⟨_, SupIrred.supPrime⟩ := supPrime_iff_supIrred
 #align sup_irred.sup_prime SupIrred.supPrime
 
-alias infPrime_iff_infIrred ↔ _ InfIrred.infPrime
+alias ⟨_, InfIrred.infPrime⟩ := infPrime_iff_infIrred
 #align inf_irred.inf_prime InfIrred.infPrime
 
 -- porting note: was attribute [protected] SupIrred.supPrime InfIrred.infPrime
@@ -351,4 +351,3 @@ theorem infIrred_iff_not_isMax : InfIrred a ↔ ¬IsMax a :=
 #align inf_irred_iff_not_is_max infIrred_iff_not_isMax
 
 end LinearOrder
-
style: remove trailing whitespace and modify the linter to detect it (#6519)
Diff
@@ -113,7 +113,7 @@ theorem SupIrred.finset_sup_eq (ha : SupIrred a) (h : s.sup f = a) : ∃ i ∈ s
   induction' s using Finset.induction with i s _ ih
   · simpa [ha.ne_bot] using h.symm
   simp only [exists_prop, exists_mem_insert] at ih ⊢
-  rw [sup_insert] at h 
+  rw [sup_insert] at h
   exact (ha.2 h).imp_right ih
 #align sup_irred.finset_sup_eq SupIrred.finset_sup_eq
 
@@ -136,7 +136,7 @@ theorem exists_supIrred_decomposition (a : α) :
   rintro a ih
   by_cases ha : SupIrred a
   · exact ⟨{a}, by simp [ha]⟩
-  rw [not_supIrred] at ha 
+  rw [not_supIrred] at ha
   obtain ha | ⟨b, c, rfl, hb, hc⟩ := ha
   · exact ⟨∅, by simp [ha.eq_bot]⟩
   obtain ⟨s, rfl, hs⟩ := ih _ hb
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -34,7 +34,7 @@ Both hold for all (non-minimal) elements in a linear order.
 
 open Finset OrderDual
 
-variable {ι α : Type _}
+variable {ι α : Type*}
 
 /-! ### Irreducible and prime elements -/
 
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2023 Yaël Dillies. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies
-
-! This file was ported from Lean 3 source module order.irreducible
-! leanprover-community/mathlib commit bf2428c9486c407ca38b5b3fb10b87dad0bc99fa
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Data.Finset.Lattice
 import Mathlib.Data.Fintype.Card
 
+#align_import order.irreducible from "leanprover-community/mathlib"@"bf2428c9486c407ca38b5b3fb10b87dad0bc99fa"
+
 /-!
 # Irreducible and prime elements in an order
 
feat: port Order.Irreducible (#5976)

Co-authored-by: Scott Morrison <scott@tqft.net>

Dependencies 2 + 178

179 files ported (98.9%)
82111 lines ported (99.8%)
Show graph

The unported dependencies are