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;
reserve px,py,pz for object;
reserve Px,Py,Pz for Element of GF(p);
reserve P for Element of ProjCo(GF(p));
reserve O for Element of EC_SetProjCo(a,b,p);

theorem Th42:
  for p be 5_or_greater Prime, z be Element of EC_WParam p,
  P be Element of EC_SetProjCo(z`1,z`2,p) st P`3_3 <> 0
  holds rep_pt(compell_ProjCo(z,p).P) = compell_ProjCo(z,p).(rep_pt(P))
  proof
    let p be 5_or_greater Prime, z be Element of EC_WParam p,
    P be Element of EC_SetProjCo(z`1,z`2,p) such that
    A1: P`3_3 <> 0;
    set a = z`1;
    set b = z`2;
    consider PP be Element of ProjCo(GF(p)) such that
    A2: PP = P & PP in EC_SetProjCo(a,b,p);
    set CP = compell_ProjCo(z,p).P;
    CP = [P`1_3, -P`2_3, P`3_3] by Def8;
    then
A3: CP`1_3 = P`1_3 & CP`2_3 = -P`2_3 & CP`3_3 = P`3_3 by Def3,Def4,Def5;
    set RP = rep_pt(PP);
    reconsider RP as Element of EC_SetProjCo(a,b,p) by A2,Th36;
    PP`3_3 <> 0 by A1,A2,Th32;
    then RP = [(PP`1_3)*(PP`3_3)", (PP`2_3)*(PP`3_3)", 1] by Def7;
    then RP`1_3 = (PP`1_3)*(PP`3_3)" & RP`2_3 = (PP`2_3)*(PP`3_3)" & RP`3_3 = 1
    by Def3,Def4,Def5;
    then RP`1_3 = (P`1_3)*(PP`3_3)" & RP`2_3 = (P`2_3)*(PP`3_3)" & RP`3_3 = 1
       by A2,Th32;
    then A4: RP`1_3 = (P`1_3)*(P`3_3)" & RP`2_3 = (P`2_3)*(P`3_3)" & RP`3_3 = 1
    by A2,Th32;
    consider CPP be Element of ProjCo(GF(p)) such that
    A5: CPP = CP & CPP in EC_SetProjCo(a,b,p);
    set RCP = rep_pt(CPP);
    reconsider RCP as Element of EC_SetProjCo(a,b,p) by A5,Th36;
    CPP`3_3 <> 0 by A1,A3,A5,Th32;
    then RCP = [(CPP`1_3)*(CPP`3_3)", (CPP`2_3)*(CPP`3_3)", 1] by Def7;
    then RCP`1_3 = (CPP`1_3)*(CPP`3_3)" & RCP`2_3
      = (CPP`2_3)*(CPP`3_3)" & RCP`3_3 = 1
    by Def3,Def4,Def5;
    then RCP`1_3 = (CP`1_3)*(CPP`3_3)" & RCP`2_3
      = (CP`2_3)*(CPP`3_3)" & RCP`3_3 = 1
    by A5,Th32;
    then RCP`1_3 = (CP`1_3)*(CP`3_3)" & RCP`2_3
      = (CP`2_3)*(CP`3_3)" & RCP`3_3 = 1
    by A5,Th32;
    then A6: RCP = [(P`1_3)*(P`3_3)", (-P`2_3)*(P`3_3)", 1] by A3,Th31;
    set CRP = compell_ProjCo(z,p).RP;
    CRP = [(P`1_3)*(P`3_3)", -(P`2_3)*(P`3_3)", 1] by A4,Def8;
    hence thesis by A2,A5,A6,VECTSP_1:9;
  end;
