Library hProp

Generalities on hProp. Vladimir Voevodsky . May - Sep. 2011 .

In this file we introduce the hProp - an analog of Prop defined based on the univalent semantics. We further introduce the hProp version of the "inhabited" construction - i.e. for any T in UU0 we construct an object ishinhT and a function hinhpr : T -> ishinhT which plays the role of inhabits from the Coq standard library. The semantic meaning of hinhpr is that it is universal among functions from T to objects of hProp. Proving that ishinhT is in hProp requires a resizing rule which can be written in the putative notation for such rules as follows :

RR1 ( U1 U2 : Univ ) ( X : U1 ) ( is : isaprop X ) |- X : U2 .

Further in the file we introduce the univalence axiom for hProp and a proof of the fact that it is equivalent to a simplier and better known axiom uahp. We prove that this axiom implies that hProp satisfies isaset i.e. it is a type of h-level 2 . This requires another resizing rule :

RR2 ( U1 U2 : Univ ) |- @hProp U1 : U2 .

Since resizing rules are not currently implemented in Coq the file does not compile without a patch provided by Hugo Herbelin which turns off the universe consistency verification. We do however keep track of universes in our development "by hand" to ensure that when the resizing rules will become available the current proofs will verify correctly. To point out which results require resizing rules in a substantial way we mark the first few of such reults by or comment .

One can achieve similar results with a combination of usual axioms which imitate the resizing rules. However unlike the usual axioms the resizing rules do not affect the computation/normalization abilities of Coq which makes them the prefrred choice in this situation.

The type hProp of types of h-level 1

The following re-definitions should make proofs easier in the future when the unification algorithms in Coq are improved . At the moment they create more complications than they eliminate ( e.g. try to prove isapropishinh with isaprop in hProp ) so for the time being they are commented out .

Note that the previous definitions do not require RR1 in an essential way ( except for the placing of ishinh in hPropUU0 - without RR1 it would be placed in hPropUU1 ) . The first place where RR1 is essentially required is in application of hinhuniv to a function X -> ishinhY

Univalence axiom for hProp

We introduce here the weakest form of the univalence axiom - the univalence axiom for hProp which is equivalent to the second part of the extensionality axiom in Church simple type theory. This axiom is easily shown to be equivalent to its version with pathsPP' as a target and to weqtopathshProp (see below) as well as to the version of weqtopathshProp with pathsPP' as a target.

The proof of theorem univfromtwoaxiomshProp is modeled on the proof of univfromtwoaxioms from univ01.v