9. Subconjuntos y subconjuntos propios

Un conjunto es subconjunto de otro cuando todos sus elementos también pertenecen al segundo conjunto. Esta relación permite expresar inclusión, jerarquías, permisos, filtros y categorías.

9.1 Introducción

Hasta ahora vimos cómo representar conjuntos, contar sus elementos y comparar igualdad. En este tema estudiaremos una relación fundamental entre conjuntos: la inclusión.

La inclusión permite decir que un conjunto está contenido dentro de otro. Esta idea aparece en matemáticas, permisos de usuario, categorías, filtros de datos y validaciones de requisitos.

9.2 Qué es un subconjunto

Un conjunto A es subconjunto de un conjunto B cuando todos los elementos de A también pertenecen a B.

A = {1, 2} B = {1, 2, 3, 4} A ⊆ B

La expresión A ⊆ B se lee: A es subconjunto de B, o A está contenido en B.

9.3 Notación de inclusión

La relación de subconjunto se representa con el símbolo . Si un conjunto no está contenido en otro, se usa o se indica explícitamente que la inclusión es falsa.

Notación Lectura Significado
A ⊆ B A es subconjunto de B Todo elemento de A pertenece a B
A ⊄ B A no es subconjunto de B Existe al menos un elemento de A que no pertenece a B
A ⊂ B A es subconjunto propio de B A está contenido en B y no es igual a B

9.4 Diferencia entre pertenencia e inclusión

La pertenencia relaciona un elemento con un conjunto. La inclusión relaciona un conjunto con otro conjunto.

2 ∈ {1, 2, 3} {1, 2} ⊆ {1, 2, 3}

En la primera línea, 2 es un elemento. En la segunda línea, {1, 2} es un conjunto.

9.5 Ejemplos de subconjuntos

Conjunto A Conjunto B Relación
{2, 4} {2, 4, 6, 8} A ⊆ B
{HTML, CSS} {HTML, CSS, JavaScript} A ⊆ B
{leer, editar} {leer, editar, publicar} A ⊆ B
{1, 5} {1, 2, 3} A no es subconjunto de B

9.6 Subconjunto propio

Un conjunto A es subconjunto propio de B cuando todos los elementos de A pertenecen a B, pero A y B no son iguales.

A = {1, 2} B = {1, 2, 3} A ⊂ B

En este caso, A está contenido en B y B tiene al menos un elemento que A no tiene.

9.7 Subconjunto no propio

Todo conjunto es subconjunto de sí mismo, pero no es subconjunto propio de sí mismo.

A = {1, 2, 3} A ⊆ A A ⊄ A como subconjunto propio

La inclusión permite igualdad. La inclusión propia exige que haya una diferencia real entre ambos conjuntos.

9.8 El conjunto vacío como subconjunto

El conjunto vacío es subconjunto de cualquier conjunto. Esto se debe a que no contiene elementos que puedan violar la condición de inclusión.

∅ ⊆ A

Si A no es vacío, entonces además es subconjunto propio de A.

9.9 Propiedades básicas

Propiedad Notación Interpretación
Reflexiva A ⊆ A Todo conjunto está contenido en sí mismo
Antisimétrica Si A ⊆ B y B ⊆ A, entonces A = B Si se contienen mutuamente, tienen los mismos elementos
Transitiva Si A ⊆ B y B ⊆ C, entonces A ⊆ C La inclusión puede encadenarse
Vacío ∅ ⊆ A El conjunto vacío está contenido en todo conjunto

9.10 Subconjuntos en diagramas de Venn

En un diagrama de Venn, si A es subconjunto de B, la región de A queda completamente dentro de la región de B.

A = usuarios administradores B = usuarios registrados A ⊆ B

Todo administrador debe ser un usuario registrado, pero no todo usuario registrado es administrador.

9.11 Verificar subconjuntos en JavaScript

En JavaScript, podemos verificar si un conjunto es subconjunto de otro comprobando que todos sus elementos estén presentes en el segundo conjunto.

function esSubconjunto(a, b) {
  return [...a].every(elemento => b.has(elemento));
}

const requeridos = new Set(["leer", "editar"]);
const asignados = new Set(["leer", "editar", "publicar"]);

console.log(esSubconjunto(requeridos, asignados));

El resultado es verdadero porque todos los permisos requeridos están dentro del conjunto de permisos asignados.

9.12 Verificar subconjunto propio en JavaScript

Para verificar si un conjunto es subconjunto propio, además de comprobar inclusión debemos verificar que los conjuntos no tengan la misma cardinalidad.

function esSubconjuntoPropio(a, b) {
  return a.size < b.size && [...a].every(elemento => b.has(elemento));
}

const basicos = new Set(["HTML", "CSS"]);
const web = new Set(["HTML", "CSS", "JavaScript"]);

console.log(esSubconjuntoPropio(basicos, web));

El conjunto de tecnologías básicas está contenido en el conjunto web y además tiene menos elementos.

9.13 Aplicaciones prácticas

Situación Relación de subconjunto Uso práctico
Permisos Permisos requeridos ⊆ permisos asignados Autorizar una acción
Filtros Resultados filtrados ⊆ datos originales Validar una consulta
Categorías Productos destacados ⊆ productos disponibles Organizar catálogos
Pruebas Casos aprobados ⊆ casos ejecutados Analizar resultados de testing

9.14 Errores frecuentes

  • Confundir pertenencia con inclusión .
  • Creer que un subconjunto debe tener siempre menos elementos.
  • Olvidar que todo conjunto es subconjunto de sí mismo.
  • Olvidar que el conjunto vacío es subconjunto de cualquier conjunto.
  • Confundir subconjunto con subconjunto propio.

9.15 Qué debes recordar de este tema

  • A es subconjunto de B si todos los elementos de A pertenecen a B.
  • La notación A ⊆ B expresa inclusión.
  • La notación A ⊂ B expresa subconjunto propio.
  • Todo conjunto es subconjunto de sí mismo.
  • El conjunto vacío es subconjunto de cualquier conjunto.
  • En JavaScript, every y has permiten comprobar inclusión entre conjuntos.

9.16 Conclusión

Los subconjuntos permiten expresar que una colección está contenida dentro de otra. Esta relación es fundamental para comprender jerarquías, filtros, permisos y muchas operaciones posteriores.

En el próximo tema estudiaremos el conjunto potencia y la cantidad de subconjuntos que puede tener un conjunto.