order.countable_dense_linear_order
⟷
Mathlib.Order.CountableDenseLinearOrder
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)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -73,7 +73,7 @@ theorem exists_between_finsets {α : Type _} [LinearOrder α] [DenselyOrdered α
variable (α β : Type _) [LinearOrder α] [LinearOrder β]
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (p q «expr ∈ » f) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (p q «expr ∈ » f) -/
#print Order.PartialIso /-
/-- The type of partial order isomorphisms between `α` and `β` defined on finite subsets.
A partial order isomorphism is encoded as a finite subset of `α × β`, consisting
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -111,10 +111,10 @@ theorem exists_across [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonem
∀ y ∈ (f.val.filter fun p : α × β => a < p.fst).image Prod.snd, x < y :=
by
intro x hx y hy
- rw [Finset.mem_image] at hx hy
+ rw [Finset.mem_image] at hx hy
rcases hx with ⟨p, hp1, rfl⟩
rcases hy with ⟨q, hq1, rfl⟩
- rw [Finset.mem_filter] at hp1 hq1
+ rw [Finset.mem_filter] at hp1 hq1
rw [← lt_iff_lt_of_cmp_eq_cmp (f.prop _ hp1.1 _ hq1.1)]
exact lt_trans hp1.right hq1.right
cases' exists_between_finsets _ _ this with b hb
@@ -124,10 +124,10 @@ theorem exists_across [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonem
cases' lt_or_gt_of_ne this with hl hr
· have : p1 < a ∧ p2 < b :=
⟨hl, hb.1 _ (finset.mem_image.mpr ⟨(p1, p2), finset.mem_filter.mpr ⟨hp, hl⟩, rfl⟩)⟩
- rw [← cmp_eq_lt_iff, ← cmp_eq_lt_iff] at this ; cc
+ rw [← cmp_eq_lt_iff, ← cmp_eq_lt_iff] at this; cc
· have : a < p1 ∧ b < p2 :=
⟨hr, hb.2 _ (finset.mem_image.mpr ⟨(p1, p2), finset.mem_filter.mpr ⟨hp, hr⟩, rfl⟩)⟩
- rw [← cmp_eq_gt_iff, ← cmp_eq_gt_iff] at this ; cc
+ rw [← cmp_eq_gt_iff, ← cmp_eq_gt_iff] at this; cc
#align order.partial_iso.exists_across Order.PartialIso.exists_across
-/
@@ -137,10 +137,10 @@ protected def comm : PartialIso α β → PartialIso β α :=
Subtype.map (Finset.image (Equiv.prodComm _ _)) fun f hf p hp q hq =>
Eq.symm <|
hf ((Equiv.prodComm α β).symm p)
- (by rw [← Finset.mem_coe, Finset.coe_image, Equiv.image_eq_preimage] at hp ;
+ (by rw [← Finset.mem_coe, Finset.coe_image, Equiv.image_eq_preimage] at hp;
rwa [← Finset.mem_coe])
((Equiv.prodComm α β).symm q)
- (by rw [← Finset.mem_coe, Finset.coe_image, Equiv.image_eq_preimage] at hq ;
+ (by rw [← Finset.mem_coe, Finset.coe_image, Equiv.image_eq_preimage] at hq;
rwa [← Finset.mem_coe])
#align order.partial_iso.comm Order.PartialIso.comm
-/
@@ -159,7 +159,7 @@ def definedAtLeft [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonempty
refine'
⟨⟨insert (a, b) f.val, fun p hp q hq => _⟩, ⟨b, Finset.mem_insert_self _ _⟩,
Finset.subset_insert _ _⟩
- rw [Finset.mem_insert] at hp hq
+ rw [Finset.mem_insert] at hp hq
rcases hp with (rfl | pf) <;> rcases hq with (rfl | qf)
· simp only [cmp_self_eq_eq]
· rw [cmp_eq_cmp_symm]; exact a_b _ qf
@@ -183,8 +183,8 @@ def definedAtRight [DenselyOrdered α] [NoMinOrder α] [NoMaxOrder α] [Nonempty
rwa [← Finset.mem_coe, Finset.coe_image, Equiv.image_eq_preimage]
· change _ ⊆ f'.val.image _
rw [← Finset.coe_subset, Finset.coe_image, ← Equiv.symm_image_subset]
- change f.val.image _ ⊆ _ at hl
- rwa [← Finset.coe_subset, Finset.coe_image] at hl
+ change f.val.image _ ⊆ _ at hl
+ rwa [← Finset.coe_subset, Finset.coe_image] at hl
#align order.partial_iso.defined_at_right Order.PartialIso.definedAtRight
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -182,7 +182,7 @@ def definedAtRight [DenselyOrdered α] [NoMinOrder α] [NoMaxOrder α] [Nonempty
· change (a, b) ∈ f'.val.image _
rwa [← Finset.mem_coe, Finset.coe_image, Equiv.image_eq_preimage]
· change _ ⊆ f'.val.image _
- rw [← Finset.coe_subset, Finset.coe_image, ← Equiv.subset_image]
+ rw [← Finset.coe_subset, Finset.coe_image, ← Equiv.symm_image_subset]
change f.val.image _ ⊆ _ at hl
rwa [← Finset.coe_subset, Finset.coe_image] at hl
#align order.partial_iso.defined_at_right Order.PartialIso.definedAtRight
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2020 David Wärn. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: David Wärn
-/
-import Mathbin.Order.Ideal
-import Mathbin.Data.Finset.Lattice
+import Order.Ideal
+import Data.Finset.Lattice
#align_import order.countable_dense_linear_order from "leanprover-community/mathlib"@"4c19a16e4b705bf135cf9a80ac18fcc99c438514"
@@ -73,7 +73,7 @@ theorem exists_between_finsets {α : Type _} [LinearOrder α] [DenselyOrdered α
variable (α β : Type _) [LinearOrder α] [LinearOrder β]
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (p q «expr ∈ » f) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (p q «expr ∈ » f) -/
#print Order.PartialIso /-
/-- The type of partial order isomorphisms between `α` and `β` defined on finite subsets.
A partial order isomorphism is encoded as a finite subset of `α × β`, consisting
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2020 David Wärn. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: David Wärn
-
-! This file was ported from Lean 3 source module order.countable_dense_linear_order
-! leanprover-community/mathlib commit 4c19a16e4b705bf135cf9a80ac18fcc99c438514
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Order.Ideal
import Mathbin.Data.Finset.Lattice
+#align_import order.countable_dense_linear_order from "leanprover-community/mathlib"@"4c19a16e4b705bf135cf9a80ac18fcc99c438514"
+
/-!
# The back and forth method and countable dense linear orders
@@ -76,7 +73,7 @@ theorem exists_between_finsets {α : Type _} [LinearOrder α] [DenselyOrdered α
variable (α β : Type _) [LinearOrder α] [LinearOrder β]
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (p q «expr ∈ » f) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (p q «expr ∈ » f) -/
#print Order.PartialIso /-
/-- The type of partial order isomorphisms between `α` and `β` defined on finite subsets.
A partial order isomorphism is encoded as a finite subset of `α × β`, consisting
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -150,6 +150,7 @@ protected def comm : PartialIso α β → PartialIso β α :=
variable (β)
+#print Order.PartialIso.definedAtLeft /-
/-- The set of partial isomorphisms defined at `a : α`, together with a proof that any
partial isomorphism can be extended to one defined at `a`. -/
def definedAtLeft [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonempty β] (a : α) :
@@ -168,9 +169,11 @@ def definedAtLeft [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonempty
· exact a_b _ pf
· exact f.prop _ pf _ qf
#align order.partial_iso.defined_at_left Order.PartialIso.definedAtLeft
+-/
variable (α) {β}
+#print Order.PartialIso.definedAtRight /-
/-- The set of partial isomorphisms defined at `b : β`, together with a proof that any
partial isomorphism can be extended to include `b`. We prove this by symmetry. -/
def definedAtRight [DenselyOrdered α] [NoMinOrder α] [NoMaxOrder α] [Nonempty α] (b : β) :
@@ -186,9 +189,11 @@ def definedAtRight [DenselyOrdered α] [NoMinOrder α] [NoMaxOrder α] [Nonempty
change f.val.image _ ⊆ _ at hl
rwa [← Finset.coe_subset, Finset.coe_image] at hl
#align order.partial_iso.defined_at_right Order.PartialIso.definedAtRight
+-/
variable {α}
+#print Order.PartialIso.funOfIdeal /-
/-- Given an ideal which intersects `defined_at_left β a`, pick `b : β` such that
some partial function in the ideal maps `a` to `b`. -/
def funOfIdeal [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonempty β] (a : α)
@@ -196,7 +201,9 @@ def funOfIdeal [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonempty β]
(∃ f, f ∈ definedAtLeft β a ∧ f ∈ I) → { b // ∃ f ∈ I, (a, b) ∈ Subtype.val f } :=
Classical.indefiniteDescription _ ∘ fun ⟨f, ⟨b, hb⟩, hf⟩ => ⟨b, f, hf, hb⟩
#align order.partial_iso.fun_of_ideal Order.PartialIso.funOfIdeal
+-/
+#print Order.PartialIso.invOfIdeal /-
/-- Given an ideal which intersects `defined_at_right α b`, pick `a : α` such that
some partial function in the ideal maps `a` to `b`. -/
def invOfIdeal [DenselyOrdered α] [NoMinOrder α] [NoMaxOrder α] [Nonempty α] (b : β)
@@ -204,6 +211,7 @@ def invOfIdeal [DenselyOrdered α] [NoMinOrder α] [NoMaxOrder α] [Nonempty α]
(∃ f, f ∈ definedAtRight α b ∧ f ∈ I) → { a // ∃ f ∈ I, (a, b) ∈ Subtype.val f } :=
Classical.indefiniteDescription _ ∘ fun ⟨f, ⟨a, ha⟩, hf⟩ => ⟨a, f, hf, ha⟩
#align order.partial_iso.inv_of_ideal Order.PartialIso.invOfIdeal
+-/
end PartialIso
@@ -211,6 +219,7 @@ open PartialIso
variable (α β)
+#print Order.embedding_from_countable_to_dense /-
/-- Any countable linear order embeds in any nontrivial dense linear order. -/
theorem embedding_from_countable_to_dense [Encodable α] [DenselyOrdered β] [Nontrivial β] :
Nonempty (α ↪o β) := by
@@ -228,7 +237,9 @@ theorem embedding_from_countable_to_dense [Encodable α] [DenselyOrdered β] [No
rcases our_ideal.directed _ hf _ hg with ⟨m, hm, fm, gm⟩
exact (lt_iff_lt_of_cmp_eq_cmp <| m.prop (a₁, _) (fm ha₁) (a₂, _) (gm ha₂)).mp
#align order.embedding_from_countable_to_dense Order.embedding_from_countable_to_dense
+-/
+#print Order.iso_of_countable_dense /-
/-- Any two countable dense, nonempty linear orders without endpoints are order isomorphic. -/
theorem iso_of_countable_dense [Encodable α] [DenselyOrdered α] [NoMinOrder α] [NoMaxOrder α]
[Nonempty α] [Encodable β] [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonempty β] :
@@ -245,6 +256,7 @@ theorem iso_of_countable_dense [Encodable α] [DenselyOrdered α] [NoMinOrder α
rcases our_ideal.directed _ hf _ hg with ⟨m, hm, fm, gm⟩
exact m.prop (a, _) (fm ha) (_, b) (gm hb)⟩
#align order.iso_of_countable_dense Order.iso_of_countable_dense
+-/
end Order
mathlib commit https://github.com/leanprover-community/mathlib/commit/31c24aa72e7b3e5ed97a8412470e904f82b81004
@@ -76,7 +76,7 @@ theorem exists_between_finsets {α : Type _} [LinearOrder α] [DenselyOrdered α
variable (α β : Type _) [LinearOrder α] [LinearOrder β]
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (p q «expr ∈ » f) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (p q «expr ∈ » f) -/
#print Order.PartialIso /-
/-- The type of partial order isomorphisms between `α` and `β` defined on finite subsets.
A partial order isomorphism is encoded as a finite subset of `α × β`, consisting
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -114,10 +114,10 @@ theorem exists_across [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonem
∀ y ∈ (f.val.filter fun p : α × β => a < p.fst).image Prod.snd, x < y :=
by
intro x hx y hy
- rw [Finset.mem_image] at hx hy
+ rw [Finset.mem_image] at hx hy
rcases hx with ⟨p, hp1, rfl⟩
rcases hy with ⟨q, hq1, rfl⟩
- rw [Finset.mem_filter] at hp1 hq1
+ rw [Finset.mem_filter] at hp1 hq1
rw [← lt_iff_lt_of_cmp_eq_cmp (f.prop _ hp1.1 _ hq1.1)]
exact lt_trans hp1.right hq1.right
cases' exists_between_finsets _ _ this with b hb
@@ -127,10 +127,10 @@ theorem exists_across [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonem
cases' lt_or_gt_of_ne this with hl hr
· have : p1 < a ∧ p2 < b :=
⟨hl, hb.1 _ (finset.mem_image.mpr ⟨(p1, p2), finset.mem_filter.mpr ⟨hp, hl⟩, rfl⟩)⟩
- rw [← cmp_eq_lt_iff, ← cmp_eq_lt_iff] at this; cc
+ rw [← cmp_eq_lt_iff, ← cmp_eq_lt_iff] at this ; cc
· have : a < p1 ∧ b < p2 :=
⟨hr, hb.2 _ (finset.mem_image.mpr ⟨(p1, p2), finset.mem_filter.mpr ⟨hp, hr⟩, rfl⟩)⟩
- rw [← cmp_eq_gt_iff, ← cmp_eq_gt_iff] at this; cc
+ rw [← cmp_eq_gt_iff, ← cmp_eq_gt_iff] at this ; cc
#align order.partial_iso.exists_across Order.PartialIso.exists_across
-/
@@ -140,10 +140,10 @@ protected def comm : PartialIso α β → PartialIso β α :=
Subtype.map (Finset.image (Equiv.prodComm _ _)) fun f hf p hp q hq =>
Eq.symm <|
hf ((Equiv.prodComm α β).symm p)
- (by rw [← Finset.mem_coe, Finset.coe_image, Equiv.image_eq_preimage] at hp;
+ (by rw [← Finset.mem_coe, Finset.coe_image, Equiv.image_eq_preimage] at hp ;
rwa [← Finset.mem_coe])
((Equiv.prodComm α β).symm q)
- (by rw [← Finset.mem_coe, Finset.coe_image, Equiv.image_eq_preimage] at hq;
+ (by rw [← Finset.mem_coe, Finset.coe_image, Equiv.image_eq_preimage] at hq ;
rwa [← Finset.mem_coe])
#align order.partial_iso.comm Order.PartialIso.comm
-/
@@ -161,7 +161,7 @@ def definedAtLeft [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonempty
refine'
⟨⟨insert (a, b) f.val, fun p hp q hq => _⟩, ⟨b, Finset.mem_insert_self _ _⟩,
Finset.subset_insert _ _⟩
- rw [Finset.mem_insert] at hp hq
+ rw [Finset.mem_insert] at hp hq
rcases hp with (rfl | pf) <;> rcases hq with (rfl | qf)
· simp only [cmp_self_eq_eq]
· rw [cmp_eq_cmp_symm]; exact a_b _ qf
@@ -183,8 +183,8 @@ def definedAtRight [DenselyOrdered α] [NoMinOrder α] [NoMaxOrder α] [Nonempty
rwa [← Finset.mem_coe, Finset.coe_image, Equiv.image_eq_preimage]
· change _ ⊆ f'.val.image _
rw [← Finset.coe_subset, Finset.coe_image, ← Equiv.subset_image]
- change f.val.image _ ⊆ _ at hl
- rwa [← Finset.coe_subset, Finset.coe_image] at hl
+ change f.val.image _ ⊆ _ at hl
+ rwa [← Finset.coe_subset, Finset.coe_image] at hl
#align order.partial_iso.defined_at_right Order.PartialIso.definedAtRight
variable {α}
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -39,10 +39,11 @@ back and forth, dense, countable, order
noncomputable section
-open Classical
+open scoped Classical
namespace Order
+#print Order.exists_between_finsets /-
/-- Suppose `α` is a nonempty dense linear order without endpoints, and
suppose `lo`, `hi`, are finite subssets with all of `lo` strictly
before `hi`. Then there is an element of `α` strictly between `lo`
@@ -71,6 +72,7 @@ theorem exists_between_finsets {α : Type _} [LinearOrder α] [DenselyOrdered α
nonem.elim
fun m => ⟨m, fun x hx => (nlo ⟨x, hx⟩).elim, fun y hy => (nhi ⟨y, hy⟩).elim⟩
#align order.exists_between_finsets Order.exists_between_finsets
+-/
variable (α β : Type _) [LinearOrder α] [LinearOrder β]
@@ -96,6 +98,7 @@ instance : Preorder (PartialIso α β) :=
variable {α β}
+#print Order.PartialIso.exists_across /-
/-- For each `a`, we can find a `b` in the codomain, such that `a`'s relation to
the domain of `f` is `b`'s relation to the image of `f`.
@@ -129,6 +132,7 @@ theorem exists_across [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonem
⟨hr, hb.2 _ (finset.mem_image.mpr ⟨(p1, p2), finset.mem_filter.mpr ⟨hp, hr⟩, rfl⟩)⟩
rw [← cmp_eq_gt_iff, ← cmp_eq_gt_iff] at this; cc
#align order.partial_iso.exists_across Order.PartialIso.exists_across
+-/
#print Order.PartialIso.comm /-
/-- A partial isomorphism between `α` and `β` is also a partial isomorphism between `β` and `α`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -43,12 +43,6 @@ open Classical
namespace Order
-/- warning: order.exists_between_finsets -> Order.exists_between_finsets is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : DenselyOrdered.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_3 : NoMinOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_4 : NoMaxOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [nonem : Nonempty.{succ u1} α] (lo : Finset.{u1} α) (hi : Finset.{u1} α), (forall (x : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) x lo) -> (forall (y : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) y hi) -> (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) x y))) -> (Exists.{succ u1} α (fun (m : α) => And (forall (x : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) x lo) -> (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) x m)) (forall (y : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) y hi) -> (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) m y))))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : DenselyOrdered.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1))))))] [_inst_3 : NoMinOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1))))))] [_inst_4 : NoMaxOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1))))))] [nonem : Nonempty.{succ u1} α] (lo : Finset.{u1} α) (hi : Finset.{u1} α), (forall (x : α), (Membership.mem.{u1, u1} α (Finset.{u1} α) (Finset.instMembershipFinset.{u1} α) x lo) -> (forall (y : α), (Membership.mem.{u1, u1} α (Finset.{u1} α) (Finset.instMembershipFinset.{u1} α) y hi) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) x y))) -> (Exists.{succ u1} α (fun (m : α) => And (forall (x : α), (Membership.mem.{u1, u1} α (Finset.{u1} α) (Finset.instMembershipFinset.{u1} α) x lo) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) x m)) (forall (y : α), (Membership.mem.{u1, u1} α (Finset.{u1} α) (Finset.instMembershipFinset.{u1} α) y hi) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) m y))))
-Case conversion may be inaccurate. Consider using '#align order.exists_between_finsets Order.exists_between_finsetsₓ'. -/
/-- Suppose `α` is a nonempty dense linear order without endpoints, and
suppose `lo`, `hi`, are finite subssets with all of `lo` strictly
before `hi`. Then there is an element of `α` strictly between `lo`
@@ -102,9 +96,6 @@ instance : Preorder (PartialIso α β) :=
variable {α β}
-/- warning: order.partial_iso.exists_across -> Order.PartialIso.exists_across is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align order.partial_iso.exists_across Order.PartialIso.exists_acrossₓ'. -/
/-- For each `a`, we can find a `b` in the codomain, such that `a`'s relation to
the domain of `f` is `b`'s relation to the image of `f`.
@@ -155,12 +146,6 @@ protected def comm : PartialIso α β → PartialIso β α :=
variable (β)
-/- warning: order.partial_iso.defined_at_left -> Order.PartialIso.definedAtLeft is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} (β : Type.{u2}) [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : DenselyOrdered.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_4 : NoMinOrder.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_5 : NoMaxOrder.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_6 : Nonempty.{succ u2} β], α -> (Order.Cofinal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))
-but is expected to have type
- forall {α : Type.{u1}} (β : Type.{u2}) [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : DenselyOrdered.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2))))))] [_inst_4 : NoMinOrder.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2))))))] [_inst_5 : NoMaxOrder.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2))))))] [_inst_6 : Nonempty.{succ u2} β], α -> (Order.Cofinal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2))
-Case conversion may be inaccurate. Consider using '#align order.partial_iso.defined_at_left Order.PartialIso.definedAtLeftₓ'. -/
/-- The set of partial isomorphisms defined at `a : α`, together with a proof that any
partial isomorphism can be extended to one defined at `a`. -/
def definedAtLeft [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonempty β] (a : α) :
@@ -182,12 +167,6 @@ def definedAtLeft [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonempty
variable (α) {β}
-/- warning: order.partial_iso.defined_at_right -> Order.PartialIso.definedAtRight is a dubious translation:
-lean 3 declaration is
- forall (α : Type.{u1}) {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : DenselyOrdered.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_4 : NoMinOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_5 : NoMaxOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_6 : Nonempty.{succ u1} α], β -> (Order.Cofinal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))
-but is expected to have type
- forall (α : Type.{u1}) {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : DenselyOrdered.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1))))))] [_inst_4 : NoMinOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1))))))] [_inst_5 : NoMaxOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1))))))] [_inst_6 : Nonempty.{succ u1} α], β -> (Order.Cofinal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2))
-Case conversion may be inaccurate. Consider using '#align order.partial_iso.defined_at_right Order.PartialIso.definedAtRightₓ'. -/
/-- The set of partial isomorphisms defined at `b : β`, together with a proof that any
partial isomorphism can be extended to include `b`. We prove this by symmetry. -/
def definedAtRight [DenselyOrdered α] [NoMinOrder α] [NoMaxOrder α] [Nonempty α] (b : β) :
@@ -206,9 +185,6 @@ def definedAtRight [DenselyOrdered α] [NoMinOrder α] [NoMaxOrder α] [Nonempty
variable {α}
-/- warning: order.partial_iso.fun_of_ideal -> Order.PartialIso.funOfIdeal is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align order.partial_iso.fun_of_ideal Order.PartialIso.funOfIdealₓ'. -/
/-- Given an ideal which intersects `defined_at_left β a`, pick `b : β` such that
some partial function in the ideal maps `a` to `b`. -/
def funOfIdeal [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonempty β] (a : α)
@@ -217,9 +193,6 @@ def funOfIdeal [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonempty β]
Classical.indefiniteDescription _ ∘ fun ⟨f, ⟨b, hb⟩, hf⟩ => ⟨b, f, hf, hb⟩
#align order.partial_iso.fun_of_ideal Order.PartialIso.funOfIdeal
-/- warning: order.partial_iso.inv_of_ideal -> Order.PartialIso.invOfIdeal is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align order.partial_iso.inv_of_ideal Order.PartialIso.invOfIdealₓ'. -/
/-- Given an ideal which intersects `defined_at_right α b`, pick `a : α` such that
some partial function in the ideal maps `a` to `b`. -/
def invOfIdeal [DenselyOrdered α] [NoMinOrder α] [NoMaxOrder α] [Nonempty α] (b : β)
@@ -234,12 +207,6 @@ open PartialIso
variable (α β)
-/- warning: order.embedding_from_countable_to_dense -> Order.embedding_from_countable_to_dense is a dubious translation:
-lean 3 declaration is
- forall (α : Type.{u1}) (β : Type.{u2}) [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : Encodable.{u1} α] [_inst_4 : DenselyOrdered.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_5 : Nontrivial.{u2} β], Nonempty.{max (succ u1) (succ u2)} (OrderEmbedding.{u1, u2} α β (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))))
-but is expected to have type
- forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : LinearOrder.{u2} α] [_inst_2 : LinearOrder.{u1} β] [_inst_3 : Encodable.{u2} α] [_inst_4 : DenselyOrdered.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (SemilatticeInf.toPartialOrder.{u1} β (Lattice.toSemilatticeInf.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β _inst_2))))))] [_inst_5 : Nontrivial.{u1} β], Nonempty.{max (succ u1) (succ u2)} (OrderEmbedding.{u2, u1} α β (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α (Lattice.toSemilatticeInf.{u2} α (DistribLattice.toLattice.{u2} α (instDistribLattice.{u2} α _inst_1)))))) (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (SemilatticeInf.toPartialOrder.{u1} β (Lattice.toSemilatticeInf.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β _inst_2)))))))
-Case conversion may be inaccurate. Consider using '#align order.embedding_from_countable_to_dense Order.embedding_from_countable_to_denseₓ'. -/
/-- Any countable linear order embeds in any nontrivial dense linear order. -/
theorem embedding_from_countable_to_dense [Encodable α] [DenselyOrdered β] [Nontrivial β] :
Nonempty (α ↪o β) := by
@@ -258,12 +225,6 @@ theorem embedding_from_countable_to_dense [Encodable α] [DenselyOrdered β] [No
exact (lt_iff_lt_of_cmp_eq_cmp <| m.prop (a₁, _) (fm ha₁) (a₂, _) (gm ha₂)).mp
#align order.embedding_from_countable_to_dense Order.embedding_from_countable_to_dense
-/- warning: order.iso_of_countable_dense -> Order.iso_of_countable_dense is a dubious translation:
-lean 3 declaration is
- forall (α : Type.{u1}) (β : Type.{u2}) [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : Encodable.{u1} α] [_inst_4 : DenselyOrdered.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_5 : NoMinOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_6 : NoMaxOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_7 : Nonempty.{succ u1} α] [_inst_8 : Encodable.{u2} β] [_inst_9 : DenselyOrdered.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_10 : NoMinOrder.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_11 : NoMaxOrder.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_12 : Nonempty.{succ u2} β], Nonempty.{max (succ u1) (succ u2)} (OrderIso.{u1, u2} α β (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))))
-but is expected to have type
- forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : LinearOrder.{u2} α] [_inst_2 : LinearOrder.{u1} β] [_inst_3 : Encodable.{u2} α] [_inst_4 : DenselyOrdered.{u2} α (Preorder.toLT.{u2} α (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α (Lattice.toSemilatticeInf.{u2} α (DistribLattice.toLattice.{u2} α (instDistribLattice.{u2} α _inst_1))))))] [_inst_5 : NoMinOrder.{u2} α (Preorder.toLT.{u2} α (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α (Lattice.toSemilatticeInf.{u2} α (DistribLattice.toLattice.{u2} α (instDistribLattice.{u2} α _inst_1))))))] [_inst_6 : NoMaxOrder.{u2} α (Preorder.toLT.{u2} α (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α (Lattice.toSemilatticeInf.{u2} α (DistribLattice.toLattice.{u2} α (instDistribLattice.{u2} α _inst_1))))))] [_inst_7 : Nonempty.{succ u2} α] [_inst_8 : Encodable.{u1} β] [_inst_9 : DenselyOrdered.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (SemilatticeInf.toPartialOrder.{u1} β (Lattice.toSemilatticeInf.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β _inst_2))))))] [_inst_10 : NoMinOrder.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (SemilatticeInf.toPartialOrder.{u1} β (Lattice.toSemilatticeInf.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β _inst_2))))))] [_inst_11 : NoMaxOrder.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (SemilatticeInf.toPartialOrder.{u1} β (Lattice.toSemilatticeInf.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β _inst_2))))))] [_inst_12 : Nonempty.{succ u1} β], Nonempty.{max (succ u1) (succ u2)} (OrderIso.{u2, u1} α β (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α (Lattice.toSemilatticeInf.{u2} α (DistribLattice.toLattice.{u2} α (instDistribLattice.{u2} α _inst_1)))))) (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (SemilatticeInf.toPartialOrder.{u1} β (Lattice.toSemilatticeInf.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β _inst_2)))))))
-Case conversion may be inaccurate. Consider using '#align order.iso_of_countable_dense Order.iso_of_countable_denseₓ'. -/
/-- Any two countable dense, nonempty linear orders without endpoints are order isomorphic. -/
theorem iso_of_countable_dense [Encodable α] [DenselyOrdered α] [NoMinOrder α] [NoMaxOrder α]
[Nonempty α] [Encodable β] [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonempty β] :
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -114,8 +114,7 @@ theorem exists_across [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonem
(f : PartialIso α β) (a : α) : ∃ b : β, ∀ p ∈ f.val, cmp (Prod.fst p) a = cmp (Prod.snd p) b :=
by
by_cases h : ∃ b, (a, b) ∈ f.val
- · cases' h with b hb
- exact ⟨b, fun p hp => f.prop _ hp _ hb⟩
+ · cases' h with b hb; exact ⟨b, fun p hp => f.prop _ hp _ hb⟩
have :
∀ x ∈ (f.val.filter fun p : α × β => p.fst < a).image Prod.snd,
∀ y ∈ (f.val.filter fun p : α × β => a < p.fst).image Prod.snd, x < y :=
@@ -134,12 +133,10 @@ theorem exists_across [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonem
cases' lt_or_gt_of_ne this with hl hr
· have : p1 < a ∧ p2 < b :=
⟨hl, hb.1 _ (finset.mem_image.mpr ⟨(p1, p2), finset.mem_filter.mpr ⟨hp, hl⟩, rfl⟩)⟩
- rw [← cmp_eq_lt_iff, ← cmp_eq_lt_iff] at this
- cc
+ rw [← cmp_eq_lt_iff, ← cmp_eq_lt_iff] at this; cc
· have : a < p1 ∧ b < p2 :=
⟨hr, hb.2 _ (finset.mem_image.mpr ⟨(p1, p2), finset.mem_filter.mpr ⟨hp, hr⟩, rfl⟩)⟩
- rw [← cmp_eq_gt_iff, ← cmp_eq_gt_iff] at this
- cc
+ rw [← cmp_eq_gt_iff, ← cmp_eq_gt_iff] at this; cc
#align order.partial_iso.exists_across Order.PartialIso.exists_across
#print Order.PartialIso.comm /-
@@ -148,12 +145,10 @@ protected def comm : PartialIso α β → PartialIso β α :=
Subtype.map (Finset.image (Equiv.prodComm _ _)) fun f hf p hp q hq =>
Eq.symm <|
hf ((Equiv.prodComm α β).symm p)
- (by
- rw [← Finset.mem_coe, Finset.coe_image, Equiv.image_eq_preimage] at hp
+ (by rw [← Finset.mem_coe, Finset.coe_image, Equiv.image_eq_preimage] at hp;
rwa [← Finset.mem_coe])
((Equiv.prodComm α β).symm q)
- (by
- rw [← Finset.mem_coe, Finset.coe_image, Equiv.image_eq_preimage] at hq
+ (by rw [← Finset.mem_coe, Finset.coe_image, Equiv.image_eq_preimage] at hq;
rwa [← Finset.mem_coe])
#align order.partial_iso.comm Order.PartialIso.comm
-/
@@ -180,8 +175,7 @@ def definedAtLeft [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonempty
rw [Finset.mem_insert] at hp hq
rcases hp with (rfl | pf) <;> rcases hq with (rfl | qf)
· simp only [cmp_self_eq_eq]
- · rw [cmp_eq_cmp_symm]
- exact a_b _ qf
+ · rw [cmp_eq_cmp_symm]; exact a_b _ qf
· exact a_b _ pf
· exact f.prop _ pf _ qf
#align order.partial_iso.defined_at_left Order.PartialIso.definedAtLeft
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -103,10 +103,7 @@ instance : Preorder (PartialIso α β) :=
variable {α β}
/- warning: order.partial_iso.exists_across -> Order.PartialIso.exists_across is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : DenselyOrdered.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_4 : NoMinOrder.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_5 : NoMaxOrder.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_6 : Nonempty.{succ u2} β] (f : Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (a : α), Exists.{succ u2} β (fun (b : β) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p (Subtype.val.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q))))) f)) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) a) (cmp.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) b)))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : DenselyOrdered.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2))))))] [_inst_4 : NoMinOrder.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2))))))] [_inst_5 : NoMaxOrder.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2))))))] [_inst_6 : Nonempty.{succ u2} β] (f : Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (a : α), Exists.{succ u2} β (fun (b : β) => forall (p : Prod.{u1, u2} α β), (Membership.mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u2 u1} (Prod.{u1, u2} α β)) (Finset.instMembershipFinset.{max u1 u2} (Prod.{u1, u2} α β)) p (Subtype.val.{max (succ u1) (succ u2)} (Finset.{max u2 u1} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u2 u1} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u2 u1} (Prod.{u1, u2} α β)) (Finset.instMembershipFinset.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u2 u1} (Prod.{u1, u2} α β)) (Finset.instMembershipFinset.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) (fun (a : α) (b : α) => instDecidableLtToLTToPreorderToPartialOrder.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2)))))) (fun (a : β) (b : β) => instDecidableLtToLTToPreorderToPartialOrder.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q))))) f)) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) (fun (a : α) (b : α) => instDecidableLtToLTToPreorderToPartialOrder.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) a) (cmp.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2)))))) (fun (a : β) (b : β) => instDecidableLtToLTToPreorderToPartialOrder.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) b)))
+<too large>
Case conversion may be inaccurate. Consider using '#align order.partial_iso.exists_across Order.PartialIso.exists_acrossₓ'. -/
/-- For each `a`, we can find a `b` in the codomain, such that `a`'s relation to
the domain of `f` is `b`'s relation to the image of `f`.
@@ -216,10 +213,7 @@ def definedAtRight [DenselyOrdered α] [NoMinOrder α] [NoMaxOrder α] [Nonempty
variable {α}
/- warning: order.partial_iso.fun_of_ideal -> Order.PartialIso.funOfIdeal is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : DenselyOrdered.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_4 : NoMinOrder.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_5 : NoMaxOrder.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_6 : Nonempty.{succ u2} β] (a : α) (I : Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))), (Exists.{succ (max u1 u2)} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (fun (f : Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) => And (Membership.Mem.{max u1 u2, max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Cofinal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)) (Order.Cofinal.hasMem.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)) f (Order.PartialIso.definedAtLeft.{u1, u2} α β _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 a)) (Membership.Mem.{max u1 u2, max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.setLike.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)))) f I))) -> (Subtype.{succ u2} β (fun (b : β) => Exists.{succ (max u1 u2)} (Subtype.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q)))))) (fun (f : Subtype.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q)))))) => Exists.{0} (Membership.Mem.{max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q)))))) (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.setLike.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)))) f I) (fun (H : Membership.Mem.{max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q)))))) (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.setLike.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)))) f I) => Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) (Prod.mk.{u1, u2} α β a b) (Subtype.val.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q))))) f)))))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : DenselyOrdered.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2))))))] [_inst_4 : NoMinOrder.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2))))))] [_inst_5 : NoMaxOrder.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2))))))] [_inst_6 : Nonempty.{succ u2} β] (a : α) (I : Order.Ideal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2))), (Exists.{succ (max u1 u2)} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (fun (f : Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) => And (Membership.mem.{max u1 u2, max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Cofinal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2)) (Order.Cofinal.instMembershipCofinal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2)) f (Order.PartialIso.definedAtLeft.{u1, u2} α β _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 a)) (Membership.mem.{max u1 u2, max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Order.Ideal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.instSetLikeIdeal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2)))) f I))) -> (Subtype.{succ u2} β (fun (b : β) => Exists.{succ (max u1 u2)} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (fun (f : Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) => And (Membership.mem.{max u1 u2, max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Order.Ideal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.instSetLikeIdeal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2)))) f I) (Membership.mem.{max u2 u1, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u2 u1} (Prod.{u1, u2} α β)) (Finset.instMembershipFinset.{max u1 u2} (Prod.{u1, u2} α β)) (Prod.mk.{u1, u2} α β a b) (Subtype.val.{succ (max u1 u2)} (Finset.{max u2 u1} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u2 u1} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u2 u1} (Prod.{u1, u2} α β)) (Finset.instMembershipFinset.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u2 u1} (Prod.{u1, u2} α β)) (Finset.instMembershipFinset.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) (fun (a : α) (b : α) => instDecidableLtToLTToPreorderToPartialOrder.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2)))))) (fun (a : β) (b : β) => instDecidableLtToLTToPreorderToPartialOrder.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q))))) f)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align order.partial_iso.fun_of_ideal Order.PartialIso.funOfIdealₓ'. -/
/-- Given an ideal which intersects `defined_at_left β a`, pick `b : β` such that
some partial function in the ideal maps `a` to `b`. -/
@@ -230,10 +224,7 @@ def funOfIdeal [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonempty β]
#align order.partial_iso.fun_of_ideal Order.PartialIso.funOfIdeal
/- warning: order.partial_iso.inv_of_ideal -> Order.PartialIso.invOfIdeal is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : DenselyOrdered.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_4 : NoMinOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_5 : NoMaxOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_6 : Nonempty.{succ u1} α] (b : β) (I : Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))), (Exists.{succ (max u1 u2)} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (fun (f : Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) => And (Membership.Mem.{max u1 u2, max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Cofinal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)) (Order.Cofinal.hasMem.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)) f (Order.PartialIso.definedAtRight.{u1, u2} α β _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 b)) (Membership.Mem.{max u1 u2, max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.setLike.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)))) f I))) -> (Subtype.{succ u1} α (fun (a : α) => Exists.{succ (max u1 u2)} (Subtype.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q)))))) (fun (f : Subtype.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q)))))) => Exists.{0} (Membership.Mem.{max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q)))))) (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.setLike.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)))) f I) (fun (H : Membership.Mem.{max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q)))))) (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.setLike.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)))) f I) => Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) (Prod.mk.{u1, u2} α β a b) (Subtype.val.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q))))) f)))))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : DenselyOrdered.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1))))))] [_inst_4 : NoMinOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1))))))] [_inst_5 : NoMaxOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1))))))] [_inst_6 : Nonempty.{succ u1} α] (b : β) (I : Order.Ideal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2))), (Exists.{succ (max u1 u2)} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (fun (f : Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) => And (Membership.mem.{max u1 u2, max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Cofinal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2)) (Order.Cofinal.instMembershipCofinal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2)) f (Order.PartialIso.definedAtRight.{u1, u2} α β _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 b)) (Membership.mem.{max u1 u2, max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Order.Ideal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.instSetLikeIdeal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2)))) f I))) -> (Subtype.{succ u1} α (fun (a : α) => Exists.{succ (max u1 u2)} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (fun (f : Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) => And (Membership.mem.{max u1 u2, max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Order.Ideal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.instSetLikeIdeal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2)))) f I) (Membership.mem.{max u2 u1, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u2 u1} (Prod.{u1, u2} α β)) (Finset.instMembershipFinset.{max u2 u1} (Prod.{u1, u2} α β)) (Prod.mk.{u1, u2} α β a b) (Subtype.val.{succ (max u1 u2)} (Finset.{max u2 u1} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u2 u1} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u2 u1} (Prod.{u1, u2} α β)) (Finset.instMembershipFinset.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u2 u1} (Prod.{u1, u2} α β)) (Finset.instMembershipFinset.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) (fun (a : α) (b : α) => instDecidableLtToLTToPreorderToPartialOrder.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2)))))) (fun (a : β) (b : β) => instDecidableLtToLTToPreorderToPartialOrder.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q))))) f)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align order.partial_iso.inv_of_ideal Order.PartialIso.invOfIdealₓ'. -/
/-- Given an ideal which intersects `defined_at_right α b`, pick `a : α` such that
some partial function in the ideal maps `a` to `b`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -43,7 +43,12 @@ open Classical
namespace Order
-#print Order.exists_between_finsets /-
+/- warning: order.exists_between_finsets -> Order.exists_between_finsets is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : DenselyOrdered.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_3 : NoMinOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_4 : NoMaxOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [nonem : Nonempty.{succ u1} α] (lo : Finset.{u1} α) (hi : Finset.{u1} α), (forall (x : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) x lo) -> (forall (y : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) y hi) -> (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) x y))) -> (Exists.{succ u1} α (fun (m : α) => And (forall (x : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) x lo) -> (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) x m)) (forall (y : α), (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) y hi) -> (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) m y))))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : DenselyOrdered.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1))))))] [_inst_3 : NoMinOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1))))))] [_inst_4 : NoMaxOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1))))))] [nonem : Nonempty.{succ u1} α] (lo : Finset.{u1} α) (hi : Finset.{u1} α), (forall (x : α), (Membership.mem.{u1, u1} α (Finset.{u1} α) (Finset.instMembershipFinset.{u1} α) x lo) -> (forall (y : α), (Membership.mem.{u1, u1} α (Finset.{u1} α) (Finset.instMembershipFinset.{u1} α) y hi) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) x y))) -> (Exists.{succ u1} α (fun (m : α) => And (forall (x : α), (Membership.mem.{u1, u1} α (Finset.{u1} α) (Finset.instMembershipFinset.{u1} α) x lo) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) x m)) (forall (y : α), (Membership.mem.{u1, u1} α (Finset.{u1} α) (Finset.instMembershipFinset.{u1} α) y hi) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) m y))))
+Case conversion may be inaccurate. Consider using '#align order.exists_between_finsets Order.exists_between_finsetsₓ'. -/
/-- Suppose `α` is a nonempty dense linear order without endpoints, and
suppose `lo`, `hi`, are finite subssets with all of `lo` strictly
before `hi`. Then there is an element of `α` strictly between `lo`
@@ -72,7 +77,6 @@ theorem exists_between_finsets {α : Type _} [LinearOrder α] [DenselyOrdered α
nonem.elim
fun m => ⟨m, fun x hx => (nlo ⟨x, hx⟩).elim, fun y hy => (nhi ⟨y, hy⟩).elim⟩
#align order.exists_between_finsets Order.exists_between_finsets
--/
variable (α β : Type _) [LinearOrder α] [LinearOrder β]
@@ -98,7 +102,12 @@ instance : Preorder (PartialIso α β) :=
variable {α β}
-#print Order.PartialIso.exists_across /-
+/- warning: order.partial_iso.exists_across -> Order.PartialIso.exists_across is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : DenselyOrdered.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_4 : NoMinOrder.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_5 : NoMaxOrder.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_6 : Nonempty.{succ u2} β] (f : Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (a : α), Exists.{succ u2} β (fun (b : β) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p (Subtype.val.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q))))) f)) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) a) (cmp.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) b)))
+but is expected to have type
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : DenselyOrdered.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2))))))] [_inst_4 : NoMinOrder.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2))))))] [_inst_5 : NoMaxOrder.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2))))))] [_inst_6 : Nonempty.{succ u2} β] (f : Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (a : α), Exists.{succ u2} β (fun (b : β) => forall (p : Prod.{u1, u2} α β), (Membership.mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u2 u1} (Prod.{u1, u2} α β)) (Finset.instMembershipFinset.{max u1 u2} (Prod.{u1, u2} α β)) p (Subtype.val.{max (succ u1) (succ u2)} (Finset.{max u2 u1} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u2 u1} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u2 u1} (Prod.{u1, u2} α β)) (Finset.instMembershipFinset.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u2 u1} (Prod.{u1, u2} α β)) (Finset.instMembershipFinset.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) (fun (a : α) (b : α) => instDecidableLtToLTToPreorderToPartialOrder.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2)))))) (fun (a : β) (b : β) => instDecidableLtToLTToPreorderToPartialOrder.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q))))) f)) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) (fun (a : α) (b : α) => instDecidableLtToLTToPreorderToPartialOrder.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) a) (cmp.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2)))))) (fun (a : β) (b : β) => instDecidableLtToLTToPreorderToPartialOrder.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) b)))
+Case conversion may be inaccurate. Consider using '#align order.partial_iso.exists_across Order.PartialIso.exists_acrossₓ'. -/
/-- For each `a`, we can find a `b` in the codomain, such that `a`'s relation to
the domain of `f` is `b`'s relation to the image of `f`.
@@ -135,7 +144,6 @@ theorem exists_across [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonem
rw [← cmp_eq_gt_iff, ← cmp_eq_gt_iff] at this
cc
#align order.partial_iso.exists_across Order.PartialIso.exists_across
--/
#print Order.PartialIso.comm /-
/-- A partial isomorphism between `α` and `β` is also a partial isomorphism between `β` and `α`. -/
@@ -157,7 +165,7 @@ variable (β)
/- warning: order.partial_iso.defined_at_left -> Order.PartialIso.definedAtLeft is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} (β : Type.{u2}) [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : DenselyOrdered.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_4 : NoMinOrder.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_5 : NoMaxOrder.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_6 : Nonempty.{succ u2} β], α -> (Order.Cofinal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))
+ forall {α : Type.{u1}} (β : Type.{u2}) [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : DenselyOrdered.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_4 : NoMinOrder.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_5 : NoMaxOrder.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_6 : Nonempty.{succ u2} β], α -> (Order.Cofinal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))
but is expected to have type
forall {α : Type.{u1}} (β : Type.{u2}) [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : DenselyOrdered.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2))))))] [_inst_4 : NoMinOrder.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2))))))] [_inst_5 : NoMaxOrder.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2))))))] [_inst_6 : Nonempty.{succ u2} β], α -> (Order.Cofinal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2))
Case conversion may be inaccurate. Consider using '#align order.partial_iso.defined_at_left Order.PartialIso.definedAtLeftₓ'. -/
@@ -185,7 +193,7 @@ variable (α) {β}
/- warning: order.partial_iso.defined_at_right -> Order.PartialIso.definedAtRight is a dubious translation:
lean 3 declaration is
- forall (α : Type.{u1}) {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : DenselyOrdered.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_4 : NoMinOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_5 : NoMaxOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_6 : Nonempty.{succ u1} α], β -> (Order.Cofinal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))
+ forall (α : Type.{u1}) {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : DenselyOrdered.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_4 : NoMinOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_5 : NoMaxOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_6 : Nonempty.{succ u1} α], β -> (Order.Cofinal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))
but is expected to have type
forall (α : Type.{u1}) {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : DenselyOrdered.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1))))))] [_inst_4 : NoMinOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1))))))] [_inst_5 : NoMaxOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1))))))] [_inst_6 : Nonempty.{succ u1} α], β -> (Order.Cofinal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2))
Case conversion may be inaccurate. Consider using '#align order.partial_iso.defined_at_right Order.PartialIso.definedAtRightₓ'. -/
@@ -209,7 +217,7 @@ variable {α}
/- warning: order.partial_iso.fun_of_ideal -> Order.PartialIso.funOfIdeal is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : DenselyOrdered.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_4 : NoMinOrder.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_5 : NoMaxOrder.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_6 : Nonempty.{succ u2} β] (a : α) (I : Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))), (Exists.{succ (max u1 u2)} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (fun (f : Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) => And (Membership.Mem.{max u1 u2, max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Cofinal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)) (Order.Cofinal.hasMem.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)) f (Order.PartialIso.definedAtLeft.{u1, u2} α β _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 a)) (Membership.Mem.{max u1 u2, max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.setLike.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)))) f I))) -> (Subtype.{succ u2} β (fun (b : β) => Exists.{succ (max u1 u2)} (Subtype.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q)))))) (fun (f : Subtype.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q)))))) => Exists.{0} (Membership.Mem.{max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q)))))) (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.setLike.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)))) f I) (fun (H : Membership.Mem.{max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q)))))) (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.setLike.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)))) f I) => Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) (Prod.mk.{u1, u2} α β a b) (Subtype.val.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q))))) f)))))
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : DenselyOrdered.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_4 : NoMinOrder.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_5 : NoMaxOrder.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_6 : Nonempty.{succ u2} β] (a : α) (I : Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))), (Exists.{succ (max u1 u2)} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (fun (f : Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) => And (Membership.Mem.{max u1 u2, max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Cofinal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)) (Order.Cofinal.hasMem.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)) f (Order.PartialIso.definedAtLeft.{u1, u2} α β _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 a)) (Membership.Mem.{max u1 u2, max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.setLike.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)))) f I))) -> (Subtype.{succ u2} β (fun (b : β) => Exists.{succ (max u1 u2)} (Subtype.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q)))))) (fun (f : Subtype.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q)))))) => Exists.{0} (Membership.Mem.{max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q)))))) (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.setLike.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)))) f I) (fun (H : Membership.Mem.{max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q)))))) (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.setLike.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)))) f I) => Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) (Prod.mk.{u1, u2} α β a b) (Subtype.val.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q))))) f)))))
but is expected to have type
forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : DenselyOrdered.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2))))))] [_inst_4 : NoMinOrder.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2))))))] [_inst_5 : NoMaxOrder.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2))))))] [_inst_6 : Nonempty.{succ u2} β] (a : α) (I : Order.Ideal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2))), (Exists.{succ (max u1 u2)} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (fun (f : Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) => And (Membership.mem.{max u1 u2, max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Cofinal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2)) (Order.Cofinal.instMembershipCofinal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2)) f (Order.PartialIso.definedAtLeft.{u1, u2} α β _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 a)) (Membership.mem.{max u1 u2, max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Order.Ideal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.instSetLikeIdeal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2)))) f I))) -> (Subtype.{succ u2} β (fun (b : β) => Exists.{succ (max u1 u2)} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (fun (f : Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) => And (Membership.mem.{max u1 u2, max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Order.Ideal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.instSetLikeIdeal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2)))) f I) (Membership.mem.{max u2 u1, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u2 u1} (Prod.{u1, u2} α β)) (Finset.instMembershipFinset.{max u1 u2} (Prod.{u1, u2} α β)) (Prod.mk.{u1, u2} α β a b) (Subtype.val.{succ (max u1 u2)} (Finset.{max u2 u1} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u2 u1} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u2 u1} (Prod.{u1, u2} α β)) (Finset.instMembershipFinset.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u2 u1} (Prod.{u1, u2} α β)) (Finset.instMembershipFinset.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) (fun (a : α) (b : α) => instDecidableLtToLTToPreorderToPartialOrder.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2)))))) (fun (a : β) (b : β) => instDecidableLtToLTToPreorderToPartialOrder.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q))))) f)))))
Case conversion may be inaccurate. Consider using '#align order.partial_iso.fun_of_ideal Order.PartialIso.funOfIdealₓ'. -/
@@ -223,7 +231,7 @@ def funOfIdeal [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonempty β]
/- warning: order.partial_iso.inv_of_ideal -> Order.PartialIso.invOfIdeal is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : DenselyOrdered.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_4 : NoMinOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_5 : NoMaxOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_6 : Nonempty.{succ u1} α] (b : β) (I : Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))), (Exists.{succ (max u1 u2)} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (fun (f : Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) => And (Membership.Mem.{max u1 u2, max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Cofinal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)) (Order.Cofinal.hasMem.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)) f (Order.PartialIso.definedAtRight.{u1, u2} α β _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 b)) (Membership.Mem.{max u1 u2, max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.setLike.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)))) f I))) -> (Subtype.{succ u1} α (fun (a : α) => Exists.{succ (max u1 u2)} (Subtype.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q)))))) (fun (f : Subtype.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q)))))) => Exists.{0} (Membership.Mem.{max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q)))))) (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.setLike.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)))) f I) (fun (H : Membership.Mem.{max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q)))))) (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.setLike.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)))) f I) => Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) (Prod.mk.{u1, u2} α β a b) (Subtype.val.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q))))) f)))))
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : DenselyOrdered.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_4 : NoMinOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_5 : NoMaxOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_6 : Nonempty.{succ u1} α] (b : β) (I : Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))), (Exists.{succ (max u1 u2)} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (fun (f : Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) => And (Membership.Mem.{max u1 u2, max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Cofinal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)) (Order.Cofinal.hasMem.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)) f (Order.PartialIso.definedAtRight.{u1, u2} α β _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 b)) (Membership.Mem.{max u1 u2, max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.setLike.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)))) f I))) -> (Subtype.{succ u1} α (fun (a : α) => Exists.{succ (max u1 u2)} (Subtype.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q)))))) (fun (f : Subtype.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q)))))) => Exists.{0} (Membership.Mem.{max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q)))))) (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.setLike.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)))) f I) (fun (H : Membership.Mem.{max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q)))))) (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Order.Ideal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.setLike.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toHasLe.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.preorder.{u1, u2} α β _inst_1 _inst_2)))) f I) => Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) (Prod.mk.{u1, u2} α β a b) (Subtype.val.{succ (max u1 u2)} (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u1 u2} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u1 u2} (Prod.{u1, u2} α β)) (Finset.hasMem.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (fun (a : α) (b : α) => LT.lt.decidable.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))) (fun (a : β) (b : β) => LT.lt.decidable.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q))))) f)))))
but is expected to have type
forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : DenselyOrdered.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1))))))] [_inst_4 : NoMinOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1))))))] [_inst_5 : NoMaxOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1))))))] [_inst_6 : Nonempty.{succ u1} α] (b : β) (I : Order.Ideal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2))), (Exists.{succ (max u1 u2)} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (fun (f : Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) => And (Membership.mem.{max u1 u2, max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Cofinal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2)) (Order.Cofinal.instMembershipCofinal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2)) f (Order.PartialIso.definedAtRight.{u1, u2} α β _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 b)) (Membership.mem.{max u1 u2, max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Order.Ideal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.instSetLikeIdeal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2)))) f I))) -> (Subtype.{succ u1} α (fun (a : α) => Exists.{succ (max u1 u2)} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (fun (f : Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) => And (Membership.mem.{max u1 u2, max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Order.Ideal.{max u2 u1} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2))) (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.Ideal.instSetLikeIdeal.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Preorder.toLE.{max u1 u2} (Order.PartialIso.{u1, u2} α β _inst_1 _inst_2) (Order.PartialIso.instPreorderPartialIso.{u1, u2} α β _inst_1 _inst_2)))) f I) (Membership.mem.{max u2 u1, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u2 u1} (Prod.{u1, u2} α β)) (Finset.instMembershipFinset.{max u2 u1} (Prod.{u1, u2} α β)) (Prod.mk.{u1, u2} α β a b) (Subtype.val.{succ (max u1 u2)} (Finset.{max u2 u1} (Prod.{u1, u2} α β)) (fun (f : Finset.{max u2 u1} (Prod.{u1, u2} α β)) => forall (p : Prod.{u1, u2} α β), (Membership.mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u2 u1} (Prod.{u1, u2} α β)) (Finset.instMembershipFinset.{max u1 u2} (Prod.{u1, u2} α β)) p f) -> (forall (q : Prod.{u1, u2} α β), (Membership.mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} α β) (Finset.{max u2 u1} (Prod.{u1, u2} α β)) (Finset.instMembershipFinset.{max u1 u2} (Prod.{u1, u2} α β)) q f) -> (Eq.{1} Ordering (cmp.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) (fun (a : α) (b : α) => instDecidableLtToLTToPreorderToPartialOrder.{u1} α _inst_1 a b) (Prod.fst.{u1, u2} α β p) (Prod.fst.{u1, u2} α β q)) (cmp.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_2)))))) (fun (a : β) (b : β) => instDecidableLtToLTToPreorderToPartialOrder.{u2} β _inst_2 a b) (Prod.snd.{u1, u2} α β p) (Prod.snd.{u1, u2} α β q))))) f)))))
Case conversion may be inaccurate. Consider using '#align order.partial_iso.inv_of_ideal Order.PartialIso.invOfIdealₓ'. -/
@@ -243,7 +251,7 @@ variable (α β)
/- warning: order.embedding_from_countable_to_dense -> Order.embedding_from_countable_to_dense is a dubious translation:
lean 3 declaration is
- forall (α : Type.{u1}) (β : Type.{u2}) [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : Encodable.{u1} α] [_inst_4 : DenselyOrdered.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_5 : Nontrivial.{u2} β], Nonempty.{max (succ u1) (succ u2)} (OrderEmbedding.{u1, u2} α β (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))))
+ forall (α : Type.{u1}) (β : Type.{u2}) [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : Encodable.{u1} α] [_inst_4 : DenselyOrdered.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_5 : Nontrivial.{u2} β], Nonempty.{max (succ u1) (succ u2)} (OrderEmbedding.{u1, u2} α β (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))))
but is expected to have type
forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : LinearOrder.{u2} α] [_inst_2 : LinearOrder.{u1} β] [_inst_3 : Encodable.{u2} α] [_inst_4 : DenselyOrdered.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (SemilatticeInf.toPartialOrder.{u1} β (Lattice.toSemilatticeInf.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β _inst_2))))))] [_inst_5 : Nontrivial.{u1} β], Nonempty.{max (succ u1) (succ u2)} (OrderEmbedding.{u2, u1} α β (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α (Lattice.toSemilatticeInf.{u2} α (DistribLattice.toLattice.{u2} α (instDistribLattice.{u2} α _inst_1)))))) (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (SemilatticeInf.toPartialOrder.{u1} β (Lattice.toSemilatticeInf.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β _inst_2)))))))
Case conversion may be inaccurate. Consider using '#align order.embedding_from_countable_to_dense Order.embedding_from_countable_to_denseₓ'. -/
@@ -267,7 +275,7 @@ theorem embedding_from_countable_to_dense [Encodable α] [DenselyOrdered β] [No
/- warning: order.iso_of_countable_dense -> Order.iso_of_countable_dense is a dubious translation:
lean 3 declaration is
- forall (α : Type.{u1}) (β : Type.{u2}) [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : Encodable.{u1} α] [_inst_4 : DenselyOrdered.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_5 : NoMinOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_6 : NoMaxOrder.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_7 : Nonempty.{succ u1} α] [_inst_8 : Encodable.{u2} β] [_inst_9 : DenselyOrdered.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_10 : NoMinOrder.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_11 : NoMaxOrder.{u2} β (Preorder.toLT.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_12 : Nonempty.{succ u2} β], Nonempty.{max (succ u1) (succ u2)} (OrderIso.{u1, u2} α β (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))))
+ forall (α : Type.{u1}) (β : Type.{u2}) [_inst_1 : LinearOrder.{u1} α] [_inst_2 : LinearOrder.{u2} β] [_inst_3 : Encodable.{u1} α] [_inst_4 : DenselyOrdered.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_5 : NoMinOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_6 : NoMaxOrder.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))))] [_inst_7 : Nonempty.{succ u1} α] [_inst_8 : Encodable.{u2} β] [_inst_9 : DenselyOrdered.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_10 : NoMinOrder.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_11 : NoMaxOrder.{u2} β (Preorder.toHasLt.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2)))))] [_inst_12 : Nonempty.{succ u2} β], Nonempty.{max (succ u1) (succ u2)} (OrderIso.{u1, u2} α β (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_2))))))
but is expected to have type
forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : LinearOrder.{u2} α] [_inst_2 : LinearOrder.{u1} β] [_inst_3 : Encodable.{u2} α] [_inst_4 : DenselyOrdered.{u2} α (Preorder.toLT.{u2} α (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α (Lattice.toSemilatticeInf.{u2} α (DistribLattice.toLattice.{u2} α (instDistribLattice.{u2} α _inst_1))))))] [_inst_5 : NoMinOrder.{u2} α (Preorder.toLT.{u2} α (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α (Lattice.toSemilatticeInf.{u2} α (DistribLattice.toLattice.{u2} α (instDistribLattice.{u2} α _inst_1))))))] [_inst_6 : NoMaxOrder.{u2} α (Preorder.toLT.{u2} α (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α (Lattice.toSemilatticeInf.{u2} α (DistribLattice.toLattice.{u2} α (instDistribLattice.{u2} α _inst_1))))))] [_inst_7 : Nonempty.{succ u2} α] [_inst_8 : Encodable.{u1} β] [_inst_9 : DenselyOrdered.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (SemilatticeInf.toPartialOrder.{u1} β (Lattice.toSemilatticeInf.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β _inst_2))))))] [_inst_10 : NoMinOrder.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (SemilatticeInf.toPartialOrder.{u1} β (Lattice.toSemilatticeInf.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β _inst_2))))))] [_inst_11 : NoMaxOrder.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (SemilatticeInf.toPartialOrder.{u1} β (Lattice.toSemilatticeInf.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β _inst_2))))))] [_inst_12 : Nonempty.{succ u1} β], Nonempty.{max (succ u1) (succ u2)} (OrderIso.{u2, u1} α β (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α (Lattice.toSemilatticeInf.{u2} α (DistribLattice.toLattice.{u2} α (instDistribLattice.{u2} α _inst_1)))))) (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (SemilatticeInf.toPartialOrder.{u1} β (Lattice.toSemilatticeInf.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β _inst_2)))))))
Case conversion may be inaccurate. Consider using '#align order.iso_of_countable_dense Order.iso_of_countable_denseₓ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/4c586d291f189eecb9d00581aeb3dd998ac34442
@@ -76,7 +76,7 @@ theorem exists_between_finsets {α : Type _} [LinearOrder α] [DenselyOrdered α
variable (α β : Type _) [LinearOrder α] [LinearOrder β]
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (p q «expr ∈ » f) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (p q «expr ∈ » f) -/
#print Order.PartialIso /-
/-- The type of partial order isomorphisms between `α` and `β` defined on finite subsets.
A partial order isomorphism is encoded as a finite subset of `α × β`, consisting
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -46,7 +46,7 @@ theorem exists_between_finsets {α : Type*} [LinearOrder α] [DenselyOrdered α]
∃ m : α, (∀ x ∈ lo, x < m) ∧ ∀ y ∈ hi, m < y :=
if nlo : lo.Nonempty then
if nhi : hi.Nonempty then
- -- both sets are nonempty, use densely_ordered
+ -- both sets are nonempty, use `DenselyOrdered`
Exists.elim
(exists_between (lo_lt_hi _ (Finset.max'_mem _ nlo) _ (Finset.min'_mem _ nhi))) fun m hm ↦
⟨m, fun x hx ↦ lt_of_le_of_lt (Finset.le_max' lo x hx) hm.1, fun y hy ↦
@@ -61,7 +61,7 @@ theorem exists_between_finsets {α : Type*} [LinearOrder α] [DenselyOrdered α]
Exists.elim
(exists_lt (Finset.min' hi nhi)) fun m hm ↦
⟨m, fun x hx ↦ (nlo ⟨x, hx⟩).elim, fun y hy ↦ lt_of_lt_of_le hm (Finset.min'_le hi y hy)⟩
- else-- both sets are empty, use nonempty
+ else -- both sets are empty, use `Nonempty`
nonem.elim
fun m ↦ ⟨m, fun x hx ↦ (nlo ⟨x, hx⟩).elim, fun y hy ↦ (nhi ⟨y, hy⟩).elim⟩
#align order.exists_between_finsets Order.exists_between_finsets
open Classical
(#11199)
We remove all but one open Classical
s, instead preferring to use open scoped Classical
. The only real side-effect this led to is moving a couple declarations to use Exists.choose
instead of Classical.choose
.
The first few commits are explicitly labelled regex replaces for ease of review.
@@ -33,7 +33,7 @@ back and forth, dense, countable, order
noncomputable section
-open Classical
+open scoped Classical
namespace Order
@@ -199,8 +199,9 @@ open PartialIso
-- variable (α β)
/-- Any countable linear order embeds in any nontrivial dense linear order. -/
-theorem embedding_from_countable_to_dense [Encodable α] [DenselyOrdered β] [Nontrivial β] :
+theorem embedding_from_countable_to_dense [Countable α] [DenselyOrdered β] [Nontrivial β] :
Nonempty (α ↪o β) := by
+ cases nonempty_encodable α
rcases exists_pair_lt β with ⟨x, y, hxy⟩
cases' exists_between hxy with a ha
haveI : Nonempty (Set.Ioo x y) := ⟨⟨a, ha⟩⟩
@@ -217,15 +218,17 @@ theorem embedding_from_countable_to_dense [Encodable α] [DenselyOrdered β] [No
#align order.embedding_from_countable_to_dense Order.embedding_from_countable_to_dense
/-- Any two countable dense, nonempty linear orders without endpoints are order isomorphic. -/
-theorem iso_of_countable_dense [Encodable α] [DenselyOrdered α] [NoMinOrder α] [NoMaxOrder α]
- [Nonempty α] [Encodable β] [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonempty β] :
- Nonempty (α ≃o β) :=
+theorem iso_of_countable_dense [Countable α] [DenselyOrdered α] [NoMinOrder α] [NoMaxOrder α]
+ [Nonempty α] [Countable β] [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonempty β] :
+ Nonempty (α ≃o β) := by
+ cases nonempty_encodable α
+ cases nonempty_encodable β
let to_cofinal : Sum α β → Cofinal (PartialIso α β) := fun p ↦
Sum.recOn p (definedAtLeft β) (definedAtRight α)
let our_ideal : Ideal (PartialIso α β) := idealOfCofinals default to_cofinal
let F a := funOfIdeal a our_ideal (cofinal_meets_idealOfCofinals _ to_cofinal (Sum.inl a))
let G b := invOfIdeal b our_ideal (cofinal_meets_idealOfCofinals _ to_cofinal (Sum.inr b))
- ⟨OrderIso.ofCmpEqCmp (fun a ↦ (F a).val) (fun b ↦ (G b).val) fun a b ↦ by
+ exact ⟨OrderIso.ofCmpEqCmp (fun a ↦ (F a).val) (fun b ↦ (G b).val) fun a b ↦ by
rcases (F a).prop with ⟨f, hf, ha⟩
rcases (G b).prop with ⟨g, hg, hb⟩
rcases our_ideal.directed _ hf _ hg with ⟨m, _, fm, gm⟩
Equiv.subset_image
(#9800)
Finset
versions of the renamed lemmas are also added.
@@ -170,7 +170,7 @@ def definedAtRight [DenselyOrdered α] [NoMinOrder α] [NoMaxOrder α] [Nonempty
· change (a, b) ∈ f'.val.image _
rwa [← Finset.mem_coe, Finset.coe_image, Equiv.image_eq_preimage]
· change _ ⊆ f'.val.image _
- rwa [← Finset.coe_subset, Finset.coe_image, ← Equiv.subset_image, ← Finset.coe_image,
+ rwa [← Finset.coe_subset, Finset.coe_image, ← Equiv.symm_image_subset, ← Finset.coe_image,
Finset.coe_subset]
#align order.partial_iso.defined_at_right Order.PartialIso.definedAtRight
@@ -74,7 +74,7 @@ variable (α β : Type*) [LinearOrder α] [LinearOrder β]
of pairs which should be identified. -/
def PartialIso : Type _ :=
{ f : Finset (α × β) //
- ∀ (p) (_ : p ∈ f) (q) (_ : q ∈ f),
+ ∀ p ∈ f, ∀ q ∈ f,
cmp (Prod.fst p) (Prod.fst q) = cmp (Prod.snd p) (Prod.snd q) }
#align order.partial_iso Order.PartialIso
rcases
, convert
and congrm
(#7725)
Replace rcases(
with rcases (
. Same thing for convert(
and congrm(
. No other change.
@@ -210,8 +210,8 @@ theorem embedding_from_countable_to_dense [Encodable α] [DenselyOrdered β] [No
refine
⟨RelEmbedding.trans (OrderEmbedding.ofStrictMono (fun a ↦ (F a).val) fun a₁ a₂ ↦ ?_)
(OrderEmbedding.subtype _)⟩
- rcases(F a₁).prop with ⟨f, hf, ha₁⟩
- rcases(F a₂).prop with ⟨g, hg, ha₂⟩
+ rcases (F a₁).prop with ⟨f, hf, ha₁⟩
+ rcases (F a₂).prop with ⟨g, hg, ha₂⟩
rcases our_ideal.directed _ hf _ hg with ⟨m, _hm, fm, gm⟩
exact (lt_iff_lt_of_cmp_eq_cmp <| m.prop (a₁, _) (fm ha₁) (a₂, _) (gm ha₂)).mp
#align order.embedding_from_countable_to_dense Order.embedding_from_countable_to_dense
@@ -226,8 +226,8 @@ theorem iso_of_countable_dense [Encodable α] [DenselyOrdered α] [NoMinOrder α
let F a := funOfIdeal a our_ideal (cofinal_meets_idealOfCofinals _ to_cofinal (Sum.inl a))
let G b := invOfIdeal b our_ideal (cofinal_meets_idealOfCofinals _ to_cofinal (Sum.inr b))
⟨OrderIso.ofCmpEqCmp (fun a ↦ (F a).val) (fun b ↦ (G b).val) fun a b ↦ by
- rcases(F a).prop with ⟨f, hf, ha⟩
- rcases(G b).prop with ⟨g, hg, hb⟩
+ rcases (F a).prop with ⟨f, hf, ha⟩
+ rcases (G b).prop with ⟨g, hg, hb⟩
rcases our_ideal.directed _ hf _ hg with ⟨m, _, fm, gm⟩
exact m.prop (a, _) (fm ha) (_, b) (gm hb)⟩
#align order.iso_of_countable_dense Order.iso_of_countable_dense
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -41,7 +41,7 @@ namespace Order
suppose `lo`, `hi`, are finite subsets with all of `lo` strictly
before `hi`. Then there is an element of `α` strictly between `lo`
and `hi`. -/
-theorem exists_between_finsets {α : Type _} [LinearOrder α] [DenselyOrdered α] [NoMinOrder α]
+theorem exists_between_finsets {α : Type*} [LinearOrder α] [DenselyOrdered α] [NoMinOrder α]
[NoMaxOrder α] [nonem : Nonempty α] (lo hi : Finset α) (lo_lt_hi : ∀ x ∈ lo, ∀ y ∈ hi, x < y) :
∃ m : α, (∀ x ∈ lo, x < m) ∧ ∀ y ∈ hi, m < y :=
if nlo : lo.Nonempty then
@@ -66,7 +66,7 @@ theorem exists_between_finsets {α : Type _} [LinearOrder α] [DenselyOrdered α
fun m ↦ ⟨m, fun x hx ↦ (nlo ⟨x, hx⟩).elim, fun y hy ↦ (nhi ⟨y, hy⟩).elim⟩
#align order.exists_between_finsets Order.exists_between_finsets
-variable (α β : Type _) [LinearOrder α] [LinearOrder β]
+variable (α β : Type*) [LinearOrder α] [LinearOrder β]
-- Porting note: Mathport warning: expanding binder collection (p q «expr ∈ » f)
/-- The type of partial order isomorphisms between `α` and `β` defined on finite subsets.
Set
defeq abuse, golf (#6114)
{x | p x}
instead of fun x ↦ p x
to define a set here and there.Con.ker_apply_eq_preimage
with Con.ker_apply
. The old version used to abuse definitional equality between Set M
and M → Prop
.Submonoid.mk*
lemmas to use ⟨_, _⟩
, not ⟨⟨_, _⟩, _⟩
.@@ -142,7 +142,7 @@ variable (β)
partial isomorphism can be extended to one defined at `a`. -/
def definedAtLeft [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonempty β] (a : α) :
Cofinal (PartialIso α β) where
- carrier f := ∃ b : β, (a, b) ∈ f.val
+ carrier := {f | ∃ b : β, (a, b) ∈ f.val}
mem_gt f := by
cases' exists_across f a with b a_b
refine
@@ -163,7 +163,7 @@ variable (α) {β}
partial isomorphism can be extended to include `b`. We prove this by symmetry. -/
def definedAtRight [DenselyOrdered α] [NoMinOrder α] [NoMaxOrder α] [Nonempty α] (b : β) :
Cofinal (PartialIso α β) where
- carrier f := ∃ a, (a, b) ∈ f.val
+ carrier := {f | ∃ a, (a, b) ∈ f.val}
mem_gt f := by
rcases (definedAtLeft α b).mem_gt f.comm with ⟨f', ⟨a, ha⟩, hl⟩
refine' ⟨f'.comm, ⟨a, _⟩, _⟩
@@ -2,15 +2,12 @@
Copyright (c) 2020 David Wärn. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: David Wärn
-
-! This file was ported from Lean 3 source module order.countable_dense_linear_order
-! leanprover-community/mathlib commit 2705404e701abc6b3127da906f40bae062a169c9
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Order.Ideal
import Mathlib.Data.Finset.Lattice
+#align_import order.countable_dense_linear_order from "leanprover-community/mathlib"@"2705404e701abc6b3127da906f40bae062a169c9"
+
/-!
# The back and forth method and countable dense linear orders
@@ -41,7 +41,7 @@ open Classical
namespace Order
/-- Suppose `α` is a nonempty dense linear order without endpoints, and
- suppose `lo`, `hi`, are finite subssets with all of `lo` strictly
+ suppose `lo`, `hi`, are finite subsets with all of `lo` strictly
before `hi`. Then there is an element of `α` strictly between `lo`
and `hi`. -/
theorem exists_between_finsets {α : Type _} [LinearOrder α] [DenselyOrdered α] [NoMinOrder α]
by
s! (#3825)
This PR puts, with one exception, every single remaining by
that lies all by itself on its own line to the previous line, thus matching the current behaviour of start-port.sh
. The exception is when the by
begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599.
Essentially this is s/\n *by$/ by/g
, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated by
s".
@@ -95,8 +95,8 @@ the domain of `f` is `b`'s relation to the image of `f`.
Thus, if `a` is not already in `f`, then we can extend `f` by sending `a` to `b`.
-/
theorem exists_across [DenselyOrdered β] [NoMinOrder β] [NoMaxOrder β] [Nonempty β]
- (f : PartialIso α β) (a : α) : ∃ b : β, ∀ p ∈ f.val, cmp (Prod.fst p) a = cmp (Prod.snd p) b :=
- by
+ (f : PartialIso α β) (a : α) :
+ ∃ b : β, ∀ p ∈ f.val, cmp (Prod.fst p) a = cmp (Prod.snd p) b := by
by_cases h : ∃ b, (a, b) ∈ f.val
· cases' h with b hb
exact ⟨b, fun p hp ↦ f.prop _ hp _ hb⟩
The unported dependencies are