reserve i, x, I for set,
  A, M for ManySortedSet of I,
  f for Function,
  F for ManySortedFunction of I;
reserve P, R for MSSetOp of M,
  E, T for Element of bool M;
reserve S for 1-sorted;
reserve MS for many-sorted over S;

theorem
  for A being ManySortedSet of the carrier of S for J being
  MSClosureOperator of A holds ClSys->ClOp (ClOp->ClSys J) = J
proof
  let A be ManySortedSet of the carrier of S, J be MSClosureOperator of A;
  set I = the carrier of S, M = the Sorts of ClOp->ClSys J, j = ClSys->ClOp (
  ClOp->ClSys J);
A1: ex D being MSSubsetFamily of A st D = MSFixPoints J & ClOp->ClSys J =
  MSClosureStr (#A, D#) by Def13;
  for X being ManySortedSet of I st X in bool A holds j..X = J..X
  proof
    let X be ManySortedSet of I;
    assume X in bool A;
    then
A2: X is Element of bool M by A1,MSSUBFAM:11;
    then consider SF being non-empty MSSubsetFamily of M such that
A3: for Y being ManySortedSet of I holds Y in SF iff Y in MSFixPoints
    J & X c= Y by A1,Th31;
    now
      let i be object such that
A5:   i in I;
      reconsider f = J.i as Function of (bool A).i, (bool A).i by A5,
PBOOLE:def 15;
      (bool A).i = bool (A.i) by A5,MBOOLEAN:def 1;
      then reconsider f as Function of bool (A.i), bool (A.i);
      X.i is Element of (bool A).i by A1,A2,A5,PBOOLE:def 14;
      then
A6:   X.i is Element of bool (A.i) by A5,MBOOLEAN:def 1;
      then
A7:   X.i c= f.(X.i) by A5,Th24;
      reconsider Di = (MSFixPoints J).i as non empty set by A1,A5;
      consider Q being Subset-Family of (M.i) such that
A8:   Q = SF.i and
A9:   (meet SF).i = Intersect Q by A5,MSSUBFAM:def 1;
A10:  SF.i = { z where z is Element of Di : X.i c= z } by A1,A2,A3,A5,Th32;
      now
        let x;
        assume x in Q;
        then consider x1 being Element of Di such that
A11:    x1 = x & X.i c= x1 by A8,A10;
        MSFixPoints J c= bool A by PBOOLE:def 18;
        then Di c= (bool A).i by A5;
        then Di c= bool (A.i) by A5,MBOOLEAN:def 1;
        then
A12:    x1 is Element of bool (A.i);
        ex g being Function st g = J.i & x1 in dom g & g.x1 = x1 by A5,Def12;
        hence f.(X.i) c= x by A5,A6,A11,A12,Th25;
      end;
      then
A13:  f.(X.i) c= Intersect Q by A5,A8,MSSUBFAM:5;
A14:  dom f = bool (A.i) & f.(X.i) in bool (A.i) by A6,FUNCT_2:5,def 1;
      f.(f.(X.i)) = f.(X.i) by A5,A6,Th26;
      then f.(X.i) is Element of Di by A5,A14,Def12;
      then f.(X.i) in { z where z is Element of Di : X.i c= z } by A7;
      then Intersect Q c= f.(X.i) by A8,A10,MSSUBFAM:2;
      then Intersect Q = f.(X.i) by A13;
      hence (j..X).i = f.(X.i) by A1,A2,A3,A9,Def14
        .= (J..X).i by A5,PRALG_1:def 20;
    end;
    hence thesis;
  end;
  hence thesis by A1,Th7;
end;
