• Aucun résultat trouvé

Dans le chapitre suivant, on est amené à opérer des modications aux programmes de T. Gómez-Díaz. Le problème est que celles-ci n'apparaissent pas sur les arbres de scindages associés aux calculs dans la clôture constructible dynamique ^K d'un corps K. Ces derniers, introduits dans [9, 28], permettent d'illustrer un calcul opéré dans ^K. Aussi, le but de cette section est de proposer un concept plus souple que la notion d'arbre de scindages qui laisse transparaître les futurs changements opérés au sein des programmes de la clôture constructible dynamique. Sa pertinence sera donc justiée a posteriori par le chapitre suivant. On ne donne pas une dénition de cet arbre, on introduit celui-ci sur l'exemple très simple du cercle unité traité par les programmes de T. Gómez-Díaz.

Soient n le nombre d'appels de parameter en un point d'un calcul et x1;x2;:::;xn

les paramètres successivement introduits. A chaque calcul dans ^K, on associe un arbre binaire, i.e. un arbre pour lequel chaque n÷ud a au plus deux ls. Plus précisément, un n÷ud possède deux ls si et seulement si il s'agit d'un test d'égalité pour lequel les deux réponses true et false sont possibles, autrement dit, s'il s'agit d'un scindage.

L'exploration de cet arbre binaire se fait de la racine vers la feuille, en privilégiant systématiquement le ls de gauche, pour lequel la réponse est false, au détriment du ls de droite (réponse true).

Dénition 4.3.1

L'ensemble des contraintes vériées par les paramètresx1;:::;xnen un point d'un calcul dans ^K est appelé le cas courant.

D'après les sections précédentes, les paramètres x1;:::;xn sont soumis à un ensemble de lois qui constitue un système de T. Gómez-Díaz sans carré dans une tour T = (L0;L1;:::;Ln). Soient un entier i compris entre 1 et n et f 2 Li. Dans le cas d'un scindage :

f = 0?

falsexxp p p p N N N trueN ''

que devient le cas courant? Par dénition, il est alors égal au nouvel ensemble de lois subies par les paramètres x1;:::;xn dans la branche de calculs false.

Dénition 4.3.2

Lecas suivant correspond à l'ensemble des contraintes subies par les paramètres x1;:::;xn dans la branche de calculs true.

Une fois arrivé à une feuille, les programmes remontent jusqu'au premier n÷ud pourvu de deux ls, empruntent alors la branche de droite et l'exploration se continue, en privilégiant continuellement le ls de gauche.

Exemple. On considère le cas très simple du cercle unité dans Q[X1;X2] :

n X22 +X12;1 = 0

Ce système est traduit dans les programmes de la clôture dynamique par :

Clôture constructible dynamique 137

x:CL:= parameter('x) y:CL:= parameter('y)

mustBeEqual(y**2+x**2-1,0)

CL représente la clôture constructible dynamique de Q. Avec les notations adoptées précédemment, les symboles x et y jouent le rôle de x1 et x2. On peut associer à l'éxécution de cet exemple l'arbre binaire suivant.

138 Clôture constructible dynamique

x:=parameter(0x) y :=parameter(0y)

mustBeEqual(y2+x2;1;0)

X22 +x2;1 unitaire?

true

X22+x2;1 a un carré?

x2;1 = 0?

false

uu❦ ❦ ❦ ❦ ❦ ❦

true

**

( y2+x2;1 = 0 x2;16= 0

( any y x2;1 = 0

mustBeEqual(y2+x2;1;0)

OOO

mustBeEqual(y2;0)

X22 unitaire?

true

X22 a un carré?

true

mustBeEqual(y;0)

( y= 0 x2;1 = 0

Le but des paragraphes suivants est de montrer comment il faut lire et interpréter cet arbre.

L'examen de la contraintemustBeEqual(y2+x2;1;0) débute par une première ques-tion : le polynôme X22+x2;1 de Q(x)[X2] est il unitaire? La réponse est clairement

Clôture constructible dynamique 139 oui, d'où la branche :

true

qui s'en suit. On passe alors à une deuxième question : le polynômeX22+x2;1 a-t-il un carré? Il faut préciser qu'on retrouve ce schéma à chaque imposition d'une contrainte (voir section 4.4.2). Puisque le paramètre x n'est soumis à aucune contrainte, celui-ci est égal à l'indéterminée X1. De même, l'anneau L1 est égal à Q[X1]. Il s'agit donc de répondre à la question :

DiscX2(X22+x2;1)2(L1)? = (Q[X1])? = (Q[x])??

Or, ce discriminant est égal à 4(x2 ;1) et s'annule donc en 1. La question induit donc deux réponses possibles, suivant que l'expression polynomialex2;1 est nulle ou pas. Ce qui amène le scindage :

x2;1 = 0?

falsevv❧ ❧ ❧ ❧ true ((

On rappelle que le programme privilégie la branche de gauche qui est toujours associée à une réponse de type false. Le polynôme X22+x2;1 est sans carré sous l'hypothèse x2 ;1 6= 0. Puisqu'il n'y a pas d'autre contrainte à examiner, on obtient donc un premier système constructible :

( y2+x2;1 = 0 x2;16= 0

Le programme remonte alors au n÷ud x2;1 = 0? et choisit cette fois la branche de droite (true). Avant de poursuivre, le cas courant est réactualisé : il est égal à ce qui constituait justement le cas suivant au niveau du n÷ud x2;1 = 0? après réduction (voir section 4.4.3) : (

any y x2;1 = 0

Ainsi, dans un arbre de ce type, le système gurant en dessous de la branche de droite d'un scindage correspond toujours au cas suivant réduit. On le note mutnext. A ce stade, le programme rééxamine chacune des contraintes du système de départ avec mutnext comme nouveau cas courant. On peut noter que c'est le rôle de la fonction parameterqui sera étudiée en détails dans le chapitre suivant. Dans l'exemple du cercle unité, il n'y a qu'une contrainte : mustBeEqual(y2+x2;1;0). Elle est tout d'abord réduite (section 4.4.2) par rapport à la contraintex2;1 = 0. Cette étape est représentée dans l'arbre par :

mustBeEqual(y2+x2;1;0)

OO

mustBeEqual(y2;0)

140 Clôture constructible dynamique Toutes les èches de ce type renvoient systématiquement à une étape de réduction d'une contrainte. On aboutit alors à la contrainte mustBeEqual(y2;0). Le polynôme X22 est unitaire et a clairement un carré. Cela se traduit par les deux branches successives :

X22 unitaire?

true

X22 a un carré?

true

mustBeEqual(y;0)

On obtient alors le polynômeX2(qui est bien unitaire et sans carré) et donc le deuxième

système : (

y= 0 x2;1 = 0

Finalement, les programmes de la clôture constructible dynamique décrivent le cercle unité au moyen des deux systèmes :

( y = 0

x2 ;1 = 0 ;

( y2+x2;1 = 0 x2;16= 0