reserve i, x, I for set,
  A, B, M for ManySortedSet of I,
  f, f1 for Function;
reserve SF, SG for SubsetFamily of M;
reserve E, T for Element of Bool M;

theorem
  |: Bool M :| = bool M
proof
  now
    let i be object;
    assume
A1: i in I;
    then
A2: |:Bool M:|.i = { x.i where x is Element of Bool M : x in Bool M} by Th14;
    thus |: Bool M :|.i = (bool M).i
    proof
      thus |: Bool M :|.i c= (bool M).i
        by A1,PBOOLE:def 2,def 18;
      let a be object such that
A3:   a in (bool M).i;
      dom (EmptyMS I +* (i .--> a)) = I by A1,PZFMISC1:1;
      then reconsider X = EmptyMS I +* (i .--> a) as ManySortedSet of I by
PARTFUN1:def 2,RELAT_1:def 18;
A4:   dom (i .--> a) = {i};
      i in {i} by TARSKI:def 1;
      then
A5:   X.i = (i .--> a).i by A4,FUNCT_4:13
        .= a by FUNCOP_1:72;
      X is ManySortedSubset of M
      proof
        let s be object such that
A6:     s in I;
        per cases;
        suppose
A7:       s = i;
          then a in bool (M.s) by A3,A6,MBOOLEAN:def 1;
          hence thesis by A5,A7;
        end;
        suppose
          s <> i;
          then not s in dom (i .--> a) by TARSKI:def 1;
          then X.s = EmptyMS I.s by FUNCT_4:11
            .= {};
          hence thesis;
        end;
      end;
      then X is Element of Bool M by Def1;
      hence thesis by A2,A5;
    end;
  end;
  hence thesis;
end;
