5 votos

Notación para el tipo de función dependiente

Muy a menudo (realmente, muy a menudo), al declarar el tipo de una función, encuentro que falta la notación matemática común. Y deseo una forma de expresar el tipo con mayor precisión.

Supongamos que tenemos un conjunto $X$ y hay alguna función $f$ que toma un subconjunto (no vacío) de $X$ y lo asigna a un elemento de ese subconjunto. Utilizando la notación común, podríamos introducir $f$ como $f \colon 2^X \to X$ . Pero sabemos más. Sabemos que la aplicación de $f$ debe devolver un elemento del argumento.

Utilizando una notación inventada, podríamos escribir $f \colon (A \colon 2^X) \to A$ , dando el nombre $A$ al argumento de la función, y reutilizándolo como tipo del codominio.

Así que las preguntas son:

  1. ¿Existe alguna convención aceptada para expresar estos tipos dependientes?
  2. Suponiendo que no, ¿la notación propuesta es legible e intuitiva? Personalmente, la encuentro confusa, ya que se parece un poco a $f\colon A \to A$ .

0 votos

¿Qué tal si escribes $f:2^X\to X$ con $X\supset A\mapsto f(A)\in A$ ?

1 votos

@MundronSchmidt Sí, formular restricciones adicionales es una forma de conseguir el mismo resultado. Creo que en este caso, declarar simplemente " $f(A) \in A$ para todos $A$ " sería más claro.

0 votos

También he utilizado esta notación, o mejor dicho $f \colon (A \in 2^X) \to A$ cuando no se trata del tipo, para mis propios apuntes. No dudaría en introducirlo si alguna vez escribiera un artículo en el que fuera útil (algo que probablemente nunca haré).

3voto

goblin Puntos 21696

Creo que básicamente estás buscando las anotaciones $$\sum_{x \in X} Y_x \qquad \prod_{x \in X} Y_x.$$ El primero es el conjunto de todos los pares ordenados $(x,y)$ tal que $x \in X$ y $y \in Y_x$ . Esto último significa el conjunto de todas las formas de asignar a cada elemento $x \in X$ un elemento correspondiente de $Y_x$ .

Por ejemplo, una función $f$ que asigna cada subconjunto no vacío de $X$ a un elemento de ese subconjunto podría denotarse $$f \in \prod_{A\in \mathcal{P}_{\neq 0}(X)}A.$$

Algunos lo llaman "teoría de tipos", pero en realidad es sólo teoría de conjuntos.

0 votos

Para dar una interpretación más formal de la teoría de conjuntos de las posibles definiciones de estos (básicamente su segunda y tercera frase en símbolos): $\sum_{x\in X}Y_x\equiv\{(x,y)\mid x\in X\land y\in Y_x\}$ y, $\prod_{x\in X}Y_x\equiv\{f\mid f:X\to\bigcup_{x\in X}Y_x\land\forall x.x\in X\Rightarrow f(x)\in Y_x\}$ donde $f:A\to B$ abrevia que $f\subseteq A\times B$ es una relación funcional o más directamente, $\prod_{x\in X}Y_x\equiv\{f\mid(\forall t.t\in f\Rightarrow\exists x,y.x\in X\land y\in Y_x\land t=(x,y))\land\forall x.x\in X\Rightarrow\exists y.(x,y)\in f\land\forall z.(x,z)\in f\Rightarrow y=z\}$ .

0 votos

Nunca había visto estas anotaciones. ¿Cómo se relacionan (especialmente la segunda) con el $Y^X$ notación para las funciones, que también se debe a que el elemento de la función es un producto/tupla ordenada?

2 votos

@ziggystar Esta notación (o pequeñas variaciones de la misma) es extremadamente común en teoría del tipo dependiente En particular, la teoría de tipos de Martin-Löf. A menudo son nociones primitivas en estos sistemas. El tipo de función $Y^X$ es a menudo definido en sistemas como $\prod_{x:X}Y$ es decir, como el caso especial en el que la variable ligada $x$ no se produce en $Y$ . (Del mismo modo, $X\times Y$ se define como $\sum_{x:X}Y$ .) En la teoría de conjuntos, normalmente describimos $\prod_{x\in X}Y_x$ como " $Y$ es un $X$ -familia de conjuntos indexados".

1voto

CodingBytes Puntos 102

Si este tipo de funciones se da muchas veces en tu contexto puedes decir lo siguiente:

Dada una familia ${\cal F}$ de subconjuntos no vacíos de $X$ una función $f:\>{\cal F}\to X$ Satisfaciendo a $f(A)\in A$ para todos $A\in{\cal F}$ se llama función de elección .

0voto

dc.sashwat Puntos 41

En la escritura matemática, no es común pensar en propiedades como la que describes como parte del tipo de la función. La notación $f:Y\to Z$ se utiliza esencialmente sólo para denotar el dominio y el codominio de una función (o tal vez una "función parcial"), sin ninguna información adicional.

Si la entrada debe ser un subconjunto no vacío, y no has dejado muy claro que estás permitiendo funciones parciales, entonces no puedes escribir $f:2^X\to X$ ya que eso permitiría un subconjunto vacío como entrada.

Dependiendo de lo que quieras hacer con funciones de este tipo, una forma de expresar tu idea en lenguaje matemático podría ser algo así "Que $f:2^X-\{\emptyset\}\to X$ satisfacer $f(A)\in A$ para todos $A\in2^X-\{\emptyset\}$ ."

Hay muchas variantes de anotación/redacción, pero eso debería darte algunas ideas/ayudarte a acotar lo que te gustaría decir.

0 votos

Esa es la respuesta que esperaba, pero no deseaba. :)

1 votos

Si el votante tiene alguna duda sobre mi respuesta, estaré encantado de tratar de resolverla. No dudes en ponerte en contacto conmigo en privado a través del contacto de mi perfil si prefieres no hacer un comentario público.

0voto

MORBiD Puntos 80

Esta respuesta se basa en la respuesta de goblin, sus comentarios y mi experiencia reciente.

Notación del producto

Una función $f \colon A \to B$ es una forma de asignar a cada elemento de $A$ (el dominio) un elemento de $B$ (el codominio). También podemos pensar en esta función como un subconjunto de tuplas $f \subseteq A \times B$ que tiene la propiedad de que cada elemento de $A$ aparece exactamente una vez como primera entrada (izquierda). Utilizando $\prod$ como cuantificador del producto (cartesiano), podemos escribirlo como

$$f \in \prod_{a \in A} \{a\} \times B,$$

o utilizando la notación de índice

$$f \in \prod_{a \in A} B_a.$$

Con esta notación, podemos formular codominios más precisos para cada $a$ por ejemplo, para el caso general en el que $C \colon A \to 2^B$ mapas cada uno $a$ a un subconjunto de $B$ $$f \in \prod_{a \in A} C(a)_a,$$ lo que es más preciso que afirmar $f \colon A \to B$ .

Familias indexadas

Familias indexadas son básicamente los mismos que la notación del producto anterior, simplemente utilizando una notación diferente. Utilizando una familia indexada, podemos escribir $$f = (B_a)_{a \in A},$$ que significa lo mismo que $$f \in \prod_{a \in A} B_a.$$ Obsérvese que ambas anotaciones contienen la misma información: $a \in A$ y $B_a$ .

Cuando se utiliza una familia indexada, la aplicación de la función suele escribirse como $f_a$ en lugar de $f(a)$ pero como ambos significan lo mismo, son formalmente intercambiables. Aunque esto pueda resultar inesperado para algunos lectores.

Notación de la función exponencial como caso especial

Partiendo de la notación del producto $$f \in \prod_{a \in A} B_a,$$ podemos eliminar el índice $a$ si el codominio no depende del valor concreto de $a$ : $$f \in \prod_{a \in A} B.$$ Si reescribimos el producto anterior en forma exponencial, llegamos a la notación de función exponencial (más o menos) común $$f \in B^A.$$

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