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.

  1. 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 \} $

  2. .
  3. 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 \} $

Était-ce utile?

La solution

  1. 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 $

  2. 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.

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