reserve x,y for object, X for set;

theorem Th2:
  for X be set,p,q,r be real-valued ManySortedSet of X st (support
p) /\ (support q) = {} & (support p) \/ (support q) =(support r) &
p|  (support p
  ) = r | (support p) & q| (support q) = r | (support q) holds p+q = r
proof
  let X be set, p,q,r be real-valued ManySortedSet of X;
  assume that
A1: (support p) /\ (support q) = {} and
A2: (support p) \/ (support q) =(support r) and
A3: p| (support p) = r | (support p) and
A4: q| (support q) = r | (support q);
  for x being object st x in X holds r.x=p.x+q.x
  proof
    let x being object;
    assume x in X;
    per cases;
    suppose
A5:   x in (support p) \/ (support q);
      now
        per cases by A5,XBOOLE_0:def 3;
        suppose
A6:       x in support p;
          then
A7:       not x in support q by A1,XBOOLE_0:def 4;
          thus r.x=r| (support p).x by A6,FUNCT_1:49
            .=p.x +0 by A3,A6,FUNCT_1:49
            .=p.x + q.x by A7,PRE_POLY:def 7;
        end;
        suppose
A8:       x in (support q);
          then
A9:       not x in support p by A1,XBOOLE_0:def 4;
          thus r.x=r| (support q).x by A8,FUNCT_1:49
            .=0 +q.x by A4,A8,FUNCT_1:49
            .=p.x + q.x by A9,PRE_POLY:def 7;
        end;
      end;
      hence thesis;
    end;
    suppose
A10:  not x in (support p) \/ (support q);
      then
A11:  not x in (support q) by XBOOLE_0:def 3;
A12:  not x in (support p) by A10,XBOOLE_0:def 3;
      thus r.x = 0 by A2,A10,PRE_POLY:def 7
        .= 0 + q.x by A11,PRE_POLY:def 7
        .=p.x+q.x by A12,PRE_POLY:def 7;
    end;
  end;
  hence r=p+q by PRE_POLY:33;
end;
