La mayoría de las teorías de tipos que conozco son predicativas, lo que quiero decir que
Void : Prop
Void = (x : Prop) -> x
no está bien tipado en la mayoría de los probadores de teoremas ya que este tipo pi pertenece al mismo universo Propy no es el caso Prop : Prop. Esto los convierte en predicativos y no permite definiciones impredecibles como las anteriores. Sin embargo, una gran cantidad de "lenguajes de pizarra" como System F o CoC son, de hecho, poco convincentes. De hecho, esta impredicatividad es vital para definir la mayoría de las construcciones no incluidas primitivamente en el lenguaje.
Mi pregunta es ¿por qué desearía abandonar la impredicatividad dado su poder para definir construcciones lógicas? Escuché a un par de personas comentar que la impredicatividad arruina la "computación" o la "inducción", pero tengo problemas para encontrar una explicación concreta.
forall P : Type, {P} + {~P}, ya que este conjunto + impredecible implica irrelevancia de prueba (y nonat es irrelevante). Ver, por ejemplo, coq.inria.fr/library/Coq.Logic.ClassicalUniqueChoice.html y coq.inria.fr/library/Coq.Logic.Berardi.html