Definiciones existenciales en ZFC

En la teoría formal de conjuntos (ZFC para ser específicos) hay algunos tipos de definiciones: definiciones de predicados, por ejemplo A B es una abreviatura de X ( X A X B ) , definiciones de comprensión, por ejemplo A B es una abreviatura de { X A : X B }

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 X ! y ( z ( z y z X ) ) . 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 X ! y ( z ( z y z X ) ) 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 X y ( z ( z y z X ) ) 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:

A B d mi F X ( X A X B )

A B d mi F { X A : X B }

¿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?

Como nota al pie de la respuesta de Asaf, si denotamos "el único X tal que φ " como i X φ , no podemos tratar esto como una abreviatura de ninguna manera útil sin agregar nuevos términos al idioma. Pero los términos nunca aparecen solos, solo como partes de fórmulas, por lo que si piensa en cómo desempaquetar i X φ A o A i X φ , es más fácil tratarlos como abreviaturas de fórmulas en el lenguaje de la teoría de conjuntos con solo A gratis.

Respuestas (5)

Una vez que especifica una condición, la unicidad sigue por extensionalidad. Y dado que podemos probar eso, no tiene mucho sentido usar ! y 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 PAG ( ) 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 L y una teoria T , y tienes una fórmula φ ( X ) tal que T demuestra que φ ( X ) define un conjunto único, entonces podemos extender el lenguaje a L + añadiendo un símbolo constante C φ y el axioma φ ( C φ ) .

Ahora podemos demostrar que cualquier modelo de T puede interpretarse naturalmente como un modelo para T + φ ( C φ ) como una interpretación para el lenguaje L + . Del mismo modo, podemos hacer eso con funciones o relaciones definibles. Y además, cada prueba de T + φ ( C φ ) en L + se puede traducir a una prueba de T en el idioma L .

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 .

Gracias, Asaf, pero esperaba una solución más sintáctica que la forma semántica utilizando la teoría del modelo utilizada en su respuesta. Me cuesta entenderlo. Esperaba más en la dirección del comentario de Malice.
Esta es una forma sintáctica, simplemente la disfrazé como una forma semántica ya que me gusta pensar más en la semántica que en la sintaxis. El punto es que puede desempaquetar recursivamente las definiciones extendidas para que cada prueba (objeto sintáctico) en el lenguaje extendido se traduzca a una prueba en el idioma original.
Correcto, necesito pensar más de forma sintáctica porque en la versión de ZFC en la que estoy trabajando, no se puede usar la teoría de modelos. Cada cuantificador tiene su propio y explícito universo que puede ser diferente cada vez que escribes un cuantificador.
El punto es que esto es realmente justo lo que esperarías. No hay "trucos inteligentes" aquí. Simplemente reemplaza cada fórmula donde aparece la "función extendida" afirmando que existe algún objeto que satisface esto y aquello; la singularidad, nuevamente, no es necesaria ya que ya sabemos que ZFC demuestra la singularidad de estas cosas.
¿Qué quieres decir con "función extendida"? Puede ser una fórmula en la forma en que aparece en el axioma de reemplazo donde no se menciona la palabra función pero la relación funcional está presente en la fórmula.
Tienes el lenguaje extendido de la teoría de conjuntos. y PAG , dónde PAG es el operador del conjunto potencia. Tome ZFC como se definiría en este idioma (es decir, agregue los axiomas necesarios a Reemplazo también), luego cada prueba se puede traducir recursivamente a una prueba de ZFC en el idioma de . Y en esta traducción tampoco necesitamos exigir cada vez que el y que se instancia como el conjunto potencia de X es único, ya que ZFC ya lo demuestra.
Ok, Asaf, explicaste claramente que la introducción de un nuevo símbolo no afecta el lenguaje en absoluto, al comenzar "Tienes el lenguaje extendido de la teoría de conjuntos ∈ y P, donde P es el operador de conjunto de potencia. Toma ZFC como lo haría definirse en este lenguaje". Sin embargo, el núcleo de mi pregunta es: ¿Cómo se puede definir en el lenguaje? (ahora agregaría sintácticamente).
Entonces no entiendo el "núcleo de tu pregunta". El operador conjunto potencia se define como φ PAG ( X , y ) es la fórmula z ( z y tu ( tu z tu X ) ) (tenga en cuenta que no forma parte del lenguaje de la teoría de conjuntos, por lo que formalmente también es una abreviatura). Ahora, si quieres decir algo sobre los conjuntos de potencias, entonces dices que y ( φ pag ( X , y ) ψ ( y ) ) . Aparte de eso, podría ser una buena idea tomar la iniciativa y encontrar un libro de lógica razonable que cubra la noción de "extensiones conservadoras" y leer más al respecto.
Enfatizo en mi pregunta esa definición como:
¿Como que? Si el operador de conjunto de potencia es solo un ejemplo, no veo por qué mi respuesta no es lo suficientemente general "solo" para usar el mismo ejemplo. Estamos empezando a dar vueltas, y me temo que sin una aclaración adecuada de su parte, no veo el sentido de continuar con esto.
¿Cómo sabes que existe para que tu operador tenga sentido? La respuesta es el axioma de potencia. Mi pregunta es ¿cómo nombrar los objetos y que existen para cada conjunto x, gracias al axioma de la potencia? En muchos libros de texto, esto se hace libremente. ¿Cómo nombrar un objeto que existe gracias a un teorema de unicidad existencial?
@CarlosFreites: No estoy seguro de lo que quieres decir con "nombre". Cada vez que desee hacer referencia a un objeto de este tipo, utiliza una variable vinculada que necesita para satisfacer la condición de definición.
Me refiero a nombre fuera de la fórmula. Supongamos que tengo una fórmula existencial de unicidad ! y ( φ ( y , X ) ) (teorema XYZ) Ahora quiero referirme al conjunto que la fórmula dice que es único. En los libros de texto, esto se hace más o menos como "Sea NUEVO (x) el conjunto que el teorema XYZ dice que es único dado un conjunto x". Entonces, a partir de ese momento, φ ( norte mi W ( X ) , X ) se asume como cierto.
El último comentario fue para @EricWofsey.
@CarlosFreites: pero en realidad es lo mismo que para A B : el teorema A B C ( X , X C ( X A X B ) ) es un teorema, y ​​de esto puedes usar A B como ser C . No es diferente, ya que { X A : X B } también se usa solo en el metalenguaje: no puede ser un término ya que contiene fórmulas
@Max: { X A : X B } es un conjunto (entonces un término) gracias al axioma de comprensión. El problema que estamos tratando aquí es precisamente cómo conectar símbolos como \{x\in A : x\in B\} y POW(x) con teoremas de unicidad existencial.
@Carlos: Formalmente hablando, { X A : X B } no es un termino Utiliza el operador informal de llaves, que es, al menos, un operador de segundo orden. El axioma de comprensión te permite probar que para todo A y para todos B existe C tal que X C X A X B ; y la extensionalidad le permite probar que este C en realidad es único. Ahora cada vez que quieras referirte a esto C debe comenzar afirmando que "Existe C tal que C es tal y tal conjunto..." y luego cada vez que escribes C te refieres a A B para el resto de la prueba.
@Carlos: a menos que esté usando una definición de término muy extraña, un término no puede usar una fórmula en su formación. No hay términos en la (habitual) teoría de primer orden ZF, a excepción de las variables
@Max ¡Eso es cierto! Gracias por hacerme dar cuenta de que no hay términos en ZFC. He asumido implícitamente que casi cosas como donde términos de ZFC. Muy interesante y útil para mí.
Eh. Estaba seguro de que mi segundo párrafo abordaba eso. Aparentemente no lo suficientemente claro.

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 A B , 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 { X : φ } "Solo tienes que averiguar qué" { X : φ } α ," " α { X : φ } ," y " α = { X : φ } " deberían ser abreviaturas de. Aquí hay una versión que funciona adecuadamente en ZF:

  • Para α { X : φ } , podemos decir que es un sinónimo de y ( α y z ( z y ϕ ) ) .
  • Para { X : φ } α , decimos que esto es solo la abreviatura de y ( y α y = { X : φ } ) .
  • y para α = { X : φ } nos referimos al primer punto y extensionalidad, traduciéndolo como y ( y α y { X : φ } ) .

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.

El de la primera viñeta es el único genuino porque es el único que permite deshacerse del símbolo. { X : φ } . Las otras dos balas necesitan la primera como anotaste. Esa es una buena descripción de cómo deshacerse de un símbolo como { X : φ } . La pregunta es: ¿Cómo el símbolo { X : φ } ¿es presentado? Este caso es especialmente difícil porque no proviene de un axioma sino de un esquema de axioma.

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, A B se puede traducir a ( X ) ( X A X B ) y una fórmula que contiene en algún lugar dentro se traduce reemplazando apropiadamente cada subfórmula de la forma A B . De manera similar para cualquier símbolo de predicado definido PAG ( X 1 , , X norte ) .

En cuanto a los símbolos de funciones definidas, todo lo que necesitamos es saber cómo traducir una fórmula de la forma y = F ( X 1 , , X norte ) , esto se reemplaza por la fórmula φ ( y , X 1 , , X norte ) utilizado como una definición de F . Entonces también sabemos traducir y F ( X 1 , , X norte ) : lo reemplazamos por ( z ) ( y z φ ( z , X 1 , , X norte ) ) . Del mismo modo podemos traducir F ( X 1 , , X norte ) y . El hecho de que para cualquier X 1 , , X norte hay exactamente uno y satisfactorio φ ( y , X 1 , , X norte ) puede considerarse como un "conocimiento previo", no es necesario codificarlo directamente en la traducción.

Por cierto, { X A : X B } también es una abreviatura que debe traducirse a un lenguaje ZFC puro; fórmula y = { X A : X B } por supuesto es reemplazado por ( X ) ( X y ( X A X B ) ) .

No, eso es inexacto. Existe una forma formalizada de introducir nuevos símbolos. Es exactamente de lo que estaba hablando en mi respuesta, extensiones conservadoras; específicamente en.wikipedia.org/wiki/Conservativity_theorem es relevante en este caso.
Quizás lo que quería decir era: "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". De todos modos, gracias por el comentario.
Sí, eso es lo que hacemos a menudo, vemos todas estas cosas como abreviaturas. Pero eso es más fácil de hacer con las relaciones (por ejemplo, A B ) de lo que es con los términos (por ejemplo, o A × B ).
@PeterElias Sería bueno que cambiara la frase en su respuesta "Además, no hay una forma formalizada de introducir nuevos símbolos". por el de tu último comentario. Su respuesta es el tipo que estoy buscando.
@Asaf Sobre tu último comentario. ¡Exactamente!
@Carlos: Como sigo diciendo, extensiones conservadoras al agregar nuevos símbolos de función.
@CarlosFreites Listo... ¡Me alegra que te guste mi respuesta!

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 A , existe B tal que hay una inyección A B , y sin sobreyección A B ". La opción habitual para probar este teorema es usar B = PAG ( A ) . Pero, ¿cómo escribir esto formalmente?

Cuando haces tu cálculo de secuencias, en algún momento llegas a Z F B , ϕ PAG ( A , B ) dónde ϕ PAG ( X , y ) es una abreviatura de la fórmula " y es el conjunto de potencia de X ".

En este punto piensas "Deja B ser el poder de A ", y su prueba de deducción natural continúa con Z F , ϕ PAG ( A , B ) . . . " donde "..." es algo que debe ser.

Cuando llegas a " Z F , ϕ PAG ( A , B ) hay una inyección A B y sin sobreyección A B ", puede usar una de las reglas de inferencia del cálculo secuencial:

De Γ , ϕ ( t ) ψ ( t no gratis en Γ ) y Γ X , ϕ ( X ) , inferir Γ ψ .

aplicar esto a ϕ ( X ) = ϕ PAG ( A , X ) , y ψ = y , Ω ( y ) dónde B , Ω ( B ) es la fórmula que estamos tratando de probar, finalmente obtienes Z F B , Ω ( B ) . Usando la generalización, Z F A , B , b yo a b yo a .

Así que hemos usado el powerset de A 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 A , | PAG ( A ) | > | A | puedes probar A , B , ϕ PAG ( A , B ) | B | > | A | etc. Como solo hay uno B tal que ϕ PAG ( A , B ) , 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 L + en una prueba en L 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.

corregí el L A T mi X :)

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.