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

theorem MeetAssoc:
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"/\"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;

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

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

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

A22: 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 A18;
end;

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

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

A34: for v64,v65 holds ((v64"/\"v64)"\/"(v65"/\"v64))=(v64"/\"v64)
proof let v64,v65;
((v65"/\"v64)"/\"v64)=(v65"/\"v64) by A11;
hence thesis by A32;
end;

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

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

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

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

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

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

A89: 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;

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

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

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

A97: for v1,v2,v0 holds (v1"/\"(v0"\/"v2))=(v1"/\"(v2"\/"v0))
proof let v1,v2,v0;
((v1"/\"(v0"\/"v2))"/\"(v0"\/"v2))=(v1"/\"(v0"\/"v2)) by A11;
hence thesis by A95;
end;

A101: for v64,v65 holds ((v65"/\"v64)"\/"v65)=v65
proof let v64,v65;
(v64"/\"v65)=(v65"/\"v64) by A2,A3,MeetCom;
hence thesis by A57;
end;

A105: for v65,v64 holds (v64"\/"(v64"/\"v65))=v64
proof let v65,v64;
(v65"/\"v64)=(v64"/\"v65) by A2,A3,MeetCom;
hence thesis by A55;
end;

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

A115: for v1,v65 holds ((v65"/\"v1)"\/"(v1"/\"v65))=(v65"/\"v1)
proof let v1,v65;
((v65"/\"v1)"/\"v65)=(v1"/\"v65) by A86;
hence thesis by A105;
end;

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

A123: for v66,v1,v0 holds
((v0"/\"v1)"/\"v66)=(v66"/\"((v1"/\"v0)"\/"(v0"/\"v1)))
proof let v66,v1,v0;
((v0"/\"v1)"\/"(v1"/\"v0))=(v0"/\"v1) by A115;
hence thesis by A119;
end;

A125: for v66,v1,v0 holds ((v0"/\"v1)"/\"v66)=(v66"/\"(v1"/\"v0))
proof let v66,v1,v0;
((v1"/\"v0)"\/"(v0"/\"v1))=(v1"/\"v0) by A115;
hence thesis by A123;
end;

A130: for v66,v64,v0 holds
 (v64"/\"(v66"/\"(v0"\/"v64)))=(v64"/\"((v0"/\"v66)"\/"v66))
proof let v66,v64,v0;
((v0"/\"v66)"\/"(v64"/\"v66))=(v66"/\"(v0"\/"v64)) by A89;
hence thesis by A109;
end;

A132: for v66,v64,v0 holds (v64"/\"(v66"/\"(v0"\/"v64)))=(v64"/\"v66)
proof let v66,v64,v0;
((v0"/\"v66)"\/"v66)=v66 by A57;
hence thesis by A130;
end;

A136: for v65,v66,v64 holds (v64"/\"((v64"\/"v66)"/\"v65))=(v64"/\"v65)
proof let v65,v66,v64;
(v65"/\"(v66"\/"v64))=((v64"\/"v66)"/\"v65) by A119;
hence thesis by A132;
end;

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

A144: for v66,v1,v65 holds ((v65"/\"v1)"/\"(v65"/\"v66))=((v65"/\"v1)"/\"v66)
proof let v66,v1,v65;
((v65"/\"v1)"\/"v65)=v65 by A101;
hence thesis by A136;
end;

A148: for v1,v66,v64 holds ((v64"/\"v66)"/\"(v64"/\"v1))=((v64"/\"v1)"/\"v66)
proof let v1,v66,v64;
(v64"\/"(v64"/\"v1))=v64 by A105;
hence thesis by A140;
end;

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

AA: for v66,v65,v64 holds (v66"/\"(v64"/\"v65))=((v64"/\"v66)"/\"v65)
proof let v66,v65,v64;
((v64"/\"v65)"/\"v66)=(v66"/\"(v64"/\"v65)) by A2,A3,MeetCom;
hence thesis by A150;
end;
let v0,v1,v2;
(v0"/\"(v1"/\"v2))=((v1"/\"v0)"/\"v2) by AA
  .= (v0"/\"v1)"/\"v2 by A2,A3,MeetCom;
hence thesis;
end;
