Let us walk on the 3-isogeny graph
Loading...
Searching...
No Matches
to_model.m
Go to the documentation of this file.
1
clear
;
2
Pt<t>
:= PolynomialRing(
Rationals
());
3
Ri<i>
:= ext<
Rationals
() | t^2 + 1>;
4
Ra<A>
:= PolynomialRing(
Ri
);
5
RxPyP<xP, yP>
:= PolynomialRing(
Ra
, 2);
6
Rxy<x, y>
:= PolynomialRing(
RxPyP
, 2);
7
8
print
"\nBaseline curve model, F: y² = x³ + Ax² + x"
;
9
10
h
:= y^2 - x^3 - A*x^2 - x;
11
f :=
Evaluate
(
h
, [x +
xP
, y +
yP
]);
12
a
:=
MonomialCoefficient
(f, x) /
MonomialCoefficient
(f, y);
13
g
:=
Evaluate
(f, [x, y - (
Numerator
(
a
) * x) /
Denominator
(
a
)]);
14
15
a1
:=
MonomialCoefficient
(
Numerator
(
g
), x*y) /
Denominator
(
g
);
16
a3
:=
MonomialCoefficient
(
Numerator
(
g
), y) /
Denominator
(
g
);
17
18
print
"\n3-isogeny curve model, E: y² + a₁xy + a₃y = x³\nwhere"
;
19
printf
"a1:\t %o\n"
,
a1
;
20
printf
"a3:\t %o\n\n"
,
a3
;
21
22
function
j_invariant
(
a1
,
a3
,
a2
,
a4
,
a6
)
23
b2
:=
a1
^2 + 4 *
a2
;
24
b4
:=
a1
*
a3
+ 2 *
a4
;
25
b6
:=
a3
^2 + 4 *
a6
;
26
b8
:=
a1
^2 *
a6
-
a1
*
a3
*
a4
+
a2
*
a3
^2 + 4 *
a2
*
a6
- (
a4
^2);
27
Disc
:= -(
b2
^2) *
b8
+ 9 *
b2
*
b4
*
b6
- 8 *
b4
^3 - 27 *
b6
^2;
28
29
c4
:=
b2
^2 - 24 *
b4
;
30
c6
:= -(
b2
^3) + 36 *
b2
*
b4
- 216 *
b6
;
31
32
var1
:=
c4
^3 /
Disc
;
33
var2
:=
c4
^3 / ((
c4
^3 -
c6
^2) / 1728);
34
35
assert
(
var1
eq
var2
);
36
return
c4
^3, (
c4
^3 -
c6
^2) / 1728;
37
end
function
;
38
39
// test isomorphic curve
40
_num
,
_den
:=
j_invariant
(
a1
,
a3
, 0, 0, 0);
41
num_
,
den_
:=
j_invariant
(
a1
*
yP
,
a3
* (
yP
^3), 0, 0, 0);
42
43
print
"\nIsomorphic 3-isogeny curve, Ẽ: y² + ã₁xy + ã₃y = x³\nwhere"
;
44
printf
"\nã1:\t %o\n"
,
a1
*
yP
;
45
printf
"ã3:\t %o\n\n"
,
a3
* (
yP
^3);
46
47
assert
(
_num
/
_den
eq
num_
/
den_
);
48
printf
"Do we have j(E) = j(Ẽ)? %o\n"
,
_num
/
_den
eq
num_
/
den_
;
49
50
exit
;
i
for i
Definition
prime_search.m:10
den_
_den den_
Definition
to_model.m:41
c6
id c6()
b4
function j_invariant(a1, a3, a2, a4, a6) b2 b4
Definition
to_model.m:22
Rxy< x, y >
RxPyP< xP, yP > Rxy< x, y >
Definition
to_model.m:6
a3
printf a3
Definition
to_model.m:20
MonomialCoefficient
f x MonomialCoefficient(f, y)
yP
_den a3 * yP
Definition
to_model.m:41
_num
_num
Definition
to_model.m:40
a1
g a1
Definition
to_model.m:15
assert
assert(var1 eq var2)
c4
return c4
Definition
to_model.m:36
Denominator
g x *y Denominator(g)
num_
_den num_
Definition
to_model.m:41
a
f a
Definition
to_model.m:12
clear
clear
Definition
to_model.m:1
high-level-scripts
to_model.m
Generated by
1.9.8