 reserve L for non empty LattStr;
 reserve v100,v102,v2,v1,v0,v3,v101 for Element of L;
 reserve L for WA_Lattice;
 reserve x,y,z,u for Element of L;
 reserve L for non empty LattStr;
 reserve v100,v101,v102,v0,v1,v2 for Element of L;

theorem WALDistri: :: WAL + Distributivity -> Associativity
(for v0 holds v0"/\"v0 = v0) &
(for v1,v0 holds v0"/\"v1 = v1"/\"v0) &
(for v0 holds v0"\/"v0 = v0) &
(for v1,v0 holds v0"\/"v1 = v1"\/"v0) &
(for v2,v1,v0 holds ((v0"\/"v1)"/\"(v2"\/"v1))"/\"v1 = v1) &
(for v2,v1,v0 holds ((v0"/\"v1)"\/"(v2"/\"v1))"\/"v1 = v1) &
(for v1,v0 holds v0"/\"(v0"\/"v1) = v0) &
(for v0,v2,v1 holds v0"\/"(v1"/\"v2) = (v0"\/"v1)"/\"(v0"\/"v2)) implies
  for v0,v1,v2 holds (v0"\/"v1)"\/"v2 = v0"\/"(v1"\/"v2)
proof
assume A1: for v0 holds v0"/\"v0 = v0;
assume A2: for v1,v0 holds v0"/\"v1 = v1"/\"v0;
assume A3: for v0 holds v0"\/"v0 = v0;
assume A4: for v1,v0 holds v0"\/"v1 = v1"\/"v0;
assume A5: for v2,v1,v0 holds ((v0"\/"v1)"/\"(v2"\/"v1))"/\"v1 = v1;

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

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

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

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

A22: for v100,v102 holds v100"/\"(v102"\/"v100) = v100
proof let v100,v102;
  (v102"\/"v100)"/\"(v102"\/"v100) = v102"\/"v100 by A1;
  hence thesis by A7;
end;

A26: for v100,v102 holds v100"\/"(v102"/\"v100) = v100
proof let v100,v102;
  (v102"/\"v100)"\/"(v102"/\"v100) = v102"/\"v100 by A3;
  hence thesis by A11;
end;

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

A36: for v1,v101 holds (v101"\/"v1)"\/"v101 = v101"\/"v1
proof let v1,v101;
  v101"/\"(v101"\/"v1) = v101 by A13;
  hence thesis by A26;
end;

A39: for v1,v0 holds v0"\/"(v0"\/"v1) = v0"\/"v1
proof let v1,v0;
  (v0"\/"v1)"\/"v0 = v0"\/"(v0"\/"v1) by A4;
  hence thesis by A36;
end;

A51: for v0,v2,v1 holds (v0"\/"v2)"\/"(v0"\/"(v1"/\"v2)) = v0"\/"v2
proof let v0,v2,v1;
  (v0"\/"v1)"/\"(v0"\/"v2) = v0"\/"(v1"/\"v2) by A15;
  hence thesis by A26;
end;

A55: for v102,v1,v100 holds
 (v100"\/"v1)"/\"(v100"\/"v102) = v100"\/"((v100"\/"v1)"/\"v102)
proof let v102,v1,v100;
  v100"\/"(v100"\/"v1) = v100"\/"v1 by A39;
  hence thesis by A15;
end;

A58: for v0,v2,v1 holds v0"\/"(v1"/\"v2) = v0"\/"((v0"\/"v1)"/\"v2)
proof let v0,v2,v1;
  (v0"\/"v1)"/\"(v0"\/"v2) = v0"\/"(v1"/\"v2) by A15;
  hence thesis by A55;
end;

A86: for v100,v1,v102 holds
 (v100"\/"(v102"\/"v1))"\/"(v100"\/"v102) = v100"\/"(v102"\/"v1)
proof let v100,v1,v102;
  v102"/\"(v102"\/"v1) = v102 by A13;
  hence thesis by A51;
end;

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

A92: for v1,v101,v100 holds
 v100"\/"((v100"\/"v101)"/\"(v101"\/"v1)) = v100"\/"v101
proof let v1,v101,v100;
  v101"/\"(v101"\/"v1) = v101 by A13;
  hence thesis by A58;
end;

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

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

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

A103: for v102,v1,v101 holds
 (v101"\/"v1)"\/"(v101"\/"v102) = (v101"\/"v1)"\/"v102
proof let v102,v1,v101;
  v101"/\"(v101"\/"v1) = v101 by A13;
  hence thesis by A99;
end;

A107: for v102,v101,v1 holds
 (v1"\/"v101)"\/"(v101"\/"v102) = (v1"\/"v101)"\/"v102
proof let v102,v101,v1;
  v101"/\"(v1"\/"v101) = v101 by A22;
  hence thesis by A99;
end;

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

for v2,v1,v0 holds (v0"\/"v1)"\/"v2 = v0"\/"(v1"\/"v2)
proof
  let v2,v1,v0;
  (v0"\/"v1)"\/"(v1"\/"v2) = (v0"\/"v1)"\/"v2 by A107;
  hence thesis by A110;
end;
hence thesis;
end;
