@@ -3,6 +3,7 @@ Copyright (c) 2022 Alex J. Best, Yaël Dillies. All rights reserved.
3
3
Released under Apache 2.0 license as described in the file LICENSE.
4
4
Authors: Alex J. Best, Yaël Dillies
5
5
-/
6
+ import algebra.order.archimedean
6
7
import algebra.order.hom.monoid
7
8
import algebra.order.ring
8
9
import algebra.ring.equiv
@@ -277,6 +278,10 @@ ext e.left_inv
277
278
@[simp] lemma symm_trans_self (e : α ≃+*o β) : e.symm.trans e = order_ring_iso.refl β :=
278
279
ext e.right_inv
279
280
281
+ lemma symm_bijective : bijective (order_ring_iso.symm : (α ≃+*o β) → β ≃+*o α) :=
282
+ ⟨λ f g h, f.symm_symm.symm.trans $ (congr_arg order_ring_iso.symm h).trans g.symm_symm,
283
+ λ f, ⟨f.symm, f.symm_symm⟩⟩
284
+
280
285
end has_le
281
286
282
287
section non_assoc_semiring
@@ -294,5 +299,54 @@ def to_order_ring_hom (f : α ≃+*o β) : α →+*o β :=
294
299
@[simp]
295
300
lemma coe_to_order_ring_hom_refl : (order_ring_iso.refl α : α →+*o α) = order_ring_hom.id α := rfl
296
301
302
+ lemma to_order_ring_hom_injective : injective (to_order_ring_hom : (α ≃+*o β) → α →+*o β) :=
303
+ λ f g h, fun_like.coe_injective $ by convert fun_like.ext'_iff.1 h
304
+
297
305
end non_assoc_semiring
298
306
end order_ring_iso
307
+
308
+ /-!
309
+ ### Uniqueness
310
+
311
+ There is at most one ordered ring homomorphism from a linear ordered field to an archimedean linear
312
+ ordered field. Reciprocally, such an ordered ring homomorphism exists when the codomain is further
313
+ conditionally complete.
314
+ -/
315
+
316
+ /-- There is at most one ordered ring homomorphism from a linear ordered field to an archimedean
317
+ linear ordered field. -/
318
+ -- TODO[ gh-6025 ] : make this an instance once safe to do so
319
+ lemma order_ring_hom.subsingleton [linear_ordered_field α] [linear_ordered_field β]
320
+ [archimedean β] :
321
+ subsingleton (α →+*o β) :=
322
+ ⟨λ f g, begin
323
+ ext x,
324
+ by_contra' h,
325
+ wlog h : f x < g x using [f g, g f],
326
+ { exact ne.lt_or_lt h },
327
+ obtain ⟨q, hf, hg⟩ := exists_rat_btwn h,
328
+ rw ←map_rat_cast f at hf,
329
+ rw ←map_rat_cast g at hg,
330
+ exact (lt_asymm ((order_hom_class.mono g).reflect_lt hg) $
331
+ (order_hom_class.mono f).reflect_lt hf).elim,
332
+ end ⟩
333
+
334
+ local attribute [instance] order_ring_hom.subsingleton
335
+
336
+ /-- There is at most one ordered ring isomorphism between a linear ordered field and an archimedean
337
+ linear ordered field. -/
338
+ -- TODO[ gh-6025 ] : make this an instance once safe to do so
339
+ lemma order_ring_iso.subsingleton_right [linear_ordered_field α] [linear_ordered_field β]
340
+ [archimedean β] :
341
+ subsingleton (α ≃+*o β) :=
342
+ order_ring_iso.to_order_ring_hom_injective.subsingleton
343
+
344
+ local attribute [instance] order_ring_iso.subsingleton_right
345
+
346
+ /-- There is at most one ordered ring isomorphism between an archimedean linear ordered field and a
347
+ linear ordered field. -/
348
+ -- TODO[ gh-6025 ] : make this an instance once safe to do so
349
+ lemma order_ring_iso.subsingleton_left [linear_ordered_field α] [archimedean α]
350
+ [linear_ordered_field β] :
351
+ subsingleton (α ≃+*o β) :=
352
+ order_ring_iso.symm_bijective.injective.subsingleton
0 commit comments