]> matita.cs.unibo.it Git - helm.git/commit
CProp, since it was defined in CoRN as a Type, is predicative.
authorEnrico Tassi <enrico.tassi@inria.fr>
Thu, 29 May 2008 16:27:26 +0000 (16:27 +0000)
committerEnrico Tassi <enrico.tassi@inria.fr>
Thu, 29 May 2008 16:27:26 +0000 (16:27 +0000)
commit2b10614120e86ec755f4826c6e78a654434bc7f8
tree0d3b11c32d3309f82ba4603ded9b496c58d4c883
parentd0181ea59444d7a634d100569eebe5e79c58632b
CProp, since it was defined in CoRN as a Type, is predicative.
However, it is not Type0, but a moving Type as usual, for example

  inductive and (A,B:CProp) : CProp := ...

  inductive exists (A:Type) (P:A->CProp) : CProp :=
   | ext : \forall x:A. \forall p : P x. exists A P.

does not pass since the sort of x is Type not included in CProp. Putting
exists in Type does not work either, if you want to make a conjuction
involving an existential.

solution, to be implemented:

  CProp of CicUniv.universe

where CProp n is meant to be Type (n + 0.5).
helm/software/components/cic_proof_checking/cicTypeChecker.ml