definition
let p be 5
_or_greater Prime;
let z be
Element of
EC_WParam p;
existence
ex b1 being BinOp of (EC_SetAffCo (z,p)) st
for P, Q being Element of EC_SetAffCo (z,p) holds b1 . (P,Q) = rep_pt ((addell_ProjCo (z,p)) . (P,Q))
uniqueness
for b1, b2 being BinOp of (EC_SetAffCo (z,p)) st ( for P, Q being Element of EC_SetAffCo (z,p) holds b1 . (P,Q) = rep_pt ((addell_ProjCo (z,p)) . (P,Q)) ) & ( for P, Q being Element of EC_SetAffCo (z,p) holds b2 . (P,Q) = rep_pt ((addell_ProjCo (z,p)) . (P,Q)) ) holds
b1 = b2
end;
definition
let p be 5
_or_greater Prime;
let z be
Element of
EC_WParam p;
let F be
Function of
[:(EC_SetAffCo (z,p)),(EC_SetAffCo (z,p)):],
(EC_SetAffCo (z,p));
let Q,
R be
Element of
EC_SetAffCo (
z,
p);
.redefine func F . (
Q,
R)
-> Element of
EC_SetAffCo (
z,
p);
correctness
coherence
F . (Q,R) is Element of EC_SetAffCo (z,p);
end;
theorem ThLeftZeroedAffCo:
theorem ThRightZeroedAffCo:
theorem LmCommutative1:
for
p being 5
_or_greater Prime for
z being
Element of
EC_WParam p for
P,
Q,
O,
PQ,
QP being
Element of
EC_SetProjCo (
(z `1),
(z `2),
p) st
O = [0,1,0] & not
P _EQ_ O & not
Q _EQ_ O & not
P _EQ_ Q &
PQ = (addell_ProjCo (z,p)) . (
P,
Q) &
QP = (addell_ProjCo (z,p)) . (
Q,
P) holds
(
QP `1_3 = - (PQ `1_3) &
QP `2_3 = - (PQ `2_3) &
QP `3_3 = - (PQ `3_3) )
theorem LmCommutative2:
for
p being 5
_or_greater Prime for
z being
Element of
EC_WParam p for
P,
Q,
O,
PQ,
QP being
Element of
EC_SetProjCo (
(z `1),
(z `2),
p)
for
d being
Element of
(GF p) st
O = [0,1,0] &
d <> 0. (GF p) &
Q `1_3 = d * (P `1_3) &
Q `2_3 = d * (P `2_3) &
Q `3_3 = d * (P `3_3) & not
P _EQ_ O & not
Q _EQ_ O &
P _EQ_ Q &
PQ = (addell_ProjCo (z,p)) . (
P,
Q) &
QP = (addell_ProjCo (z,p)) . (
Q,
P) holds
(
QP `1_3 = (d |^ 6) * (PQ `1_3) &
QP `2_3 = (d |^ 6) * (PQ `2_3) &
QP `3_3 = (d |^ 6) * (PQ `3_3) )
theorem ThCommutativeProjCo:
theorem ThCommutativeAffCo:
registration
let p be 5
_or_greater Prime;
let z be
Element of
EC_WParam p;
coherence
addMagma(# (EC_SetAffCo (z,p)),(addell_AffCo (z,p)) #) is Abelian
by ThCommutativeAffCo;
coherence
( addLoopStr(# (EC_SetAffCo (z,p)),(addell_AffCo (z,p)),(0_EC (z,p)) #) is left_zeroed & addLoopStr(# (EC_SetAffCo (z,p)),(addell_AffCo (z,p)),(0_EC (z,p)) #) is right_zeroed )
end;
ThECSTRLeftComp:
for p being 5 _or_greater Prime
for z being Element of EC_WParam p holds addLoopStr(# (EC_SetAffCo (z,p)),(addell_AffCo (z,p)),(0_EC (z,p)) #) is left_complementable
ThECSTRRightComp:
for p being 5 _or_greater Prime
for z being Element of EC_WParam p holds addLoopStr(# (EC_SetAffCo (z,p)),(addell_AffCo (z,p)),(0_EC (z,p)) #) is right_complementable
theorem LmAddEll1:
for
p being 5
_or_greater Prime for
z being
Element of
EC_WParam p for
P,
Q being
Element of
EC_SetProjCo (
(z `1),
(z `2),
p)
for
g2,
gf1,
gf2,
gf3 being
Element of
(GF p) st not
P _EQ_ Q &
P `3_3 = 1 &
Q `3_3 = 1 &
g2 = 2
mod p &
gf1 = (Q `2_3) - (P `2_3) &
gf2 = (Q `1_3) - (P `1_3) &
gf3 = ((gf1 |^ 2) - (gf2 |^ 3)) - ((g2 * (gf2 |^ 2)) * (P `1_3)) holds
(addell_ProjCo (z,p)) . (
P,
Q)
= [(gf2 * gf3),((gf1 * (((gf2 |^ 2) * (P `1_3)) - gf3)) - ((gf2 |^ 3) * (P `2_3))),(gf2 |^ 3)]
theorem LmAddEll2:
for
p being 5
_or_greater Prime for
z being
Element of
EC_WParam p for
P,
Q being
Element of
EC_SetProjCo (
(z `1),
(z `2),
p)
for
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))]
theorem LmCompAddCom:
for
p being 5
_or_greater Prime for
z being
Element of
EC_WParam p for
P,
Q being
Element of
EC_SetProjCo (
(z `1),
(z `2),
p) st
P `3_3 = 1 &
Q `3_3 = 1 holds
(compell_ProjCo (z,p)) . ((addell_ProjCo (z,p)) . (P,Q)) _EQ_ (addell_ProjCo (z,p)) . (
((compell_ProjCo (z,p)) . P),
((compell_ProjCo (z,p)) . Q))
theorem
for
p being 5
_or_greater Prime for
z being
Element of
EC_WParam p for
P,
Q being
Element of
EC_SetProjCo (
(z `1),
(z `2),
p) holds
(compell_ProjCo (z,p)) . ((addell_ProjCo (z,p)) . (P,Q)) _EQ_ (addell_ProjCo (z,p)) . (
((compell_ProjCo (z,p)) . P),
((compell_ProjCo (z,p)) . Q))