variables libres de (?x.xy) x et de variables liées ?xy.x
-
16-10-2019 - |
Question
Je résolvait des exercices sur le calcul Lambda. Cependant, mes solutions sont différentes des réponses et je ne peux pas voir ce qui est faux.
-
Trouver des variables libres de $ (\ lambda x.xy) x $.
Mes travaux: $ FV ((\ lambda x.xy) x) = FV (\ lambda x.xy) \ cup FV (x) = \ {y \} \ cup \ {x \} = \ {x, y \ } $.
La réponse du modèle: $ FV ((\ lambda x.xy) x) = \ {x \} $ .
-
Trouver des variables liées de $ \ lambda xy.x $.
Mes travaux: Une variable $ y $ a sa liaison, mais puisqu'il n'est pas présent dans le corps du $ \ lambda -abstraction $, il ne peut pas être lié et donc $ BV (\ lambda xy.x) = \ {x \} $ seulement.
La réponse du modèle:. $ BV (\ lambda xy.x) = \ {x, y \} $
La solution
-
Votre réponse est correcte, $ y $ est certainement gratuit. Le seul modèle est erroné. Peut-être il y avait une faute de frappe et la réponse a été signifié pour $ (\ lambda y.xy) x $
-
Cela dépend de la définition précise de $ BV $. Souvent seulement FV $ est définie formellement, car il est plus important. (Variables liées peuvent être librement renommé dans un sous-terme, mais les variables libres ne peuvent pas.) Donc, si $ BV $ est définie comme \ Begin {eqnarray *} BV (x) = & & \ {\} \\ BV (M N) & = & BV (M) \ tasse BV (N) \\ BV (\ lambda x.M) & = & \ {x \} \ tasse BV (M) \\ \ End {eqnarray *} alors la réponse du modèle est correct. Notez que cette définition est logique: Si vous avez un terme $ M $ et se substituer à une variable $ libre x $ un autre terme $ N $ sans variables liées (BV $ (N) = \ {\} $), vous attendez que $ BV (M) = BV (M [x: = N]) $. Si vous souhaitez considérer que des variables liées qui apparaissent également sous la $ lambda $ \, cette propriété ne serait pas tenir.