reserve p for 5_or_greater Prime;
reserve z for Element of EC_WParam p;

theorem LmAddEll2:
  for P, Q being Element of EC_SetProjCo(z`1,z`2,p),
  g2, g3, g4, g8, gf1, gf2, gf3, gf4 being Element of GF(p)
  st P _EQ_ Q & P`3_3 = 1 & Q`3_3 = 1 &
  g2 = 2 mod p & g3 = 3 mod p & g4 = 4 mod p & g8 = 8 mod p &
  gf1 = z`1 + g3*(P`1_3 |^2) & gf2 = P`2_3 & gf3 = P`1_3*(P`2_3)*gf2 &
  gf4 = (gf1 |^2) - g8*gf3
  holds addell_ProjCo(z,p).(P,Q) = [g2*gf4*gf2,
  gf1*(g4 * gf3-gf4) - g8*(P`2_3 |^2)*(gf2 |^2),
  g8*(gf2 |^3)]
  proof
    let P, Q be Element of EC_SetProjCo(z`1,z`2,p),
    g2, g3, g4, g8, gf1, gf2, gf3, gf4 be Element of GF(p) such that
    A1: P _EQ_ Q & P`3_3 = 1 & Q`3_3 = 1 and
    A2: g2 = 2 mod p & g3 = 3 mod p & g4 = 4 mod p & g8 = 8 mod p and
    A3: gf1 = z`1 + g3*(P`1_3 |^2) & gf2 = P`2_3 & gf3 = P`1_3*(P`2_3)*gf2 &
    gf4 = (gf1 |^2) - g8*gf3;
    reconsider O = [0, 1, 0] as Element of EC_SetProjCo(z`1,z`2,p)
    by EC_PF_1:42;
    A4: not P _EQ_ O by A1,ThEQO;
    A5: not Q _EQ_ O by A1,ThEQO;
    A6: (z`1)*(P`3_3 |^2) + g3*(P`1_3 |^2)
    = (z`1)*(P`3_3 * (P`3_3)) + g3*(P`1_3 |^2) by EC_PF_1:22
    .= (z`1)*1.GF(p) + g3*(P`1_3 |^2) by A1
    .= gf1 by A3;
    P`2_3*(P`3_3) = P`2_3*1.GF(p) by A1
    .= gf2 by A3;
    hence addell_ProjCo(z,p).(P,Q) = [g2*gf4*gf2,
    gf1*(g4 * gf3-gf4) - g8*(P`2_3 |^2)*(gf2 |^2),
    g8*(gf2 |^3)] by A1,A2,A3,A4,A5,A6,EC_PF_2:def 9;
  end;
