proposition: Lemma cnf_nat_sumA x y z: cnfp x -> cnfp y -> cnfp z -> x +#f (y +#f z) = (x +#f y) +#f z.
proof: Proof. move => ox oy oz. move: (cnfp_nat_sum oy oz) (cnfp_nat_sum ox oy) => oyz oxy. apply: (cnf_nat_sum_p3 oxy oz (cnfp_nat_sum ox oyz)) => e. rewrite (cnf_nat_sum_p2 ox oyz) (cnf_nat_sum_p2 oy oz) (cnf_nat_sum_p2 ox oy). apply: csumA. Qed.
imports: mathcomp(ssreflect ssrfun ssrbool eqtype ssrnat)