reserve x,y for object, X for set;

theorem Th10:
  for X being set,b1,b2 being bag of X holds support min(b1,b2) =
  support b1 /\ support b2
proof
  let X be set;
  let b1,b2 be bag of X;
  set f = min(b1,b2);
A1: for x be object holds x in support min(b1,b2) implies x in support b1 & x
  in support b2
  proof
    let x be object;
    assume
A2: x in support min(b1,b2);
    assume
A3: not x in support b1 or not x in support b2;
    now
      per cases;
      case
A4:     b1.x<=b2.x;
A5:     not x in support b1
        proof
          assume
A6:       x in support b1;
          then
A7:       b1.x<>0 by PRE_POLY:def 7;
          b2.x=0 by A3,A6,PRE_POLY:def 7;
          hence contradiction by A4,A7;
        end;
        f.x = b1.x by A4,NAT_3:def 3
          .=0 by A5,PRE_POLY:def 7;
        hence contradiction by A2,PRE_POLY:def 7;
      end;
      case
A8:     b2.x<b1.x;
        then f.x = b2.x by NAT_3:def 3
          .=0 by A3,A8,PRE_POLY:def 7;
        hence contradiction by A2,PRE_POLY:def 7;
      end;
    end;
    hence thesis;
  end;
  for x be object holds x in support b1 & x in support b2 implies x in
  support min(b1,b2)
  proof
    let x be object;
    assume that
A9: x in support b1 and
A10: x in support b2;
A11: b2.x<>0 by A10,PRE_POLY:def 7;
A12: f.x = b1.x or f.x = b2.x by NAT_3:def 3;
    b1.x<>0 by A9,PRE_POLY:def 7;
    hence thesis by A11,A12,PRE_POLY:def 7;
  end;
  hence thesis by A1,XBOOLE_0:def 4;
end;
