reserve x,y for object;
reserve S for non void non empty ManySortedSign,
  o for OperSymbol of S,
  U0,U1, U2 for MSAlgebra over S;
reserve U0 for non-empty MSAlgebra over S;

theorem Th32:
  for S be non void non empty ManySortedSign, U0 be non-empty
  MSAlgebra over S holds MSAlg_meet(U0) is associative
proof
  let S be non void non empty ManySortedSign, U0 be non-empty MSAlgebra over S;
  set o = MSAlg_meet(U0);
  for x,y,z be Element of MSSub(U0) holds o.(x,o.(y,z))=o.(o.(x,y),z)
  proof
    let x,y,z be Element of MSSub(U0);
    reconsider U1=x,U2=y,U3=z as strict MSSubAlgebra of U0 by Def19;
    reconsider u23 = U2 /\ U3,u12 =U1 /\ U2 as Element of MSSub(U0) by Def19;
A1: the Sorts of (U1/\U2)=(the Sorts of U1) (/\) (the Sorts of U2) & for B
be MSSubset of U0 st B=the Sorts of (U1/\(U2/\U3)) holds B is opers_closed &
    the Charact of (U1/\(U2/\U3)) = Opers(U0,B) by Def16;
A2: o.(o.(x,y),z) = o.(u12,z) by Def21
      .=(U1 /\ U2) /\ U3 by Def21;
    the Sorts of(U2 /\ U3) = (the Sorts of U2) (/\) (the Sorts of U3) by Def16;
    then
A3: the Sorts of (U1 /\ (U2 /\ U3)) =(the Sorts of U1) (/\) ((the Sorts of
    U2) (/\)(the Sorts of U3)) by Def16;
    then reconsider
    C = (the Sorts of U1) (/\) ((the Sorts of U2)(/\)(the Sorts of U3))
    as MSSubset of U0 by Def9;
A4: o.(x,o.(y,z)) =o.(x,u23) by Def21
      .= U1/\(U2 /\ U3) by Def21;
    C =((the Sorts of U1)(/\)(the Sorts of U2)) (/\) (the Sorts of U3)
     by PBOOLE:29;
    hence thesis by A4,A2,A3,A1,Def16;
  end;
  hence thesis by BINOP_1:def 3;
end;
