 reserve L for AD_Lattice;
 reserve x,y,z for Element of L;
 reserve L for GAD_Lattice;
 reserve x,y,z for Element of L;
reserve L for with_zero GAD_Lattice,
        x,y for Element of L;

theorem Thx1:
  for L being non empty LattStr, S being non empty ClosedSubset of L holds
  (L is meet-associative implies latt(L,S) is meet-associative) &
  (L is meet-absorbing implies latt(L,S) is meet-absorbing) &
  (L is meet-commutative implies latt(L,S) is meet-commutative) &
  (L is join-associative implies latt(L,S) is join-associative) &
  (L is join-absorbing implies latt(L,S) is join-absorbing) &
  (L is join-commutative implies latt(L,S) is join-commutative) &
  (L is Meet-Absorbing implies latt(L,S) is Meet-Absorbing) &
  (L is distributive implies latt(L,S) is distributive) &
  (L is left-Distributive implies latt(L,S) is left-Distributive)
  proof
    let L be non empty LattStr;
    let S be non empty ClosedSubset of L;
    thus L is meet-associative implies latt(L,S) is meet-associative
    proof
    assume
Z2:   L is meet-associative;
      let a,b,c be Element of latt(L,S);
      reconsider x=a,y=b,z=c as Element of L by Defx1,TARSKI:def 3;
      b "/\" c = y "/\" z & a "/\" b = x "/\" y  by Thx4;
      then a "/\" (b "/\" c) = x "/\" (y "/\" z) &
      (a "/\" b) "/\" c = (x "/\" y) "/\" z by Thx4;
      hence a "/\" (b "/\" c) = (a "/\" b) "/\" c by Z2;
    end;
    thus L is meet-absorbing implies latt(L,S) is meet-absorbing
    proof
      assume
Z3:   L is meet-absorbing;
      let a,b be Element of latt(L,S);
      reconsider x=a,y=b as Element of L by Defx1,TARSKI:def 3;
      a "/\" b = x "/\" y  by Thx4;
      then (a "/\" b) "\/" b = (x "/\" y) "\/" y by Thx3;
      hence (a "/\" b) "\/" b = b by Z3;
    end;
    thus L is meet-commutative implies latt(L,S) is meet-commutative
    proof
      assume
Z3:   L is meet-commutative;
      let a,b be Element of latt(L,S);
      reconsider x=a,y=b as Element of L by Defx1,TARSKI:def 3;
      a "/\" b = x "/\" y & b "/\" a = y "/\" x  by Thx4;
      hence a "/\" b = b "/\" a by Z3;
    end;
    thus L is join-associative implies latt(L,S) is join-associative
    proof
      assume
Z3:   L is join-associative;
      let a,b,c be Element of latt(L,S);
      reconsider x=a,y=b,z=c as Element of L by Defx1,TARSKI:def 3;
      b "\/" c = y "\/" z & a "\/" b = x "\/" y  by Thx3;
      then a "\/" (b "\/" c) = x "\/" (y "\/" z) &
      (a "\/" b) "\/" c = (x "\/" y) "\/" z by Thx3;
      hence a "\/" (b "\/" c) = (a "\/" b) "\/" c by Z3;
    end;
    thus L is join-absorbing implies latt(L,S) is join-absorbing
    proof
      assume
Z3:   L is join-absorbing;
      let a,b be Element of latt(L,S);
      reconsider x=a,y=b as Element of L by Defx1,TARSKI:def 3;
      a "\/" b = x "\/" y  by Thx3;
      then a "/\" (a "\/" b) = x "/\" (x "\/" y) by Thx4;
      hence a "/\" (a "\/" b) = a by Z3;
    end;
    thus L is join-commutative implies latt(L,S) is join-commutative
    proof
      assume
Z3:   L is join-commutative;
      let a,b be Element of latt(L,S);
      reconsider x=a,y=b as Element of L by Defx1,TARSKI:def 3;
      a "\/" b = x "\/" y & b "\/" a = y "\/" x  by Thx3;
      hence a "\/" b = b "\/" a by Z3;
    end;
    thus L is Meet-Absorbing implies latt(L,S) is Meet-Absorbing
    proof
      assume
Z3:   L is Meet-Absorbing;
      let a,b be Element of latt(L,S);
      reconsider x=a,y=b as Element of L by Defx1,TARSKI:def 3;
      a "\/" b = x "\/" y  by Thx3;
      then (a "\/" b) "/\" a  = (x "\/" y) "/\" x by Thx4;
      hence (a "\/" b) "/\" a = a by Z3;
    end;
    thus L is distributive implies latt(L,S) is distributive
    proof
      assume
Z3:   L is distributive;
      let a,b,c be Element of latt(L,S);
      reconsider x=a,y=b,z=c as Element of L by Defx1,TARSKI:def 3;
      b "\/" c = y "\/" z & a "/\" b = x "/\" y & a "/\" c = x "/\" z
      by Thx3,Thx4;
      then a "/\" (b "\/" c) = x "/\" (y "\/" z) &
      (a "/\" b) "\/" (a "/\" c) = (x "/\" y) "\/" (x "/\" z) by Thx3,Thx4;
      hence a "/\" (b "\/" c) = (a "/\" b) "\/" (a "/\" c) by Z3;
    end;
    thus L is left-Distributive implies latt(L,S) is left-Distributive
    proof
      assume
Z3:   L is left-Distributive;
      let a,b,c be Element of latt(L,S);
      reconsider x=a,y=b,z=c as Element of L by Defx1,TARSKI:def 3;
      b "/\" c = y "/\" z & a "\/" b = x "\/" y & a "\/" c = x "\/" z
      by Thx3,Thx4;
      then a "\/" (b "/\" c) = x "\/" (y "/\" z) &
      (a "\/" b) "/\" (a "\/" c) = (x "\/" y) "/\" (x "\/" z) by Thx3,Thx4;
      hence a "\/" (b "/\" c) = (a "\/" b) "/\" (a "\/" c) by Z3;
    end;
  end;
