14 votos

Natural de usos para la co-producto de conjuntos?

Yo había llegado a través de un sinnúmero de usos de la (Cartesiano) producto de conjuntos de mucho tiempo antes de que por primera vez se reunió con el concepto de un "sub-producto"1 de conjuntos. De hecho, cualquiera que haya aprendido básicos de la geometría analítica en la high school secundaria ya está familiarizado con, al menos, un buen ejemplo de un producto Cartesiano de conjuntos.

El concepto de un co-producto de los sistemas tienen una vida útil antes (o al menos independiente) de su papel como obligatoria ejemplo de primaria categoría de teoría?

Estoy buscando ejemplos accesibles a la "no-matemáticos" (por que realmente me refiero no a la matemática los estudiantes de pregrado de la licenciatura) en la que el concepto de un co-producto de los conjuntos de prueba natural y útil (de la misma manera que, por ejemplo, el producto de dos ejes de coordenadas proporciona un natural y forma útil de pensar acerca de los puntos de un plano).


Epílogo

Las respuestas que he recibido han sido muy sugerente; gracias a todos!

Pensando en el MJD y Martin Brandeburgo respuestas, en particular, mi comprensión de la co-productos de conjuntos, y de sus productos para que la materia, se ha cambiado radicalmente. Ahora he llegado a considerar la co-producto como una forma más natural y omnipresente construir que el producto2. Este es un cambio completo de cómo yo los vi cuando lo he publicado mi pregunta. Me gustaría poner estos pensamientos aquí, independientemente de la utilidad que puedan tener para los demás, y cualquier crítica constructiva que puedo obtener.

Ya lo que sigue es un poco larga, aquí está el remate:

En $\def\Set{\mathbf{Set}}\Set$,
  • los co-productos con particiones dominios;
  • los productos son parametrizadas codomains.

OK, aquí va. Después de reflexionar sobre sus respuestas, mi pensamiento ahora es que la descripción de la co-producto de la $\Set$ categoría como "la desunión de la unión" que hace que parezca mucho más exótico que es en realidad. Básicamente, el co-producto surge cuando un dominio está dividido en subdominios: las particiones de dominio es el co-producto de estos subdominios. (La inclusión de los subdominios en el dominio son, por supuesto, el co-producto de la canónica de inclusiones.)

Esta situación se presenta todo el tiempo. Cualquier persona que ha estado expuesta a una educación secundaria de matemáticas está familiarizado con funciones definidas a trozos definiciones de funciones, tales como, por ejemplo, la definición estándar de la función valor absoluto $|\cdot|:\mathbb{R}\to\mathbb{R}_{\ge 0}$,

$$ \left|x\right| = \left\{ \begin{array}{lr} x, & \mathrm{if}\; x \ge 0\\ -x, & \mathrm{if}\; x < 0 \end{array} \right. $$

Such piecewise definitions amount to expressing the domain of a $\Conjunto$ morphism (i.e. the function being defined) as the co-product of the domains of the "pieces" that the definition "stitches together." In the example above, these stitched-together pieces are the $\Conjunto$ morphisms $f_0:\mathbb{R}_{\ge 0}\to\mathbb{R}_{\ge 0}$ and $f_1:\mathbb{R}_{< 0}\to\mathbb{R}_{\ge 0}$ se define por $$ \begin{array}{lr} f_0(x) = & x\\ f_1(x) = & -x \end{array} $$

But such maneuvers are not limited to Mathematics. Every procedure whose first stage is a "channeling" of the input into one of several mutually exclusive cases (e.g. "whites" and "colors"), and associates a different sub-procedure with each case (e.g. "wash in hot water" and "wash in lukewarm water"), to finally produce an output of "a uniform kind" (e.g., "washed laundry"), is one that fits the description of the co-product in $\Set$.

I think that what makes it so easy to miss the ubiquity of the co-product in $\Set$ is that expressions such as

$$X = \bigsqcup X_\alpha$$

tend to be interpreted as describing a synthetic operation, namely, one that starts with some arbitrary sets $X_\alpha$, and combines them into "their disjoint union". My point is that in practice such a maneuver is rare in comparison to the one that goes in the "opposite direction", namely, the analytic operation that starts with some set $X$, and partitions it into subsets $X_\alpha$.

The unfortunate irony here is that it is precisely the needs of the in-practice-rare synthetic operation that necessitates introducing an exotic "disjoint union" operation (and even more exotic constructions of it, via "tagged sets" and the like), since arbitrary sets $\{X_\alpha\}$ cannot be assumed to be pairwise-disjoint.

In contrast, the analytic operation, which is readily recognizable by anyone who has ever sorted out a bunch of items into separate classes, is one that does not require introducing any new set operation. (At most, it requires to formally define a partition of a set $X$ as a cover of $X$ consisting of pairwise-disjoint subsets of $X$.)

In light of the above, I've come to realize that the term "disjoint union" could also be interpreted simply as shorthand for "a union of disjoint (and covering) subsets", instead of an exotic new set operation. (There's precedent in Mathematics for transposing the adjective from the parts to the whole; for example an "open cover" is defined as a "cover by open sets".)

Thinking of the co-product in $\Set$ as an manipulation on a domain also sharpened my appreciation of the product in $\Set$ as a manipulation on a codomain: whereas the co-product partitions a domain into subdomains, the product parametrizes a codomain by component sets. With the co-product, several functions that have disjoint domains and the same codomain are stitched together. With the product, several functions that have the same domain, and "independent" codomains are bound together into a single composite function.

As MJD's answer alluded to, in programming the co-product manifests itself as "switch" statements, or, more generally, as sequences of if , else if ... else if , else expressions:

function f(x):
    if test_1(x):
        return f_1(x)
    else if test_2(x):
        return f_2(x)
    ...
    else:
        return f_n(x)
    end
end

Here, the domain $X$ of f is effectively partitioned into disjoint subsets $X_1, X_2, \dots, X_n$, where $X_i$ consists of all those elements of $X$ for which test_i is true, and test_j is false for every $j < i$. The function f "stitches together" the functions f_1, ..., f_n, having (effective) domains $X_1, \dots, X_n$, respectively. This function f is the "unique morphism" in $\Conjunto$, for the given f_1, ..., f_n, that is guaranteed by the definition of the co-product.3

In contrast, the product manifests itself in programming most commonly whenever real-world entities are modeled as composites of a finite number of parameters in such a way that (1) any two model objects are considered identical if and only if their parameter values parameters all match, (2) any combination of allowable values for the parameters represents a valid model object4. The simplest example of this would be modeling space as a collection of three parameters, x, y, and z. Then, for example:

function pos(t):
    return (pos_x(t), pos_y(t), pos_z(t))

The function pos "bundles together", the functions pos_x, pos_y, and pos_z. It is the "unique morphism" in $\$, para el pos_x, pos_yy pos_z, que está garantizada por la definición del producto.

Tenga en cuenta que la función f anterior es una función de la co-producto (IOW el co-producto sirve como el dominio), mientras que la función pos que aquí hay una función para el producto (IOW, el producto sirve como el codominio). Esto es lo característico.

En definitiva, el mensaje es: los co-productos con particiones dominios, los productos son parametrizadas codomains. O mejor aún (como se explica en la nota 2),

las sumas son particiones de dominios, cosums son parametrizadas codomains.


1 En el caso de co-producto deliberadamente para evitar la práctica común de omitir el guión, como en la cotangente, cohomology, cokernel, etc. En el lenguaje natural, la yuxtaposición no es asociativa (por eso, por ejemplo, los componentes de la palabra sindicalizados son interpretados de manera diferente por un químico y un activista laboral), y la no-estándar, pero plausible inteligible, el análisis de "copro-duct" (literalmente: "el excremento del conducto") da la unhyphenated versión de la palabra ... digamos, sospechoso de aura.

2 De hecho, ahora creo que es un poco lamentable que los alumnos de la categoría de la teoría generalmente son contadas acerca de la co-producto, y, a menudo, sumariamente, sólo después de ser enseñado el producto. Al menos en $\Set$, sería más natural para estar con el co-producto (o más bien, con las particiones, expresado como "sumas" de subconjuntos disjuntos) y, a continuación, introducir el producto, o más bien, la cosum! Entonces la consigna dada en otra parte podría ser reformulado un poco más memorable como: sumas son particiones de dominios, cosums son parametrizadas codomains.

3 Pedante advertencia: con el fin de interpretar f como morfismos garantizados por la definición de la co-producto, el f_i debe ser interpretado como las restricciones de las funciones implementadas para su efectiva dominios $X_i$. En la práctica, los dominios de las funciones implementadas f_i frecuencia adecuada superseries de su efectiva dominios $X_i$. Aún así, teniendo en cuenta sólo su papel en la implementación de f, el dominio de cada una de las f_i es, de hecho,$X_i$.

4 tenga en cuenta que estas dos condiciones se corresponden, respectivamente, a la existencia y unicidad de las condiciones en los morfismos que está garantizada por la definición de un producto. Doblemente, las condiciones de los subconjuntos de la partición, a saber, (1) que sean pares disjuntos, y (2) que cubren el conjunto original, corresponden, respectivamente, a la existencia y unicidad de las condiciones en los morfismos que está garantizada por la definición de un co-producto.

7voto

MJD Puntos 37705

Considere la posibilidad de un sistema informático que tiene un tipo de datos enteros, llamados $\def\Int{\mathtt{Int}}\Int$, y un tipo de datos de errores, llamado $\def\Err{\mathtt{Err}}\Err$. Consideremos ahora una función, que puede ejecutar con éxito y devuelven un $\Int$, o sin éxito, y devuelven un $\Err$. Esta función devuelve los valores de la subproducto tipo de $\Int + \Err$. Normalmente, este será implementado como una de las celdas de almacenamiento es lo suficientemente grande como para contener un $\Int$ o $\Err$, además de una etiqueta que identifica a cuál de los dos tipos es realmente almacenados.

¿Cómo son los valores de $\def\IE{\Int + \Err}\IE$ construido? Debe haber dos constructores: uno para convertir los valores de tipo $\Int$ en valores de tipo $\Int+\Err$, y uno para convertir los valores de tipo $\Err$ en valores de tipo $\Int + \Err$. La primera, que podríamos llamar $\def\L{\mathtt{Left}}\L$, es una función de tipo de $\Int\to\IE$, lo que lleva a la $\Int$ es dado, asigna un nuevo $\IE$, las tiendas de la $\Int$ en el de las celdas de almacenamiento, y se establece la etiqueta para indicar que un $\Int$ fue almacenado. Hay una función correspondiente $\def\R{\mathtt{Right}}\R$ tipo $\Err\to\IE$ que hace lo mismo para un $\Err$ del valor. Estas funciones son exactamente los canónica inyecciones $\iota_\Int$ $\iota_\Err$ del subproducto.

Para ser útil, necesitamos alguna manera de examinar el valor almacenado en un $\IE$ y la extracción de los subyacentes $\Int$ o $\Err$ valor de ella. Normalmente la manera de hacer esto es con una construcción que tiene un $\IE$$v$, en función de la $f:\Int\to C$, y una función de $g:\Err\to C$; extrae el valor almacenado en la $\IE$ y pasa a $f$ o $g$ según corresponda; el resultado es un valor de tipo $C$. Esta construcción podría aparecer en el lenguaje de programación como algo como esto:

$$\begin{array}{rl} \mathtt{case}_{f,g} & v\quad \mathtt{ of}& \Int\ x\mathtt{:}& f(x) \\ & & \Err\ y\mathtt{:}& g(y) \end{array}$$

Esta $\mathtt{case}_{f,g}(v)$ construcción es exactamente el universal flecha que está garantizado por el universal propiedad de co-productos.

universal diagram for coproduct

El universal propiedad de co-productos, dice que para cualquier objeto $C$ y cualquier flechas $f:\Int\to C$$g:\Err\to C$, no hay una única flecha $\mathtt{case}_{f,g}(v)$ con la propiedad de que $$\begin{align}\mathtt{case}_{f,g}(\L\ x) &= f(x) \\ \mathtt{case}_{f,g}(\R\ y) &= g(y)\end{align}$$

3voto

Jeff Puntos 804

$\mathrm{Humans} = \mathrm{Men} \sqcup \mathrm{Women}$

$\mathrm{Integers} = \mathrm{odd} \sqcup \mathrm{even}$

¿Realmente se pregunta seriamente si hay cualquier uso distinto de la unión de conjuntos? Surge en todas partes.

1voto

Christoph Puntos 8263

Como usted dijo, usted piensa de $\mathbb R$ como una línea y $\mathbb R\times\mathbb R$ como un avión. Bien, pensamos que de $\mathbb R \sqcup \mathbb R$ como dos líneas discontinuas. Por supuesto, ya está pensando en $\mathbb R$ como una línea implica una topología en $\mathbb R$ por lo menos, así como el pensamiento de $\mathbb R\times\mathbb R$ como un avión implica una topología, después de todo $\mathbb R\cong_{\text{Set}} \mathbb R\times \mathbb R$ en la categoría de conjuntos. Así que para la inconexión de la unión, el pensamiento de $\mathbb R\sqcup\mathbb R$ como dos líneas discontinuas realmente es el co-producto en la categoría de espacios topológicos. También tenemos $\mathbb R\cong_{\text{Set}}\mathbb R\sqcup\mathbb R$ en la categoría de conjuntos.

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