]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/cic/cicUtil.ml
parameter sintax added to axiom statement
[helm.git] / helm / software / components / cic / cicUtil.ml
index deb8f1e68bc3fdf69a84b4f3e5fc77d50d5f4515..9b6ece214f4d1d251c28f85b25e82c3613c058fb 100644 (file)
@@ -550,7 +550,8 @@ let alpha_equivalence =
 
 let is_sober c t =
    let rec sober_term c g = function
-      | C.Rel _ 
+      | C.Rel i                         ->
+         if i <= 0 then fun b -> false else g
       | C.Sort _  
       | C.Implicit _                    -> g      
       | C.Const (_, xnss) 
@@ -621,11 +622,12 @@ let pp_rel out c i =
       | Some (s, _)    -> out (Printf.sprintf "%u[" i); pp_name out s; out "]"
    with Failure "nth" -> out (Printf.sprintf "%u[%i]" i (List.length c - i))
 
-let pp_implict out = function
+let pp_implicit out = function
    | None         -> out "?"
    | Some `Closed -> out "?[Closed]" 
    | Some `Type   -> out "?[Type]"
    | Some `Hole   -> out "?[Hole]"
+   | Some `Vector -> out "?[...]"
 
 let pp_uri out a =
    out (Printf.sprintf "%s<%s>" (UM.name_of_uri a) (UM.string_of_uri a)) 
@@ -633,7 +635,7 @@ let pp_uri out a =
 let rec pp_term out e c = function
    | C.Sort h                      -> pp_sort out h
    | C.Rel i                       -> pp_rel out c i
-   | C.Implicit x                  -> pp_implict out x
+   | C.Implicit x                  -> pp_implicit out x
    | C.Meta (i, iss)               ->
       let map = function None   -> out "_" | Some v -> pp_term out e c v in
       out (Printf.sprintf "?%u" i); xiter out "[" "; " "]" map iss