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_y
y 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.