reserve x,y,X,X1,Y,Z for set;
reserve L for Lattice;
reserve F,H for Filter of L;
reserve p,q,r for Element of L;
reserve L1, L2 for Lattice;
reserve a1,b1 for Element of L1;
reserve a2 for Element of L2;
reserve f for Homomorphism of L1,L2;
reserve B for Element of Fin the carrier of L;
reserve DL for distributive Lattice;
reserve f for Homomorphism of DL,L2;
reserve 0L for lower-bounded Lattice,
  B,B1,B2 for Element of Fin the carrier of 0L,
  b for Element of 0L;
reserve f for UnOp of the carrier of 0L;
reserve 1L for upper-bounded Lattice,
  B,B1,B2 for Element of Fin the carrier of 1L,
  b for Element of 1L;
reserve f,g for UnOp of the carrier of 1L;
reserve DL for distributive upper-bounded Lattice,
  B for Element of Fin the carrier of DL,
  p for Element of DL,
  f for UnOp of the carrier of DL;
reserve CL for C_Lattice;
reserve IL for implicative Lattice;
reserve f for Homomorphism of IL,CL;
reserve i,j,k for Element of IL;

theorem
  f is bijective implies CL is implicative & f preserves_implication
proof
  assume
A1: f is bijective;
  thus CL is implicative
  proof
    let p,q be Element of CL;
    consider i such that
A2: f.i=p by A1,Th6;
    consider j such that
A3: f.j=q by A1,Th6;
    take r = f.(i => j);
    thus p "/\" r [= q by A2,A3,Th26;
    hereby
      let r1 be Element of CL;
      assume
A4:   p "/\" r1 [= q;
      ex k st f.k = r1 by A1,Th6;
      hence r1 [= r by A1,A2,A3,A4,Th27;
    end;
  end;
  then reconsider CL as implicative Lattice;
  reconsider f as Homomorphism of IL,CL;
  now
    let i,j;
A5: now
      let r1 be Element of CL;
      assume
A6:   (f.i) "/\" r1 [= (f.j);
      ex k st f.k=r1 by A1,Th6;
      hence r1 [= f.(i => j) by A1,A6,Th27;
    end;
    (f.i) "/\" f.(i => j) [= (f.j) by Th26;
    hence (f.i) => (f.j) = f.(i => j) by A5,FILTER_0:def 7;
  end;
  hence thesis;
end;
