let m, n be Nat; :: thesis: for G being addGroup
for g, h being Element of G st g + h = h + g holds
(n * g) + (m * h) = (m * h) + (n * g)

let G be addGroup; :: thesis: for g, h being Element of G st g + h = h + g holds
(n * g) + (m * h) = (m * h) + (n * g)

let g, h be Element of G; :: thesis: ( g + h = h + g implies (n * g) + (m * h) = (m * h) + (n * g) )
defpred S1[ Nat] means for m being Nat st g + h = h + g holds
($1 * g) + (m * h) = (m * h) + ($1 * g);
A1: for n being Nat st S1[n] holds
S1[n + 1]
proof
let n be Nat; :: thesis: ( S1[n] implies S1[n + 1] )
assume A2: for m being Nat st g + h = h + g holds
(n * g) + (m * h) = (m * h) + (n * g) ; :: thesis: S1[n + 1]
let m be Nat; :: thesis: ( g + h = h + g implies ((n + 1) * g) + (m * h) = (m * h) + ((n + 1) * g) )
assume A3: g + h = h + g ; :: thesis: ((n + 1) * g) + (m * h) = (m * h) + ((n + 1) * g)
thus ((n + 1) * g) + (m * h) = (g + (n * g)) + (m * h) by Lm6
.= g + ((n * g) + (m * h)) by RLVECT_1:def 3
.= g + ((m * h) + (n * g)) by A2, A3
.= (g + (m * h)) + (n * g) by RLVECT_1:def 3
.= ((m * h) + g) + (n * g) by A3, Lm9
.= (m * h) + (g + (n * g)) by RLVECT_1:def 3
.= (m * h) + ((n + 1) * g) by Lm6 ; :: thesis: verum
end;
A4: S1[ 0 ]
proof
let m be Nat; :: thesis: ( g + h = h + g implies (0 * g) + (m * h) = (m * h) + (0 * g) )
assume g + h = h + g ; :: thesis: (0 * g) + (m * h) = (m * h) + (0 * g)
thus (0 * g) + (m * h) = (0_ G) + (m * h) by Def7
.= m * h by Def4
.= (m * h) + (0_ G) by Def4
.= (m * h) + (0 * g) by Def7 ; :: thesis: verum
end;
for n being Nat holds S1[n] from NAT_1:sch 2(A4, A1);
hence ( g + h = h + g implies (n * g) + (m * h) = (m * h) + (n * g) ) ; :: thesis: verum