Terme (logique)

De testwiki
Aller à la navigation Aller à la recherche
Le terme (x + f(x,y)) * 3 sous forme arborescente

Un terme est une expression de base du calcul des prédicats, de l'algèbre, notamment de l'algèbre universelle, et du calcul formel, des systèmes de réécriture et de l'unification. C'est l'objet produit par une analyse syntaxique. Sa principale caractéristique est d'être homogène (il n'y a que des opérations de base et pas d'opérations logiques) et de décrire l'agencement des opérations de base. Un terme est parfois appelé une formule du premier ordre. Par exemple, (x + f(x,y)) * 3 et *(+(x,f(x,y)),3) et *+xfxy3 et la figure à droite représentent le même terme sous quatre formes externes différentes.

Description

À la base des termes, il y a des opérateurs qui sont répartis dans une signature. Les opérateurs sont les symboles de base, tandis que la signature attribue une arité à chaque opérateur. L'arité est le nombre d'arguments qu'attend un opérateur. Ainsi il y aura des opérateurs unaires (d'arité 1), des opérateurs binaires (d'arité 2), des opérateurs ternaires (d'arité 3) et plus généralement des opérateurs n-aires. Les opérateurs 0-aires sont ceux qui n'attendent pas d'arguments et sont appelés des constantes. Dans le cas où on désire des termes avec des variables on ajoute à l'ensemble Σ0 un ensemble dénombrable X dit ensemble des variables. Plus formellement une signature est définie ainsi :

Σ=i=0Σi,

Σi est l'ensemble des opérateurs i-aires. Par exemple, dans les groupes, la signature comporte trois ensembles non vides d'opérateurs Σ0={e}, Σ1={_1} et Σ2={}. Autrement dit, dans les groupes il y a une constante e, un opérateur unaire qui s'écrit a1 (notation suffixe) quand il est appliqué à un élément a et un opérateur binaire qui s'écrit (notation infixe) ab quand il est appliqué à a et b. Notons cependant que la plupart du temps les termes sont écrits en notation préfixée, c'est-à-dire sous la forme f(a1,...,an), par exemple f(a1,a2,a3) pour un opérateur ternaire. Notons aussi que si l'arité est bien spécifiée, on peut se passer des parenthèses dans une notation dite notation polonaise ou notation de Łukasiewicz

Il y a différentes définitions des termes qui sont équivalentes.

Définition récursive

On peut définir récursivement l'ensemble T des termes ainsi

T=i=0fΣif(T,...ifois...,T)

Définition comme application d'un ensemble de positions vers une signature

La définition utilisant la notion d'ensemble de positions d'un terme permet de décrire facilement différentes propriétés et différents algorithmes sur les termes.

Un ensemble 𝑃 de mots sur l'ensemble des entiers positifs est un ensemble de positions si

  1. 𝑃 est fini et non vide,
  2. p𝑃 et q préfixe de p impliquent q𝑃,
  3. pi𝑃 et j{0} et j<i impliquent pj𝑃.

Un terme s est une application d'un ensemble 𝑃 de positions dans une signature avec la contrainte que si s(p)=fΣn alors pi𝑃 si et seulement si in. 𝑃 est alors appelé l'ensemble des positions du terme s et noté 𝑃𝑜𝑠(s).

La propriété 2. ci-dessus signifie que si p est une position d'un terme, alors toute position préfixe est aussi une position dans le terme (située au-dessus). La propriété 3. ci-dessus signifie que si p est une position d'un terme, alors toute position située sous le même symbole mais à sa gauche est aussi une position dans le terme. La contrainte ajoutée dit que si un nœud est étiqueté par un symbole d'arité n alors il a exactement n fils.

Définition en tant qu'arbre étiqueté orienté

Représentation arborescente des termes (n*(n+1))/2 et n*((n+1)/2)

Un terme peut être vu comme un arbre[1] étiqueté (à chaque nœud est associé une étiquette prise dans la signature) orienté (les fils d'un nœud sont ordonnés de droite à gauche). Il y a de plus une contrainte, à savoir que le nombre de fils d'un nœud est donné par l'arité de l'étiquette du nœud. On parle de représentation arborescente d'un terme.

Un exemple

Considérons la signature

  • Σ0=X{0,1,2,...}X={n,m,n,m}
  • Σ2={+,*,/}
  • Σi= pour 0i2.

Soit t le terme tel que 𝑃𝑜𝑠(t)={ε,1,2,11,12,121,122} et

  • t(ε)=/
  • t(1)=*
  • t(2)=2
  • t(11)=n
  • t(12)=+
  • t(121)=n
  • t(122)=1.

Il s'agit du terme de gauche de la figure ci-dessus. Il s'écrit /(*(n,+(n,1)),2) en notation récursive préfixée, /*+n1n2 en notation polonaise et (n*(n+1))/2 en notation infixe.

Quelques définitions liées aux termes

Le nombre d'éléments de 𝑃𝑜𝑠(s) s'appelle la taille de s. La position ε (le mot vide de ({0})*) est la racine et s(ε) est le symbole à la racine.

Un terme sans variable est dit clos ou fermé. Un terme qui n'est pas fermé est dit ouvert.

Le symbole à la position p dans t est le symbole de Σ associé à p𝑃𝑜𝑠(t) par la fonction t:𝑃𝑜𝑠(t)Σ. Si p𝑃𝑜𝑠(t) alors t(p), autrement dit le symbole à la position p dans t, n'est pas défini.

Si p est une position de t, le sous-terme de t à la position p s'écrit t|p et se définit comme suit. Les positions de t|p forment l'ensemble des suffixes de p dans Pos(t), autrement dit:

Pos(t|p)={q({0})*pqPos(t)}.

Enfin t|p(q)=t(pq). La racine de t|p est le symbole à la position p dans t, autrement dit t|p(ε)=t(p). Dans l'exemple ci-dessus, t|p est le terme n+2.

Algèbre et algèbre des termes

L'enracinement est l'opération qui consiste à prendre un opérateur f d'arité n et n termes t1, ..., tn et à créer un terme f(t1,...,tn). L'enracinement permet de munir l'ensemble des termes d'une structure d'algèbre universelle.

Il existe un morphisme naturel de l'algèbre des termes vers n'importe laquelle des algèbres de même signature. Ce morphisme fait de l'algèbre des termes sur une signature donnée Σ une algèbre initiale de la catégorie des algèbres de signature Σ.

Bibliographie

Voir aussi

Modèle:Colonnes

Notes & Références

  1. La tradition veut que la racine des arbres soit positionnée en haut!

Modèle:Portail