proposition: Lemma add_assoc_pos p n m : pos p + (n + m) = pos p + n + m.
proof: Proof. destruct n as [|n|n], m as [|m|m]; simpl; trivial. - now rewrite Pos.add_assoc. - symmetry. apply pos_sub_add. - symmetry. apply add_0_r. - now rewrite <- pos_sub_add, add_comm, <- pos_sub_add, Pos.add_comm. - apply opp_inj. rewrite !opp_add_distr, !pos_sub_opp. rewrite add_comm, Pos.add_comm. apply pos_sub_add. Qed.
imports: BinNums BinPos Pnat BinNat Bool Equalities GenericMinMax OrdersFacts ZAxioms ZProperties DecidableClass