reserve x1,x2,z for set;
reserve A,B for non empty set;
reserve f,g,h for Element of Funcs(A,REAL);
reserve a,b for Real;

theorem
  (RealFuncAdd A).(f,g) = f + g
proof
A1: dom ((RealFuncAdd A).(f,g)) = A by FUNCT_2:def 1;
a1: dom (f + g) = dom f /\ dom g by VALUED_1:def 1
               .= A /\ dom g by FUNCT_2:def 1
               .= A /\ A by FUNCT_2:def 1
               .= A;
    now
      let x be object;
      assume
a0:   x in dom (f+g);
A3:   dom (addreal.:(f,g)) = A by FUNCT_2:def 1;
      thus ((RealFuncAdd A).(f,g)).x = (addreal.:(f,g)).x by Def1
        .= addreal.(f.x,g.x) by a1,a0,A3,FUNCOP_1:22
        .= f.x + g.x by BINOP_2:def 9
        .= (f+g).x by VALUED_1:1,a1,a0;
    end;
    hence thesis by a1,A1,FUNCT_1:2;
end;
