proposition: Lemma Str_nth_factorials (n : nat) : Str_nth n factorials = naturals_to_semiring nat A (fact n).
proof: Proof. unfold factorials. rewrite Str_nth_factorials_help. induction n using peano_naturals.nat_induction; simpl. change (1 = naturals_to_semiring nat A 1). now rewrite rings.preserves_1. rewrite IHn. setoid_rewrite rings.preserves_plus. setoid_rewrite rings.preserves_mult. now ring. Qed.
imports: Coq.setoid_ring.Ring Coq.Arith.Factorial MathClasses.misc.workaround_tactics MathClasses.interfaces.abstract_algebra MathClasses.interfaces.additional_operations MathClasses.interfaces.orders MathClasses.interfaces.naturals MathClasses.interfaces.integers MathClasses.theory.nat_pow MathClasses.theory.int_pow MathClasses.theory.streams