let p be Prime; for a, b, d being Element of (GF p)
for F, G being set st p > 3 & Disc (a,b,p) <> 0. (GF p) & F = { Y where Y is Element of (GF p) : Y |^ 2 = ((d |^ 3) + (a * d)) + b } & F <> {} & G = { (Class ((R_EllCur (a,b,p)),[d,Y,1])) where Y is Element of (GF p) : [d,Y,1] in EC_SetProjCo (a,b,p) } holds
ex I being Function of F,G st
( I is onto & I is one-to-one )
let a, b, d be Element of (GF p); for F, G being set st p > 3 & Disc (a,b,p) <> 0. (GF p) & F = { Y where Y is Element of (GF p) : Y |^ 2 = ((d |^ 3) + (a * d)) + b } & F <> {} & G = { (Class ((R_EllCur (a,b,p)),[d,Y,1])) where Y is Element of (GF p) : [d,Y,1] in EC_SetProjCo (a,b,p) } holds
ex I being Function of F,G st
( I is onto & I is one-to-one )
let F, G be set ; ( p > 3 & Disc (a,b,p) <> 0. (GF p) & F = { Y where Y is Element of (GF p) : Y |^ 2 = ((d |^ 3) + (a * d)) + b } & F <> {} & G = { (Class ((R_EllCur (a,b,p)),[d,Y,1])) where Y is Element of (GF p) : [d,Y,1] in EC_SetProjCo (a,b,p) } implies ex I being Function of F,G st
( I is onto & I is one-to-one ) )
assume A1:
( p > 3 & Disc (a,b,p) <> 0. (GF p) & F = { Y where Y is Element of (GF p) : Y |^ 2 = ((d |^ 3) + (a * d)) + b } & F <> {} & G = { (Class ((R_EllCur (a,b,p)),[d,P,1])) where P is Element of (GF p) : [d,P,1] in EC_SetProjCo (a,b,p) } )
; ex I being Function of F,G st
( I is onto & I is one-to-one )
consider z being object such that
A2:
z in F
by A1, XBOOLE_0:def 1;
consider W being Element of (GF p) such that
A3:
( z = W & W |^ 2 = ((d |^ 3) + (a * d)) + b )
by A1, A2;
[d,W,1] is Element of EC_SetProjCo (a,b,p)
by A3, Th43;
then A4:
Class ((R_EllCur (a,b,p)),[d,W,1]) in G
by A1;
deffunc H1( object ) -> Element of bool (EC_SetProjCo (a,b,p)) = Class ((R_EllCur (a,b,p)),[d,$1,1]);
A5:
for x being object st x in F holds
H1(x) in G
consider I being Function of F,G such that
A7:
for x being object st x in F holds
I . x = H1(x)
from FUNCT_2:sch 2(A5);
take
I
; ( I is onto & I is one-to-one )
now for y being object st y in G holds
y in rng Ilet y be
object ;
( y in G implies y in rng I )assume
y in G
;
y in rng Ithen consider P being
Element of
(GF p) such that A8:
(
y = Class (
(R_EllCur (a,b,p)),
[d,P,1]) &
[d,P,1] in EC_SetProjCo (
a,
b,
p) )
by A1;
P |^ 2
= ((d |^ 3) + (a * d)) + b
by A8, Th43;
then A9:
P in F
by A1;
then
y = I . P
by A7, A8;
hence
y in rng I
by A9, A4, FUNCT_2:112;
verum end;
then
G c= rng I
;
then
G = rng I
by XBOOLE_0:def 10;
hence
I is onto
by FUNCT_2:def 3; I is one-to-one
now for x1, x2 being object st x1 in dom I & x2 in dom I & I . x1 = I . x2 holds
x1 = x2let x1,
x2 be
object ;
( x1 in dom I & x2 in dom I & I . x1 = I . x2 implies x1 = x2 )assume A10:
(
x1 in dom I &
x2 in dom I &
I . x1 = I . x2 )
;
x1 = x2A11:
(
x1 in F &
x2 in F )
by A10;
then consider Y1 being
Element of
(GF p) such that A12:
(
x1 = Y1 &
Y1 |^ 2
= ((d |^ 3) + (a * d)) + b )
by A1;
consider Y2 being
Element of
(GF p) such that A13:
(
x2 = Y2 &
Y2 |^ 2
= ((d |^ 3) + (a * d)) + b )
by A1, A11;
A14:
I . x1 = Class (
(R_EllCur (a,b,p)),
[d,x1,1])
by A10, A7;
A15:
Class (
(R_EllCur (a,b,p)),
[d,x1,1])
= Class (
(R_EllCur (a,b,p)),
[d,x2,1])
by A10, A7, A14;
A16:
[d,Y2,1] is
Element of
EC_SetProjCo (
a,
b,
p)
by Th43, A13;
[d,Y1,1] is
Element of
EC_SetProjCo (
a,
b,
p)
by Th43, A12;
hence
x1 = x2
by A1, A12, A13, A15, A16, Th52;
verum end;
hence
I is one-to-one
by FUNCT_1:def 4; verum