let C be non empty set ; :: thesis: for V being non empty add-associative addLoopStr
for f1, f2, f3 being PartFunc of C,V holds f1 + (f2 - f3) = (f1 + f2) - f3

let V be non empty add-associative addLoopStr ; :: thesis: for f1, f2, f3 being PartFunc of C,V holds f1 + (f2 - f3) = (f1 + f2) - f3
let f1, f2, f3 be PartFunc of C,V; :: thesis: f1 + (f2 - f3) = (f1 + f2) - f3
A1: dom (f1 + (f2 - f3)) = (dom f1) /\ (dom (f2 - f3)) by Def1
.= (dom f1) /\ ((dom f2) /\ (dom f3)) by Def2
.= ((dom f1) /\ (dom f2)) /\ (dom f3) by XBOOLE_1:16
.= (dom (f1 + f2)) /\ (dom f3) by Def1
.= dom ((f1 + f2) - f3) by Def2 ;
now :: thesis: for c being Element of C st c in dom (f1 + (f2 - f3)) holds
(f1 + (f2 - f3)) /. c = ((f1 + f2) - f3) /. c
let c be Element of C; :: thesis: ( c in dom (f1 + (f2 - f3)) implies (f1 + (f2 - f3)) /. c = ((f1 + f2) - f3) /. c )
assume A2: c in dom (f1 + (f2 - f3)) ; :: thesis: (f1 + (f2 - f3)) /. c = ((f1 + f2) - f3) /. c
then c in (dom f1) /\ (dom (f2 - f3)) by Def1;
then A3: c in dom (f2 - f3) by XBOOLE_0:def 4;
c in (dom (f1 + f2)) /\ (dom f3) by A1, A2, Def2;
then A4: c in dom (f1 + f2) by XBOOLE_0:def 4;
thus (f1 + (f2 - f3)) /. c = (f1 /. c) + ((f2 - f3) /. c) by A2, Def1
.= (f1 /. c) + ((f2 /. c) - (f3 /. c)) by A3, Def2
.= ((f1 /. c) + (f2 /. c)) - (f3 /. c) by RLVECT_1:def 3
.= ((f1 + f2) /. c) - (f3 /. c) by A4, Def1
.= ((f1 + f2) - f3) /. c by A1, A2, Def2 ; :: thesis: verum
end;
hence f1 + (f2 - f3) = (f1 + f2) - f3 by A1, PARTFUN2:1; :: thesis: verum