En lógica para programadores, definir correctamente las funciones sobre listas vacías es clave para mantener propiedades algebraicas coherentes. El texto parte de la función all de Python, que equivale a aplicar el operador && entre todos los elementos de una lista. A partir de ahí, demuestra que para conservar la propiedad distributiva all(xs ++ ys) == all(xs) && all(ys) en cualquier caso, incluido el de listas vacías, es imprescindible que all([]) tome el valor True. Si valiera False, la ecuación obligaría a que all(xs) fuera False para cualquier lista xs, lo que destruye la utilidad de la función.
El argumento se apoya en la noción de elemento identidad: True es la identidad de &&, porque p && True es siempre igual a p, igual que 0 es la identidad de la suma y False lo es del operador ||. Con ese mismo razonamiento, el artículo justifica por qué la suma de una lista vacía es 0 y por qué any([]) devuelve False, ya que False es la identidad de ||. Se trata, en definitiva, de una pieza didáctica que une programación y lógica formal.
