let K be non empty associative doubleLoopStr ; :: thesis: for V, W being non empty ModuleStr over K
for a, b being Element of K
for f being Form of V,W holds (a * b) * f = a * (b * f)

let V, W be non empty ModuleStr over K; :: thesis: for a, b being Element of K
for f being Form of V,W holds (a * b) * f = a * (b * f)

let r, s be Element of K; :: thesis: for f being Form of V,W holds (r * s) * f = r * (s * f)
let f be Form of V,W; :: thesis: (r * s) * f = r * (s * f)
now :: thesis: for v being Vector of V
for w being Vector of W holds ((r * s) * f) . (v,w) = (r * (s * f)) . (v,w)
let v be Vector of V; :: thesis: for w being Vector of W holds ((r * s) * f) . (v,w) = (r * (s * f)) . (v,w)
let w be Vector of W; :: thesis: ((r * s) * f) . (v,w) = (r * (s * f)) . (v,w)
thus ((r * s) * f) . (v,w) = (r * s) * (f . (v,w)) by Def3
.= r * (s * (f . (v,w))) by GROUP_1:def 3
.= r * ((s * f) . (v,w)) by Def3
.= (r * (s * f)) . (v,w) by Def3 ; :: thesis: verum
end;
hence (r * s) * f = r * (s * f) ; :: thesis: verum