reserve X for set,
  x,y,z for Element of BooleLatt X,
  s for set;
reserve y for Element of BooleLatt X;
reserve L for Lattice,
  p,q for Element of L;
reserve A for RelStr,
  a,b,c for Element of A;
reserve A for non empty RelStr,
  a,b,c,c9 for Element of A;
reserve V for with_suprema antisymmetric RelStr,
  u1,u2,u3,u4 for Element of V;
reserve N for with_infima antisymmetric RelStr,
  n1,n2,n3,n4 for Element of N;
reserve K for with_suprema with_infima reflexive antisymmetric RelStr,
  k1,k2,k3 for Element of K;

theorem Th19:
  for A being with_suprema with_infima Poset
  ex L being strict Lattice st the RelStr of A = LattPOSet L
proof
  let A be with_suprema with_infima Poset;
  defpred X[Element of A,Element of A,set] means
  for x9,y9 being Element of A st x9 = $1 & y9 = $2 holds $3 = x9"\/"y9;
A1: for x,y being Element of A ex u being Element of A st X[x,y,u]
  proof
    let x,y be Element of A;
    reconsider x9 = x, y9 = y as Element of A;
    take x9"\/"y9;
    thus thesis;
  end;
  consider j being BinOp of the carrier of A such that
A2: for x,y being Element of A holds X[x,y,j.(x,y)] from BINOP_1:sch 3(A1);
  defpred X[Element of A,Element of A,set] means
  for x9,y9 being Element of A st x9 = $1 & y9 = $2 holds $3 = x9"/\"y9;
A3: for x,y being Element of A ex u being Element of A st X[x,y,u]
  proof
    let x,y be Element of A;
    reconsider x9 = x, y9 = y as Element of A;
    take x9"/\"y9;
    thus thesis;
  end;
  consider m being BinOp of the carrier of A such that
A4: for x,y being Element of A holds X[x,y,m.(x,y)] from BINOP_1:sch 3(A3);
  set L = LattStr(#the carrier of A, j, m#);
A5: now
    let a,b be Element of L;
    reconsider x = a, y = b as Element of A;
    j.(x,y) = x "\/"y by A2;
    hence a"\/"b = b"\/"a by A2;
  end;
A6: now
    let a,b,c be Element of L;
    reconsider x = a, y = b, z = c as Element of A;
    thus a"\/"(b"\/"c) = j.(x,y"\/"z) by A2
      .= x"\/"(y"\/"z) by A2
      .= x"\/"y"\/"z by Th14
      .= j.(x"\/"y,z) by A2
      .= (a"\/"b)"\/"c by A2;
  end;
A7: now
    let a,b be Element of L;
    reconsider x = a, y = b as Element of A;
    thus (a"/\"b)"\/"b = j.(x"/\"y,y) by A4
      .= (x"/\"y)"\/"y by A2
      .= b by Th17;
  end;
A8: now
    let a,b be Element of L;
    reconsider x = a, y = b as Element of A;
    m.(x,y) = x "/\"y by A4;
    hence a"/\"b = b"/\"a by A4;
  end;
A9: now
    let a,b,c be Element of L;
    reconsider x = a, y = b, z = c as Element of A;
    thus a"/\"(b"/\"c) = m.(x,y"/\"z) by A4
      .= x"/\"(y"/\"z) by A4
      .= x"/\"y"/\"z by Th16
      .= m.(x"/\"y,z) by A4
      .= (a"/\"b)"/\"c by A4;
  end;
  now
    let a,b be Element of L;
    reconsider x = a, y = b as Element of A;
    thus a"/\"(a"\/"b) = m.(x,x"\/"y) by A2
      .= x"/\"(x"\/"y) by A4
      .= a by Th18;
  end;
  then L is join-commutative join-associative meet-absorbing
  meet-commutative meet-associative join-absorbing
  by A5,A6,A7,A8,A9;
  then reconsider L as strict Lattice;
  take L;
A10: LattRel L = {[p,q] where p is Element of L, q is Element of L: p [= q}
  by FILTER_1:def 8;
  LattRel L = the InternalRel of A
  proof
    let x,y be object;
    thus [x,y] in LattRel L implies [x,y] in the InternalRel of A
    proof
      assume [x,y] in LattRel L;
      then consider p,q being Element of L such that
A11:  [x,y] = [p,q] and
A12:  p [= q by A10;
      reconsider p9 = p, q9 = q as Element of A;
      p9"\/"q9 = p"\/"q by A2
        .= q by A12;
      then p9 <= q9 by Lm1;
      hence thesis by A11;
    end;
    assume
A13: [x,y] in the InternalRel of A;
    then consider x1,x2 being object such that
A14: x1 in the carrier of A and
A15: x2 in the carrier of A and
A16: [x,y] = [x1,x2] by ZFMISC_1:84;
    reconsider x1, x2 as Element of A by A14,A15;
    reconsider y1 = x1, y2 = x2 as Element of L;
A17: x1 <= x2 by A13,A16;
    x2 <= x2;
    then
A18: x1"\/"x2 <= x2 by A17,Lm1;
    x2 <= x1"\/"x2 by Lm1;
    then x2 = x1"\/"x2 by A18,ORDERS_2:2
      .= y1"\/"y2 by A2;
    then y1 [= y2;
    hence thesis by A10,A16;
  end;
  hence thesis;
end;
