 reserve Omega for non empty set;
 reserve r for Real;
 reserve Sigma for SigmaField of Omega;
 reserve P for Probability of Sigma;

theorem Th6:
  for X be non empty set, f,g be PartFunc of X,REAL holds
  (f+g) to_power 2 = (f to_power 2) + 2(#)(f(#)g) + (g to_power 2) &
  (f-g) to_power 2 = (f to_power 2) - 2(#)(f(#)g) + (g to_power 2)
  proof
    let X be non empty set, f,g be PartFunc of X,REAL;
    A1: dom ((f to_power 2)) = dom f
    & for x be Element of X st x in dom ((f to_power 2)) holds
    ((f to_power 2)).x = (f.x) to_power 2 by MESFUN6C:def 4;
    A2: dom (g to_power 2) = dom g
    & for x be Element of X st x in dom (g to_power 2) holds
    (g to_power 2).x = (g.x) to_power 2 by MESFUN6C:def 4;
    A3: dom (2(#)(f(#)g)) = dom (f(#)g) by VALUED_1:def 5
    .= dom f /\ dom g by VALUED_1:def 4;
    A4: now let x be Element of X;
    assume x in (dom f /\ dom g);
    thus (2(#)(f(#)g)).x = 2*((f(#)g).x) by VALUED_1:6
    .= 2*((f.x)*(g.x)) by VALUED_1:5
    .= 2*(f.x)*(g.x);
  end;
  A5: dom ((f+g) to_power 2) = dom (f+g) by MESFUN6C:def 4
  .= dom f /\ dom g by VALUED_1:def 1;
  A6:dom ((f-g) to_power 2) = dom (f-g) by MESFUN6C:def 4
  .= dom f /\ dom g by VALUED_1:12;
  A7: dom ((f to_power 2) + 2(#)(f(#)g))
  = dom f /\ dom (2(#)(f(#)g)) by A1,VALUED_1:def 1
  .= dom f /\ dom g by A3,XBOOLE_1:17,28;
  A8: dom ((f to_power 2) - 2(#)(f(#)g))
  = dom f /\ dom (2(#)(f(#)g)) by A1,VALUED_1:12
  .= dom f /\ dom g by A3,XBOOLE_1:17,28;
  A9: dom ((f to_power 2) + 2(#)(f(#)g) + (g to_power 2))
  = dom ((f to_power 2) + 2(#)(f(#)g)) /\ dom g by A2,VALUED_1:def 1
  .= (dom f) /\ dom ( 2(#)(f(#)g)) /\ dom g by A1,VALUED_1:def 1
  .= (dom f /\ dom g) /\ dom g by A3,XBOOLE_1:17,28
  .= dom f /\ dom g by XBOOLE_1:17,28;
  A10: dom ((f to_power 2) - 2(#)(f(#)g) + (g to_power 2))
  = dom ((f to_power 2) - 2(#)(f(#)g)) /\ dom g by A2,VALUED_1:def 1
  .= dom f /\ dom g by A8,XBOOLE_1:17,28;
  now let x be Element of X;
    assume A11:x in dom f /\ dom g; then
    A12:x in dom (f+g) by VALUED_1:def 1;
    A13:x in dom f by A11,XBOOLE_0:def 4;
    A14:x in dom g by A11,XBOOLE_0:def 4;
    A15: x in dom (f-g) by A11,VALUED_1:12;then
    A16:x in dom ((f-g) to_power 2) by MESFUN6C:def 4;
    A17: ((f+g) to_power 2).x = ((f+g).x) to_power 2 by A11,A5,MESFUN6C:def 4
    .= (f.x + g.x) to_power 2 by A12,VALUED_1:def 1
    .= (f.x + g.x) ^2 by POWER:46
    .= (f.x)^2 + 2*(f.x)*(g.x) + (g.x)^2
    .= (f.x) to_power 2 + 2*(f.x)*(g.x) + (g.x)^2 by POWER:46
    .= (f.x)to_power 2 + 2*(f.x)*(g.x) + (g.x) to_power 2 by POWER:46
    .= (f to_power 2).x + 2*(f.x)*(g.x) + (g.x) to_power 2 by A1,A13
    .= (f to_power 2).x + 2*(f.x)*(g.x) + (g to_power 2).x by A2,A14
    .= (f to_power 2).x + (2(#)(f(#)g)).x + (g to_power 2).x by A4,A11
    .= ((f to_power 2)+ (2(#)(f(#)g))).x + (g to_power 2).x
     by A7,A11,VALUED_1:def 1
    .= ((f to_power 2)+ (2(#)(f(#)g)) + (g to_power 2)).x
     by A9,A11,VALUED_1:def 1;
    ((f-g) to_power 2).x = ((f-g).x) to_power 2 by A16,MESFUN6C:def 4
    .= (f.x - g.x) to_power 2 by A15,VALUED_1:13
    .= (f.x - g.x) ^2 by POWER:46
    .= (f.x)^2 - 2*(f.x)*(g.x) + (g.x)^2
    .= (f.x) to_power 2 - 2*(f.x)*(g.x) + (g.x)^2 by POWER:46
    .= (f.x)to_power 2 - 2*(f.x)*(g.x) + (g.x) to_power 2 by POWER:46
    .= (f to_power 2).x - 2*(f.x)*(g.x) + (g.x) to_power 2 by A1,A13
    .= (f to_power 2).x - 2*(f.x)*(g.x) + (g to_power 2).x by A2,A14
    .= (f to_power 2).x - (2(#)(f(#)g)).x + (g to_power 2).x by A4,A11
    .= ((f to_power 2) - (2(#)(f(#)g))).x + (g to_power 2).x
    by A8,A11,VALUED_1:13
    .= ((f to_power 2) - (2(#)(f(#)g)) + (g to_power 2)).x
    by A10,A11,VALUED_1:def 1;
    hence ((f+g) to_power 2).x
    = ((f to_power 2) + (2(#)(f(#)g)) + (g to_power 2)).x&
    ((f-g) to_power 2).x
    =((f to_power 2) - (2(#)(f(#)g)) + (g to_power 2)).x by A17;
  end; then
  (for x be Element of X st x in dom ((f+g) to_power 2) holds
  ((f+g) to_power 2).x
  = ((f to_power 2) + (2(#)(f(#)g)) + (g to_power 2)).x) &
  (for x be Element of X st x in dom ((f-g) to_power 2) holds
  ((f-g) to_power 2).x
  =((f to_power 2) - (2(#)(f(#)g)) + (g to_power 2)).x) by A5,A6;
  hence thesis by A5,A9,A10,A6,PARTFUN1:5;
end;
