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;
reserve BL for Boolean Lattice;
reserve f for Homomorphism of BL,CL;
reserve A for non empty Subset of BL;
reserve a1,a,b,c,p,q for Element of BL;
reserve B,B0,B1,B2,A1,A2 for Element of Fin the carrier of BL;

theorem
  f is onto implies CL is Boolean & f preserves_complement
proof
  assume
A1: f is onto;
  then
A2: f preserves_top by Th18;
  thus CL is bounded complemented;
  thus CL is distributive by A1,Th11;
  then reconsider CL as Boolean Lattice;
A3: f preserves_bottom by A1,Th12;
  reconsider f as Homomorphism of BL,CL;
  now
    let a1;
A4: f.(a1`)"/\"f.a1 = f.(a1` "/\" a1) by D2
      .=f.(Bottom BL) by LATTICES:20
      .= Bottom CL by A3;
A5: f.(a1`)"\/"f.a1 = f.a1"\/"f.(a1`) & f.(a1`)"/\"f.a1 = f.a1"/\"f.(a1`);
    f.(a1`)"\/"f.a1 =f.(a1` "\/" a1) by D1
      .=f.(Top BL) by LATTICES:21
      .= Top CL by A2;
    then f.(a1`) is_a_complement_of f.a1 by A4,A5;
    hence (f.a1)` = f.(a1`) by LATTICES:def 21;
  end;
  hence thesis;
end;
