order.extension.well
⟷
Mathlib.Order.Extension.Well
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.
(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)
(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)
(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)
(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)
(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)
(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)
(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)
(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)
(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)
(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)
(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)
(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)
(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)
(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)
(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)
(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)
(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)
(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)
(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)
(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)
(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)
(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)
(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)
(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)
(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)
(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)
(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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2022 Yaël Dillies, Junyan Xu. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yaël Dillies, Junyan Xu
-/
-import Mathbin.Data.Prod.Lex
-import Mathbin.SetTheory.Ordinal.Arithmetic
+import Data.Prod.Lex
+import SetTheory.Ordinal.Arithmetic
#align_import order.extension.well from "leanprover-community/mathlib"@"23aa88e32dcc9d2a24cca7bc23268567ed4cd7d6"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2022 Yaël Dillies, Junyan Xu. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yaël Dillies, Junyan Xu
-
-! This file was ported from Lean 3 source module order.extension.well
-! leanprover-community/mathlib commit 23aa88e32dcc9d2a24cca7bc23268567ed4cd7d6
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Data.Prod.Lex
import Mathbin.SetTheory.Ordinal.Arithmetic
+#align_import order.extension.well from "leanprover-community/mathlib"@"23aa88e32dcc9d2a24cca7bc23268567ed4cd7d6"
+
/-!
# Extend a well-founded order to a well-order
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -40,8 +40,6 @@ namespace WellFounded
variable (hwf : WellFounded r)
-include hwf
-
#print WellFounded.wellOrderExtension /-
/-- An arbitrary well order on `α` that extends `r`.
@@ -60,9 +58,11 @@ noncomputable def wellOrderExtension : LinearOrder α :=
#align well_founded.well_order_extension WellFounded.wellOrderExtension
-/
+#print WellFounded.wellOrderExtension.isWellFounded_lt /-
instance wellOrderExtension.isWellFounded_lt : IsWellFounded α hwf.wellOrderExtension.lt :=
⟨InvImage.wf _ <| WellFounded.prod_lex Ordinal.wellFoundedLT.wf WellOrderingRel.isWellOrder.wf⟩
#align well_founded.well_order_extension.is_well_founded_lt WellFounded.wellOrderExtension.isWellFounded_lt
+-/
#print WellFounded.exists_well_order_ge /-
/-- Any well-founded relation can be extended to a well-ordering on that type. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -93,13 +93,17 @@ def toWellOrderExtension : α ≃ WellOrderExtension α :=
noncomputable instance [LT α] [WellFoundedLT α] : LinearOrder (WellOrderExtension α) :=
(IsWellFounded.wf : @WellFounded α (· < ·)).wellOrderExtension
+#print WellOrderExtension.wellFoundedLT /-
instance WellOrderExtension.wellFoundedLT [LT α] [WellFoundedLT α] :
WellFoundedLT (WellOrderExtension α) :=
WellFounded.wellOrderExtension.isWellFounded_lt _
#align well_order_extension.well_founded_lt WellOrderExtension.wellFoundedLT
+-/
+#print toWellOrderExtension_strictMono /-
theorem toWellOrderExtension_strictMono [Preorder α] [WellFoundedLT α] :
StrictMono (toWellOrderExtension : α → WellOrderExtension α) := fun a b h =>
Prod.Lex.left _ _ <| WellFounded.rank_lt_of_rel _ h
#align to_well_order_extension_strict_mono toWellOrderExtension_strictMono
+-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -60,12 +60,6 @@ noncomputable def wellOrderExtension : LinearOrder α :=
#align well_founded.well_order_extension WellFounded.wellOrderExtension
-/
-/- warning: well_founded.well_order_extension.is_well_founded_lt -> WellFounded.wellOrderExtension.isWellFounded_lt is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {r : α -> α -> Prop} (hwf : WellFounded.{succ u1} α r), IsWellFounded.{u1} α (LinearOrder.Lt.{u1} α (WellFounded.wellOrderExtension.{u1} α r hwf))
-but is expected to have type
- forall {α : Type.{u1}} {r : α -> α -> Prop} (hwf : WellFounded.{succ u1} α r), IsWellFounded.{u1} α (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (LinearOrder.toPartialOrder.{u1} α (WellFounded.wellOrderExtension.{u1} α r hwf)))))
-Case conversion may be inaccurate. Consider using '#align well_founded.well_order_extension.is_well_founded_lt WellFounded.wellOrderExtension.isWellFounded_ltₓ'. -/
instance wellOrderExtension.isWellFounded_lt : IsWellFounded α hwf.wellOrderExtension.lt :=
⟨InvImage.wf _ <| WellFounded.prod_lex Ordinal.wellFoundedLT.wf WellOrderingRel.isWellOrder.wf⟩
#align well_founded.well_order_extension.is_well_founded_lt WellFounded.wellOrderExtension.isWellFounded_lt
@@ -99,23 +93,11 @@ def toWellOrderExtension : α ≃ WellOrderExtension α :=
noncomputable instance [LT α] [WellFoundedLT α] : LinearOrder (WellOrderExtension α) :=
(IsWellFounded.wf : @WellFounded α (· < ·)).wellOrderExtension
-/- warning: well_order_extension.well_founded_lt -> WellOrderExtension.wellFoundedLT is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LT.{u1} α] [_inst_2 : WellFoundedLT.{u1} α _inst_1], WellFoundedLT.{u1} (WellOrderExtension.{u1} α) (Preorder.toHasLt.{u1} (WellOrderExtension.{u1} α) (PartialOrder.toPreorder.{u1} (WellOrderExtension.{u1} α) (SemilatticeInf.toPartialOrder.{u1} (WellOrderExtension.{u1} α) (Lattice.toSemilatticeInf.{u1} (WellOrderExtension.{u1} α) (LinearOrder.toLattice.{u1} (WellOrderExtension.{u1} α) (WellOrderExtension.linearOrder.{u1} α _inst_1 _inst_2))))))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LT.{u1} α] [_inst_2 : WellFoundedLT.{u1} α _inst_1], WellFoundedLT.{u1} (WellOrderExtension.{u1} α) (Preorder.toLT.{u1} (WellOrderExtension.{u1} α) (PartialOrder.toPreorder.{u1} (WellOrderExtension.{u1} α) (SemilatticeInf.toPartialOrder.{u1} (WellOrderExtension.{u1} α) (Lattice.toSemilatticeInf.{u1} (WellOrderExtension.{u1} α) (DistribLattice.toLattice.{u1} (WellOrderExtension.{u1} α) (instDistribLattice.{u1} (WellOrderExtension.{u1} α) (instLinearOrderWellOrderExtension.{u1} α _inst_1 _inst_2)))))))
-Case conversion may be inaccurate. Consider using '#align well_order_extension.well_founded_lt WellOrderExtension.wellFoundedLTₓ'. -/
instance WellOrderExtension.wellFoundedLT [LT α] [WellFoundedLT α] :
WellFoundedLT (WellOrderExtension α) :=
WellFounded.wellOrderExtension.isWellFounded_lt _
#align well_order_extension.well_founded_lt WellOrderExtension.wellFoundedLT
-/- warning: to_well_order_extension_strict_mono -> toWellOrderExtension_strictMono is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] [_inst_2 : WellFoundedLT.{u1} α (Preorder.toHasLt.{u1} α _inst_1)], StrictMono.{u1, u1} α (WellOrderExtension.{u1} α) _inst_1 (PartialOrder.toPreorder.{u1} (WellOrderExtension.{u1} α) (SemilatticeInf.toPartialOrder.{u1} (WellOrderExtension.{u1} α) (Lattice.toSemilatticeInf.{u1} (WellOrderExtension.{u1} α) (LinearOrder.toLattice.{u1} (WellOrderExtension.{u1} α) (WellOrderExtension.linearOrder.{u1} α (Preorder.toHasLt.{u1} α _inst_1) _inst_2))))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} α (WellOrderExtension.{u1} α)) (fun (_x : Equiv.{succ u1, succ u1} α (WellOrderExtension.{u1} α)) => α -> (WellOrderExtension.{u1} α)) (Equiv.hasCoeToFun.{succ u1, succ u1} α (WellOrderExtension.{u1} α)) (toWellOrderExtension.{u1} α))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] [_inst_2 : WellFoundedLT.{u1} α (Preorder.toLT.{u1} α _inst_1)], StrictMono.{u1, u1} α (WellOrderExtension.{u1} α) _inst_1 (PartialOrder.toPreorder.{u1} (WellOrderExtension.{u1} α) (SemilatticeInf.toPartialOrder.{u1} (WellOrderExtension.{u1} α) (Lattice.toSemilatticeInf.{u1} (WellOrderExtension.{u1} α) (DistribLattice.toLattice.{u1} (WellOrderExtension.{u1} α) (instDistribLattice.{u1} (WellOrderExtension.{u1} α) (instLinearOrderWellOrderExtension.{u1} α (Preorder.toLT.{u1} α _inst_1) _inst_2)))))) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} α (WellOrderExtension.{u1} α)) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : α) => WellOrderExtension.{u1} α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} α (WellOrderExtension.{u1} α)) (toWellOrderExtension.{u1} α))
-Case conversion may be inaccurate. Consider using '#align to_well_order_extension_strict_mono toWellOrderExtension_strictMonoₓ'. -/
theorem toWellOrderExtension_strictMono [Preorder α] [WellFoundedLT α] :
StrictMono (toWellOrderExtension : α → WellOrderExtension α) := fun a b h =>
Prod.Lex.left _ _ <| WellFounded.rank_lt_of_rel _ h
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -114,7 +114,7 @@ instance WellOrderExtension.wellFoundedLT [LT α] [WellFoundedLT α] :
lean 3 declaration is
forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] [_inst_2 : WellFoundedLT.{u1} α (Preorder.toHasLt.{u1} α _inst_1)], StrictMono.{u1, u1} α (WellOrderExtension.{u1} α) _inst_1 (PartialOrder.toPreorder.{u1} (WellOrderExtension.{u1} α) (SemilatticeInf.toPartialOrder.{u1} (WellOrderExtension.{u1} α) (Lattice.toSemilatticeInf.{u1} (WellOrderExtension.{u1} α) (LinearOrder.toLattice.{u1} (WellOrderExtension.{u1} α) (WellOrderExtension.linearOrder.{u1} α (Preorder.toHasLt.{u1} α _inst_1) _inst_2))))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} α (WellOrderExtension.{u1} α)) (fun (_x : Equiv.{succ u1, succ u1} α (WellOrderExtension.{u1} α)) => α -> (WellOrderExtension.{u1} α)) (Equiv.hasCoeToFun.{succ u1, succ u1} α (WellOrderExtension.{u1} α)) (toWellOrderExtension.{u1} α))
but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] [_inst_2 : WellFoundedLT.{u1} α (Preorder.toLT.{u1} α _inst_1)], StrictMono.{u1, u1} α (WellOrderExtension.{u1} α) _inst_1 (PartialOrder.toPreorder.{u1} (WellOrderExtension.{u1} α) (SemilatticeInf.toPartialOrder.{u1} (WellOrderExtension.{u1} α) (Lattice.toSemilatticeInf.{u1} (WellOrderExtension.{u1} α) (DistribLattice.toLattice.{u1} (WellOrderExtension.{u1} α) (instDistribLattice.{u1} (WellOrderExtension.{u1} α) (instLinearOrderWellOrderExtension.{u1} α (Preorder.toLT.{u1} α _inst_1) _inst_2)))))) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} α (WellOrderExtension.{u1} α)) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α) => WellOrderExtension.{u1} α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} α (WellOrderExtension.{u1} α)) (toWellOrderExtension.{u1} α))
+ forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] [_inst_2 : WellFoundedLT.{u1} α (Preorder.toLT.{u1} α _inst_1)], StrictMono.{u1, u1} α (WellOrderExtension.{u1} α) _inst_1 (PartialOrder.toPreorder.{u1} (WellOrderExtension.{u1} α) (SemilatticeInf.toPartialOrder.{u1} (WellOrderExtension.{u1} α) (Lattice.toSemilatticeInf.{u1} (WellOrderExtension.{u1} α) (DistribLattice.toLattice.{u1} (WellOrderExtension.{u1} α) (instDistribLattice.{u1} (WellOrderExtension.{u1} α) (instLinearOrderWellOrderExtension.{u1} α (Preorder.toLT.{u1} α _inst_1) _inst_2)))))) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} α (WellOrderExtension.{u1} α)) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : α) => WellOrderExtension.{u1} α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} α (WellOrderExtension.{u1} α)) (toWellOrderExtension.{u1} α))
Case conversion may be inaccurate. Consider using '#align to_well_order_extension_strict_mono toWellOrderExtension_strictMonoₓ'. -/
theorem toWellOrderExtension_strictMono [Preorder α] [WellFoundedLT α] :
StrictMono (toWellOrderExtension : α → WellOrderExtension α) := fun a b h =>
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -99,17 +99,25 @@ def toWellOrderExtension : α ≃ WellOrderExtension α :=
noncomputable instance [LT α] [WellFoundedLT α] : LinearOrder (WellOrderExtension α) :=
(IsWellFounded.wf : @WellFounded α (· < ·)).wellOrderExtension
-#print WellOrderExtension.wellFoundedLT /-
+/- warning: well_order_extension.well_founded_lt -> WellOrderExtension.wellFoundedLT is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : LT.{u1} α] [_inst_2 : WellFoundedLT.{u1} α _inst_1], WellFoundedLT.{u1} (WellOrderExtension.{u1} α) (Preorder.toHasLt.{u1} (WellOrderExtension.{u1} α) (PartialOrder.toPreorder.{u1} (WellOrderExtension.{u1} α) (SemilatticeInf.toPartialOrder.{u1} (WellOrderExtension.{u1} α) (Lattice.toSemilatticeInf.{u1} (WellOrderExtension.{u1} α) (LinearOrder.toLattice.{u1} (WellOrderExtension.{u1} α) (WellOrderExtension.linearOrder.{u1} α _inst_1 _inst_2))))))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : LT.{u1} α] [_inst_2 : WellFoundedLT.{u1} α _inst_1], WellFoundedLT.{u1} (WellOrderExtension.{u1} α) (Preorder.toLT.{u1} (WellOrderExtension.{u1} α) (PartialOrder.toPreorder.{u1} (WellOrderExtension.{u1} α) (SemilatticeInf.toPartialOrder.{u1} (WellOrderExtension.{u1} α) (Lattice.toSemilatticeInf.{u1} (WellOrderExtension.{u1} α) (DistribLattice.toLattice.{u1} (WellOrderExtension.{u1} α) (instDistribLattice.{u1} (WellOrderExtension.{u1} α) (instLinearOrderWellOrderExtension.{u1} α _inst_1 _inst_2)))))))
+Case conversion may be inaccurate. Consider using '#align well_order_extension.well_founded_lt WellOrderExtension.wellFoundedLTₓ'. -/
instance WellOrderExtension.wellFoundedLT [LT α] [WellFoundedLT α] :
WellFoundedLT (WellOrderExtension α) :=
WellFounded.wellOrderExtension.isWellFounded_lt _
#align well_order_extension.well_founded_lt WellOrderExtension.wellFoundedLT
--/
-#print toWellOrderExtension_strictMono /-
+/- warning: to_well_order_extension_strict_mono -> toWellOrderExtension_strictMono is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] [_inst_2 : WellFoundedLT.{u1} α (Preorder.toHasLt.{u1} α _inst_1)], StrictMono.{u1, u1} α (WellOrderExtension.{u1} α) _inst_1 (PartialOrder.toPreorder.{u1} (WellOrderExtension.{u1} α) (SemilatticeInf.toPartialOrder.{u1} (WellOrderExtension.{u1} α) (Lattice.toSemilatticeInf.{u1} (WellOrderExtension.{u1} α) (LinearOrder.toLattice.{u1} (WellOrderExtension.{u1} α) (WellOrderExtension.linearOrder.{u1} α (Preorder.toHasLt.{u1} α _inst_1) _inst_2))))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} α (WellOrderExtension.{u1} α)) (fun (_x : Equiv.{succ u1, succ u1} α (WellOrderExtension.{u1} α)) => α -> (WellOrderExtension.{u1} α)) (Equiv.hasCoeToFun.{succ u1, succ u1} α (WellOrderExtension.{u1} α)) (toWellOrderExtension.{u1} α))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] [_inst_2 : WellFoundedLT.{u1} α (Preorder.toLT.{u1} α _inst_1)], StrictMono.{u1, u1} α (WellOrderExtension.{u1} α) _inst_1 (PartialOrder.toPreorder.{u1} (WellOrderExtension.{u1} α) (SemilatticeInf.toPartialOrder.{u1} (WellOrderExtension.{u1} α) (Lattice.toSemilatticeInf.{u1} (WellOrderExtension.{u1} α) (DistribLattice.toLattice.{u1} (WellOrderExtension.{u1} α) (instDistribLattice.{u1} (WellOrderExtension.{u1} α) (instLinearOrderWellOrderExtension.{u1} α (Preorder.toLT.{u1} α _inst_1) _inst_2)))))) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} α (WellOrderExtension.{u1} α)) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α) => WellOrderExtension.{u1} α) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} α (WellOrderExtension.{u1} α)) (toWellOrderExtension.{u1} α))
+Case conversion may be inaccurate. Consider using '#align to_well_order_extension_strict_mono toWellOrderExtension_strictMonoₓ'. -/
theorem toWellOrderExtension_strictMono [Preorder α] [WellFoundedLT α] :
StrictMono (toWellOrderExtension : α → WellOrderExtension α) := fun a b h =>
Prod.Lex.left _ _ <| WellFounded.rank_lt_of_rel _ h
#align to_well_order_extension_strict_mono toWellOrderExtension_strictMono
--/
mathlib commit https://github.com/leanprover-community/mathlib/commit/3ade05ac9447ae31a22d2ea5423435e054131240
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yaël Dillies, Junyan Xu
! This file was ported from Lean 3 source module order.extension.well
-! leanprover-community/mathlib commit 2751ae214172a40dfdd28dcbe91767868e0d8b81
+! leanprover-community/mathlib commit 23aa88e32dcc9d2a24cca7bc23268567ed4cd7d6
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,9 @@ import Mathbin.SetTheory.Ordinal.Arithmetic
/-!
# Extend a well-founded order to a well-order
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
This file constructs a well-order (linear well-founded order) which is an extension of a given
well-founded order.
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -72,7 +72,7 @@ theorem exists_well_order_ge : ∃ s, r ≤ s ∧ IsWellOrder α s :=
end WellFounded
/-- A type alias for `α`, intended to extend a well-founded order on `α` to a well-order. -/
-def WellOrderExtension (α : Type _) : Type _ := α
+def WellOrderExtension (α : Type*) : Type _ := α
#align well_order_extension WellOrderExtension
instance [Inhabited α] : Inhabited (WellOrderExtension α) := ‹_›
@@ -2,15 +2,12 @@
Copyright (c) 2022 Yaël Dillies, Junyan Xu. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yaël Dillies, Junyan Xu
-
-! This file was ported from Lean 3 source module order.extension.well
-! leanprover-community/mathlib commit 740acc0e6f9adf4423f92a485d0456fc271482da
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Data.Prod.Lex
import Mathlib.SetTheory.Ordinal.Arithmetic
+#align_import order.extension.well from "leanprover-community/mathlib"@"740acc0e6f9adf4423f92a485d0456fc271482da"
+
/-!
# Extend a well-founded order to a well-order
@@ -54,7 +54,7 @@ necessarily injective but respects the order `r`; the other map is the identity
chosen well-order on `α`), which is injective but doesn't respect `r`.
By taking the lexicographic product of the two, we get both properties, so we can pull it back and
-get an well-order that extend our original order `r`. Another way to view this is that we choose an
+get a well-order that extend our original order `r`. Another way to view this is that we choose an
arbitrary well-order to serve as a tiebreak between two elements of same rank.
-/
noncomputable def wellOrderExtension : LinearOrder α :=
The unported dependencies are