Question

Lors de l'apprentissage d'un algorithme d'unification général, nous avons appris la règle décompose , qui stipule l'unification

$$ g \ tasse \ {f (a_0, ... a_k)= f (b_0, ..., b_k) \ \ \ rightarrow g \ tast \ {A_0= b_0, ... a_k= b_k \}. $$

la question de, "Et si $ f $ n'est pas injectif?" s'est démarqué pour moi. Dites $ f $ n'est pas injectif, et nous traversons cette branche de calcul où $ f (a_0, ... a_k)= f (b_0, ..., b_k) \ RightARrow \ {A_0= B_0, ..., a_k= b_k \} $ et conduire à une défaillance. Est-il possible qu'il y ait une autre façon d'assigner $ a_0, ..., a_k $ to $ b_0, ... b_k $ tel qu'il est injectable?

Je pensais peut-être qu'un exemple de démontrer ce que je veux dire. Cela peut ne pas être un bon exemple, mais dire que nous considérons que $ f (x, y)= x + y $ , et nous voulons unifier $ f (h (a), g (b))= F (g (c), h (d)) $ alors nous échouerions en attribuant $ \ {h (a)= g (c), g (b)= h (d) \} $ en décompose, mais réussissez à l'unification si nous allumons d'abord les arguments de $ f $ (valide depuis $ f (a, b)= f (b, a) $ ), ce qui donnera < SPAN CLASS="MATH-CONTENEUR"> $ \ {A \ MAPSTO D, B \ MAPSTO C \} $ .

Je lisais un peu à ce sujet dans Ce papier À la page 6, où ils discutent de l'idée de la striction en termes de décomposition, mais je ne comprends pas bien, et plus généralement comment nous pouvons effectuer cette étape d'unification de décomposer sur un général $ F $ sans en quelque sorte en arrière sur une défaillance.

Était-ce utile?

La solution

ici $ f $ n'est pas une fonction mathématique. Il s'agit plutôt d'un symbole de la fonction . Ne pense pas à $ F (A, B) $ à la suite de l'évaluation de la fonction à Paramètres A, B $ . Pensez plutôt à cela comme terme dans une expression symbolique - c'est un objet syntaxique qui n'est pas destiné à être interprété de la manière dont vous l'interprétez.

Si vous le souhaitez, vous pouvez y penser comme si chaque symbole de fonction dans une expression symbolique est une fonction injective; Mais ce n'est pas vraiment précis, c'est juste une façon brute de penser aux expressions symboliques.

Vous ne pouvez pas définir $ f (x)= x + y $ . $ f $ est un symbole de fonction non interprété. Vous n'êtes pas autorisé à définir une fonction particulière. Plutôt, $ f $ est un stand-in pour une fonction qui n'est pas encore définie. Une façon d'y penser, c'est que toutes les conclusions que vous dessinez de l'unification sont des conclusions qui devraient contenir pour toutes les fonctions $ f $ (non seulement une seule). < / p>

Licencié sous: CC-BY-SA avec attribution
Non affilié à cs.stackexchange
scroll top