proposition: Lemma projected_srorder `{SemiRing R2} `{R2le : Le R2} (f : R2 → R1) `{!SemiRing_Morphism f} `{!Injective f} : (∀ x y, x ≤ y ↔ f x ≤ f y) → (∀ x y : R2, x ≤ y → ∃ z, y = x + z) → SemiRingOrder R2le.
proof: Proof. intros P. pose proof (projected_partial_order f P). repeat (split; try apply _). assumption. intros. apply P. rewrite 2!preserves_plus. now apply (order_preserving _), P. intros. apply P. apply (order_reflecting (f z +)). rewrite <-2!preserves_plus. now apply P. intros. apply P. rewrite preserves_mult, preserves_0. now apply nonneg_mult_compat; rewrite <-(preserves_0 (f:=f)); apply P. Qed.
imports: Coq.setoid_ring.Ring MathClasses.interfaces.abstract_algebra MathClasses.interfaces.orders MathClasses.theory.rings MathClasses.orders.orders MathClasses.orders.maps