Serena Cical`o
Willem de Graaf
ii
Indice
1 Basi di Gr
obner
1.1 Basi di Gr
obner . . . . . . . . . . . . . . . . . . . . .
1.1.1 Anelli polinomiali . . . . . . . . . . . . . . .
1.1.2 Il caso di polinomi in una variabile . . . . . .
1.1.3 Ordini monomiali . . . . . . . . . . . . . . . .
1.1.4 Algoritmo di divisione con resto . . . . . . .
1.1.5 Ideali monomiali . . . . . . . . . . . . . . . .
1.1.6 Basi di Gr
obner . . . . . . . . . . . . . . . .
1.1.7 Calcolare basi di Gr
obner . . . . . . . . . . .
1.2 Applicazioni di basi di Gr
obner . . . . . . . . . . . .
1.2.1 Risolvere equazioni polinomiali . . . . . . . .
1.2.2 Applicazioni di basi di Gr
obner in geometria
1.2.3 Polly-cracker . . . . . . . . . . . . . . . . . .
1.3 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
1
2
3
4
6
8
9
15
15
17
21
22
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
25
25
25
26
27
31
34
37
41
41
3 Fattorizzazione di polinomi
3.1 Alcuni fatti generali sui polinomi . . . . . . .
3.2 Lalgoritmo di Berlekamp . . . . . . . . . . .
3.3 Algoritmo di Cantor-Zassenhaus (1981) . . .
3.4 Fattorizzazione di polinomi in Q . . . . . . .
3.4.1 Sollevamento di Hensel . . . . . . . . .
3.4.2 Sollevamento di Hensel per pi`
u fattori
3.5 Esercizi . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
43
43
44
48
49
51
56
57
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Capitolo 1
Basi di Gr
obner
1.1
Basi di Gr
obner
1.1.1
Anelli polinomiali
Esempio 1.1.1 In una variabile scriviamo k[x], in due variabili scriviamo k[x, y] e in tre
variabili k[x, y, z].
Se = (1 , . . . , n ), i Z, scriviamo x = x1 1 xnn . Questo elemento `e chiamato
monomio.
Esempio 1.1.2 Abbiamo che x2 yz 10 `e un monomio. Invece 2x2 y + 3yz `e un polinomio.
P
In generale un polinomio pu`
o essere scritto come c x .
Un anello R si dice commutativo se `e un anello e f g = gf per ogni f, g R.
Definizione 1.1.3 Sia R un anello commutativo. Un sottoinsieme I R `e chiamato ideale
se
- 0 I;
- se f, g I anche f + g I;
- se f I e g R allora gf I.
Nella teoria delle basi di Gr
obner avremo a che fare solamente con anelli polinomiali.
Quindi R = k[x1 , . . . , xn ].
Siano f1 , . . . , fs k[x1 , . . . , xn ] e poniamo
s
X
gi fi | gi k[x1 , . . . , xn ]}.
I ={
i=1
Basi di Gr
obner
Vedremo pi`
u avanti che ogni ideale di k[x1 , . . . , xn ] `e di questa forma.
Notazione. Indichiamo I con I = hf1 , . . . , fs i e diciamo che I `e generato da f1 , . . . , fs .
Problema fondamentale: Dato I = hf1 , . . . , fs i e g k[x1 , . . . , xn ] determinare se g I.
1.1.2
Lemma 1.1.6 Sia I k[x] un ideale. Allora esiste un h k[x] tale che I = hhi.
Dimostrazione. Sia h un elemento non nullo di grado minimo in I. Sia f I. Allora
f = qh + r con q, r k[x] e deg(r) < deg(h).
Poiche r = f qh I segue che r = 0 in quanto h `e di grado minimo in I. Quindi f = qh.
Adesso sia I = hhi k[x] e f k[x]. Abbiamo la seguente procedura per verificare se
f I o meno:
1) Si scrive f = qh + r con deg(r) < deg(h). (Divisone con resto.)
2) Se r = 0 allora f I altrimenti f 6 I.
La prova del Lemma 1.1.6 dimostra che questa procedura funziona. (Osserviamo che se I
`e generato da h allora h `e un elemento di I di grado minimale.)
Vorremo trovare qualcosa di analogo nel caso di pi`
u variabili. Nel caso di una variabile
m
n
usiamo un ordine sui monomi x < x se m < n. Su questo si basa la divisione con resto.
Per pi`
u variabili facciamo una cosa analoga.
1.1 Basi di Gr
obner
1.1.3
Ordini monomiali
Basi di Gr
obner
Quindi ( + ) <lex ( + ).
3) Sia (i) per i 1 con (1) >lex (2) >lex . . . una catena discendente infinita. Usiamo
linduzione su n (n `e il numero di variabili) per trovare una contraddizione.
Se n = 1 `e ovvio che non esistano catene discendenti infinite.
Assumiamo che non ci siano catene discendenti infinite per n 1 variabili (sempre con
<lex ).
Osserviamo che 0 (i)1 (1)1 .
Quindi
(1)1
[
{(i) | i 1} =
Ck
k=0
- || < ||
- oppure || = || e <lex .
1.1.4
P
Sia f = c x k[x1 , . . . , xn ] e sia un ordine monomiale fissato. Sia massimale per
lordine con c 6= 0. Allora x `e chiamato monomio di testa di f e denotato con LM(f )
(per leading monomial), mentre c `e chiamato coefficiente di testa di f e denotato con
LC(f ).
Fissiamo un ordine monomiale su R = k[x1 , . . . , xn ]. Per f R indichiamo con LM(f )
il monomio di testa e con LC(f ) il coefficiente di testa di f .
Algoritmo 1.1.11 Dati: f1 , . . . , fs R, g R.
Calcoliamo: r R tale che g = h1 f1 + . . . + hs fs + r con hi R e nessun monomio di r
`e divisibile per un LM(fi ).
1) Poniamo g = g, r = 0;
2) Se g = 0 ci fermiamo;
3) Sia x = LM(
g ), c = LC(
g ). Se esiste fi tale che LM(fi ) divide x allora poniamo
c
x fi
g = g
LC(fi )
dove x LM(fi ) = x . Altrimenti poniamo
g = g cx
Torniamo a 2).
r = r + cx .
1.1 Basi di Gr
obner
c
x f i
LC(fi )
allora
g (
g1 + r1 ) = g (
g + r) +
r1 = r
c
x f i
LC(fi )
e quindi anche g (
g1 + r1 ) I.
Se invece g1 = g1 cx e r1 = r + cx allora
g (
g1 + r1 ) = g (
g + r) I.
Segue che quando lalgoritmo termina si ha g = 0 e g r I quindi
g r = h1 f1 + . . . + hs fs .
Per costruzione si vede che nessun LM(fi ) divide un monomio di r.
2) g = g f1 = y 1;
3) g = g + f2 = 0;
4) r = 0.
Secondo modo:
1) g = xy y, r = 0;
2) g = g xf2 = x y;
3) g = g + x = y, r = x;
4) g = g + f2 = 1;
5) g = g 1 = 0, r = x + 1;
6) r = x + 1.
Si vede nellEsempio che il resto dipende dalle scelte fatte durante lalgoritmo.
Vogliamo trovare un algoritmo che ci dia un resto unico che sia zero se e solo se g I =
hf1 , . . . , fs i.
Basi di Gr
obner
1.1.5
Ideali monomiali
m
X
i x(i)
h x =
m
X
i x(i)+
i=1
i=1
n
[
{ A | i < i }.
i=1
1.1 Basi di Gr
obner
1
Allora Bi0 = j=0
{ A | i0 = j}.
Quindi almeno uno di questi insiemi `e infinito. Chiamiamolo C = { A | i0 = j0 }.
Poniamo
C = {(1 , . . . , j0 1 , j0 +1 , . . . , n ) | = (1 , . . . , n ) C}.
Basi di Gr
obner
1.1.6
Basi di Gr
obner
Definizione 1.1.23 Sia I R = k[x1 , . . . , xn ] un ideale. Lideale hLM(f ) | f Ii `e chiamato ideale iniziale di I e scriviamo hLM(I)i = hLM(f ) | f Ii.
Definizione 1.1.24 Sia I R = k[x1 , . . . , xn ] un ideale e G I con hLM(I)i = hLM(g) | g Gi.
Allora G `e chiamato base di Gr
obner di I.
Osservazione 1.1.25
G = I `e una base di Gr
obner di I.
Dalla prova del Teorema della base di Hilbert segue immediatamente che ogni ideale I
ha una base di Gr
obner finita.
Lemma 1.1.26 Sia I k[x1 , . . . , xn ] un ideale. Allora un G I `e una base di Gr
obner di
I se e solo se per ogni f I esiste g G tale che LM(g) divide LM(f ).
Dimostrazione. Si ha che G `e una base di Gr
obner di I se e solo se
hLM(g) | g Gi = hLM(I)i
quindi se e solo se per ogni f I esiste g G tale che LM(g) divide LM(f ) (Lemma 1.1.16).
Proposizione 1.1.27 Sia I R = k[x1 , . . . , xn ] un ideale e G I una base di Gr
obner. Sia
f R e r R un resto ottenuto con lalgoritmo di divisione con resto con f G. Allora r `e
unico, cio`e non dipende dalle scelte fatte nellalgoritmo. Inoltre r = 0 se e solo se f I.
1.1 Basi di Gr
obner
quindi per il Lemma 1.1.26 esiste g G tale che LM(g) divide LM(r1 r2 ). Ma LM(r1 r2 )
`e un monomio di r1 oppure di r2 (o di entrambi).
Segue che r1 r2 = 0 e quindi r1 = r2 .
P
Se f I allora r1 I (perche r1 = f su=1 hu giu ). Quindi esiste g G tale che LM(g)
divide LM(r1 ) (Lemma 1.1.26) e quindi r1 = 0. Per laltra direzione: r1 = 0 implica f I
banalmente.
1.1.7
Calcolare basi di Gr
obner
z
1
5
xy
(2xyz 2 xy) (3x2 y 2 z 5xyz) = x2 y 2 + xyz 2 ,
2
3
2
3
quindi LM(S(f1 , f2 )) = x2 y 2 .
Si vede inoltre che il resto di S(f1 , f2 ) modulo {f1 , f2 } non `e zero perche x2 y 2 non `e
divisibile da LM(f1 ) e LM(f2 ).
In particolare linsieme {f1 , f2 } non `e una base di Gr
obner dellideale generato da f1 , f2 .
Un elemento della forma cx con c k `e chiamato termine.
Lemma 1.1.29 Sia G R = k[x1 , . . . , xn ] e f R. Allora se f riduce a zero modulo G si
pu`
o scrivere f = h1 g1 + . . . + hs gs con gi G (non necessariamente diversi) e dove hi R
sono termini tali che
LM(f ) = LM(h1 g1 ) > LM(h2 g2 ) > . . . > LM(hs gs ).
Dimostrazione. Segue dallalgoritmo di divisione con resto.
Il seguente teorema d`
a un criterio con cui possiamo se un dato G I `e una base di
Gr
obner o meno.
10
Basi di Gr
obner
x
x
g1
g2
LM(g1 )
LM(g2 )
(2)
g1 x
g2 = x
x
x
g1
g2
LM(g1 )
LM(g2 )
= x S(g1 , g2 ).
t
X
x uj gij
j=1
1.1 Basi di Gr
obner
11
=
=
xg1 zg2
x2 yz x2 y (x2 yz yz 2 )
g2
x2 y + yz 2
g3 .
yz 2 yz
Quindi G1 = {g1 , g2 , g3 }. Avremo
= 0
12
Basi di Gr
obner
e
S(g2 , g3 )
=
=
=
g1
z 2 g2 x2 g3
x2 yz 2 yz 3 (x2 yz 2 x2 yz)
x2 yz yz 3
yz 3 + x2 y
g3
x2 y yz 2
g2
yz 2 + yz
g3
0.
x+
x+
(c1 x + r1 )
(c2 x + r2 )
c1 x
c2 x
1
1
r1 x r2 x
c1
c2
1
1
r1 (g r2 )
r2 (f r1 )
c1 c2
c1 c2
1
(r1 g r2 f )
c1 c2
1.1 Basi di Gr
obner
13
e LM(r1 ) < LM(f ), LM(r2 ) < LM(g). Per il Lemma 1.1.34, r1 g r2 f riduce a zero modulo
{f, g}.
obner non bisogna controllare S(f, g) se LM(f )
Conclusione. Nel calcolo di una base di Gr
e LM(g) hanno fattori in comune.
Esempio 1.1.36 Un problema con le basi di Gr
obner `e che a volte sono molto difficili a
calcolare, perche possono essere molto grandi. Consideriamo
f1 = x3 + y + z 2 1, f2 = x2 + y 3 + z 1, f3 = x + y 2 + z 3 1.
Una base di Gr
obner rispetto a <lex `e
x + y + 7467678205870943/65719095621171465*z^25 +
1906548593713883/4381273041411431*z^24 +
8191728039103700/13143819124234293*z^23 18118488190106417/65719095621171465*z^22 40197573291173158/13143819124234293*z^21 60670103256071060/13143819124234293*z^20 152406006738162748/65719095621171465*z^19 +
80624458839890252/13143819124234293*z^18 +
649226374687018607/65719095621171465*z^17 +
618150565337585002/65719095621171465*z^16 +
353034549878420633/65719095621171465*z^15 +
238802559571273606/65719095621171465*z^14 11655150926515255/4381273041411431*z^13 1972928184800696599/65719095621171465*z^12 775940019593808291/21906365207057155*z^11 1345970642704934506/65719095621171465*z^10 +
2087861421527788238/65719095621171465*z^9 +
3117371817891097726/65719095621171465*z^8 +
374132655781594758/21906365207057155*z^7 437890362723893518/65719095621171465*z^6 60670429063906802/1991487746096105*z^5 42413702095534382/65719095621171465*z^4 28132496530919371/21906365207057155*z^3 +
702615426148730872/65719095621171465*z^2 80217895633896968/21906365207057155*z - 1,
y^2 - y - 7467678205870943/65719095621171465*z^25 1906548593713883/4381273041411431*z^24 8191728039103700/13143819124234293*z^23 +
18118488190106417/65719095621171465*z^22 +
40197573291173158/13143819124234293*z^21 +
60670103256071060/13143819124234293*z^20 +
152406006738162748/65719095621171465*z^19 80624458839890252/13143819124234293*z^18 649226374687018607/65719095621171465*z^17 -
14
Basi di Gr
obner
618150565337585002/65719095621171465*z^16 353034549878420633/65719095621171465*z^15 238802559571273606/65719095621171465*z^14 +
11655150926515255/4381273041411431*z^13 +
1972928184800696599/65719095621171465*z^12 +
775940019593808291/21906365207057155*z^11 +
1345970642704934506/65719095621171465*z^10 2087861421527788238/65719095621171465*z^9 3117371817891097726/65719095621171465*z^8 374132655781594758/21906365207057155*z^7 +
437890362723893518/65719095621171465*z^6 +
60670429063906802/1991487746096105*z^5 +
42413702095534382/65719095621171465*z^4 +
50038861737976526/21906365207057155*z^3 702615426148730872/65719095621171465*z^2 +
80217895633896968/21906365207057155*z,
y*z + 114351761873236539/148963283407988654*z^25 +
209291487801391117/446889850223965962*z^24 +
52236360062652115/148963283407988654*z^23 1468425502479577274/223444925111982981*z^22 858875628508250933/223444925111982981*z^21 616034236519743323/223444925111982981*z^20 +
8794492882346418295/446889850223965962*z^19 +
4815691490104347169/446889850223965962*z^18 +
1149199885582915487/446889850223965962*z^17 1088785538668067356/223444925111982981*z^16 2515633540839994712/223444925111982981*z^15 +
6870511665918010699/446889850223965962*z^14 33317003410103522629/446889850223965962*z^13 1138745048309366852/74481641703994327*z^12 2405659933320304387/223444925111982981*z^11 +
16532107971394002975/148963283407988654*z^10 +
38492638078382481727/446889850223965962*z^9 17305956248039834578/223444925111982981*z^8 3042243532386622694/223444925111982981*z^7 8470564338716612201/74481641703994327*z^6 +
109793303496803963/1194892647657663*z^5 1834169915554595837/74481641703994327*z^4 +
23672654350351476275/446889850223965962*z^3 2965819909779524184/74481641703994327*z^2 +
3212763377507509769/446889850223965962*z,
z^26 - 9*z^23 + 29*z^20 - 6*z^18 - 11*z^17 - 14*z^16 + 27*z^15 - 110*z^14 +
37*z^13 + 4*z^12 + 163*z^11 + 36*z^10 - 173*z^9 + 28*z^8 - 146*z^7 +
208*z^6 - 94*z^5 + 89*z^4 - 91*z^3 + 37*z^2 - 5*z
1.2
15
Applicazioni di basi di Gr
obner
1.2.1
16
Basi di Gr
obner
Se
f
I
allora
esistono
f
,
.
.
.
,
f
k[x
,
.
.
.
,
x
]
con
f
=
hi fi quindi f (
a) =
1
s
1
n
P
hi (
a)fi (
a) = 0.
I k[xn1 , xn ]
..
.
I k[x2 , . . . , xn ]
I k[x1 , . . . , xn ] = I.
Quindi la base di Gr
obner ha una struttura triangolare che ci pu`
o aiutare a risolvere il sistema
di equazioni polinomiali.
N.B. E possibile che I k[xl+1 , . . . , xn ] = 0.
17
f2 = x + y 2 + z 1,
f3 = x + y + z 2 1.
g2 = y 2 y z 2 + z
g3 = 2yz 2 + z 4 z 2
g4 = z 6 4z 4 + 4z 3 z 2 = z 2 (z 1)2 (z 2 + 2z 1).
Posto I = hf1 , f2 , f3 i si vede che I k[z] `e generato da g4 , I k[y, z] `e generatoda g2 , g3 , g4 .
Vediamo che g4 = 0 d`
a un numero finito di valori per z, cio`e 0, 1 e 1 2. Se z = 0
allora anche g3 = 0, ma lequazione g2 = 0 implica che y pu`
o essere 0 o 1. Se y = z = 0, allora
da g1 = 0 segue che x = 1. Troviamo la soluzione (1, 0, 0). Andando avanti cos` troviamo le
soluzioni
(1, 0, 0)
(0, 1, 0)
(0, 0, 1)
(1 2, 1 2, 1 2)
(1 + 2, 1 + 2, 1 + 2).
1.2.2
Applicazioni di basi di Gr
obner in geometria
I `e un ideale di k[x1 , . . . , xn ].
(f + g)
2m
X
2m
i=0
e quindi f + g
I.
f i g2mi I
Lemma
1.2.11 Sia I = hf1 , . . . , fs i k[x1 , . . . , xn ] un ideale e f k[x1 , . . . , xn ]. Allora
f I se e solo se 1 `e contenuto nellideale J = hf1 , . . . , fs , 1 yf i k[x1 , . . . , xn , y].
18
Basi di Gr
obner
s
X
i=1
Sostituendo y con
1
f
otteniamo
1=
s
X
i=1
1
pi (x1 , . . . , xn , )fi .
f
Ora osserviamo che i pi (x1 , . . . , xn , f1 ) sono espressioni razionali con denominatori f r per
certi r 0.
Segue che esiste m con f m pi (x1 , . . . , xn , f1 ) k[x1 , . . . , xn ] e quindi
fm =
s
X
i=1
1
f m pi (x1 , . . . , xn , )fi
f
I.
19
Teorema 1.2.15 (Hilberts Nullstellensatz, forma forte) Sia k un campo algebricamente chiuso e I k[x1 , . . . , xn ] un ideale. Sia J k[x1 , . . . , xn ] lideale
Allora J =
Hilberts Nullstellensatz
(Teorema 1.2.3), 1 I (k `e algebricamente chiuso). Quindi per il
Lemma 1.2.11, f I.
20
Basi di Gr
obner
Osservazione 1.2.16 Si ha
V (I) V (J) = V (I + J)
dove I + J `e lideale
I + J = {f + g | f I, g J}.
Dimostrazione. Sia v V (I) V (J) e h = f + g I + J con f I e g J. Si ha
h(v) = f (v) + g(v) = 0 + 0 = 0
quindi v V (I + J).
Viceversa, sia v V (I + J). Poiche I I + J sia ha che h(v) = 0 per ogni h I quindi
v V (I). Analogamente si vede che v V (J) quindi v V (I) V (J).
Segue che per X kn esiste un unico insieme chiuso minimale che contiene X. Questo `e
detto chiusura di X. Si consideri
Id(X) = {f k[x1 , . . . , xn ] | f (v) = 0, v X}
ideale di k[x1 , . . . , xn ]. Allora la chiusura di X `e V (Id(X)).
Teorema 1.2.17 Sia k algebricamente chiuso, sia R = k[x1 , . . . , xn ] e I = hf1 , . . . , fs i R.
Sia l : kn knl con l (v1 , . . . , vn ) = (vl+1 , . . . , vn ).
Sia Il = k[xl+1 , . . . , xn ] I, l-esimo ideale di eliminazione. Allora V (Il ) `e la chiusura di
l (V (I)).
Esempio 1.2.18 Sia I = hxy 1i k[x, y]. Consideriamo 1 : k2 k con 1 (v1 , v2 ) = v2 .
Allora
V (I) = {(v1 , v2 ) | v1 v2 = 1} = 1 (V (I)) = k r {0}.
Ora abbiamo I1 = 0 che implica V (I1 ) = k.
Dimostrazione.(del Teorema 1.2.17) . Sia v = (v1 , . . . , vn ) V (I). Allora f (v) =
0 per ogni f I. In particolare per ogni f Il k[xl+1 , . . . , xn ] abbiamo f (l (v)) =
f (vl+1 , . . . , vn ) = 0.
Quindi V (Il ) `e un insieme chiuso che contiene l (V (I)) e quindi V (Il ) contiene la chiusura
di l (V (I)).
21
Sia
= {(v, h(v)) | v X} kn+m .
Questo viene detto grafico di h.
Osserviamo che kn+m `e chiuso. Infatti, sia J lideale di k[x1 , . . . , xn , y1 , . . . , ym ]
generato da
{f1 , . . . , fs , y1 h1 , . . . , ym hm }.
Allora (v, w) se e solo se p(v, w) = 0 per ogni p J (w = h(v) se e solo se (yi hi )(v, w) =
wi hi (v) = 0).
Con basi di Gr
obner Possiamo calcolare la chiusura di n () dove n : kn+m km e
n (v1 , . . . , vn , w1 , . . . , wm ) = (w1 , . . . , wm ).
Ora n () = h(X) quindi possiamo calcolare la chiusura di h(X) (assumiamo sempre che
k sia algebricamente chiuso).
Esempio 1.2.19 Sia S = {(t2 , t3 ) | t C}. Calcoliamo la chiusura di S. Definiamo h : C
C2 con h(t) = (t2 , t3 ). Allora S = {h(t) | t C}. Consideriamo il grafico di h:
= {(u, h(u)) | u C}.
Abbiamo che = V (I) dove I = hy1 t2 , y2 t3 i k[t, y1 , y2 ].
Calcoliamo una base di Gr
obner di I rispetto a <lex con t >lex y1 >lex y2 , e otteniamo
G = {t2 y1 , ty1 y2 , ty2 y12 , y13 y22 }.
Quindi per il Teorema di eliminazione, la base di Gr
obner di I k[y1 , y2 ] `e G k[y1 , y2 ] =
3
2
{y1 y2 }. La conclusione `e che la chiusura di S `e V (J) dove J `e generato da y13 y22 .
In questo caso abbiamo V (I) = S, ma questo non vale in generale.
Linsieme S `e la forma parametrica di una curva in C2 , mentre la rappresentazione tramite
equazioni polinomiali (cio`e come V (J)) `e chiamata la forma implicita della curva. Quindi non
`e sempre vero che la forma parametrica e quella implicita d`
anno esattamente lo stesso insieme
di punti.
1.2.3
Polly-cracker
22
Basi di Gr
obner
Una strategia per scegliere gli f1 , . . . , fs `e la seguente: si prende un problema che `e provato
essere difficile da risolvere, un cosiddetto NP-completo, e si riformula questo problema in
termini di equazioni polinomiali e si spera che in questo caso la base di Gr
obner sia difficile
da calcolare.
Consideriamo per esempio la 3-colorazione di un grafo = (V, E) (V =vertice, E=lato).
Una 3-colorazione `e una funzione : V {1, 2, 3} con la propriet`a che se v, w V sono
collegati da una lato allora (v) 6= (w). Esempio:
2
1
2
3
hi (0)fi (0).
Quindi basta conoscere i termini costanti degli hi per ricavare il messaggio. A volte, quei
termini costanti si possono ottenere studiando come `e possibile ottenere il polinomio f come
combinazione dei polinomi fi .
1.3
Esercizi
1. Consideriamo lordine <rlex definito con x <rlex x se k < k dove k `e massimale tale
che k 6= k . Provare che <rlex `e un ordine monomiale.
1.3 Esercizi
23
(e) Provare che I `e anche generato da h2 , h3 , h5 , h6 . Provare che formano una base di
Gr
obner per I.
(f) Trovare u1 , u2 , u3 k[x, y, z] con y z = u1 g1 + u2 g2 + u3 g3
10. Siano g1 = x2 + 2y 2 3, g2 = xy y 2 + 3 elementi di C[x, y]. Sia I lideale generato da
g1 , g2 .
(a) Trovare una base di Gr
obner di I rispetto a <lex .
(b) Trovare una base di Gr
obner per I C[y].
24
Basi di Gr
obner
(a) Usiamo lordine monomiale <lex . Calcolare g4 = S(g1 , g2 ) (ridotto modulo g1 , g2 , g3 ),
e g5 = S(g1 , g3 ) (ridotto modulo g1 , . . . , g4 ), e g6 = S(g3 , g5 ) (ridotto modulo
g1 , . . . , g5 ).
(b) Provare che g4 , g5 , g6 generano I, e che formano una base di Gr
obner per I.
(c) Calcolare basi di Gr
obner per I C[y, z] e I C[z].
obner.
13. Sia I = hx2 , y 2 i k[x, y]. Provare che x + y I, calcolando una base di Gr
14. (Parametrizzazione razionale.) Sia
2t 1 t2
,
| t C, t2 6= 1}.
C={ 2
t + 1 t2 + 1
Siano f1 = (t2 + 1)y1 2t, f2 = (t2 + 1)y2 1 + t2 C[t, y1 , y2 ]. Poniamo
= {(s, u1 , u2 ) C3 | f1 (s, u1 , u2 ) = f2 (s, u1 , u2 ) = 0}.
(a) Sia 1 : C3 C2 definito da 1 (s, u1 , u2 ) = (u1 , u2 ). Provare che 1 () = C.
(b) Usiamo lordine <lex , dove t >lex y1 >lex y2 . Calcolare S(f1 , f2 ) (ridotto modulo
f1 , f2 ) e ottenere f3 . Nello stesso modo calcolare S(f2 , f3 ) e ottenere f4 e S(f3 , f4 )
per ottenere f5 .
(c) Provare che {f3 , f4 , f5 } `e una base di Gr
obner per lideale generato da f1 , f2 ,
rispetto a <lex .
(d) Trovare un ideale J C[y1 , y2 ] tale che V (J) `e la chiusura di C.
15. Sia
S = {(uv, uv 2 , u2 ) C3 | u, v C}.
Una base di Gr
obner di huv x, uv 2 y, u2 zi, rispetto allordine <lex con u >lex
v >lex x >lex y >lex z `e
{u2 z, uv x, ux vz, uy x2 , v 2 z x2 , vx y, vyz x3 , x4 y 2 z}.
Trovare un ideale I C[x, y, z] tale che la chiusura di S `e V (I). Trovare punti su V (I)
che non ci sono su S. (Quindi V (I) `e strettamente pi`
u grande di S.)
Capitolo 2
2.1
Fattorizzazione
Qui abbiamo dato un intero n di cui sappiamo che non `e primo, e vogliamo trovare i suoi
fattori primi.
Il primo algoritmo per questo `e di dividere n per ogni interno n. Questo algoritmo
non funziona per interi grandi. Per`
o, i programmi per fattorizzare usano un elenco dei primi
4
N numeri primi (circa N = 10 o N = 105 per esempio) per trovare fattori piccoli.
2.1.1
Metodo di Fermat
= ab = n
2
2
e
1 (s, t) = (t s, t + s).
26
implica t > n.
Esempio 2.1.2 Sia n = 39. Si ha
t0 = 7 72 39 = 10
t1 = 8 82 39 = 25 = 52
quindi (8 + 5)(8 5) = 39.
Questo algoritmo funziona bene se s `e piccolo perche allora t `e vicino a
pochi passi, anche se i fattori sono grandi.
2.1.2
n quindi bastano
Basi di fattori
mcd(335 16, n) = 29
2.1 Fattorizzazione
27
Quindi lidea `e di trovare x con 0 < x < n tale che x2 mod n sia un quadrato y 2 . Non
tutti gli x vanno bene. Per esempio, se n = 15 e prendiamo x = 2 abbiamo x2 mod n = 4 ma
y = 2 non funziona perche y = x. Anche x = 13 non va bene perche x2 mod n = 4 ma con
y = 2 si ha x + y = n. Proviamo con x = 7 e troviamo 72 mod n = 4 e
mcd(7 + 2, 15) = 3
mcd(7 2, 15) = 5
quindi x = 7 va bene.
a lunico intero s con n2 < s n2 , congruente a x mod n.
Notazione. x mod n sar`
Definizione 2.1.4 Un insieme B = {p0 = 1, p1 , . . . , pr } con pi primo `e chiamato base di
fattori.
Definizione 2.1.5 Un intero k `e detto B-numero (o B-liscio) se k = pe00 pe11 perr .
Per trovare x tale che x2 mod n sia un quadrato si pu`
o:
- scegliere una base di fattori;
- generare molti interi bi tali che b2i mod n `e un B-numero.
Poi si spera che per un prodotto bi1 bim si abbia
(bi1 bim )2 mod n = pe00 pe11 perr
con ei pari per ogni i, e quindi pe11 perr = y 2 .
Esempio 2.1.6 Come nellEsempio 2.1.3 sia n = 377 e prendiamo B = {1, 2}. Allora
192 = 16 mod n e 16 = p0 p21
Ora abbiamo (19 97)2 = p20 p41 mod n. Allora poniamo x = 19 97 = 335 mod n, e y = 16.
Infatti, mcd(335 + 16, 377) = 13 e mcd(335 16, 377) = 29 sono fattori di n.
Un metodo famoso per generare bi si base sulle frazioni continue.
2.1.3
Frazioni continue
1
a1 +
a2 +
1
a3 + a1
4
28
ai = xi ,
1
xi+1 =
.
xi ai
2. Allora avremo x0 = x e
1
=1+ 2
21
1
a1 = 2 x2 =
=1+ 2
21
1
a2 = 2 x3 =
=1+ 2
21
a0 = 1 x1 =
e andando avanti cos` otteniamo ai = 2 per ogni i 1. Qui troviamo per esempio
[1; 2, 2, 2, 2] = 1 +
2
Abbiamo che 2 ( 41
29 ) =
1
841 ;
1
2+
2+
1
1
2+ 2
41
.
29
2.
Lemma 2.1.8 Se x Q allora lalgoritmo per calcolare la frazione continua termina (cio`e a
un certo punto troviamo xi ai = 0). La frazione continua `e quindi uguale a x.
Dimostrazione. Se x =
a
b
e x1 =
a
b
b
1
= .
q1
r1
r1
r2
e cos` si va avanti.
Allora lalgoritmo termina perche 0 ri+1 < ri , e quindi ad un certo punto si trova i con
ri = 0.
Si prova con induzione sul numero di passi che prende lalgoritmo che la frazione continua
che viene fuori `e uguale a x.
Possiamo scrivere bcii = [a0 ; a1 , . . . , ai ] e mcd(bi , ci ) = 1. Questi si chiamano convergenti
della frazione continua per x.
2.1 Fattorizzazione
29
2. Avremo
1+
1
2+
1
2
7
b2
= .
5
c2
Teorema 2.1.10 Siano a0 , a1 , . . ., gli interi che vengono fuori dallalgoritmo per trovare la
frazione continua che approssima x R, x > 0. Poniamo
0 = a0 ,
0 = 1,
1 = a0 a1 + 1,
1 = a1 ,
i = ai i1 + i2 ,
i = ai i1 + i2 ,
per i 2. Allora
1) i i1 i1 i = (1)i1 , i 1;
2) mcd(i , i ) = 1;
3) bi = i e ci = i dove bi , ci Z0 sono tali che mcd(bi , ci ) = 1 e
bi
ci
= [a0 ; a1 , . . . , ai ]. .
b1
1
1
= a0 +
= .
c1
a1
1
Osserviamo che [a0 ; a1 , . . . , ai , ai+1 ] `e ottenuto da [a0 ; a1 , . . . , ai ] sostituendo ai con ai +
1
ai+1 . Per induzione abbiamo che
[a0 ; a1 , . . . , ai ] =
quindi
[a0 ; a1 , . . . , ai+1 ] =
=
=
=
i
ai i1 + i2
=
i
ai i1 + i2
1
i1 + i2
ai + ai+1
1
ai + ai+1
i1 + i2
ai+1 (ai i1 + i2 ) + i1
ai+1 (ai i1 + i2 ) + i1
ai+1 i + i1
ai+1 i + i1
i+1
.
i+1
30
Osservazione 2.1.11 Segue che bi ci1 ci bi1 = (1)i1 . Dividiamo per ci ci1 e otteniamo
bi bi1
(1)i1
=
ci ci1
ci ci1
quindi
bi bi1
1
ci ci1 = ci ci1 .
bi bi1
ci ci1 0.
bi
ci
converge a x per
ai +
xi
ai +
xi
1
xei bi
1
xei ci
1
xei .
Ma
ai+1 bi + bi1
bi+1
=
ci+1
ai+1 ci + ci1
+ bi1
+ ci1
bi + xei bi1
.
ci + xei ci1
Osservazione 2.1.13 Se prendiamo un vettore che va in un punto (s, t), allora st indica la
pendenza. Se prendo i vettori che vanno in (ci , bi ) e (xei ci1 , xei bi1 ) e faccio la somma, ottengo
il vettore (ci + xei ci1 , bi + xei bi1 ).
(ci , bi )
2.1 Fattorizzazione
Quindi
bi +xei bi1
ci +xei ci1
`e tra
31
bi
ci
bi1
ci1
(o viceversa).
2.1.4
bi
ci
bi+1
ci+1
va a 0. Quindi
bi
ci
converge
Lemma 2.1.14 Sia x R, x > 1. Siano cbii i convergenti della frazione continua per x.
Allora
|b2i c2i x2 | < 2x.
Dimostrazione. Osservazione 2.1.11 dice che
bi+1 bi
1
ci+1 ci = ci+1 ci .
1
ci+1 ci .
Poniamo =
bi+1
ci+1
bi
ci
Adesso
Ora x
bi
ci
|b2i
b2i |
c2i x
bi
bi
x + .
ci
ci
x + bi = x + bi = 2x + bi x < 2x +
ci
ci
ci
|b2i c2i x2 | < c2i (2x + ).
Quindi
|b2i
1
2xc2i+1
|c2i x2
< mentre
quindi
Ma
c2i x2 |
<
c2i x2 |
1
ci+1
|b2i
2x < 2x 1 +
c2i
2 c2i
+
2x
= 2x 1 +
ci
ci+1
1
+
2xc2i+1
c2i x2 |
2x < 2x 1 +
ci
ci+1
1
ci+1
ci+1
< 2x 1 +
ci+1
=0
e dunque
|b2i c2i x2 | < 2x.
32
Corollario 2.1.15 Sia n > 8 un intero e cbii i convergenti per la frazione continua per n.
Allora |b2i mod n| < 2 n dove b2i mod n `e lunico intero congruente a n nellintervallo
( n2 , n2 ].
Dimostrazione. Per il Lemma 2.1.14 si ha |b2i c2i n| < 2 n. Ma b2i c2i n `e un intero
ei
4. Per i bi tali che b2i mod n `e B-liscio si scrive b2i mod n = p00 prr finche si pu`
o fare
e0
2
e
r
un prodotto (bi1 bit ) mod n = p0 pr con ei pari per ogni i. Si pone x = bi1 bit
e0
er
e y = p02 pr2 .
2.1 Fattorizzazione
33
r+
m
u
r+
+
= q+
=q
m m
m
j k j
rk
u
= q+
= q.
=
m
m
m
x
0 = x a0 = 33
5
5+ 33
1
x1 = 335 = 8
x
1 = x0 a1 = 3+8 33
1
x2 = xf
= 3+833 = 3+ 3 33
1
x
2 = x1
a2 =
3+ 33
x3 = 8
x
3 = x2 a3 =
x4 = 5 + 33
...
3+ 33
3
5+ 33
8
- Calcoliamo i bi .
b0 = a0 = 5
b1 = a0 a1 + 1 = 6
b2 = a2 b1 + b0 = 17
b20 mod 33 = 8
b21 mod 33 = 3
b22 mod 33 = 8.
Quindi
x = b0 b2 = 5 17 = 19 mod 33
y=8
e allora
mcd(x + y, n) = mcd(27, 33) = 3
34
mod
mod
mod
mod
mod
mod
mod
mod
mod
mod
n = 73 = 1 73
n = 145 = 5 29
n = 37 = 1 37
n = 720 = 24 32 5
n = 143 = 11 13
n = 215 = 5 43
n = 656 = 24 41
n = 33 = 3 11
n = 136 = 23 17
n = 405 = 34 5
2.1.5
Curve ellittiche
dy
= 3x2 + a = f (x).
dx
che viene detto discriminante del polinomio x3 + ax + b. Questo ha tre radici distinte se e
solo se 6= 0. Inoltre = 4a3 + 27b2 .
Conclusione: y 2 = x3 + ax + b definisce una curva ellittica se e solo se = 4a3 + 27b2 6= 0.
Se k = R possiamo fare un grafico della curva. Si ottiene una cosa della seguente forma.
2.1 Fattorizzazione
35
P3
P2
P1
P1 + P2
36
P3
P1
P1 + P1
2
3
1
Poniamo m = xy22 y
x1 e calcoliamo i punti di intersezione tra la retta e y = x + ax + b.
Avremo
(m(x x1 ) + y1 )2 = x3 + ax + b x3 m2 x2 + ux + v = 0
per opportuni u e v.
Due soluzioni di questa equazione sono x1 e x2 perche P1 e P2 sono sia sulla retta che
sulla curva. Quindi
x3 m2 x2 + ux + v = (x x1 )(x x2 )(x x3 ) = x3 (x1 + x2 + x3 )x2 + . . .
quindi si vede che x1 + x2 + x3 = m2 e quindi
x3 = m2 x1 x2
y3 = m(x3 x1 ) + y1
2.1 Fattorizzazione
37
- Se y1 6= 0 allora
m=
3x21 + a
2y1
y3 = m(x3 x1 ) + y1 .
m =
x3 =
y3 =
Quindi P1 + P1 =
2.1.6
137
2651
64 , 512
.
Q | p non divide .
p (P ) = p
, p
altrimenti p (P ) = O.
Teorema 2.1.25 Lapplicazione p `e un omomorfismo di gruppi. In altre parole p (P1 +
P2 ) = p (P1 ) + p (P2 ).
38
u1 u2
v1 , v2
Lemma 2.1.27 Sia E(k) = {(x, y) | y 2 = x3 + ax + b} {O} una curva ellittica con a, b Z
e p > 2 un primo tale che p non divide = 4a3 + 27b2 . Sia p : E(Q) E(Fp ) la riduzione
modulo p. Siano P1 , P2 E(Q) due punti buoni per p. Allora p (P1 + P2 ) = p (P1 ) + p (P2 ).
Dimostrazione. Sia Pi = (xi , yi ). Qui scriviamo anche x mod p per p (x).
- Sia P1 6= P2 , p (P1 ) 6= p (P2 ) e x1 mod p 6= x2 mod p. In questo caso si usano le
stesse formule sia su Q che su Fp per calcolare la somma. Visto che modp `e moltiplicativo e
additivo il risultato `e uguale. Questo raggionamento anche vale quando P1 = P2 .
- Sia P1 6= P2 e x1 mod p = x2 mod p. Scriviamo x2 = x1 + pr x con x Q, x mod p 6= 0.
Allora y12 = y22 mod p perche x31 + ax1 + b = x32 + ax2 + b mod p e quindi y1 = y2 mod p. Poi
y22 = x32 + ax2 + b
= (x1 + pr x)3 + a(x1 + pr x) + b
= x31 + ax1 + b + (3x21 + a)pr x + pr+1
3x21 +a
2y1
3x2 + a
y2 y1
= 1
+ p
x2 x1
y2 + y1
y2 y1
.
pr x
Visto che r > 0 abbiamo che p (P1 + P2 ) = O, che `e uguale a p (P1 ) + p (P2 ).
2.1 Fattorizzazione
39
Lidea del metodo per fattorizzare interi con curve ellittiche il la seguente. Il gruppo
E(Fp ) `e finito quindi per P E(Fp ) esiste k con
. . + P} = O.
|P + .{z
k
p + 1 2 p |E(Fp )| p + 1 + 2 p.
Osservazione 2.1.30 Se |E(Fp )| divide k allora troviamo p. Per esempio quando K
p + 1 + 2 p.
Esempio 2.1.31 Supponiamo che 61 divida n. Sia Ea la curva y 2 = x3 + ax + 3 a e
P = (1, 2). Avremo
a
|Ea (F61 )|
ordine di (P mod 61)
4
68
68
3
54
9
2
76
38
1
69
69
0
48
12
1
48
4
2
66
33
3
72
6
4
67
67
40
Ora 4P = O E1 (Q) e 6P =
51825601
16208676 ,
Osservazione 2.1.32 E sufficiente conoscere kP modulo n. Cio`e se rP = uv11 , uv22 e se
mcd(vi , n) 6= 1, allora il fattore `e trovato. Altrimenti se mcd(vi , n) = 1 allora esistono ci , di
con ci vi + di n = 1 e allora uvii mod n = ui ci mod n.
Esempio 2.1.33 Fattorizziamo n = 39. Abbiamo che = 31 e mcd(31, 39) = 1. Prendiamo
come E la curva y 2 = x3 + x 1 e P = (1, 1). Sia k = 6.
Abbiamo che 2P = (2, 3). Calcoliamo 4P . Avremo
m=
12 + 1
13
3x21 + a
=
=
y1
6
6
=
1 185
=
0 185
=
1 185
= 1 185
+ 06
+ 16
30 6
+ 31 6
y3 = m(x3 x1 ) y1 = 152(160 2) 3
= 37 mod 185.
Ora
m=
3 1602 + 1
3x21 + a
.
=
2y1
74
185
74
37
0
=
1 185
=
0 185
=
1 185
= 2 185
+
+
0 74
1 74
2 74
5 74
2.2 Esercizi
2.1.7
41
Complessit`
a
1
dove p `e il fattore pi`
u piccolo di n. Ma O(p) = O( n). Inoltre n =n 2 = exp 21 log n e
log n
= numero di cifre di n = complessit`a di n. Quindi exp p21 log n `e esponenziale.
- Il metodo curve ellittiche ha complessit`a stimata O(exp log p log(log p)) dove p `e il
fattore pi`
u piccolo di n. Questo `e subesponenziale.
p
- Il metodo con le frazioni continue ha complessit`a stimata O(exp 2 logp
p log(log p)).
- Due altri metodi famosi sono: il crivello quadratica ha complessit`a O(exp log n log(log n)),
il crivello dei campi di numeri con complessit`a O(exp (log)1/3 (log(log p))2/3 ).
2.2
Esercizi
a2 + 4
.
2
Provare che nella frazione continua per abbiamo a = a0 = a1 = a2 , . . ..
=
6. Sia
a+
1+ 5
x=
.
2
Siano a0 , a1 , . . . i numeri che vengono fuori dalla frazione continua per x.
(a) Provare che ai = 1 per i 0.
42
10. Fattorizzare n = 115 con il metodo delle curve ellittiche. (Si pu`
o usare la curva y 2 =
3
x + 2x 3 e P = (2, 3).)
Capitolo 3
Fattorizzazione di polinomi
Vogliamo fattorizzare polinomi in k[x] dove k `e un campo.
Gli algoritmi dipendono dalla scelta di k. Studiamo algoritmi per il caso k = Fq dove
q = pn , p primo, e k = Q.
3.1
Lemma 3.1.1 Dati f, g k[x] esistono unici q, r k[x] con deg(r) < deg(g) e f = qg + r
(divisione con resto).
Lemma 3.1.2 Sia I k[x] un ideale. Allora I `e generato da un elemento, cio`e esiste g I
con I = {f g | f k[x]}.
Dimostrazione. Sia g I un elemento non nullo di grado minimo. Se h I scriviamo
h = qg + r con deg(r) < deg(g). Questo implica r I quindi r = 0 e h = qg.
Lemma 3.1.3 Siano f1 , f2 k[x]. Allora esiste un unico monico g k[x] con
1) g divide f1 , f2 ;
2) se h divide f1 , f2 allora divide g.
Dimostrazione. Sia I k[x] lideale generato da f1 , f2 , cio`e I = {h1 f1 + h2 f2 | hi k[x]}.
Allora I `e generato da un monico g (di grado minimo). Ora f1 , f2 I implica che g divide
f1 e f2 .
Se h divide f1 , f2 allora scriviamo g = h1 f1 +h2 f2 (visto che g I = hf1 , f2 i) e concludiamo
che h divide g.
Per dimostrare lunicit`
a, sia g k[x] con le stesse propriet`a di g. Allora, per 1) e 2), g
divide g. Analogamente g divide g . Essendo g e g monici segue che g = g .
Definizione 3.1.4 Il polinomio g `e chiamato massimo comun divisore di f1 e f2 .
Si vede dalla prova del Lemma 3.1.3 che esistono h1 , h2 tali che h1 f1 + h2 f2 = g. Come
per gli interi abbiamo un algoritmo di Euclide per calcolare il massimo comune divisore di
f1 , f2 . E basato sul seguente lemma.
44
Fattorizzazione di polinomi
Lemma 3.1.5 Scriviamo f1 = qf2 + r con deg(r) < deg(f2 ). Allora si ha mcd(f1 , f2 ) =
mcd(f2 , r).
Dimostrazione. Poniamo
D1 = {h k[x] | h divide f1 , f2 } e D2 = {h k[x] | h divide f2 , r}.
Allora D1 = D2 . Quindi anche lelemento monico di grado massimale di D1 e D2 `e uguale.
Per calcolare mcd(f1 , f2 ) si rimpiazza (f1 , f2 ) con (f2 , r) e cos` via. Ad un certo punto si
trova (g, 0) e mcd(g, 0) = g.
Esempio 3.1.6 Siano f1 = x7 + 1, f2 = x4 + x2 + x F2 [x]. Abbiamo
f1 = (x3 + x + 1)f2 + x3 + x + 1.
Posto f3 = x3 + x + 1 si ha
f2 = xf3 + 0
quindi mcd(f1 , f2 ) = mcd(f2 , f3 ) = mcd(f3 , 0) = f3 .
N.B. Un polinomio h k[x] `e chiamato irriducibile se h = ab con a, b k[x] implica che
a oppure b st`
a in k.
Teorema 3.1.7 Sia f k[x], allora esistono unici c k, f1 , . . . , fr monici, irriducibili e
diversi in k[x] e e1 , . . . , er Z>0 con f = cf1e1 frer .
Dimostrazione. Se f `e irriducibile non c`e niente da fare. Altrimenti sar`
a f = ab dove a, b
sono polinomi tali che deg(a), deg(b) < deg(f ). Allora per induzione a e b sono prodotti di
irriducibili, e quindi anche f .
dm con ogni g
Per dimostrare lunicit`
a supponiamo che f = c1 f1e1 frer = c2 g1d1 gm
i
ancora irriducibile e monico.
Innanzitutto si vede che c1 e c2 sono il coefficiente di testa di f , e perci`
o c1 = c2 .
Fatto: sia a k[x] irriducibile e a divida bc con b, c k[x]. Allora a divide b oppure a
divide c. (Infatti, se a non divide b allora mcd(a, b) = 1 quindi esistono h1 , h2 con h1 a+h2 b = 1
quindi c = h1 ac + h2 bc e quindi a divide c.)
Da questo fatto segue che f1 divide un gi . Ma ogni gi `e irriducibile e monico quindi
h1 = gi e quindi questi elementi cancellano. Usando linduzione concludiamo che linsieme
{f1 , . . . , fr } = {g1 , . . . , gm } e gli esponenti sono uguali.
Problema. Dato f k[x] monico trovare f1 , . . . , fr irriducibili, monici e distinti tali che
f = f1e1 frer .
3.2
Lalgoritmo di Berlekamp
Definizione 3.2.1 Sia f k[x] monico e f = f1e1 frer con fi irriducibile e monico per
ogni i. Allora gli fiei sono chiamati fattori primari di f .
45
Dimostrazione. In Fq [Y ] abbiamo
Yq Y =
aFq
(Y a)
= mcd(f, v q v)
Y
(v a))
= mcd(f,
=
aFq
aFq
mcd(f, v a).
Notazione. Con Fq [x]/(f ) denotiamo lanello quoziente Fq [x] modulo lideale generato da
f.
Se f = xn + . . . + a0 allora ogni elemento di Fq [x]/(f ) ha un rappresentante unico della
forma b0 + b1 x + . . . + bn1 xn1 .
Lemma 3.2.3 Sia f Fq [x] monico e sia
V = {v Fq [x]/(f ) | v q v mod f }.
Scriviamo f = f1e1 frer dove gli fi sono irriducibili distinti. Allora V `e uno spazio vettoriale
su Fq di dimensione r.
46
Fattorizzazione di polinomi
v q = v mod f
aFq
mcd(fiei , vi a).
(3.1)
47
3. Il risultato `e P .
Lemma 3.2.5 Lalgoritmo di Berlekamp restituisce i fattori primari di f .
Dimostrazione. Dobbiamo dimostrare che
- f `e il prodotto degli elementi di P ;
- gli elementi di P sono coprimi;
- gli elementi di P sono una potenza di un irriducibile.
Il prodotto degli elementi di P rimane sempre uguale perche
Y
mcd(h, vj a).
h=
aFq
Infatti, abbiamo vjq = vj mod f , ma gli h P sono fattori di f quindi vjq = vj mod h. Quindi
possiamo applicare il Lemma 3.2.2.
Inoltre `e sempre vero che gli elementi di P sono coprimi perche se h P `e rimpiazzato
con diversi fattori quelli sono fattori di vj a per diversi a e quindi coprimi.
Ora sia P linsieme finale, e h P . Assumiamo che h non `e una potenza di un irriducibile.
e
Allora da quello detto sopra segue che h `e divisibile per un fiei e un fj j . Per semplicit`a
assumiamo i = 1 e j = 2.
Osserviamo che per g P e 1 j r abbiamo che esiste aj Fq con vj = aj mod g.
Questo `e vero dopo il passo 2a) dove `e trattato j. Infatti dopo quel passo ogni elemento di
P `e fattore di un vj a per un certo a Fq . Ma se vj = aj mod g0 e g0 `e rimpiazzato con
alcuni fattori g0 , allora vj = aj mod g0 . Concludiamo che esiste aj Fq con vj = aj mod h
per 1 j r.
P
Adesso sia v V e scriviamo v = rj=1 j vj , j Fq . Allora
v=
r
X
j aj mod h.
j=1
Pr
e1 .
2) f 6= 0. Allora g = mcd(f,f
) dove mcd(f, f ) = g
Esempio 3.2.6 Sia f = x4 + x3 + x + 1 F2 [x]. Scriviamo v F2 [x]/(f ) come v =
a0 + a1 x + a2 x2 + a3 x3 , ai F2 .
48
Fattorizzazione di polinomi
Poiche a2i = ai allora v 2 = a0 + a1 x2 + a2 x4 + a3 x6 .
Ora, modulo f , abbiamo
x4 = x3 + x + 1
x5 = x4 + x2 + x = x3 + x + 1 + x2 + x
= x3 + x2 + 1
x6 = x4 + x3 + x = x3 + x + 1 + x3 + x
= 1
quindi
v 2 = a0 + a1 x2 + a2 (x3 + x + 1) + a3 mod f
= a0 + a2 + a3 + a2 x + a1 x2 + a2 x3 mod f
e quindi
a0 + a2 + a3 = a0
a2 = a1
a = a2
1
a2 = a3
a1 = a2 = a3
3.3
q1
2
q1
2
= 1. Inoltre
q1
2
= 1 se e solo se `e un quadrato
di 1 in Fq ) ma
q1
2
6= 1 quindi
q1
2
= 1.
49
2k+1
quindi
q1
2
q1
2
(q1 )k
q1
2
= q1
= 1.
k
= 1. Se non `e un
Consideriamo lo spazio
V = {v Fq [x]/(f ) | v q = modf }.
Sia v V e vediamo V dentro Fq [x]. Allora
q1
q1
vq v = v v 2 1 v 2 + 1 .
q1
2
1)mcd(f, v
q1
2
+ 1).
q1
q1
2
q1
2
1 se e solo se v
q1
2
q1
2
(1, . . . , 1) oppure ai
= 1 per ogni i. Per il Lemma 3.3.1 si ha che ai Fq `e un quadrato
per ogni i.
q1
Analogamente f divide v 2 + 1 se e solo se ai Fq non `e un quadrato per ogni i.
Poniamo
C = {(a1 , . . . , ar ) Fq r | ai `e un quadrato i}
Si ha che
|C| =
q1
2
r
q1
2
r
=2
q1
2
r
Se prendiamo v V casualmente (distribuzione uniforme) allora la probabilit`a che la fattorizzazione vada male `e data da
r
!r
q1
2
1 1q
2
1
|C|
< .
=
=2
P((v) C) =
r
|V |
q
2
2
Quindi se scegliamo v casualmente k volte la probabilit`a di non trovare una fattorizzazione `e
k
minore di 12 .
3.4
Fattorizzazione di polinomi in Q
50
Fattorizzazione di polinomi
f
a
=c
g
b
fg
c(f g) = c ab
ab
f g
a, b
Z[x]. Ma
= ab c
f g
ab
fg
ab
Teorema 3.4.4 Sia f Z[x] e supponiamo che esistano g, h Q[x] con f = gh. Allora
esistono a, b Q tali che ag, bh Z[x] e f = (ag)(bh).
In altre parole ogni fattorizzazione di f in Q[x] viene da una fattorizzazione in Z[x].
Dimostrazione. Possiamo assumere che c(f ) = 1 (altrimenti dividiamo per c(f )). Siano
a, b Q tali che ag, bh Z[x] e c(ag) = c(bh) = 1. Abbiamo
abf = (ag)(bh) Z[x]
e c(abf ) = c(ag)c(bh) = 1.
3.4.1
51
Sollevamento di Hensel
Quindi
= deg(h).
deg(h)
Bisogna calcolare
La prova del precedente teorema d`
a un algoritmo per costruire g, h.
52
- e=
Fattorizzazione di polinomi
f gh
;
pk
f gh
= 2x2 2x 1 = x2 + x + 2 mod 3.
3
Possiamo fare i calcoli modulo p perche u e v ci interessano solo modulo p. In particolare
e, a, b, q, v possono essere calcolati modulo p. Abbiamo (tutto modulo 3):
e=
h = x2 + 2x + 2
g =
x2 + 1
2x + 1
2x2 + x
x+1
2
1
=
1h
=
0h
=
h
=
xh
=
xh
= (x + 1)h
= (2x + 2)h
+
+
0g
1g
g
xg
(1 x)g
xg
xg.
f g1 h1
= x3 4x2 4x 1 = 2x3 + 2x2 + 2x + 2 mod 3.
9
53
Poiche g1 = g mod p e h1 = h mod p gli a e b del passo precedente vanno ancora bene.
Abbiamo
eb = x4 + 2x3 + 2x2 + 2x + 1 = (x2 + 2x + 1)g1 + 0 = qg + r.
Quindi u = r = 0 e
v = ea + qh1 = (2x3 + 2x2 + 2x + 2)x + (x2 + 2x + 1)(x2 + 8x + 8)
= 2x + 2 mod 3.
Ora
g2 = g1 + 9u = g1 = x2 + 3x + 1
h2 = h1 + 9(2x + 2) = x2 + 26x + 26.
Abbiamo f = g2 h2 mod 27. Procedendo abbiamo
g3 = x2 + 3x + 1
h3 = x2 + 80x + 80.
Abbiamo f = g3 h3 mod 81 e cos via.
Adesso vediamo un modo per collegare i fattori sollevati con i veri fattori di f .
P
Definizione 3.4.7 Posto f = ni=0 fi xi C[x]. La norma di f `e
v
u n
uX
||f || = t
|fi |2 .
i=0
Abbiamo quindi
||(x a)h||2 =
m+1
X
i=0
|hi1 ahi |2
X
i ah
i1 hi + |ahi |2 )
=
(|hi1 |2 a
hi1 h
X
X
i ah
i1 hi + |
=
(|hi |2 a
hi1 h
ahi1 |2 ) =
|
ahi1 hi |2 .
54
Fattorizzazione di polinomi
Perche
|hi1 |2 =
|hi |2 e
Quindi
||(x a)h||2 = ||(
ax 1)h||2
= |
a|||(x a
1 )h||
= |a|||(x a
1 )h||.
Teorema 3.4.9
Sia f Z[x] e g Z[x] un fattore di f , deg(g) = m.
P(Landau-Mignotte)
i . Allora
Scriviamo g = m
g
x
i=0 i
m
|gi |
||f ||.
i
Dimostrazione. Siano b1 , . . . , bs e a1 , . . . , at in C gli zeri di f con molteplicit`
a (cio`e uno
zero di molteplicit`
a k compare k volte), e |bi | > 1 e |ai | 1.
P
Scriviamo f = ni=0 fi xi . Allora
t
s
Y
Y
(x aj )
f = fn (x bi )
j=1
i=1
i
i hi x ,
s
t
t
s
Y
Y
Y
Y
(x bi )||.
(x a
1
)
(x aj )|| = |a1 at |||fn
(x bi )
j
j=1
j=1
i=1
i=1
|hi |2 . Quindi
1
||f || |a1 at ||fn ||
a1
t ||b1 bs |.
1 a
Per z C, |z
z 1 | = 1. Quindi
||f || |fn b1 bs |.
i (x1 , . . . , xm ) =
m
i
xj 1 xj i .
monomi di grado i.
55
|b1 bs |
i
m ||f ||
i |fn |
quindi
m ||f ||
m
||f ||
= |gm |
.
|gi | |gm |
i |fn |
m i |fn |
P
i
Lemma 3.4.10 Sia g Z[x], g =P m
i=0 gi x . Sia B > 0 con |gi | < B. Sia M un intero con
m
M
i
M > 2B e scriviamo g mod M = i=0 gi x dove gi M
2 , 2 . Allora
g=
m
X
gi xi
i=0
quindi g = g mod M e gi = gi .
56
Fattorizzazione di polinomi
Esempio 3.4.11 Come nellEsempio 3.4.6, sia f = x4 + 2x3 3x2 4x + 1 quindi ||f ||2 =
1 + 4 + 9 + 16 + 1 = 31. Allora 2 x2 + 1 x + 0 un fattore di f . Abbiamo
|2 |
2
31,
2
|1 |
2
31,
1
|0 |
2
31
0
= x2 + 3x + 1
h3 mod M
= x2 x 1
3.4.2
3.5 Esercizi
57
fi
hS =
iS
fi .
i6S
M
Scriviamo i coefficienti di gS e hS modulo M in M
2 , 2 .
3.5
Esercizi
4. Sia f = x5 +2x3 +2x2 +x+1. Fattorizzare f mod 3, e provare che f Q[x] `e irriducibile.
5. In questo esercizio proviamo che f = x4 + 1 Q[x] `e irriducibile, ma che f mod p
fattorizza per ogni primo p.
(a) Fattorizzare f mod 2 (suggerimento: `e facile trovare una radice di f ).
(b) Sia p un primo dispari. Sia V lo spazio dei v Fp [x]/hf i tali che v p = v mod f .
Calcolare una base di V , trattando i casi p = 1 + 4k, k pari e dispari e p = 3 + 4k,
k pari e dispari separatemente. Concludere che f mod p fattorizza per ogni primo
p.
(c) Fattorizzare f mod 5.
(d) Mediante il sollevamento di Hensel trovare g, h Z[x] con f = gh mod 125.
(e) Trovare un limite sui coefficienti di un possibile divisore di f in Z[x] (LandauMignotte). Provare che f `e irriducibile.
58
Fattorizzazione di polinomi