En la teoría formal de conjuntos (ZFC para ser específicos) hay algunos tipos de definiciones: definiciones de predicados, por ejemplo es una abreviatura de , definiciones de comprensión, por ejemplo es una abreviatura de
Las definiciones de predicado son abreviaturas de fórmulas y las definiciones de comprensión son abreviaturas de conjuntos (términos u objetos en ZFC).
El problema es con las definiciones de unicidad existencial donde ponemos un nombre a un objeto cuya unicidad existencial viene dada por un teorema de unicidad existencial. Sea el teorema de la unicidad existencial . Es una consecuencia directa del axioma del conjunto de potencias.
En este caso dado un conjunto A, el Power Set Pow(A) no es una abreviatura, no se puede sustituir Pow(A) por porque uno es un Conjunto (un término u objeto) y el otro es una fórmula. ¿Cómo se puede expresar de manera formal este tipo de definiciones?
Peor aún, en muchos libros el axioma del conjunto de potencias se usa directamente para nombrar Pow(A) sin mencionar que se debe probar la unicidad para poder definir Pow(A).
Usé Pow(A) como ejemplo, pero mi pregunta es sobre definiciones existenciales (¿Es este el nombre correcto para este tipo de definiciones?) en general para ZFC. ¿Dónde puedo encontrar un tratamiento adecuado de este tema?
Brevemente, las "definiciones existenciales" son esencialmente diferentes a las definiciones tales que:
¿Cómo se puede escribir una definición existencial? ¿Es inevitable el uso del metalenguaje?
¿Cómo nombrar un objeto que existe gracias a un teorema de unicidad existencial?
Una vez que especifica una condición, la unicidad sigue por extensionalidad. Y dado que podemos probar eso, no tiene mucho sentido usar en el enunciado del axioma, porque no es un cuantificador estándar, sino más bien una declaración abreviada de una fórmula mucho más complicada.
Ahora, quieres hablar sobre funciones de clase como o constantes como o . Y esa es una preocupación válida, ya que el lenguaje de la teoría de conjuntos solo tiene la símbolo.
Introduzca la noción de una extensión conservadora. En lógica, si tienes un idioma y una teoria , y tienes una fórmula tal que demuestra que define un conjunto único, entonces podemos extender el lenguaje a añadiendo un símbolo constante y el axioma .
Ahora podemos demostrar que cualquier modelo de puede interpretarse naturalmente como un modelo para como una interpretación para el lenguaje . Del mismo modo, podemos hacer eso con funciones o relaciones definibles. Y además, cada prueba de en se puede traducir a una prueba de en el idioma .
Y eso es lo que realmente está pasando. En efecto, ampliamos el lenguaje de la teoría de conjuntos para incluir muchos "símbolos convenientes", y sabemos que podemos traducir recursivamente todos los enunciados y demostraciones del lenguaje ampliado al lenguaje original de la teoría de conjuntos con solo .
Parece haber cierta incertidumbre en cuanto a lo que está preguntando exactamente, pero tal vez esta sea una respuesta a su pregunta.
Si desea utilizar únicamente abreviaturas del tipo utilizado para , la respuesta es que no intentas traducir términos de forma aislada; intentas traducir las fórmulas en las que aparecen. Dado que las fórmulas bien formadas de la teoría de conjuntos se forman inductivamente a partir de fórmulas atómicas de la forma y , eso significa que si queremos "traducir "Solo tienes que averiguar qué" ," " ," y " " deberían ser abreviaturas de. Aquí hay una versión que funciona adecuadamente en ZF:
Si seguimos desempaquetando cualquier fórmula que contenga resúmenes de conjuntos de esta manera, eventualmente los reduciremos a fórmulas en las que los únicos términos son variables y la fórmula atómica son aquellas que involucran y . Sin embargo, estas fórmulas se vuelven realmente largas y feas; afortunadamente, por las razones que da Asaf, en realidad no tenemos que tener cuidado con esto siempre que nuestros axiomas garanticen la existencia de un conjunto de todas las cosas que satisfacen la propiedad --podemos tratarlos como términos atómicos y continuar.
En el lenguaje de ZFC no existen constantes ni símbolos funcionales, por lo que los únicos términos son variables. Una forma de lidiar con las definiciones es ignorar la posibilidad de introducir nuevos símbolos e imaginar que cada fórmula que usa definiciones es una abreviatura de una fórmula en el lenguaje de ZFC. Las definiciones se pueden considerar como una forma informal pero precisa de cómo escribir fórmulas más cortas y más legibles en lugar de fórmulas muy largas. Debe quedar claro cómo traducir una fórmula que contiene símbolos definidos en una fórmula en el lenguaje ZFC puro.
Por ejemplo, se puede traducir a y una fórmula que contiene en algún lugar dentro se traduce reemplazando apropiadamente cada subfórmula de la forma . De manera similar para cualquier símbolo de predicado definido .
En cuanto a los símbolos de funciones definidas, todo lo que necesitamos es saber cómo traducir una fórmula de la forma , esto se reemplaza por la fórmula utilizado como una definición de . Entonces también sabemos traducir : lo reemplazamos por . Del mismo modo podemos traducir . El hecho de que para cualquier hay exactamente uno satisfactorio puede considerarse como un "conocimiento previo", no es necesario codificarlo directamente en la traducción.
Por cierto, también es una abreviatura que debe traducirse a un lenguaje ZFC puro; fórmula por supuesto es reemplazado por .
Al ver sus comentarios a la respuesta de Asaf, creo que otra forma de resolver su problema sería con otro punto de vista: pensar en términos de cálculo secuencial (clásico).
Suponga que desea probar el teorema "Para cualquier conjunto , existe tal que hay una inyección , y sin sobreyección ". La opción habitual para probar este teorema es usar . Pero, ¿cómo escribir esto formalmente?
Cuando haces tu cálculo de secuencias, en algún momento llegas a dónde es una abreviatura de la fórmula " es el conjunto de potencia de ".
En este punto piensas "Deja ser el poder de ", y su prueba de deducción natural continúa con " donde "..." es algo que debe ser.
Cuando llegas a " hay una inyección y sin sobreyección ", puede usar una de las reglas de inferencia del cálculo secuencial:
De ( no gratis en ) y , inferir .
aplicar esto a , y dónde es la fórmula que estamos tratando de probar, finalmente obtienes . Usando la generalización, .
Así que hemos usado el powerset de en una prueba formal, pero la cosa es que puedes nombrarla (almacenarla en cierto sentido) como una variable no usada, poniendo su definición del lado de las hipótesis, y usando la variable (ahora usada) en la prueba, usando su definición en varios puntos de la demostración.
Eso es si quieres usar el objeto definido para probar algo más. Si desea probar algunas propiedades del objeto definido, hay cosas similares que puede hacer, por ejemplo, en lugar de probar puedes probar etc. Como solo hay uno tal que , este último teorema es lo mismo que intentas probar.
He hecho esto de una manera puramente sintáctica pero, por supuesto, en mi opinión, es importante tener en cuenta el aspecto semántico de las cosas y, en este sentido, la respuesta de Asaf que menciona las extensiones conservadoras es muy interesante. Tenga en cuenta que también mencionó el aspecto sintáctico ("traducir una prueba en en una prueba en recursivamente"), lo único que hice "más" es dar pistas sobre cómo se puede lograr esta traducción.
Si alguien puede mejorar mi respuesta corrigiendo algunos errores que probablemente cometí, tales modificaciones son, por supuesto, muy bienvenidas.
Un enfoque que utiliza fx Bourbaki es la introducción del operador de Hilbert . Al hacerlo, no necesita más primitivas, ya que los cuantificadores se pueden expresar en términos del operador de Hilbert.
La ventaja de usar esto es que el lenguaje permite que una construcción convierta un predicado en un objeto (cumpliendo el predicado si es posible).
Esto es similar a la solución ad-hoc para simplemente permitir la definición de un símbolo por un predicado que tiene una validez única.
malicia vidrina