La cuantificación sobre variables que representan predicados de la lógica de primer orden se denomina lógica de segundo orden . La cuantificación sobre variables que representan predicados de la lógica de segundo orden se denomina lógica de tercer orden . Al iterar esto se obtiene lógica de orden superior .
Los tipos de lógica son susceptibles de las mismas clases de paradojas que los tipos de teoría de conjuntos; por ejemplo, se permite que los predicados unarios realmente se tengan a sí mismos en su dominio, se podría definir $Q(P) :\equiv \neg P(P)$ y luego $Q(Q)$ es la paradoja del mentiroso.
La formulación de la lógica de orden superior es la principal forma de tratar esto, y recuerda mucho a cómo la ZFC evita las paradojas de la teoría de conjuntos ingenua.
Si se fijan bien los detalles, la lógica de segundo orden no es más que la teoría de primer orden de la lógica de primer orden.
Sin embargo, Cuando se utiliza la lógica de orden superior con la teoría de conjuntos, la gente suele 1 como para restringir los tipos de semántica permitidos. En particular, si $X$ es un tipo, y $\mathcal{P}(X)$ es el tipo de todos los predicados unarios sobre $X$ entonces en una interpretación donde el tipo $X$ se asigna a un conjunto $S$ insisten en que el tipo $\mathcal{P}(X)$ se asigna al conjunto de potencias $\mathcal{P}(S)$ .
Este es el llamado semántica completa para la lógica de orden superior. Hace no tienen las conocidas propiedades lógicas agradables; por ejemplo, el análogo del teorema de completitud de Gödel no se cumple. Por esta razón, se tiende a evitar la lógica de segundo orden cuando se hace lógica formal.
1: Con "a menudo" me refiero al punto en que la gente encuentra raro que no hacerlo, y en su lugar sólo usar lo que normalmente se usaría para la semántica de una teoría de primer orden. O en el caso de la lógica de segundo orden, un intermediario llamado Semántica de Henkin se utiliza más comúnmente, donde la interpretación de $\mathcal{P}(X)$ debe ser un subconjunto de $\mathcal{P}(S)$ .