• Aucun résultat trouvé

2.2 Algèbre des termes

2.2.2 Σ-algèbre

On confondra σ avec σ.

Exemple 2.35. Soient Σ la signature définie dans l’exemple 2.24, t le terme plus(x , succ(y)) et σ la substitution {x 7→ zero ; y 7→ succ(z)}. Le terme t0 = σ(t)est donné par : plus(zero, succ(succ(z))). On utilisera parfois une notation similaire à celle des contextes pour indiquer les variables contenues dans un terme. Par exemple, t[x, y] nous informe que t a pour variables {x, y} et le terme t[t1, t2]représente le terme σ(t) pour σ = {x 7→ t1 ; y 7→ t2}. Dans notre exemple, t0 = t[zero, succ(z)].

Définition 2.36.On appelle relation de subsomption et l’on note  la relation telle que pour tous t et s de T (Σ, X ), t  s ssi il existe une substitution σ : X → T (Σ, X ) telle que σ(t) = s. On dit alors que t subsume s. Si ρ est un renommage des variables de t et de s telle que Var(ρ(t)) ∩ Var(ρ(s)) = ∅ et que ρ(t)  ρ(s), alors on dit que t filtre s et l’on note t  s. Une substitution σ est dite plus générale que µ, ce que l’on note σ  µ s’il existe une substitution σ0 telle que µ = σ0σ. On dit aussi que µ est une instance de σ.

Définition 2.37. Deux termes t et s sur une signature Σ sont dits unifiables s’il existe une substitution σ telle que σ(t) = σ(s). Dans ce cas, σ est un unificateur de t et s. Si t et s sont unifiables, on appelle unificateur principal de t et s et l’on note mgu(t, s) l’unificateur, unique à un renommage près, dont tout autre unificateur σ0 de t et s est une instance.

2.2.2 Σ-algèbre

Jusqu’ici, les notions rencontrées étaient essentiellement syntaxiques. Nous avons défini un vocabulaire permettant de décrire des objets à partir de symboles fonction-nels. Ces symboles n’ont pas encore de « sens » à proprement parler. Pour pouvoir leur en attribuer un et énoncer des propriétés sur les objets ainsi décrits, il est né-cessaire d’associer au vocabulaire de description une sémantique. Pour ce faire, l’on associe à chaque symbole fonctionnel un schéma de calcul appelé interprétation. 32

2.2. ALGÈBRE DES TERMES

Définition 2.38. Soit Σ = (S, F) une signature, on appelle Σ-algèbre (ou inter-prétation de Σ) A la donnée de :

pour tout s ∈ S, un ensemble non vide | A |s appelé domaine d’interpré-tationdes termes sortés par s,

pour tout f : s1× . . . × sn→ s ∈ F, une application fA :| A |s1× . . . × | A |sn → | A |s

appelée interprétation de f. On note Alg(Σ) la classe des Σ-algèbres.

Exemple 2.39. Soit Σ = (S, F) la signature comprenant la sorte Nat et les trois symboles fonctionnels zero :→ Nat, succ : Nat → Nat et plus : Nat × Nat → Nat. La donnée de | A |Nat = N, zeroA = 0, succA : x 7→ x + 1 et plusA : (x, y)7→ x + y forme une Σ-algèbre.

Remarque. T (Σ) est une Σ-algèbre appelée algèbre syntaxique close et définie de la façon suivante :

pour tout s ∈ S, le domaine d’interprétation des termes sortés par s est l’en-semble des termes clos sortés par s : T (F),

tout symbole de fonction f ∈ F est trivialement interprété par lui-même : fT (F )= f.

Cette algèbre joue un rôle particulier puisqu’elle possède la propriété dite d’initialité : pour tout A ∈ Alg(Σ), il existe un unique morphisme de T (Σ) dans A.

Définition 2.40.Soient Σ = (S, F) une signature et A une Σ-algèbre. On appelle A-valuation toute application δ : X → A telle que si x : s, alors δ(x) ∈ | A |s.

Définition 2.41. Soient Σ = (S, F) une signature, A une Σ-algèbre et δ une A-valuation. On appelle sémantique dans A selon δ et on note J.K

δ

A le morphisme de T (Σ, X ) vers A défini par :

pour tout x ∈ X , JxK

δ

A= δ(x);

pour tout terme t = f(t1, . . . , tn)∈ T (Σ, X ), JtK

δ A = fA Jt1K δ A, . . . ,JtnKδA . 2.2.3 Spécification équationnelle

On introduit dans cette section la notion de spécification équationnelle. Ce type de spécification consiste à établir un ensemble d’équations permettant de restreindre l’ensemble des interprétations « licites » des symboles fonctionnels. En définissant des propriétés d’égalité sur les termes de la signature, elles caractérisent une classe d’algèbres dans laquelle on se positionne pour raisonner et prouver des conjectures.

Définition 2.42.Soit Σ = (S, F) une signature. On appelle équation ou axiome sur Σ (et sur un ensemble de variables X ) toute paire (t, t0)∈ T (Σ, X )s×T (Σ, X )s, où s ∈ S, notée t ∼= t0.

Définition 2.43.Soient Σ = (S, F) une signature et A une Σ-algèbre. On dit que A est un modèle pour l’équation t ∼= t0 ou encore que t ∼= t0 est valide dans A et l’on note

A |= t ∼= t0 ou t =A t0 si pour toute valuation δ, JtK

δ

A =Jt0KδA.

Remarque. Soit E un ensemble d’équations. On dit que la Σ-algèbre A est un modèle de E et l’on note

A |= E

si A est un modèle pour toutes les équations de E. Si t ∼= t0 est une équation sur Σ, alors on notera également

E |= t ∼= t0 si tout modèle de E est modèle de t ∼= t0.

Remarque. Soient Σ = (S, F) une signature et A une Σ-algèbre. On note T h(A) l’en-semble des équations valides dans A et Mod(E) l’enl’en-semble des Σ-algèbres modèles de E.

Définition 2.44. On appelle spécification équationnelle ou spécification d’un type abstrait algébrique tout couple (Σ, E) où Σ est une signature et E un ensemble d’équations sur Σ.

Remarque. Soient A une Σ-algèbre et (Σ = (S, F), E) une spécification équation-nelle. On dit que A est un modèle pour (Σ, E) si A est un modèle pour E.

George Boole

George Boole (2 no-vembre 1815 à Lincoln – 8 décembre 1864 à Ballintemple) est un lo-gicien, mathématicien et philosophe britannique. Il est à l’origine de la logique fondée sur la structure algébrique qui porte son nom. Autodi-dacte, il publia ses pre-miers travaux d’algèbre tout en exerçant son mé-tier d’instituteur et de di-recteur d’école dans la ré-gion de Lincoln. Il ob-tint la médaille royale de la Royal Society (acadé-mie des sciences britan-niques) en 1844 puis une chaire de mathématiques au Queen’s College de Cork en 1849.

Exemple 2.45.Soient (Σ = (S, F), E) une spécification équationnelle et X un S-ensemble de variables définis par :

S = {Bool} F =            True : → Bool False : → Bool ¬ : Bool → Bool

∧ : Bool × Bool → Bool ∨ : Bool × Bool → Bool

X = {a : Bool, b : Bool} E =                ¬True ∼= False ¬False ∼= True True∧ a ∼= a False∧ a ∼= False ¬(a ∧ b) ∼= ¬a ∨ ¬b ¬¬a ∼= a L’algèbre de Boole B définie par :

| B |Bool={0, 1}

TrueB = 1

FalseB = 0

B = et :{(0, 0) 7→ 0, (0, 1) 7→ 0, (1, 0) 7→ 0, (1, 1) 7→ 1} 34

2.2. ALGÈBRE DES TERMES

B = ou :{(0, 0) 7→ 0, (0, 1) 7→ 1, (1, 0) 7→ 1, (1, 1) 7→ 1}

¬B = non :{0 7→ 1, 1 7→ 0} est un modèle de (Σ, E).

2.2.4 Problème du mot, raisonnement équationnel

Définition 2.46. Soient (Σ = (S, F), E) une spécification équationnelle, t, t0 ∈ T (Σ, X ), on appelle problème du mot associé à t ∼= t0 la recherche de la validité de t ∼= t0 dans tout modèle de E, autrement dit la démonstration de E |= t ∼= t0. Remarque. L’objectif du raisonnement équationnel est de ramener le problème du mot, qui est un problème sémantique, à un problème syntaxique.

Définition 2.47.Soit (Σ = (S, F), E) une spécification équationnelle, on appelle théorie équationnelleet on note =E la plus petite congruence sur T (Σ, X ) telle que :

∀σ : X → T (Σ, X ), ∀(t ∼= t0)∈ E, σ(t) =E σ(t0)

Autrement dit, par définition de la congruence sur une Σ-algèbre, =E est la fer-meture symétrique réflexive transitive de la relation :

{ C[σ(t)], C[σ(t0)]

| σ : X → T (Σ, X ), (t ∼= t0)∈ E, C ∈ C(Σ)}

Définition 2.48.Soit (Σ = (S, F), E) une spécification équationnelle, on appelle raisonnement équationnelle raisonnement basé sur les règles d’inférences sui-vantes : t ∼= t0∈ E t ∼= t0 (axiome) t ∼= t (réflexivité) t ∼= t0 t0= t (symétrie) t ∼= t0 t0 = t00 t ∼= t00 (transitivité) t ∼= t0 σ(t) ∼= σ(t0)∀σ : X → T (Σ, X ) (substitution) t ∼= t 0 C[t] ∼= C[t0]∀C ∈ C(Σ) (contexte) On note E ` t ∼= t0 si l’équation t ∼= t0 peut être obtenue à partir de E en utilisant uniquement les règles du raisonnement équationnel.

Remarque. Les deux précédentes définitions sont équivalentes : ∀t, t0∈ T (Σ, X ), t =E t0 ssi E ` t ∼= t0

Exemple 2.49.Soit (Σ, E) la spécification équationnelle décrite dans l’exemple 2.45. On a False ∨ x =E x comme le montre la dérivation suivante :

¬True ∼= False∈ E ¬True ∼= False (ax.) ¬True ∨ x ∼= False∨ x (cont.) False∨ x ∼=¬True ∨ x (sym.)

¬¬a ∼= a ∈ E ¬¬a ∼= a (ax.) ¬¬x ∼= x (subst.) ¬y ∨ ¬¬x ∼=¬y ∨ x (cont.) ¬y ∨ x ∼=¬y ∨ ¬¬x (sym.)

¬(a ∧ b) ∼=¬a ∨ ¬b ∈ E ¬(a ∧ b) ∼=¬a ∨ ¬b (ax.) ¬a ∨ ¬b ∼=¬(a ∧ b) (sym.) ¬y ∨ ¬¬x ∼=¬(y ∧ ¬x) (subst.) ¬y ∨ x ∼=¬(y ∧ ¬x) (trans.) ¬True ∨ x ∼=¬(True ∧ ¬x) (subst.)

False∨ x ∼=¬True ∨ x ¬True ∨ x ∼=¬(True ∧ ¬x) True∧ a ∼= a∈ E True∧ a ∼.. = a (ax.) .. ¬(True ∧ ¬x) ∼= x ¬True ∨ x ∼= x (trans.) False∨ x ∼= x (trans.) Garrett Birkhoff Garrett Birkhoff était un mathématicien américain (19 janvier 1911 – 22 no-vembre 1996), fils du ma-thématicien George Bir-khoff (1884 – 1944). Il est entré à l’université de Cambridge dans le but d’y étudier la phy-sique mathématique mais il y étudia finalement l’algèbre abstraite. Bien qu’il ne possédait au-cun doctorat, il se consa-cra à l’enseignement et à la recherche. Il fonda notamment une nouvelle branche des mathéma-tiques, l’agèbre univer-selle, avec la publica-tion en 1935 de son ar-ticle « On the Structure of Abstract Algebras ». Cinq théorèmes portent le nom de Théorème de Bir-khoff. Trois sont dûs à George Birkhoff et deux sont dûs à Garrett Bir-khoff.

Théorème 2.50. Soit (Σ = (S, F), E) une spécification équationnelle, le théo-rème de Birkhoff nous assure que, pour tous termes t et t0 :

E ` t ∼= t0 ssi E|= t ∼= t0

Autrement dit le raisonnement équationnel est correct et complet.