{A B C : AbGroup} : (ab_tensor_prod A B $-> C) -> Biadditive A B C. Proof. intros f. exists (fun x y => f (tensor x y)). snrapply Build_IsBiadditive. - intros b a a'; simpl. lhs nrapply (ap f). 1: nrapply tensor_dist_r. nrapply grp_homo_op. - intros a a' b; simpl. lhs nrapply (ap f). 1: nrapply tensor_dist_l. nrapply grp_homo_op. Defined.
Require Import Basics.Overture Basics.Tactics. Require Import Types.Forall Types.Sigma Types.Prod. Require Import WildCat.Core WildCat.Equiv WildCat.Monoidal WildCat.Bifunctor. Require Import WildCat.NatTrans WildCat.MonoidalTwistConstruction. Require Import Algebra.Groups.Group Algebra.Groups.QuotientGroup. Require Import Algebra.AbGroups.AbelianGroup Algebra.AbGroups.Biproduct. Require Import Algebra.AbGroups.AbHom Algebra.AbGroups.FreeAbelianGroup. Require Import Algebra.AbGroups.Abelianization Algebra Algebra.Groups.FreeGroup. Require Import Colimits.Quotient. Require Import Spaces.List.Core Spaces.Int. Require Import AbGroups.Z. Require Import Truncations.