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
  [:L1,L2:], [:L2,L1:] are_isomorphic
proof
  set R = LattRel [:L1,L2:];
  set S = LattRel [:L2,L1:];
  set D1 = the carrier of L1;
  set D2 = the carrier of L2;
  set p2 = pr2(D1,D2);
  set p1 = pr1(D1,D2);
  take f = <:p2, p1:>;
A1: dom p2 = [:D1,D2:] by FUNCT_3:def 5;
A2: field R = the carrier of [:L1,L2:] by Th32;
A3: rng p2 = D2 by FUNCT_3:46;
A4: field S = the carrier of [:L2,L1:] by Th32;
  dom p1 = [:D1,D2:] by FUNCT_3:def 4;
  then dom p2 /\ dom p1 = [:D1,D2:] by A1;
  hence
A5: dom f = field R by A2,FUNCT_3:def 7;
  rng p1 = D1 by FUNCT_3:44;
  hence rng f c= field S by A4,A3,FUNCT_3:51;
  thus field S c= rng f
  proof
    let x be object;
    assume x in field S;
    then consider r2,r1 such that
A6: x = [r2,r1] by A4,DOMAIN_1:1;
A7: p2.(r1,r2) = r2 by FUNCT_3:def 5;
A8: p1.(r1,r2) = r1 by FUNCT_3:def 4;
    f.[r1,r2] in rng f by A2,A5,FUNCT_1:def 3;
    hence thesis by A2,A5,A6,A7,A8,FUNCT_3:def 7;
  end;
  thus f is one-to-one
  proof
    let x,y be object;
    assume
A9: x in dom f;
    then
A10: f.x = [p2.x,p1.x] by FUNCT_3:def 7;
    consider r1,r2 such that
A11: x = [r1,r2] by A2,A5,A9,DOMAIN_1:1;
A12: p2.(r1,r2) = r2 by FUNCT_3:def 5;
A13: p1.(r1,r2) = r1 by FUNCT_3:def 4;
    assume that
A14: y in dom f and
A15: f.x = f.y;
A16: f.y = [p2.y,p1.y] by A14,FUNCT_3:def 7;
    consider q1,q2 such that
A17: y = [q1,q2] by A2,A5,A14,DOMAIN_1:1;
A18: p2.(q1,q2) = q2 by FUNCT_3:def 5;
    p1.(q1,q2) = q1 by FUNCT_3:def 4;
    then r1 = q1 by A11,A15,A17,A13,A10,A16,XTUPLE_0:1;
    hence thesis by A11,A15,A17,A12,A18,A10,A16,XTUPLE_0:1;
  end;
  let x,y be object;
  thus [x,y] in R implies x in field R & y in field R & [f.x,f.y] in S
  proof
    assume [x,y] in R;
    then consider a,b being Element of [:L1,L2:] such that
A19: [x,y] = [a,b] and
A20: a [= b;
    consider q1,q2 such that
A21: b = [q1,q2] by DOMAIN_1:1;
A22: f.(q1,q2) = [p2.(q1,q2),p1.(q1,q2)] by A2,A5,A21,FUNCT_3:def 7;
A23: p2.(q1,q2) = q2 by FUNCT_3:def 5;
    consider r1,r2 such that
A24: a = [r1,r2] by DOMAIN_1:1;
A25: r2 [= q2 by A20,A24,A21,Th36;
    r1 [= q1 by A20,A24,A21,Th36;
    then
A26: [r2,r1] [= [q2,q1] by A25,Th36;
A27: p1.(r1,r2) = r1 by FUNCT_3:def 4;
A28: p2.(r1,r2) = r2 by FUNCT_3:def 5;
A29: y = b by A19,XTUPLE_0:1;
A30: x = a by A19,XTUPLE_0:1;
    hence x in field R & y in field R by A2,A29;
A31: p1.(q1,q2) = q1 by FUNCT_3:def 4;
    f.(r1,r2) = [p2.(r1,r2),p1.(r1,r2)] by A2,A5,A24,FUNCT_3:def 7;
    hence thesis by A24,A21,A30,A29,A26,A27,A28,A31,A23,A22;
  end;
  assume that
A32: x in field R and
A33: y in field R;
  consider q1,q2 such that
A34: y = [q1,q2] by A2,A33,DOMAIN_1:1;
A35: f.(q1,q2) = [p2.(q1,q2),p1.(q1,q2)] by A2,A5,A34,FUNCT_3:def 7;
  assume
A36: [f.x,f.y] in S;
A37: p2.(q1,q2) = q2 by FUNCT_3:def 5;
A38: p1.(q1,q2) = q1 by FUNCT_3:def 4;
  consider r1,r2 such that
A39: x = [r1,r2] by A2,A32,DOMAIN_1:1;
A40: p2.(r1,r2) = r2 by FUNCT_3:def 5;
A41: p1.(r1,r2) = r1 by FUNCT_3:def 4;
  f.(r1,r2) = [p2.(r1,r2),p1.(r1,r2)] by A2,A5,A39,FUNCT_3:def 7;
  then
A42: [r2,r1] [= [q2,q1] by A39,A34,A36,A41,A40,A35,A38,A37,Th31;
  then
A43: r1 [= q1 by Th36;
  r2 [= q2 by A42,Th36;
  then [r1,r2] [= [q1,q2] by A43,Th36;
  hence thesis by A39,A34;
end;
