{A} (f : A -> A) `{IsEquiv _ _ f} (n : BinInt) (a : A) : binint_iter f (binint_succ n) a = binint_iter f n (f a). Proof. destruct n as [n| |n]; trivial. + revert n f H a. srapply pos_peano_ind. { intros f H a. symmetry. apply eissect. } hnf; intros n p f H a. rewrite binint_neg_pos_succ. refine (ap (fun x => _ x _) _ @ _). 1: exact (eisretr binint_succ (neg n)). cbn; rewrite pos_add_1_r. rewrite pos_iter_succ_r. rewrite eissect. reflexivity. + cbn. rewrite pos_add_1_r. srapply pos_iter_succ_r. Qed.
Require Import Basics. Require Import Spaces.Pos. Require Import Spaces.BinInt.Core. Require Import Spaces.BinInt.Spec.