let a be Real; :: thesis: for A being set
for f, g being Element of Funcs A,REAL holds (RealFuncAdd A) . ((RealFuncExtMult A) . a,f),((RealFuncExtMult A) . a,g) = (RealFuncExtMult A) . a,((RealFuncAdd A) . f,g)

let A be set ; :: thesis: for f, g being Element of Funcs A,REAL holds (RealFuncAdd A) . ((RealFuncExtMult A) . a,f),((RealFuncExtMult A) . a,g) = (RealFuncExtMult A) . a,((RealFuncAdd A) . f,g)
let f, g be Element of Funcs A,REAL ; :: thesis: (RealFuncAdd A) . ((RealFuncExtMult A) . a,f),((RealFuncExtMult A) . a,g) = (RealFuncExtMult A) . a,((RealFuncAdd A) . f,g)
per cases ( A = {} or A <> {} ) ;
suppose A1: A = {} ; :: thesis: (RealFuncAdd A) . ((RealFuncExtMult A) . a,f),((RealFuncExtMult A) . a,g) = (RealFuncExtMult A) . a,((RealFuncAdd A) . f,g)
hence (RealFuncAdd A) . ((RealFuncExtMult A) . a,f),((RealFuncExtMult A) . a,g) = {}
.= multreal [;] a,((RealFuncAdd A) . f,g) by A1
.= (RealFuncExtMult A) . a,((RealFuncAdd A) . f,g) by Def4 ;
:: thesis: verum
end;
suppose A <> {} ; :: thesis: (RealFuncAdd A) . ((RealFuncExtMult A) . a,f),((RealFuncExtMult A) . a,g) = (RealFuncExtMult A) . a,((RealFuncAdd A) . f,g)
then reconsider A = A as non empty set ;
reconsider f = f, g = g as Element of Funcs A,REAL ;
now
let x be Element of A; :: thesis: ((RealFuncAdd A) . ((RealFuncExtMult A) . [a,f]),((RealFuncExtMult A) . [a,g])) . x = ((RealFuncExtMult A) . [a,((RealFuncAdd A) . f,g)]) . x
thus ((RealFuncAdd A) . ((RealFuncExtMult A) . [a,f]),((RealFuncExtMult A) . [a,g])) . x = (((RealFuncExtMult A) . [a,f]) . x) + (((RealFuncExtMult A) . [a,g]) . x) by Th10
.= (a * (f . x)) + (((RealFuncExtMult A) . [a,g]) . x) by Th15
.= (a * (f . x)) + (a * (g . x)) by Th15
.= a * ((f . x) + (g . x))
.= a * (((RealFuncAdd A) . f,g) . x) by Th10
.= ((RealFuncExtMult A) . [a,((RealFuncAdd A) . f,g)]) . x by Th15 ; :: thesis: verum
end;
hence (RealFuncAdd A) . ((RealFuncExtMult A) . a,f),((RealFuncExtMult A) . a,g) = (RealFuncExtMult A) . a,((RealFuncAdd A) . f,g) by FUNCT_2:113; :: thesis: verum
end;
end;