Par la méthode de onstru tion présentée dans le hapitre II, on peut onstruire un odefon tionnelisomorpheau ode
Cd(X)
.Pour efaire,ondénitH∞
,l'hyperplandeP
r
d'équation
X0= 0
.Onappellei
l'in lusion anoniquei : X ֒→ P
r
etonpose
L := i∗H∞∈
DivF
q(X).
Pour tout entier naturel
d
, les fais eauxL(dL)
eti
∗OPr(d)
sont isomorphes. Aussi, si les points
P1, . . . , Pn
évitentlesupportdeL
,alorsles odesCL,X(P1+· · ·+Pn, dL)
etCd(X)
sont isomorphes.Poursedéfairedela onditionévitentlespointdusupportdeL
,ilsutd'utiliser lemovinglemma([Sha94℄III.1.3théorème1etannexeB).Envertude erésultat,onsaitqu'il existeG ∈
DivF
q(X)
dontlesupportévitelespointsP1, . . . , Pn
et linéairementéquivalentàdL
. Cettefois- i, onest assuréde labonne dénitiondu odeCL,X(P1+ · · · + Pn, G)
et le fais eauL(G)
estisomorpheài
∗OPr(d)
. Onobtientdon l'isomorphismede odes
CL,X(P1+ · · · , Pn, G) ∼= Cd(X).
On peut don onstruireun ode fon tionnel(provenantde ladénition de [VM84℄donnée dans le hapitreII) isomorphe à
Cd(X)
. Malheureusementla onstru tiond'un diviseurG
dontlesupportévitetouslespointsrationnelsdeX
n'estpastoujoursévidente.Ladénition D.1.2restedon ommode arellefournitune onstru tionexpli itesimple.Remarque D.2.1. Notonsquel'on aidentié leséléments de
Fd
restreintsàX
àdesse - tions globales du fais eaui
∗OPn(d)
.Comme onl'a vu dansle hapitre III, si
X
est proje - tivementnormale 2 enrespe tauplongementX ֒→ P
r
,alors lefais eaui
∗O
Pr(d)
s'identie aufais eauOX(d)
(voir [Har77 ℄ II.5ex14).1
Éventuellementréduitesourédu tibles. 2
Parexemplesi 'estuneinterse tion omplètelissede
P
r
Points en position générale
Cette annexe ontientles démonstrations de lemmes te hniques utilisés dans lase tion IV.1du hapitreIII.
LemmeIV.1.8.Soient
r
etm
deuxentiersnaturelsaver ≥ 1
,alorstoutefamillederm+2
pointsrationnels distin ts deP
N
appartenant àune même ourbede degré
r
estm
-liée. Preuve. SoientP1, . . . , Prm+2
une tellefamillede pointsetC
la ourbededegrér
qui les ontient.D'aprèslethéorèmedeBezout,unehypersurfa ededegrém
quine ontientpasC
l'interse teenauplusrm
pointsgéométriques.Par onséquent,iln'existepasd'hypersurfa e ontenanttous espointssaufun.LemmeIV.1.9. Soit
m
unentiernaturel. (1) Sim + 2
pointsrationnels distin ts deP
N
sont
m
-liés, alors ils sontalignés. (2) Toutr
-uplet de pointsrationnels deux àdeux distin ts deP
N
ave
r ≤ m + 1
est en positionm
-générale.Preuve. Preuve de (1).Soient
P1, . . . , Pm+2
des pointsdistin tsdeP
N
qui sont
m
-liés. Supposons qu'ils ne soient pas alignés. Il existe don un hyperplanH
qui évitePm+2
et ontientaumoinsdeuxpointsparmiP1, . . . , Pm+1
.Quitteàréordonnerlesindi esdespoints onpeutsupposerqu'ilexistel ≥ 2
telqueP1, . . . , Pl
appartiennentàH
.•
Sil = m+1
,ondisposed'unehypersurfa e(enl'o urren el'hyperplanH
)qui ontient touslesPi
saufP2m+2
.•
Sinon,pourtoutl + 1 ≤ j ≤ m + 1
,ilexisteunhyperplanHj
qui ontientPj
etévitePm+2
.L'hypersurfa e
H ∪ Hl+1∪ · · · ∪ Hm+1
estdedegréinférieurouégalàm
( arl ≥ 2
), ontient touslesPi
saufPm+2
. Parsymétrie,onen déduitl'existen e pourtouti0
∈ {1, . . . , m + 2}
d'unehypersurfa ededegrém
qui ontienttouslesPi
saufPi0
.Preuve de (2).Soient
P1, . . . , Pr
despointsdistin tsdeP
N
ave
r ≤ m + 1
.Enréutilisant late hnique présentée dansla preuvede (1), onpeut onstruire àl'aide de réunionsd'hy- perplans,deshypersurfa esdedegrém
quiinterpolenttouslespointssaufun.Onendéduit que espointssontenpositionm
-générale.LemmeIV.1.11.Soient
m
etr
deuxentiers naturels.(1) Si
r ≤ 2m + 1
, alors une famille der
points distin ts deP
N
telle que
m + 2
d'entre euxsont non alignésesten positionm
-générale.(2) Soient
P1, . . . , P2m+2
un(2m + 2)
-uplet de points rationnels distin ts deP
N
tels que
m + 2
d'entreeuxnesontpasalignés.Alors espointssontm
-liés,sietseulements'ils appartiennent àune même onique plane.Preuve. Preuve de (1).Nousallonsdémontrerlerésultatparré urren esur
m
. Pourm = 0
, 'estévident arunpointdeP
N
esttoujoursenposition
0
-générale. Soitm ≥ 0
, supposons quelapropriété soit vériée aurangm
et montrons qu'ellel'est au rangm + 1
.SoitP1, . . . , P2m+3
une famille depointsrationnels deP
N
telle que
m + 3
d'entre euxnesontpasalignés.SoitL
l'ensembledesdroites ontenantP2m+3
et aumoins unpointparmiP1, . . . , P2m+2
.On hoisitunélémentL1
deL
ontenantunnombremaximal de points parmi lesPi
. On hoisit ensuite une droiteL2
deLr L1
ontenant un nombre maximaldepointsparmilesPi
.LesdroitesL1
etL2
sontdistin tesetse roisentenP2m+3
. Quitte àréordonnerlespointsPi
,onpeutsupposerqueP1∈ L1
etP2∈ L2
.Ensuite,montrons que,parhypothèse,lesdroites
L1
etL2
ontiennent ha uneauplusm + 2
pointsparmi lesPi
et queles autresdroites deL
en ontiennentauplusm + 1
. On distinguedeuxsituations.(1) Lesdroites
L1
etL2
ontiennenttoutesdeuxm + 2
pointsparmilesPi
.Commepardé- nition, esdroites ontiennenttoutesdeuxlepointP2m+3
,l'ensembledesPi
ontenus dansL1∪ L2
estégalàl'ensembleP1, . . . , Pn
.Aussi,dans ettesituationl'ensembleL
estégalà{L1, L2}
et lerésultatattenduesttrivialementvérié.(2) Ladroite
L2
ontientmoins dem + 1
pointsparmi lesPi
et pardénition deL2
, les élémentsdeLr {L1, L2}
ontiennenttousmoinsdem + 1
pointsparmilesPi
. Par onséquent,d'aprèsl'hypothèsederé urren e,lespointsP3, . . . , P2m+3
sontenposi- tionm
-générale,ilexistedon unehypersurfa eH
′
dedegré
m
quiinterpoleP3, . . . , P2m+2
et évitelepointP2m+3
.On hoisitdeplusunhyperplanH
qui ontientP1, P2
et éviteP2m+3
. L'hypersurfa eH ∪ H
′
est dedegré
m + 1
etinterpoletouslesPi
saufP2m+3
.Onendéduit que pourtouti0∈ {1, . . . , 2m + 3}
,il existeune hypersurfa e dedegrém + 1
quiinterpole touslesPi
saufPi0
.Preuve de (2).
Étape2a.Si
m = 0
,alorsdeuxpointsdistin tssonttoujours0
-liéset égalementtoujours ontenus dans une ourbe de degré2
, la propriété est don trivialement vériée dans e as. On supposeradon désormais quem ≥ 1
et on se donneun(2m + 2)
-uplet de pointsP1, . . . , P2m+2
m
-liésetdeuxàdeuxdistin ts.Étape 2b. Montrons que si les
Pi
ne sont pas oplanaires et quem + 1
d'entre eux sont alignés,alorslesm + 1
restantsnelesontpas.Pour efaire,ondoitsupposerqueP
N
estde dimension
N ≥ 3
.Raisonnonsparl'absurdeetsupposonsqu'ilexistedeuxdroitesdisjointes
L1
etL2
onte- nant respe tivementles pointsP1, . . . , Pm+1
etPm+2, . . . , P2m+2
. Il existe un unique plan ontenantPm+2
etladroiteL1
.CeplanévitelespointsPm+3, . . . , P2m+2
.Onendéduitl'exis- ten e d'un hyperplanH
vériantles mêmes propriétés. D'aprèsla propriété (2) du lemme IV.1.9,ilexisteunehypersurfa eH
′
dedegré
m − 1
qui ontientlespointsPm+3, . . . , P2m+1
et l'hypersurfa eH ∪ H
′
estdedegré
m
et ontienttouslesPi
saufP2m+2
.Demême, pour touti0
,onpeut onstruireunehypersurfa e ontenanttouslesPi
saufPi0
, equi ontredit lefaitquelesPi
sontliés.Étape 2 .Montrons queles
Pi
sont oplanaires.I i en ore,nous allonsraisonnerparl'ab- surde en supposant qu'ils ne le sont pas. SoitD
, l'ensemble des droites deP
N
ontenant au moinsdeux pointsdistin tsparmi les
Pi
.SoitL1
unedroite deD
ontenantunnombre maximal de espoints.Quitte àréorganiserlesindi es, onpeutsupposerqueP1
∈ L1
. Par hypothèse, lesPi
sontnon oplanaires, on peutdon supposer queles pointsP1, P2, P3
etP2m+2
sontnon oplanaires.Deplus, omme
P1
est dansL1
,deuxsituationssontpossibles.•
SoitL1
ontientmoinsdem
points,moyennantquoi,pardénitiondeL1
,iln'yapas de(m + 1)
-upletdePi
alignés.•
SoitL1
ontientm + 1
pointsetd'aprèsl'étape2b,lesm + 1
pointsrestantssontnon alignés.Ainsi,lespoints
P4, . . . , P2m+2
formentun(2m − 1)
-upletdepointstelquem + 1
d'entre euxnesontpasalignés.D'aprèslapreuvelapropriété1, espointssontenposition(m − 1)
- générale,ilexistedon unehypersurfa eH
′
dedegré
m−1
qui ontientP4, . . . , P2m+1
etéviteP2m+2
.IlexistedeplusunhyperplanH
ontenantP1, P2, P3
etévitantP2m+2
.L'hypersurfa eH ∪ H′
estdon dedegré
m
et ontienttouslesPi
saufP2m+2
.En appliquant aux points
P1, . . . , P2m+1
, le raisonnement que l'on vient d'appliquer àP2m+2
,on on lutque espointssontenpositionm
-générale.Ilya ontradi tion,lespointsP1, . . . , P2m+2
sontdon oplanaires.Étape2d.Maintenantquel'onsaitqueles
Pi
sont oplanaires,montronsqu'un(2m+2)
-uplet de points deP
2
est
m
-lié seulement si es pointssontsur une même onique.Nous allons traiterséparémentles asm = 1
etm = 2
.Si
m = 1
, quatrepointsduplansonttoujours1
-liéset sontégalementtoujours ontenus dans une même onique. Sim = 2
et que les six points ne sont pas tous sur une même onique,alorspourtout1 ≤ i0
≤ 6
, ilexisteune onique1
ontenanttousles
Pi
saufPi0
.Il ya ontradi tionave lefaitquelesPi
sont2
-liés.Ilssontdon biensurunemême onique. Supposons maintenant quem ≥ 3
etP1, . . . , P2m+2
soit un(2m + 2)
-uplet de pointsm
-liés dansP
2
tel que
m + 2
d'entre eux ne sont pas alignés. Supposons que es points nesoient pastoussurune même onique.On notede nouveauD
l'ensemble desdroites deP2
ontenantaumoins deuxpointsdistin ts parmilesPi
.SoitL1
une droite ontenantun nombremaximalde espoints.Onpeutsupposer,quittea hanger l'ordredesindi es, queP1∈ L1
.Montronsqu'ilexistequatrepointsPi1, . . . , Pi4
parmiP2, . . . , P2m+1
telsqu'ilexiste une onique ontenantP1, Pi1, . . . , Pi4
et évitantP2m+2
.Dansle as ontraire,pourtout
i ∈ {2, . . . , 2m − 2}
une oniqueCi
ontenantP1
,Pi
,Pi+1
,Pi+2
etPi+3
ontiendraitP2m+2
. Soit alorsi ∈ {2, . . . , 2m − 3}
, les oniquesCi
etCi+1
ont inqpointsd'interse tion,d'aprèslethéorèmedeBezout,ellesontdon une omposante irrédu tible ommuneΓ
quiestdedegréunoudeux.Parré urren e,onmontrequetouslesPi
appartiennentà ette ourbeΓ
equi ontreditlefaitquelesPi
nesontpastoussurune même onique.Ainsi,quitteàréorganiserlesindi es,onpeutsupposerqu'ilexisteune onique
C
onte- nantlespointsP1, . . . , P5
etéviteP2m+2
.OnrappellequeP1
estun ontenudansunedroiteL1
ontenantun nombremaximalde pointsparmi lesPi
. Parunraisonnementidentiqueà eluiqui aété ee tué dansl'étape2c
, onmontre quelespointsP6, . . . , P2m+2
formentun(2m − 3)
-uplet de points telquem
d'entre eux nesontpas alignés. D'après lapropriété 1 appliquée àm − 2
etr = 2m − 3 = 2(m − 2) + 1
, les pointsP6, . . . , P2m+2
sont en posi- tion(m − 2)
-générale.Il existedon une ourbeC
′
de degré
m − 2
qui ontientles pointsP6, . . . , P2m+1
et qui éviteP2m+2
. La ourbeC ∪ C
′
est de degré
m
et ontient touslesPi
saufP2m+2
. Onen déduit lam
-généralité de es points,il y a ontradi tion. LespointsPi
sontdon bientoussurune même oniqueplane.1
Onrappellequepar inqpointsde
P
2
passetoujoursaumoinsune onique.Ilyad'ailleursuni itésiet seulementsiquatred'entreeuxnesontpasalignés, 'est-à-dires'ilssontenposition
2
-générale.Programmes Magma
F.1 Diviseurs
∆
- onvenablesDans ettese tion, nous allonsprésenter unprogramme magmaqui permet de al uler une pairede diviseur
∆
onvenablesur une surfa elisseS
munie d'un0
- y le∆
. Lapaire ainsi onstruitevérielespropriétéssuivantes:ellesatisfaitle ritèredelapropositionII.3.8; lediviseur
Da
estee tif;les diviseurs
Da
etDb
sont tous deux linéairement équivalents à des se tions de la surfa eS
ave unehypersurfa edesonespa eambiant.Pour e faire on utilise essentiellement la méthode présentée dans la démonstration du lemme II.4.7.À savoir: lesdiviseurs
Da
etD
+
b
sont onstruitsparinterpolationdes points dusupport de∆
.Le diviseurD
−
b
est onstruit eninterpolant lespointsoù lesdeux autres diviseursnedoiventpasse roiserouse roisentave une multipli itétropimportanteet en évitantlespointsoù esdiviseursse roisentbien.Ceprogrammesedé omposeentroisgrossespartiesquesontle al ulde
Da
,deD
+
b
etdeDb−
.Leprin ipeest à haquefois lemême,on onsidèreunsystème linéairede ourbesqui vérientdebonnespropriétéseton her heun andidatdans edernier.Suivantsadimension (etdon sonnombred'éléments dénissurFq
), lare her heseferadefaçonexhaustiveou aléatoire.Préliminaires. Onabesoind'un ertainnombredes riptspouryparvenir.
// Cette fon tion est une variation de la fon tion "IsRedu ed" // de Magma qui a tendan e a ramer dans le as ou le s hema // onsidere n'est pas une hypersurfa e de son espa e (affine // ou proje tif) ambiant.
fun tion EstReduit(V) d:=Dimension(V);
A:=SingularSubs heme(V); dd:=Dimension(A); delete A; if dd eq d then return false; else return true; end if; end fun tion;
// C e programme permet d'evaluer l 'entier n minimal pour lequel // l 'interpolation d'une famille finie de points par une // hypersurfa e de degre n est possible. fun tion MinDim(V,Points) // L'entier $n$ va designer un degre que l 'on va // in rementer au debut de haque iteration. n:=0; d:=
−
1;Proj:=AmbientSpa e(V);
Liste:=[Proj!p: p in Points℄;
while d lt 0 do n+:=1;
L:=LinearSystem(Proj,n); L1:=LinearSystem(L,Liste); L2:=LinearSystemTra e(L1,V); d:=Dimension(L2);
end while;
return [
∗
n,d,L2,Proj,Liste∗
℄; end fun tion;// Cette fon tion permet de al uler un ve teur tangent // en un point d'une ourbe. Il est exprime dans le // systeme de oordonnees de la arte affine
// AffinePat h(Proj,P).
fun tion TangentVe tor(C,P)
assert P in C;
assert Dimension(C) eq 1; assert IsNonSingular(C,P);
Proj:=AmbientSpa e(C); CAff:=AffinePat h(C,P); Aff:=AmbientSpa e(CAff); d:=Dimension(Aff);
Q:=Aff!P;
T:=TangentSpa e(CAff,Q); TP:=RationalPoints(T);
if TP[1℄ eq Q then R:=TP[2℄;
F.1. Diviseurs
∆
- onvenables 155QQ:=Coordinates( Q); RR:=Coordinates(R);
return [RR[i℄
−
QQ[i℄: i in {1..d}℄; end fun tion;// Cette fon tion permet de al uler un systeme lineaire
// ayant un ve teur tangent impose en un point base rationnel.
// ATTENTION: Le ve teur $v$ est un objet "affine". // Il est defini dans la arte affine naturelle // Choisie pour P dans "AffinePat h(Proj,P)";
fun tion LinearSystemTangent(Proj,L,P,v)
// On ommen e par verifier que la longueur de $v$ est la bonne.
d:=Dimension(Proj); F:=BaseField(Proj);
assert #v eq d;
// On se donne une arte affine naturellement adaptee a $P$.
Aff:=AffinePat h(Proj,P); p:=Aff!P;
h:=Proje tiveClosureMap(Aff); LL:=LinearSystem(L,P); LLL:=Pullba k(h,LL); S:=Se tions(LL); T:=Se tions(LLL); m:=#S; assert #T eq m;
// On ommen e par travailler lo alement , don sur le systeme // lineaire affine. Pour haque se tion $f$ de notre systeme // lineaire affine on evalue $\langle grad_p (f), v \rangle$. Liste:=[&+[Evaluate(Derivative(f,j),p)
∗
v[j℄: j in {1..d}℄: f in T℄; M:=Matrix(F,m,1,Liste); B:=Basis(NullSpa e(M)); delete Liste; delete M ; Liste2:=[ &+[B[i ℄[j℄∗
S[j℄: j in {1..m}℄: i in {1..#B}℄; Lpv:=LinearSystem(LL,Liste2); return Lpv; end fun tion;Cal ulde
Da
. Ce programmefaitappelàeuxsous-programmesse tionreduite etrand- se tionreduite.Dontnous donneronsle odesour eplusloin.// Pour des raisons de ommodite, nous allons faire // en sorte de hoisir $D_a$ reduit. fun tion Da(V,Points ,M,T,r) R:=MinDim(V,Points); n:=R[1℄; d:=R[2℄; L:=R[3℄; Proj:=R[4℄; Liste:=R[5℄; Poly:=Random(L); F:=BaseField(V); q :=#F;
printf "Le degre minimal d'interpolation pour D_a est %o. ",R[1℄;
while q^ d lt M do
A:=Se tionReduite(V,L); if A ne 0
then printf "Le resultat obtenu pour
D_a a ete trouve de maniere deterministe , ave une hypersurfa e de degre %o. ",n; return A;
end if;
// En as d'e he , on augmente le degre d'interpolation // et on reinitialise notre syst\`eme lineaire.
n+:=1;
L:=LinearSystem(Proj,n); L:=LinearSystem(L,Liste); L:=LinearSystemTra e(L,V); d:=Dimension(L);
end while;
print "Passage en re her he aleatoire pour D_a. "; delete d;
for i:=1 to r do
printf "On demarre les re her hes ave des hypersurfa es de degre %o pour D_a. ",n; A:=RandSe tionReduite(V,L,T);
if A ne 0
then printf "On obtient une hypersurfa e de degre %o fournissant D_a. ",n;
return A; end if;
F.1. Diviseurs
∆
- onvenables 157L:=LinearSystem(Proj,n); L:=LinearSystem(L,Liste); L:=LinearSystemTra e(L,V); end for; return "E he "; end fun tion; // Cette fon tion fait une re her he deterministe // d'un element reduit d'un systeme lineaire. fun tion Se tionReduite(V,L) assert IsNonSingular(V); assert IsIrredu ible(V); F:=BaseField(V); d:=Dimension(L);
// On doit parametrer le systeme lineaire par // un espa e proje tif de meme dimension. // Le probleme est que MAGMA, ne omprend // la notion d'espa e proje tif de dimension nulle. // Il faut don ommen er par traiter le as ou // le systeme lineaire n'a qu'un seul element. if d eq 0 then Coeffts:=[[1℄℄; else Pd:=Proje tiveSpa e(F,d); Coeffts:=RationalPoints(Pd); end if; Se :=Se tions(L); // On teste tous les elements du systeme lineaire jusqu'a // e que l 'on en trouve un reduit. for i :=1 to #Coeffts do Poly:=&+[Coeffts[i ℄[j℄
∗
Se [j℄: j in {1..d+1}℄; D:=S heme(V,Poly); if EstReduit(D) then return Poly; end if; end for;print "Au un element reduit trouve de maniere deterministe"; return 0;
// Cette fon tion effe ute une re her he aleatoire // d'un element reduit d'un systeme lineaire.
fun tion RandSe tionReduite(V,L,m)
for i:=1 to m do // Il faut eviter le diviseur nul dans notre systeme lineaire. // Voila omment nous allons pro eder. Poly:=Random(L); while Poly eq 0 do Poly:=Random(L); end while;
D:=S heme(V,Poly);
if EstReduit(D) then return Poly; end if;
end for;
print "Au un element reduit trouve de maniere aleatoire"; return 0;
end fun tion;
Cal ul de
Db
. Nousdonnonslesdeuxprogrammespermettantde al ulerrespe tivementD+b
etD
−
b
. Tout ommele programme pré édent, es programmes appellent ha un deux sous-programmesee tuant desre her hesexhaustivesoualéatoires.Ces sous-programmes ressemblantfortementauxprogrammesse tionreduiteetrandse tionreduite,nousn'avons pasjugéné essairedelesajouterdans ette annexe.Demême, nous neprésenteronspaslesprogrammes dans leurintégralité. Car ertaines partiessontun opié/ olléd'undesprogrammedéjàprésenté
// Cette fon tion permet de al uler la partie // effe tive d'un diviseur $D_b$ lorsque
// l 'on a al ule $D_a$.
// Pour des raisons de simpli ite , nous allons imposer // a $D_b^+$ d'eviter le lieu singulier de $D_a$ hors // du support de $\Delta$.
fun tion Dbplus(V,Points ,M,T,r,Ha)
// On doit se donner un degre minimal d'interpolation // On se donne elui de $H_a$ qui est tout indique.
Proj:=AmbientSpa e(V); DA:=S heme(Proj,Ha); Da:=S heme(V,Ha); F:=BaseField(V); q :=#F;
F.1. Diviseurs
∆
- onvenables 159// Il faut ensuite onstruire le s hema a eviter.
// C'est
−
a−
dire tous les points geometriques singuliers // de $D_a$ qui sont hors du support de $\Delta$.// C'est pour ela que nous allons onstruire le s hema // "evite". // Par ailleurs il faut memoriser les points du support // de $\Delta$ qui sont singuliers pour $D_a$ // ar en es derniers , $D_b^+$ devra etre lisse! // C'est pourquoi nous allons onstruire la liste DaSing, // puis le s hema "evite2".
UA:=SingularSubs heme(Da); assert Dimension(UA ) eq 0; evite:=UA; MultiA:=[℄; DaSing:={ }; N:=#Points; for i:=1 to N do mi:=Multi(UA ,Liste[i ℄); Append(~MultiA,mi); // Il faut enlever les points du support de $\Delta$ // que l 'on ne doit bien sur pas eviter. if mi gt 0 then DaSing join:= {Liste[i℄}; evite:=DiffIter(evite ,Liste[i℄,mi); end if; end for;
// Il y a deux fa ons de programmer le s hema vide.
// C'est le s hema d'equation 1 et elui d'equations x,y,z,t. // Le se ond se omporte mieux ave la fon tion meet don :
if IsEmpty(evite) then
evite:=EmptySubs heme(Proj); end if;
if IsEmpty(DaSing) then
evite2:=EmptySubs heme(Proj); else evite2:=Cluster(DaSing); end if;
// On onstruit ensuite notre systeme lineaire.
d:=
−
1;// un ar il sera in remente des le debut de la bou le.
deg:=TotalDegree(Ha); n:=deg
−
1;while d eq
−
1 do n+:=1;L:=LinearSystem(Proj,n); L:=LinearSystem(L,Liste); L:=Complement(L,DA);
L:=LinearSystemTra e(L,V);
// Afin de gagner du temps,
// on verifie que le s hema a eviter ne ren ontre // pas l'ensemble des points bases de $L$. // On doit aussi verifier que las points de evite2 // ne sont pas generiquement de multipli ite // superieure ou egale a $2$ dans $L$. R:=BaseS heme(L); if IsEmpty(DaSing) then z:=0; else z:=&+[Multipli ity(L,P)
−
1: P in DaSing℄; end if;if z eq 0 and IsEmpty(evite meet R) then d:=Dimension(L); else d:=
−
1; end if; end while; delete UA; delete R; printf "Le degre minimal d'interpolation pour D_b^+ est %o. ",n; // Ensuite, on fait omme d'habitude... // Cette fon tion fournit $D_b^−
$. fun tion Dbmoins(V,Points ,M,T,r,Ha,Hb)Proj:=AmbientSpa e(V); DA:=S heme(Proj,Ha); Da:=S heme(V,Ha); DB:=S heme(Proj,Hb); Db :=S heme(V,Hb); F:=BaseField(V); q :=#F; Liste:=[Proj!p: p in Points℄; N:=#Liste;
F.1. Diviseurs
∆
- onvenables 161 // Il faut onstruire le s hema des points // bases. // Nous allons par ailleurs lister trois types de // Points: // 1) les points que $D_b^−
$ doit eviter; // 2) les points que $D_b^−
$ doit interpoler // ave une multipli ite fixee; // 3) eux que $D_a^−
$ doit interpoler // ave un ve teur tangent fixe. U:=Da meet Db; S hemaBase:=U; Base:=[℄; NonBase:=[℄; BaseSpe:=[℄; mult:=[℄;// Les elements de Base sont la donnee d'un point et de la
// multipli ite de $ U $ en e point. Les elements de baseSpe sont la // donnee d'un point et d'un ve teur tangent en e point. for j:=1 to N do p:=Liste[j℄; mj:=Multi(U,p); Append(~mult,m j
−
1); if mj eq 0 then printf "ERREUR: D_a et D_b^+ ne se roisent pas en %o. ",p; elif mj eq 1 then S hemaBase:=Differen e(S hemaBase,Cluster(p)); Append(~NonBase,p); elif mj eq 3 thenS hemaBase:=DiffIter(S hemaBase,p,2); if IsNonSingular(Da,p)
then Append(~BaseSpe,[