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
  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:def 7

    .= 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:11
    .= (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:11
    .= (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)+((a1 |^2)*a2-(a1*a2)*a2+(a2 |^(2+1)))
    by EC_PF_1:24
    .= ((a1 |^3)-(a1 |^2)*a2+a1*(a2 |^2))+(((a1 |^2)*a2-a1*(a2*a2))+(a2 |^3))
    by GROUP_1:def 3
    .= ((a1 |^3)+(-(a1 |^2)*a2+a1*(a2 |^2)))+(((a1 |^2)*a2-a1*(a2*a2))
    +(a2 |^3)) by ALGSTR_1:7
    .= ((a1 |^3)+(-(a1 |^2)*a2+a1*(a2 |^2)))+(((a1 |^2)*a2-a1*(a2 |^2))
    +(a2 |^3)) by GROUP_1:51
    .= (((a1 |^3)+(a1*(a2 |^2)-(a1 |^2)*a2))+((a1 |^2)*a2-a1*(a2 |^2)))
    +(a2 |^3) by ALGSTR_1:8
    .= ((a1 |^3)+((a1*(a2 |^2)-(a1 |^2)*a2)+((a1 |^2)*a2-a1*(a2 |^2))))
    +(a2 |^3) by ALGSTR_1:7
    .= ((a1 |^3)+(((a1*(a2 |^2)-(a1 |^2)*a2)+(a1 |^2)*a2)-a1*(a2 |^2)))
    +(a2 |^3) by ALGSTR_1:7
    .= ((a1 |^3)+((a1*(a2 |^2)+(-(a1 |^2)*a2+(a1 |^2)*a2))-a1*(a2 |^2)))
    +(a2 |^3) by ALGSTR_1:7
    .= ((a1 |^3)+((a1*(a2 |^2)+0.K)-a1*(a2 |^2)))+(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;
