 reserve x,y,z for object,
   i,j,k,l,n,m for Nat,
   D,E for non empty set;
 reserve M for Matrix of D;
 reserve L for Matrix of E;
 reserve k,t,i,j,m,n for Nat,
   D for non empty set;
 reserve V for free Z_Module;
 reserve a for Element of INT.Ring,
   W for Element of V;
 reserve KL1,KL2,KL3 for Linear_Combination of V,
   X for Subset of V;
 reserve V for finite-rank free Z_Module,
   W for Element of V;
 reserve KL1,KL2,KL3 for Linear_Combination of V,
   X for Subset of V;
 reserve s for FinSequence,
   V1,V2,V3 for finite-rank free Z_Module,
   f,f1,f2 for Function of V1,V2,
   g for Function of V2,V3,
   b1 for OrdBasis of V1,
   b2 for OrdBasis of V2,
   b3 for OrdBasis of V3,
   v1,v2 for Vector of V2,
   v,w for Element of V1;
 reserve p2,F for FinSequence of V1,
   p1,d for FinSequence of INT.Ring,
   KL for Linear_Combination of V1;

theorem
  for V, W being add-associative right_zeroed right_complementable
  vector-distributive scalar-distributive scalar-associative scalar-unital
  non empty ModuleStr over INT.Ring, v, u being Vector of V,
     w, t being Vector of W,
  a, b being Element of INT.Ring, f being bilinear-Form of V,W
  holds f.(v+a*u,w+b*t) = f.(v,w) + b*f.(v,t) + (a*f.(u,w) + a*(b*f.(u,t)))
  proof
    let V, W be add-associative right_zeroed right_complementable
    vector-distributive scalar-distributive scalar-associative scalar-unital
    non empty ModuleStr over INT.Ring, v, w be Vector of V,
    y, z be Vector of W,
    a, b be Element of INT.Ring;
    let f be bilinear-Form of V,W;
    set v1 = f.(v,y), v3 = f.(v,z), v4 = f.(w,y), v5 = f.(w,z);
    thus f.(v+a*w,y+b*z) = v1 +f.(v,b*z) + (f.(a*w,y) +f.(a*w,b*z)) by BLTh28
    .= v1 +b*v3 + (f.(a*w,y) +f.(a*w,b*z)) by BLTh32
    .= v1 + b*v3 + (a*v4 + f.(a*w,b*z)) by BLTh31
    .= v1 + b*v3 + (a*v4 + a*f.(w,b*z)) by BLTh31
    .= v1 + b*v3 + (a*v4 + a*(b*v5)) by BLTh32;
  end;
