]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/ng_kernel/nCicPp.ml
Use seed to avoid further name clashes.
[helm.git] / helm / software / components / ng_kernel / nCicPp.ml
index 087e58c98b6955f40829488bffb1753571a153d8..2c46fef6f18a75874ff5486c71f2e107a96528ec 100644 (file)
@@ -4,7 +4,7 @@ let ppterm =
 
 let set_ppterm f = ppterm := f;;
 
-let ppterm ?(context=[]) ?(subst=[]) ?(metasenv=[]) t = 
+let ppterm ~context ~subst ~metasenv t = 
   !ppterm ~context ~subst ~metasenv t
 ;;
 
@@ -33,4 +33,23 @@ let trivial_pp_term ~context ~subst ~metasenv =
    | C.Sort (C.Type n) -> "Type"^string_of_int n
   in 
    aux (List.map fst context)
+;;
 
+let ppobj = function
+  | (u,_,metasenv,subst,NCic.Fixpoint (b, fl, _)) -> 
+       NUri.string_of_uri u^"\n"^
+       "let rec "^
+       String.concat "\nand "
+        (List.map (fun (_,name,n,ty,bo) ->
+          name ^ " on " ^ string_of_int n ^ " : " ^ 
+          ppterm ~metasenv ~subst ~context:[] ty ^ " :=\n"^
+          ppterm ~metasenv ~subst ~context:[] bo) fl)
+  | (u,_,_,_,NCic.Inductive (b, _,tyl, _)) -> "inductive"
+  | (u,_,metasenv,subst,NCic.Constant (_,name,None,ty, _)) -> 
+        "axiom " ^ name ^ " : " ^ 
+          ppterm ~metasenv ~subst ~context:[] ty ^ "\n"
+  | (u,_,metasenv,subst,NCic.Constant (_,name,Some bo,ty, _)) ->
+        "definition " ^ name ^ " : " ^ 
+          ppterm ~metasenv ~subst ~context:[] ty ^ ":=\n"^
+          ppterm ~metasenv ~subst ~context:[] bo ^ "\n"
+;;