proposition: Lemma to_semiring_injective `{Naturals N} `{SemiRing A} (f: A → N) (g: N → A) `{!SemiRing_Morphism f} `{!SemiRing_Morphism g}: Injective g.
proof: Proof. repeat (split; try apply _). intros x y E. now rewrite <-(to_semiring_twice f g id x), <-(to_semiring_twice f g id y), E. Qed.
imports: Coq.setoid_ring.Ring MathClasses.interfaces.abstract_algebra MathClasses.implementations.peano_naturals MathClasses.theory.rings Coq.Arith.PeanoNat MathClasses.categories.varieties MathClasses.theory.ua_transference MathClasses.interfaces.naturals