reserve A, B for non empty preBoolean set,
  x, y for Element of [:A,B:];
reserve X for set,
  a,b,c for Element of [:A,B:];
reserve a for Element of [:Fin X, Fin X:];
reserve A for set;
reserve x,y for Element of [:Fin X, Fin X:],
  a,b for Element of DISJOINT_PAIRS X;
reserve A for set,
  x for Element of [:Fin A, Fin A:],
  a,b,c,d,s,t for Element of DISJOINT_PAIRS A,
  B,C,D for Element of Fin DISJOINT_PAIRS A;
reserve K,L,M for Element of Normal_forms_on A;

theorem Th50:
  mi(mi B ^ C) = mi (B ^ C)
proof
A1: mi B ^ C c= B ^ C by Th40,Th46;
  now
    let a;
    assume
A2: a in mi(mi B ^ C);
A3: now
      let b;
      assume b in B ^ C;
      then consider c such that
A4:   c c= b and
A5:   c in mi B ^ C by Lm6;
      assume
A6:   b c= a;
      then c c= a by A4,Th2;
      then c = a by A2,A5,Th36;
      hence b = a by A4,A6,Th1;
    end;
    a in mi B ^ C by A2,Th36;
    hence a in mi(B ^ C) by A1,A3,Th39;
  end;
  hence mi(mi B ^ C) c= mi(B ^ C) by Lm5;
A7: mi(B ^ C) c= mi B ^ C by Th47;
  now
    let a;
    assume
A8: a in mi(B ^ C);
    then for b st b in mi B ^ C holds b c= a implies b = a by A1,Th36;
    hence a in mi(mi B ^ C) by A7,A8,Th39;
  end;
  hence thesis by Lm5;
end;
