reserve x for set;
reserve i,j for Integer;
reserve n,n1,n2,n3 for Nat;
reserve p for Prime;
reserve a,b,c,d for Element of GF(p);
reserve K for Ring;
reserve a1,a2,a3,a4,a5,a6 for Element of K;

theorem Th17:
  for K being comRing, a1,a2 being Element of K holds
  (a1 - a2)*(a1 |^2 + a1*a2 + a2 |^2) = a1 |^3 - a2 |^3
  proof
    let K be comRing, a1,a2 be Element of K;
    thus (a1 - a2)*(a1 |^2 + a1*a2 + a2 |^2)
    = a1*(a1 |^2 +a1*a2+a2 |^2)-a2*(a1 |^2 +a1*a2+a2 |^2) by VECTSP_1:13
    .= a1*(a1 |^2 +a1*a2)+a1*(a2 |^2)-a2*((a1 |^2 +a1*a2)+a2 |^2)
    by VECTSP_1:def 7
    .= a1*(a1 |^2)+a1*(a1*a2)+a1*(a2 |^2)-a2*((a1 |^2 +a1*a2)+a2 |^2)
    by VECTSP_1:def 7
    .= (a1 |^2)*a1+(a1*a1)*a2+a1*(a2 |^2)-a2*((a1 |^2 +a1*a2)+a2 |^2)
    by GROUP_1:def 3
    .= (a1 |^2)*a1+(a1*a1)*a2+a1*(a2 |^2)-(a2*(a1 |^2 +a1*a2)+a2*(a2 |^2))
    by VECTSP_1:def 7
    .= (a1 |^(2+1))+(a1*a1)*a2+a1*(a2 |^2)-(a2*(a1 |^2 +a1*a2)+(a2 |^2)*a2)
    by EC_PF_1:24
    .= (a1 |^3)+(a1*a1)*a2+a1*(a2 |^2)-(a2*(a1 |^2)+a2*(a1*a2)+(a2 |^2)*a2)
    by VECTSP_1:def 7
    .= (a1 |^3)+(a1 |^2)*a2+a1*(a2 |^2)-(a2*(a1 |^2)+a2*(a1*a2)+(a2 |^2)*a2)
    by GROUP_1:51
    .= (a1 |^3)+(a1 |^2)*a2+a1*(a2 |^2)-((a2*(a1 |^2)+a2*(a1*a2))+(a2 |^(2+1)))
    by EC_PF_1:24
    .= ((a1 |^3)+(a1 |^2)*a2+a1*(a2 |^2))-(a2*(a1 |^2)+a2*(a1*a2))-(a2 |^3)
    by VECTSP_1:17
    .= ((a1 |^3)+((a1 |^2)*a2+a1*(a2 |^2)))-(a2*(a1 |^2)+a2*(a1*a2))-(a2 |^3)
    by ALGSTR_1:7
    .= ((a1 |^3)+(((a1 |^2)*a2+a1*(a2 |^2))-(a2*(a1 |^2)+a2*(a1*a2))))-(a2 |^3)
    by ALGSTR_1:7
    .= ((a1 |^3)+(((a1 |^2)*a2+a1*(a2 |^2))+(-a2*(a1*a2)-a2*(a1 |^2))))
    -(a2 |^3) by VECTSP_1:17
    .= ((a1 |^3)+(((a1 |^2)*a2+a1*(a2 |^2))+(-a1*(a2*a2)-(a1 |^2)*a2)))
    -(a2 |^3) by GROUP_1:def 3
    .= ((a1 |^3)+(((a1 |^2)*a2+a1*(a2 |^2))+(-a1*(a2 |^2)-(a1 |^2)*a2)))
    -(a2 |^3) by GROUP_1:51
    .= ((a1 |^3)+((((a1 |^2)*a2+a1*(a2 |^2))-a1*(a2 |^2))-(a1 |^2)*a2))
    -(a2 |^3) by ALGSTR_1:7
    .= ((a1 |^3)+(((a1 |^2)*a2+(a1*(a2 |^2)-a1*(a2 |^2)))-(a1 |^2)*a2))
    -(a2 |^3) by ALGSTR_1:7
    .= ((a1 |^3)+(((a1 |^2)*a2+0.K)-(a1 |^2)*a2))-(a2 |^3) by VECTSP_1:19
    .= ((a1 |^3)+0.K)-(a2 |^3) by VECTSP_1:19,ALGSTR_1:7
    .= (a1 |^3)-(a2 |^3) by ALGSTR_1:7;
  end;
