Variables libres y variables ligadas

Compartir Imprimir Citar
Concepto en matemáticas o informática

En matemáticas y en otras disciplinas que involucran lenguajes formales, incluida la lógica matemática y la informática, una variable libre es una notación (símbolo) que especifica lugares en una expresión donde puede tener lugar una sustitución y es no es un parámetro de esta o cualquier expresión de contenedor. Algunos libros antiguos usan los términos variable real y variable aparente para variable libre y variable ligada, respectivamente. La idea está relacionada con un marcador de posición (un símbolo que luego será reemplazado por algún valor), o un carácter comodín que representa un símbolo no especificado.

En programación informática, el término variable libre se refiere a las variables utilizadas en una función que no son ni variables locales ni parámetros de esa función. El término variable no local es a menudo un sinónimo en este contexto.

Una instancia de un símbolo variable es límites, en cambio, si el valor de ese símbolo variable ha sido límites a un valor específico o rango de valores en el dominio del discurso o del universo. Esto se puede lograr mediante el uso de cuantificadores lógicos, operadores de unión variable, o una declaración explícita de valores permitidos para la variable (como, "...donde n{displaystyle n} es un entero positivo".) Un símbolo variable en general límites si al menos una ocurrencia de ella está ligada.pp.142--143 Puesto que el mismo símbolo variable puede aparecer en varios lugares en una expresión, algunas ocurrencias del símbolo variable pueden ser libres mientras que otros están obligados,p.78 por lo tanto "libre" y "limitado" se definen primero para ocurrencias y luego se generalizan sobre todas las ocurrencias de dicho símbolo variable en la expresión. Sin embargo, la variable deja de ser una variable independiente en la que depende el valor de la expresión, ya sea un valor de verdad o el resultado numérico de un cálculo, o, más generalmente, un elemento de un conjunto de imagen de una función.

Tenga en cuenta que, si bien se entiende el dominio del discurso en muchos contextos, cuando no se proporciona un rango explícito de valores para la variable vinculada, puede ser necesario especificar el dominio para evaluar correctamente la expresión. Por ejemplo, considere la siguiente expresión en la que ambas variables están unidas por cuantificadores lógicos:

О О Sí.∃ ∃ x()x=Sí.).{displaystyle forall y,exists x,left(x={sqrt {y}right).}

Esta expresión evalúa a falso si el dominio de x{displaystyle x} y Sí.{displaystyle y} es el número real, pero verdadero si el dominio es los números complejos.

El término "variable ficticia" también se usa a veces para una variable ligada (más comúnmente en matemáticas generales que en informática), pero esto no debe confundirse con el concepto de variable ficticia de nombre idéntico pero no relacionado que se usa en estadística, más comúnmente en análisis de regresión.

Ejemplos

Antes de establecer una definición precisa de variable libre y variable ligada, los siguientes son algunos ejemplos que quizás aclaran estos dos conceptos de lo que lo haría la definición:

En la expresión

.. k=110f()k,n),{displaystyle sum _{k=1}{10}f(k,n),}

n es una variable libre y k es una variable ligada; en consecuencia, el valor de esta expresión depende del valor de n, pero no hay nada llamado k de lo que pueda depender.

En la expresión

∫ ∫ 0JUEGO JUEGO xSí.− − 1e− − xdx,{displaystyle int ¿Qué?

y es una variable libre y x es una variable ligada; en consecuencia, el valor de esta expresión depende del valor de y, pero no hay nada llamado x de lo que pueda depender.

En la expresión

limh→ → 0f()x+h)− − f()x)h,{displaystyle lim _{hrightarrow 0}{frac {f(x+h)-f(x)}{h}}}}

x es una variable libre y h es una variable ligada; en consecuencia, el valor de esta expresión depende del valor de x, pero no hay nada llamado h de lo que pueda depender.

En la expresión

О О x∃ ∃ Sí.[φ φ ()x,Sí.,z)],{displaystyle forall x\exists y {Big [}varphi (x,y,z){Big ]}}}

z es una variable libre y x y y son variables ligadas, asociadas a cuantificadores lógicos; en consecuencia, el valor lógico de esta expresión depende del valor de z, pero no hay nada llamado x o y de lo que pueda depender.

Más ampliamente, en la mayoría de las pruebas, se utilizan variables vinculadas. Por ejemplo, la siguiente prueba muestra que todos los cuadrados de enteros positivos son divisibles por 4{displaystyle 4}

Vamos n{displaystyle n} ser un entero positivo. Entonces hay un entero k{displaystyle k} tales que n=2k{displaystyle n=2k}. Desde n2=4k2{displaystyle No lo sé., tenemos n2{displaystyle n^{2} divisible por 4{displaystyle 4}

no solo k sino también n se han utilizado como variables vinculadas como un todo en la prueba.

Operadores de vinculación de variables

Lo siguiente

.. x▪ ▪ S∏ ∏ x▪ ▪ S∫ ∫ 0JUEGO JUEGO ⋯ ⋯ dxlimx→ → 0О О x∃ ∃ x{displaystyle sum _{xin S}quad quad prod _{xin S}quad quad int _{0}infty }cdots ,dxquad quad quad lim _{xto 0}quad quad forall xquad exists x}

son algunos operadores de vinculación de variables comunes. Cada uno de ellos vincula la variable x para algún conjunto S.

Tenga en cuenta que muchos de estos son operadores que actúan sobre funciones de la variable enlazada. En contextos más complicados, tales notaciones pueden resultar incómodas y confusas. Puede ser útil cambiar a notaciones que hagan explícita la vinculación, como

.. 1,...... ,10()k↦ ↦ f()k,n)){displaystyle sum _{1,ldots10}left(kmapsto f(k,n)right)}

para sumas o

D()x↦ ↦ x2+2x+1){displaystyle Dleft(xmapsto x^{2}+2x+1right)}

para la diferenciación.

Explicación formal

Árbol resumiendo la sintaxis de la expresión О О x()()∃ ∃ Sí.A()x))Alternativa Alternativa B()z)){displaystyle forall x,(exists y,A(x))vee B(z)}

Los mecanismos de vinculación de variables ocurren en diferentes contextos en matemáticas, lógica e informática. En todos los casos, sin embargo, son propiedades puramente sintácticas de expresiones y variables en ellas. Para esta sección, podemos resumir la sintaxis identificando una expresión con un árbol cuyos nodos de hoja son variables, constantes, constantes de función o constantes de predicado y cuyos nodos que no son de hoja son operadores lógicos. Luego, esta expresión se puede determinar haciendo un recorrido en orden del árbol. Los operadores de vinculación de variables son operadores lógicos que ocurren en casi todos los lenguajes formales. Un operador vinculante Q toma dos argumentos: una variable v y una expresión P, y cuando se aplica a sus argumentos produce una nueva expresión Q(v, P). El significado de los operadores vinculantes lo proporciona la semántica del lenguaje y no nos concierne aquí.

La vinculación de variables relaciona tres cosas: una variable v, una ubicación a para esa variable en una expresión y un nodo sin hoja n de la forma Q(v, P). Nota: definimos una ubicación en una expresión como un nodo hoja en el árbol de sintaxis. El enlace de variables ocurre cuando esa ubicación está debajo del nodo n.

En el cálculo lambda, x es una variable ligada en el término M = λx. T y una variable libre en el término T. Decimos que x está enlazado en M y libre en T. Si T contiene un subtérmino λx. U entonces x se recupera en este término. Este enlace interno anidado de x se dice que "sombra" la unión exterior. Las apariciones de x en U son apariciones libres del nuevo x.

Las variables enlazadas en el nivel superior de un programa son variables técnicamente libres dentro de los términos a los que están enlazadas, pero a menudo se las trata de manera especial porque se pueden compilar como direcciones fijas. De manera similar, un identificador vinculado a una función recursiva también es técnicamente una variable libre dentro de su propio cuerpo, pero se trata de manera especial.

Un término cerrado es aquel que no contiene variables libres.

Expresiones de funciones

Para dar un ejemplo de las matemáticas, considere una expresión que define una función

f=[()x1,...... ,xn)↦ ↦ t]{displaystyle f=left[(x_{1},ldotsx_{n}mapsto tright]}

donde t es una expresión. t puede contener algunos, todos o ninguno de los x1, …, x n y puede contener otras variables. En este caso decimos que la definición de la función une las variables x1, …, xn.

De esta manera, las expresiones de definición de función del tipo que se muestra arriba pueden considerarse como el operador de vinculación variable, análogo a las expresiones lambda del cálculo lambda. Otros operadores vinculantes, como el signo de suma, se pueden considerar como funciones de orden superior que se aplican a una función. Así, por ejemplo, la expresión

.. x▪ ▪ Sx2{displaystyle sum _{xin S}{x^{2}}

podría tratarse como una notación para

.. S()x↦ ↦ x2){displaystyle sum _{S}{(xmapsto x^{2}}}

Donde .. Sf{displaystyle sum _{S}{f} es un operador con dos parámetros: una función de un parámetro y un conjunto para evaluar esa función. Los demás operadores mencionados anteriormente pueden expresarse de manera similar; por ejemplo, el cuantificador universal О О x▪ ▪ SP()x){displaystyle forall xin S P(x)} puede ser pensado como un operador que evalúa a la conjunción lógica de la función valorada booleana P aplicado sobre el conjunto (posiblemente infinito) S.

Lenguaje natural

Cuando se analiza en semántica formal, se puede ver que los lenguajes naturales tienen variables libres y vinculadas. En inglés, los pronombres personales como he, she, they, etc. pueden actuar como variables libres.

Lisa encontró ella libro.

En la oración anterior, el pronombre posesivo ella es una variable libre. Puede referirse a la Lisa antes mencionada oa cualquier otra mujer. En otras palabras, su libro podría estar refiriéndose al libro de Lisa (una instancia de correferencia) o a un libro que pertenece a una mujer diferente (por ejemplo, el libro de Jane). Quienquiera que sea el referente de ella puede establecerse de acuerdo con el contexto situacional (es decir, pragmático). La identidad del referente se puede mostrar usando subíndices coindexados donde i indica un referente y j indica un segundo referente (diferente de i). Así, la oración Lisa encontró su libro tiene las siguientes interpretaciones:

Lisai la encontré.i libro. (interpretación #1: ella = of Lisa)
Lisai la encontré.j libro. (interpretación #2: ella = de una mujer que no es Lisa)

La distinción no es puramente de interés académico, ya que algunos idiomas tienen formas diferentes para heri y herj: por ejemplo, noruego y sueco traducen coreferent heri como pecado y no correferente suj como hennes.

El inglés sí permite especificar correferencia, pero es opcional, ya que ambas interpretaciones del ejemplo anterior son válidas (la interpretación agramatical se indica con un asterisco):

Lisai la encontré.i propio libro. (interpretación #1: ella = of Lisa)
*Lisai la encontré.j propio libro. (interpretación #2: ella = de una mujer que no es Lisa)

Sin embargo, los pronombres reflexivos, como él mismo, ella misma, ellos mismos, etc., y los pronombres recíprocos, como cada other, actúan como variables vinculadas. En una oración como la siguiente:

Jane lastimó ella misma.

la reflexiva ella misma solo puede referirse al antecedente mencionado anteriormente, en este caso Jane, y nunca puede referirse a una persona femenina diferente. En este ejemplo, la variable ella misma está vinculada al sustantivo Jane que aparece en la posición del sujeto. Indicando la coindexación, la primera interpretación con Jane y ella misma coindexadas está permitida, pero la otra interpretación en la que no están coindexadas no es gramatical:

Janei se hizo dañoi. (interpretación #1: ella misma = Jane)
*Janei se hizo dañoj. (interpretación #2: ella misma = una hembra que no es Jane)

Tenga en cuenta que el enlace de correferencia se puede representar usando una expresión lambda como se mencionó en la sección de explicación formal anterior. La oración con el reflexivo podría representarse como

(λ)x.x herida x)Jane

donde Jane es el argumento referente del sujeto y λx.x hurt x es la función de predicado (una abstracción lambda) con la notación lambda y x indicando que tanto el sujeto semántico como el objeto semántico de la oración están vinculados. Esto devuelve la interpretación semántica JANE hirió a JANE siendo JANE la misma persona.

Los pronombres también pueden comportarse de forma diferente. En la oración de abajo

Ashley golpeó ella.

el pronombre ella solo puede referirse a una mujer que no sea Ashley. Esto significa que nunca puede tener un significado reflexivo equivalente a Ashley se golpeó a sí misma. Las interpretaciones gramaticales y agramaticales son:

*Ashleyi la golpeói. (interpretación #1: ella = Ashley)
Ashleyi la golpeój. (interpretación #2: ella = una mujer que no es Ashley)

La primera interpretación es imposible. La gramática sólo permite la segunda interpretación.

Por lo tanto, se puede ver que los reflexivos y los recíprocos son variables ligadas (conocidas técnicamente como anáforas) mientras que los pronombres verdaderos son variables libres en algunas estructuras gramaticales pero variables que no se pueden ligar en otras estructuras gramaticales. El fenómeno de vinculación que se encuentra en los lenguajes naturales fue particularmente importante para el gobierno sintáctico y la teoría de vinculación (ver también: Vinculación (lingüística)).