reserve i,j,k,n,m for Nat,
        X for set,
        b,s for bag of X,
        x for object;

theorem Th21:
  for X be set
    for b be bag of X holds support(2(#)b +* (0,b.0)) = support b
proof
  let X be set;
  let b be bag of X;
A1:dom b = X = dom (2(#)b) & X = dom (2(#)b +* (0,b.0)) by PARTFUN1:def 2;
A2:support(2(#)b +* (0,b.0)) c= support b
  proof
    let x be object;
    assume
A3: x in support(2(#)b +* (0,b.0));
    then
A4: (2(#)b +* (0,b.0)).x <>0 by PRE_POLY:def 7;
    per cases;
    suppose x =0;
      then (2(#)b +* (0,b.0)).x = b.x by A3,A1,FUNCT_7:31;
      hence thesis by A4,PRE_POLY:def 7;
    end;
    suppose x <>0;
      then (2(#)b +* (0,b.0)).x = (2(#)b).x by FUNCT_7:32
      .= 2*(b.x) by VALUED_1:6;
      then b.x<>0 by A3,PRE_POLY:def 7;
      hence thesis by PRE_POLY:def 7;
    end;
  end;
  support b c= support(2(#)b +* (0,b.0))
  proof
    let x be object;
    assume
A5: x in support b;
    then
A6: b.x <>0 by PRE_POLY:def 7;
    per cases;
    suppose x =0;
      then (2(#)b +* (0,b.0)).x = b.x by A5,A1,FUNCT_7:31;
      hence thesis by A6,PRE_POLY:def 7;
    end;
    suppose x <>0;
      then (2(#)b +* (0,b.0)).x = (2(#)b).x by FUNCT_7:32
      .= 2*(b.x) by VALUED_1:6;
      then (2(#)b +* (0,b.0)).x<>0 by A5,PRE_POLY:def 7;
      hence thesis by PRE_POLY:def 7;
    end;
  end;
  hence thesis by A2,XBOOLE_0:def 10;
end;
