 reserve L for non empty LattStr;
 reserve v64,v65,v66,v67,v103,v3,v102,v101,v100,v2,v1,v0 for Element of L;

theorem
L is join-absorbing &
(for v0,v2,v1 holds (v0"/\"(v1"\/"v2))=((v2"/\"v0)"\/"(v1"/\"v0))) implies
for v0,v1,v2 holds (v0"\/"(v1"/\"v2))=((v0"\/"v1)"/\"(v0"\/"v2))

proof
assume A2: L is join-absorbing;

assume A3: for v0,v2,v1 holds (v0"/\"(v1"\/"v2))=((v2"/\"v0)"\/"(v1"/\"v0));

A7: for v65,v66 holds v65=((v66"/\"v65)"\/"(v65"/\"v65))
proof let v65,v66;
(v65"/\"(v65"\/"v66))=v65 by A2;
hence thesis by A3;
end;

A12: for v1,v64,v2 holds
 (((v2"/\"v64)"\/"(v1"/\"v64))"\/"((v1"\/"v2)"/\"(v1"\/"v2)))=(v1"\/"v2)
proof let v1,v64,v2;
(v64"/\"(v1"\/"v2))=((v2"/\"v64)"\/"(v1"/\"v64)) by A3;
hence thesis by A7;
end;

A15: for v1,v0 holds ((v0"/\"v1)"/\"v1)=(v0"/\"v1)
proof let v1,v0;
((v0"/\"v1)"/\"v1)=v0"/\"(v1"/\"v1) by A2,A3,MeetAssoc
  .= v0"/\"v1 by A2,A3,Lemma1;
hence thesis;
end;

A22: for v65,v64,v0 holds
 ((v0"/\"v64)"\/"(v65"/\"v64))=(v64"/\"(v65"\/"(v0"/\"v64)))
proof let v65,v64,v0;
((v0"/\"v64)"/\"v64)=(v0"/\"v64) by A15;
hence thesis by A3;
end;

A26: for v66,v1,v65 holds
 ((v66"/\"(v65"\/"v1))"\/"v65)=((v65"\/"v1)"/\"(v65"\/"v66))
proof let v66,v1,v65;
(v65"/\"(v65"\/"v1))=v65 by A2;
hence thesis by A3;
end;

A29: for v0,v2,v1 holds ((v2"/\"v0)"/\"(v0"/\"(v1"\/"v2)))=(v2"/\"v0)
proof let v0,v2,v1;
  ((v2"/\"v0)"\/"(v1"/\"v0))=(v0"/\"(v1"\/"v2)) by A3;
  hence thesis by A2;
end;

A39: for v65,v64,v66 holds (v65"/\"(v66"\/"v64))=(v65"/\"(v66"\/"(v64"/\"v65)))
proof let v65,v64,v66;
((v64"/\"v65)"\/"(v66"/\"v65))=(v65"/\"(v66"\/"v64)) by A3;
hence thesis by A22;
end;

A44: for v0,v65,v64 holds
 (((v64"/\"v65)"\/"(v0"/\"v65))"\/"(((v0"/\"v65)"\/"v64)"/\"
 ((v0"/\"v65)"\/"v64)))=(v0"/\"v65)"\/"v64
proof let v0,v65,v64;
((v0"/\"v65)"/\"v65)=(v0"/\"v65) by A15;
hence thesis by A12;
end;

A53: for v66,v1,v65,v2 holds
 ((v66"/\"(v1"\/"(v2"/\"v65)))"\/"(v65"/\"(v1"\/"v2)))=
 ((v1"\/"(v2"/\"v65))"/\"(v65"\/"v66))
proof let v66,v1,v65,v2;
  (v65"/\"(v1"\/"(v2"/\"v65)))=(v65"/\"(v1"\/"v2)) by A39;
  hence thesis by A3;
end;

A89: for v2,v1,v0 holds
 (((v0"/\"v1)"\/"(v2"/\"v1))"\/"((v2"/\"v1)"\/"v0))=((v2"/\"v1)"\/"v0)
proof let v2,v1,v0;
(((v2"/\"v1)"\/"v0)"/\"((v2"/\"v1)"\/"v0))=((v2"/\"v1)"\/"v0) by A2,A3,Lemma1;
hence thesis by A44;
end;

A94: for v0,v1 holds (v0"\/"(v1"\/"v0))=(v1"\/"v0)
proof let v0,v1;
(v0"\/"(v1"\/"v0))=(v0"\/"(v0"\/"v1)) by JoinCom,A2,A3
.= v0"\/"v0"\/"v1 by JoinAssoc,A2,A3
.= v0"\/"v1 by JoinIdem,A2,A3
.= v1"\/"v0 by JoinCom,A2,A3;
hence thesis;
end;

A121: for v64,v65 holds (v64"/\"(v65"/\"v64))=(v65"/\"v64)
proof let v64,v65;
(v64"/\"(v65"/\"v64))=v64"/\"(v64"/\"v65) by MeetCom,A2,A3
   .= v64"/\"v64"/\"v65 by MeetAssoc,A2,A3
   .= v64"/\"v65 by A2,A3,Lemma1;
hence thesis by A2,A3,MeetCom;
end;

A137: for v0,v2,v1 holds (v0"/\"(v1"\/"v2))=((v1"/\"v0)"\/"(v2"/\"v0))
proof let v0,v2,v1;
((v2"/\"v0)"\/"(v1"/\"v0))=(v0"/\"(v1"\/"v2)) by A3;
hence thesis by A2,A3,JoinCom;
end;

A140: for v1,v2,v0 holds
 ((v1"/\"(v0"\/"v2))"\/"((v2"/\"v1)"\/"v0))=((v2"/\"v1)"\/"v0)
proof let v1,v2,v0;
((v0"/\"v1)"\/"(v2"/\"v1))=(v1"/\"(v0"\/"v2)) by A137;
hence thesis by A89;
end;

A150: for v1,v65 holds (v65"/\"(v65"/\"v1))=(v65"/\"v1)
proof let v1,v65;
(v65"/\"(v65"/\"v1))=v65"/\"v65"/\"v1 by A2,A3,MeetAssoc
.=(v65"/\"v1) by A2,A3,Lemma1;
hence thesis;
end;

A154: for v64,v2,v65 holds
 ((v64"/\"(v65"\/"v2))"\/"v65)=((v65"\/"(v2"/\"v64))"/\"(v65"\/"v64))
proof let v64,v2,v65;
(v64"/\"(v65"\/"(v2"/\"v64)))=(v64"/\"(v65"\/"v2)) by A39;
hence thesis by A26;
end;

A156: for v64,v2,v65 holds
 ((v65"\/"v2)"/\"(v65"\/"v64))=((v65"\/"(v2"/\"v64))"/\"(v65"\/"v64))
proof let v64,v2,v65;
((v64"/\"(v65"\/"v2))"\/"v65)=((v65"\/"v2)"/\"(v65"\/"v64)) by A26;
hence thesis by A154;
end;

A161: for v66,v64,v1 holds
 ((v1"/\"v64)"/\"((v1"/\"v64)"/\"(v66"\/"v64)))=(v64"/\"(v1"/\"v64))
proof let v66,v64,v1;
(v64"/\"(v1"/\"v64))=(v1"/\"v64) by A121;
hence thesis by A29;
end;

A163: for v66,v64,v1 holds ((v1"/\"v64)"/\"(v66"\/"v64))=(v64"/\"(v1"/\"v64))
proof let v66,v64,v1;
((v1"/\"v64)"/\"((v1"/\"v64)"/\"(v66"\/"v64)))=
((v1"/\"v64)"/\"(v66"\/"v64)) by A150;
hence thesis by A161;
end;

A165: for v66,v64,v1 holds ((v1"/\"v64)"/\"(v66"\/"v64))=(v1"/\"v64)
proof let v66,v64,v1;
(v64"/\"(v1"/\"v64))=(v1"/\"v64) by A121;
hence thesis by A163;
end;

A169: for v65,v66,v0 holds
 ((v0"/\"v66)"\/"v65)=((v65"\/"v66)"/\"(v65"\/"(v0"/\"v66)))
proof let v65,v66,v0;
((v0"/\"v66)"/\"(v65"\/"v66))=(v0"/\"v66) by A165;
hence thesis by A26;
end;

A173: for v64,v65,v67,v66 holds
 ((v67"/\"(v65"\/"v66))"\/"(v64"/\"(v65"\/"(v66"/\"v67))))=
 ((v65"\/"(v66"/\"v67))"/\"(v67"\/"v64))
proof let v64,v65,v67,v66;
((v64"/\"(v65"\/"(v66"/\"v67)))"\/"(v67"/\"(v65"\/"v66)))=
((v67"/\"(v65"\/"v66))"\/"
(v64"/\"(v65"\/"(v66"/\"v67)))) by A2,A3,JoinCom;
hence thesis by A53;
end;

A177: for v64,v66,v65 holds
 ((v64"/\"(v65"\/"v66))"\/"((v65"\/"v64)"/\"(v65"\/"(v66"/\"v64))))=
 ((v66"/\"v64)"\/"v65)
proof let v64,v66,v65;
((v66"/\"v64)"\/"v65)=((v65"\/"v64)"/\"(v65"\/"(v66"/\"v64))) by A169;
hence thesis by A140;
end;

A179: for v65,v64,v66 holds
 ((v65"\/"(v66"/\"v64))"/\"(v64"\/"(v65"\/"v64)))=((v66"/\"v64)"\/"v65)
proof let v65,v64,v66;
((v64"/\"(v65"\/"v66))"\/"((v65"\/"v64)"/\"(v65"\/"(v66"/\"v64))))=((v65"\/"
(v66"/\"v64))"/\"(v64"\/"(v65"\/"v64))) by A173;
hence thesis by A177;
end;

A181: for v65,v64,v66 holds
 ((v65"\/"(v66"/\"v64))"/\"(v65"\/"v64))=((v66"/\"v64)"\/"v65)
proof let v65,v64,v66;
(v64"\/"(v65"\/"v64))=(v65"\/"v64) by A94;
hence thesis by A179;
end;

A183: for v64,v66,v65 holds
((v65"\/"v66)"/\"(v65"\/"v64))=((v66"/\"v64)"\/"v65)
proof let v64,v66,v65;
((v65"\/"(v66"/\"v64))"/\"(v65"\/"v64))=((v65"\/"v66)"/\"(v65"\/"v64)) by A156;
hence thesis by A181;
end;

let v0,v1,v2;
v0"\/"(v1"/\"v2) = ((v1"/\"v2)"\/"v0) by A2,A3,JoinCom
  .=((v0"\/"v1)"/\"(v0"\/"v2)) by A183;
hence thesis;
end;
