]> matita.cs.unibo.it Git - helm.git/commitdiff
a) Detection of existential types now implemented
authorClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Sat, 10 Nov 2007 14:07:13 +0000 (14:07 +0000)
committerClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Sat, 10 Nov 2007 14:07:13 +0000 (14:07 +0000)
b) New heuristic for pretty printing of type definition arguments.

components/cic_exportation/cicExportation.ml

index e591a12784966aa815e8fc0723d326fd6b9527f9..75088e6fc11fe7ab36573d9b3d55338e7cf704ad 100644 (file)
@@ -186,6 +186,10 @@ let rec pp ~in_type t context =
        let ty,_ = CicTypeChecker.type_of_aux' [] context s CicUniv.oblivion_ugraph in
        "(let " ^ ppname b ^ " = " ^ pp ~in_type:false s context ^ " in " ^
         pp ~in_type t ((Some (b,Cic.Def (s,Some ty)))::context) ^ ")"
+    | C.Appl (he::tl) when in_type ->
+       let hes = pp ~in_type he context in
+       let stl = String.concat "," (clean_args_for_ty context tl) in
+        (if stl = "" then "" else "(" ^ stl ^ ") ") ^ hes
     | C.Appl (C.MutInd _ as he::tl) ->
        let hes = pp ~in_type he context in
        let stl = String.concat "," (clean_args_for_ty context tl) in
@@ -410,6 +414,9 @@ let ppty current_module_uri =
              let abstr,args =
               args (nparams - 1) ((Some (n,Cic.Decl s))::context) t in
                abstr,pp ~in_type:true current_module_uri s context::args
+         | `Sort _ when nparams <= 0 ->
+             let n = Cic.Name "unit (* EXISTENTIAL TYPE *)" in
+              args (nparams - 1) ((Some (n,Cic.Decl s))::context) t
          | `Sort _ ->
              let n =
               match n with