2 votos

¿Cómo puedo determinar la cardinalidad de un conjunto de funciones polimórficas?

Me parece obvio que el conjunto de funciones con la firma $\forall A. A \rightarrow A$ está "habitada una vez", es decir, sólo existe una función polimórfica que "funcione" para cualquier conjunto $A$ que es la función de identidad. (Creo que los matemáticos considerarían que se trata de toda una familia de funciones; yo vengo de CS, donde tendemos a hablar de funciones polimórficas individuales, pero siéntete libre de explicar cómo plantearía el problema un matemático). Sin embargo, no sé cómo demostrarlo, salvo de forma muy manual.

Un ejemplo algo más complejo sería demostrar que $$\forall A B C. (A \rightarrow B) \rightarrow (B \rightarrow C) \rightarrow (A \rightarrow C)$$ también está habitada una vez, y que la única función de este tipo con esta firma es el operador de composición de funciones.

5voto

Michael Steele Puntos 345

Si conoce $\lambda$ -cálculo, se puede precisar buscando normalizado $\lambda$ -términos que tienen tipo $\forall A. A \rightarrow A$ en el sistema de tipos del sistema F (que se describe en detalle en https://fr.wikipedia.org/wiki/Système_F -- la página en inglés no es tan completa, por ejemplo no tiene las reglas de mecanografía).

En este caso básico, observando las reglas de inferencia, se obtiene rápidamente que $\Lambda A. \lambda x:A. x$ es el único término normalizado que tiene el tipo $\forall A. A \rightarrow A$ .

La página de Wikipedia también explica cómo hacer un tipo booleano (un tipo habitado por exactamente 2 términos), un tipo de número natural, tipos de producto, etc.

2voto

Jim Correia Puntos 4866

Intentaré responder lo mejor que pueda a su pregunta, pero estamos en terreno inestable en lo que respecta a los fundamentos de lo que usted llama "conjuntos".

Sin embargo, he descubierto que preguntas similares se plantean mejor en términos de teoría de categorías, que tiene una noción mucho mejor de lo que se entiende por polimorfismos y por un espacio de funciones "habitado una vez". En la terminología de las categorías, las funciones polimórficas se denominan "transformaciones naturales" . Hay algo más, pero la idea es esencialmente la misma. Del mismo modo, en lugar de decir "una vez habitada", se diría que esa transformación natural es "única hasta el isomorfismo".

En cualquier caso, la forma en que suelo ver las cosas así probadas es dejar que $A$ sólo tienen un elemento. En tal caso, sólo hay una función definida en $A \to A$ . Así que ese caso especial te da el caso universal. Una técnica similar probablemente funcione para tu ejemplo de composición.

ACTUALIZACIÓN:

He aquí un ejemplo de cómo demostraría esto utilizando el lenguaje de la teoría de categorías.

Tomar la categoría $\textbf{Set}$ de todos los conjuntos y funciones entre ellos. Es bien sabido que la objeto terminal en $\textbf{Set}$ es el conjunto único. En otras palabras, para cualquier conjunto $|A| = 1, A = \{ a \}$ existe como máximo una función $f : X \to \{ a \}$ para cualquier otro conjunto $X$ . En otras palabras, $f$ debe ser la función constante.

Algunos autores función vacía ( $\emptyset \to \emptyset$ ) sea un concepto bien definido (aunque personalmente no lo hago) para asegurarme de que $\textbf{Set}$ es, de hecho, una categoría.

Personalmente, me parece una tontería. Si usted viene de un fondo de CS, es probablemente más cerca de la semántica prevista para trabajar en $\textbf{Set}_{\bot}$ la categoría de conjuntos puntuales y funciones parcialmente definidas, ya que la mayoría de los programas que escribe la gente no son funciones totales. Y $\bot$ está en todas partes $\emptyset$ ser.

Consideremos ahora el espacio de funciones $\forall A, B, C, (A \to B) \to (B \to C) \to (A \to C)$ donde $A, B, C$ son objetos en $\textbf{Set}$ . Para determinar la cardinalidad de este espacio, como $A, B$ y $C$ variar en $\textbf{Set}$ consideremos el caso extremo en el que $A, B$ y $C$ son todos objetos terminales. A continuación, los espacios funcionales individuales $f : A \to B$ , $g : B \to C$ y $h : A \to C$ todas contienen, como máximo, un elemento. Por lo tanto, $\forall f, g, h, f \to g \to h$ pueden, como máximo, abarcar un elemento cada una: $f, g$ y $h$ . Por lo tanto, este espacio de funciones también tiene un solo elemento.

Nota al margen

Si este tipo de preguntas le resultan interesantes y se hace preguntas similares, yo me tomaría un tiempo para leer arriba en categorías . Son muy divertidos y pueden precisar muchas ideas vagas que no están bien definidas en informática, haciendo que valga la pena plantearse muchas preguntas difíciles de definir.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X