Calcul des prédicats : les substitutions

Une substitution est le fait de remplacer une variable par un autre terme. Nous représenterons la substitution au sein de l'ensemble par une lettre grecque, et l'opérateur de substitution par le signe  / , mais nous pouvons aussi retrouver dans certains ouvrages le signe = dont la signification est identique.

Nous traduirons la notation  { X / Y }  par « X est remplacé par Y »1.

 

Définition de la substitution

Une substitution est un ensemble de la forme σ  =   { X1 / t1, ..., Xn / tn }  tel que  

  •  ∀ i ∈  { 1, ..., n } Xi ∈ V
  •  ∀ i ∈  { 1, ..., n } ti ∈ T
  •  ∀ i, j ∈  { 1, ..., n } i ≠ j ⇒ Xi ≠ Xi
  •  ∀ i ∈  { 1, ..., n } Xi ≠ ti

 

Domaine et co-domaine

Soit σ  =   { X1 / t1, ..., Xn / tn }  une substitution, nous avons
dom(σ)  =   { X1, ..., Xn }  et codom(σ)  =  var(t1, ..., tn)

 

Exemples de substitutions

  •  { X / 1, Y / 2, Z / 3 }  substitue 1 à X (remplace X par la valeur 1), substitue 2 à Y, et 3 à Z.
  •  { X / 3, Y / f(Z) } 
  •  { X / Z, Y / f(Z) } 

 

Exemples non-valides

  •  { X / X, Y / 1 }  n'est pas une substitution car on ne peut substituer une variable par elle-même.
  •  { X / 1, X / 2, Y / 3 }  n'est pas une substitution car on ne peut lier une variable à deux termes différents. Sinon, devons nous substituer 1 ou 2 à X ?

 

Substitutions appliquées à des expressions

Nous pouvons aussi appliquer des substitutions sur des termes composés ou des expressions prédicatives. Si nous appliquons une substitution σ sur l'expressions prédicative E (dont nous noterons le résultat σE), nous devons remplacer, pour toute variable X que nous rencontrons dans E, la variable X par le terme t qui lui est associé dans E.

Substitution (σ) | Expression (E) | Résultat (σE) |
 { X / erol_gelenbe, Y / 1 }  | p(X, X, guido_van_rossum) | p(erol_gelenbe, erol_gelenbe, guido_van_rossum) |
 { X / isaac_newton, Y / 1 }  | p(X, Z) | p(isaac_newton, Z) |
 { X / erol_gelenbe, Y / f(Z) }  | p(g(Y), X, h(X), W) | p(g(f(Z)), erol_gelenbe, h(erol_gelenbe), W) |

 

Composition

Nous obtenons la composition σθ de σ  =   { X1 / t1, ..., Xn / tn }  par θ  =   { Y1 / u1, ..., Ym / um }  à partir de { X1 / t1θ, ..., Xn / tnθ, Y1 / u1, ..., Ym / um }  en supprimant tous les Xi / tiθ tels que Xi = tiθ et tous les Yj / uj tels que Yj ∈ codom(σ)

 

Cette page utilise des fonctions particulières d'affichage de formules (plus d'infos) , vous pouvez choisir entre un affichage mathml, un affichage html, et un affichage texte

 

Document créé le 10/07/2010, dernière modification le 28/10/2018
Source du document imprimé : https://www.gaudry.be/calcul-predicats-substitution.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Notes

  1.  Notation : Dans certains ouvrages  { Y / X }  est traduit par « Y remplace X », mais nous n'utiliserons jamais cette notation dans les pages qui suivent car cette notation est inversée par rapport à celle que nous utilisons. Une fois qu'un choix de notation est pris, nous devons nous y tenir afin d'éviter toute confusion possible.

 

Références

  1. livre Langue du document :fr IHDCB337 - Technique d'intelligence artificielle : JM Jacquet, Programmation déclarative (2009)
  2. livre Langue du document :fr IHDCB337 - Technique d'intelligence artificielle : H Toussaint, Tp (2009)
  3. livre Langue du document :fr Logique pour l'informatique : Serenella Cerrito, Introduction à la déduction automatique (October 2008)

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.