let ouri_of_reference (NReference.Ref (u,_)) = ouri_of_nuri u;;
+let cprop = [false, NUri.uri_of_string ("cic:/matita/pts/CProp.univ")];;
+
let nn_2_on = function
| "_" -> Cic.Anonymous
| s -> Cic.Name s
| NCic.LetIn (n,ty_s,s,t) ->
Cic.LetIn (nn_2_on n,convert_term k s,convert_term k ty_s, convert_term (k+1) t)
| NCic.Sort NCic.Prop -> Cic.Sort Cic.Prop
- | NCic.Sort NCic.CProp -> Cic.Sort Cic.CProp
+ | NCic.Sort (NCic.Type u) when
+ (* BUG HERE: I should use NCicEnvironment.universe_eq, but I do not
+ want to add this recursion between the modules *)
+ (*NCicEnvironment.universe_eq*) u=cprop -> Cic.Sort (Cic.CProp (CicUniv.fresh ()))
| NCic.Sort (NCic.Type _) -> Cic.Sort (Cic.Type (CicUniv.fresh ()))
| NCic.Implicit _ -> assert false
- | NCic.Const (NReference.Ref (u,NReference.Ind (_,i))) ->
+ | NCic.Const (NReference.Ref (u,NReference.Ind (_,i,_))) ->
Cic.MutInd (ouri_of_nuri u,i,[])
- | NCic.Const (NReference.Ref (u,NReference.Con (i,j))) ->
+ | NCic.Const (NReference.Ref (u,NReference.Con (i,j,_))) ->
Cic.MutConstruct (ouri_of_nuri u,i,j,[])
| NCic.Const (NReference.Ref (u,NReference.Def _))
| NCic.Const (NReference.Ref (u,NReference.Decl)) ->
Cic.Const (ouri_of_nuri u,[])
- | NCic.Match (NReference.Ref (u,NReference.Ind (_,i)),oty,t,pl) ->
+ | NCic.Match (NReference.Ref (u,NReference.Ind (_,i,_)),oty,t,pl) ->
Cic.MutCase (ouri_of_nuri u,i, convert_term k oty, convert_term k t,
List.map (convert_term k) pl)
| NCic.Const (NReference.Ref (u,NReference.Fix (i,_,_)))