reserve L,L1,L2 for Lattice,
  F1,F2 for Filter of L,
  p,q,r,s for Element of L,
  p1,q1,r1,s1 for Element of L1,
  p2,q2,r2,s2 for Element of L2,
  X,x,x1,x2,y,y1,y2 for set,
  D,D1,D2 for non empty set,
  R for Relation,
  RD for Equivalence_Relation of D,
  a,b,d for Element of D,
  a1,b1,c1 for Element of D1,
  a2,b2,c2 for Element of D2,
  B for B_Lattice,
  FB for Filter of B,
  I for I_Lattice,
  FI for Filter of I ,
  i,i1,i2,j,j1,j2,k for Element of I,
  f1,g1 for BinOp of D1,
  f2,g2 for BinOp of D2;
reserve F,G for BinOp of D,RD;

theorem
  for L1,L2 being non empty LattStr st [:L1,L2:] is Lattice holds L1 is
  Lattice & L2 is Lattice
proof
  let L1,L2 be non empty LattStr such that
A1: [:L1,L2:] is Lattice;
A2: join(L1) is associative by A1,Th23;
A3: meet(L2) is associative by A1,Th23;
A4: meet(L2) is commutative by A1,Th22;
  reconsider LL = LattStr (#[:the carrier of L1, the carrier of L2:], |:join(
    L1), join(L2):|, |:meet(L1),meet(L2):|#) as non empty LattStr;
A5: join(LL) absorbs meet(LL) by A1,LATTICE2:26;
  then
A6: join(L1) absorbs meet(L1) by Th30;
A7: join(L2) is associative by A1,Th23;
A8: join(L2) is commutative by A1,Th22;
A9: meet(L1) is associative by A1,Th23;
A10: meet(L1) is commutative by A1,Th22;
A11: meet(LL) absorbs join(LL) by A1,LATTICE2:27;
  then
A12: meet(L1) absorbs join(L1) by Th30;
A13: meet(L2) absorbs join(L2) by A11,Th30;
A14: join(L2) absorbs meet(L2) by A5,Th30;
  join(L1) is commutative by A1,Th22;
  hence thesis by A2,A10,A9,A6,A12,A8,A7,A4,A3,A14,A13,LATTICE2:11;
end;
