proposition: Lemma natural_initial (same_morphism : ∀ `{SemiRing B} {h : A → B} `{!SemiRing_Morphism h}, naturals_to_semiring B = h) : Initial (semirings.object A).
proof: Proof. intros y [x h] [] ?. simpl in *. apply same_morphism. apply semirings.decode_variety_and_ops. apply (@semirings.decode_morphism_and_ops _ _ _ _ _ _ _ _ _ h). reflexivity. Qed.
imports: MathClasses.interfaces.abstract_algebra MathClasses.theory.categories MathClasses.varieties.semirings MathClasses.categories.varieties