
theorem ESS:
  for a,b be square Nat holds (a + b)/2 is square implies a mod 3 = b mod 3
  proof
    let a,b be square Nat;
    assume (a + b)/2 is square; then
    reconsider s = (a + b)/2 as square Nat;
    A2: (a + b) mod 3 = (2*s) mod 3
    .= ((2 mod (2+1))*(s mod 3)) mod 3 by NAT_D:67
    .= (2*(s mod 3)) mod 3;
    A3: a mod 3 is trivial & b mod 3 is trivial &
      s mod 3 is trivial by SM3; then
    per cases by NAT_2:def 1;
    suppose
      s mod 3 = 1; then
      B2: 2 mod (2 + 1) = ((a mod 3) + (b mod 3)) mod 3 by A2,NAT_D:66;
      per cases by A3,NAT_2:def 1;
      suppose
        a mod 3 = 0; then
        not ((a mod 3) + (b mod 3)) mod 3 = 2 by A3;
        hence thesis by B2;
      end;
      suppose
        C1: a mod 3 = 1;
        per cases by A3,NAT_2:def 1;
        suppose b mod 3 = 0;
          hence thesis by C1,B2;
        end;
        suppose b mod 3 = 1;
          hence thesis by C1;
        end;
      end;
    end;
    suppose
      B1: s mod 3 = 0;
      B3: a mod 3 = 1 & b mod 3 = 1 implies
      ((a mod 3) + (b mod 3)) mod 3 = 2 mod (2 + 1);
      B4: a mod 3 = 1 & b mod 3 = 0 implies
      ((a mod 3) + (b mod 3)) mod 3 = 1 mod (1 + 2);
      a mod 3 = 0 & b mod 3 = 1 implies
      ((a mod 3) + (b mod 3)) mod 3 = 1 mod (1 + 2); then
      a mod 3 = 0 & b mod 3 = 0 by B1,A2,NAT_D:66,B3,B4,A3,NAT_2:def 1;
      hence thesis;
    end;
  end;
