proposition: Theorem recursion_succ {A} (Aeq : relation A) (a : A) (f : N -> A -> A): Aeq a a -> Proper (Logic.eq==>Aeq==>Aeq) f -> forall n : N, Aeq (recursion a f (succ n)) (f n (recursion a f n)).
proof: Proof. unfold recursion; intros a_wd f_wd n. induction n using peano_ind. - rewrite peano_rect_succ. now apply f_wd. - rewrite !peano_rect_succ in *. now apply f_wd. Qed.
imports: BinNums BinPos RelationClasses Morphisms Setoid Equalities OrdersFacts GenericMinMax Bool NAxioms NMaxMin NProperties