Recientemente he estado repasando algunos de los fundamentos del álgebra, y una cosa que se enseña de forma bastante endeble son las reglas de cuando queremos 'asignar' a un símbolo. ¿Existe un lenguaje formal que nos permita definir una asignación, por ejemplo, a menudo vemos "si $x=...$ o "cuando $x=...$ '. La primera pregunta que puede plantearse un estudiante es "¿cuándo es precisamente $x=3$ Entiendo que en la "teoría de los modelos" existe una idea de "asignación", pero no parece naturalmente posible vincularla al concepto más simple, ¿Quizás aquí encontremos los orígenes de este concepto, pero no lo veo? Igualmente, ¿podemos utilizar el nombre original de 'variable'? Por ejemplo "bajo la asignación $x=3$ sabemos que $x^2=9$ En este caso estamos utilizando la variable $x$ pero bajo una asignación particular. Si podemos hacer esto, ¿hay alguna diferencia entre una expresión "general" para la variable $x$ y una expresión bajo una "asignación".
Respuestas
¿Demasiados anuncios?El problema aquí es que en la práctica real, estamos mezclando tanto el lenguaje matemático como el natural, y no es que el lenguaje matemático o el natural por sí mismos sean complicados, sino que es la mezcla de ambos lo que hace que estos conceptos se difuminen.
La manzana de la discordia, como estás observando, es qué exactamente es el siguiente híbrido de lenguaje matemático y natural (inglés), en este caso:
Dejemos que $x = 5$ .
¿Qué dice sobre $=$ ? ¿Significa esto que $=$ ¿es simplemente un verbo que indica que algo es cierto, o es algo más? Lo que yo sugeriría es que el trozo de lenguaje anterior es formalmente ambiguo en cuanto a su interpretación, pero ambas interpretaciones pueden llevarse a cabo de manera coherente, y ambas han sido sugeridas por separado en las dos respuestas dadas aquí.
La primera es que se trata de introducción de una hipótesis . La variable $x$ nunca realmente obtiene un valor. En cambio, lo que sucede aquí es que realmente estamos diciendo "Supongamos que es cierto que $x = 5$ ", y en aras de la brevedad, utilizamos el término "dejar". Es decir, estamos construyendo lo que en lenguaje formal sería algo así como
$$(x = 5) \rightarrow \cdots$$
La segunda es que esta declaración, por su enunciado, realmente hace porque el hecho de que $x = 5$ para convertirse en realidad. Es decir, "dejar" se expande a "Declaro por la presente que $x = 5$ ." Esta es la asignación versión. Lingüísticamente, este tipo de bocado se denomina en algunos círculos " performativo ": es un poco de lenguaje que causa su propia verdad por el mero hecho de exponerla. (Esto es similar, pero no exactamente igual, a la más conocida imperativo Un imperativo es una orden dada por una persona a otra. Ambos "hacen algo", pero el imperativo requiere una acción adicional para provocar el cambio, el performativo lo hace por sí mismo).
Sin embargo, entonces se plantea la cuestión de cuándo y dónde deja de ser válida la cesión, como usted señala, ya que evidentemente no se trata de que a partir de aquí para siempre y en todas partes $x = 5$ debe sostenerse, de lo contrario tendríamos un infierno tratando de hacer matemáticas y todo el mundo estaría peleando sobre lo que " $x$ ", un símbolo muy común, debe significar :) Por lo tanto, si tomas la imagen de la asignación, debes tomar también la idea de alcance . Desgraciadamente, aunque hay un símbolo semicomún, $:=$ En el caso de la asignación, no existe un símbolo matemático para un ámbito. Por lo tanto, los ámbitos siguen siendo implícitos, no explícitos.
En cuanto a las "reglas de asignación", es básicamente esto:
- Declarar un ámbito de aplicación. (¡Sin anotación!)
- Haga las asignaciones dentro de ese ámbito.
- Escoge esto como el ámbito para hacer alguna argumentación, entonces haz la argumentación. En esa argumentación, las asignaciones dadas son los significados de las variables.
Fuera del ámbito, los significados de las variables vuelven a ser indeterminados (o no totalmente determinados). Creo que esto responde a tu última pregunta: el significado de la afirmación cambia dependiendo del ámbito en el que se encuentre, pero los ámbitos no se escriben explícitamente en los documentos matemáticos. En cambio, hay que seguirlos mentalmente y es algo que se adquiere con la experiencia.
ADD: Veo algunos comentarios que sugieren que puedes estar pidiendo, digamos, propiedades o axiomas que la asignación sigue. Yo sugeriría que sólo hay uno: una vez $a := b$ ha sido enunciado, entonces $a = b$ se evalúa necesariamente como "verdadero".
Por supuesto, el relación entre estos dos enfoques es, por supuesto, que una vez que se hace la asignación, se convierte en una hipótesis verdadera, y por lo tanto podemos intentar razonar a partir de ella. Sin embargo, el enfoque que se elija para formular las matemáticas no es algo con una única respuesta. Es una elección. En la fuerte afinidad de codificación informática que esto tiene, es básicamente la diferencia entre la programación funcional y la imperativa. En la programación funcional, todo está en términos de "esto se relaciona con aquello". En la programación imperativa, emites más explícitamente comandos al ordenador que hacen que el ordenador haga cosas, como establecer variables a ciertos valores. Por supuesto, ya que el ordenador es finalmente hacer cosas, el programa funcional debe traducirse de alguna manera a imperativo, pero no es escrito como si fuera un imperativo.
Dicho esto, sigo sosteniendo que, en última instancia, no se puede escapar de la asignación: después de todo, incluso si tomamos el enfoque hipotético, para que el resultado tenga alguna utilidad, en algún lugar $x$ en última instancia tiene que ser asignado. El truco, entonces, es que eso ocurra en una aplicación particular. Como si estuvieras calculando una cantidad geométrica, tus asignaciones de variables ocurren -de nuevo implícitamente- como parte del problema específico en cuestión.
Yo afirmaría que, efectivamente, en la práctica de las matemáticas, el signo $=$ se utiliza de (al menos) tres maneras diferentes. La tradición es pretender que sólo hay un uso, el de la afirmación de una relación, como $2=1+1$ .
Sin embargo, en la práctica, también hay asignación como se observa en la pregunta. Así, por ejemplo, si hacemos aritmética de Peano, podríamos definir $2$ por "dejar $2=1+1$ ".
También hay consultas o pruebas, que no afirman una relación, y no asignan nada. Como en "si $x>y$ entonces...". Sí, podemos decir que la pieza lógica más pequeña " $x>y$ "expresa una posible relación, pero no afirmar lo. Dependiendo del marco lógico formal de cada uno, ésta puede ser una distinción vacía. Sin embargo, al tratar con la lógica informal y las matemáticas básicas, esto es conceptualmente distinto.
Algo de esto se difumina con lo que son, en mi opinión, "implicaciones falsas", en las que uno está analizando casos, o haciendo ciertas suposiciones, pero lo expresa como "si... entonces...", cuando, de hecho, el componente "si" no está en duda. Por ejemplo, "si $x=2$ entonces $x+x=4$ ". Mi objeción podría expresarse como: "bueno, ¿cómo probamos si $x=2$ ?". Hace mucho más práctico sentido decir "para $x=2$ ..." o "cuando $x=2$ ..." o, de nuevo, un encargo: "dejemos $x=2$ . Entonces $x+x=4$ ."
Parece que estás pensando en las variables matemáticas como en las variables del lenguaje informático. No hay reglas de alcance. Si digo "let $x=3$ " Me refiero sólo a eso. Se espera que lo que diga a continuación exponga una razón para la declaración.
En la escritura matemática, no hay diferencia entre una declaración y una asignación porque los símbolos no son nombres de casillas o referencias a casillas.
De hecho, probablemente no verías una declaración como $$\text{let }x=3$$ . Es más probable que vea algo como $$\text{let }x\in\mathbb R\text{ be a real number}$$ y más tarde ver una declaración como $$\text{if }x=3\text{ then ...}$$
Es conveniente considerar la posibilidad de preguntar en el educadores de matemáticas si está interesado específicamente en cómo enseñar a los estudiantes sobre $=$ o responder a sus preguntas sobre lo que es.
Hablar de asignación de a un símbolo en matemáticas es tomar prestada una metáfora de la programación. Eso no es del todo cierto; dejar $x$ $=$ algo construcciones son muy antiguas, pero creo que pensar en ellas como un asignación en lugar de un hipótesis es una metáfora de programación. Esta metáfora puede dar mucho juego, pero no es la única forma de pensar en lo que $=$ está haciendo y puede ser engañoso, ya que $1 + 1 = 2$ no es una asignación. Es posible apoyarse más en la metáfora de la programación y utilizar un símbolo dedicado como $ := $ para asignar a las variables, pero eso podría ser contraproducente.
En la teoría de modelos / la semántica de la lógica de primer orden, una asignación tiene un significado específico. Es un mapeo de variables libres a sus denotaciones.
Se necesita este mapa para definir la noción de verdad en un modelo.
Por ejemplo, aquí está una de esas reglas, que da el significado del cuantificador existencial.
$$ M, \vec{v} \models \exists x \mathop. \varphi(x, \vec{v}) \;\; \textit{if and only if}\;\; \text{there exists a variable assignment $ |vec{u} $ extending $ \N - vec{v} $ such that $ M, \vec{u} \modelos \varphi(\vec{u}) $} $$
Una asignación de variables $\vec{u}$ ampliando $\vec{v}$ significa que las variables a las que se les asigna cualquier denotación por $\vec{u}$ son un superconjunto de los que tienen asignada una denotación por $\vec{v}$ y que $\vec{u}$ y $\vec{v}$ están de acuerdo en su subconjunto común.
Sin embargo, esto es un poco insatisfactorio y no hace que el concepto intuitivo de hipotetizar un valor para una variable más clara .
La semántica de la igualdad es igualmente insatisfactoria y apela a una noción intuitiva de igualdad que ya existe en el fondo.
$$ M, \vec{v} \models t_1(\vec{v}) = t_2(\vec{v}) \;\;\textit{if and only if}\;\; \text{the denotation of $ t_1(\vec{v}) $ is equal to the denotation of $ t_2(\vec{v}) $ in $ M $} $$