proposition: Lemma sop_morph : {morph sop : x y / x * y >-> prod_tuple x y}.
proof: Proof. move=> x y; apply: (@eq_from_nth _ F0) => [|/= i]. by rewrite size_map !size_tuple. rewrite size_tuple card_ord => lti6. by rewrite -[i]/(val (Ordinal lti6)) sop_spec -prod_t_correct. Qed.
imports: HB(structures) mathcomp(ssreflect ssrbool ssrfun eqtype ssrnat seq div) mathcomp(choice fintype tuple finfun bigop finset fingroup) mathcomp(action perm primitive_action)