X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Fcic%2FcicUtil.ml;h=9b6ece214f4d1d251c28f85b25e82c3613c058fb;hb=e9b09b14538f770b9e65083c24e3e9cf487df648;hp=c5061c62fd1f7a7ac6db4e0bbd66258ad74e3a86;hpb=987627a48b2a3c2345d1af2c2a6b1ab78aa90b58;p=helm.git diff --git a/helm/software/components/cic/cicUtil.ml b/helm/software/components/cic/cicUtil.ml index c5061c62f..9b6ece214 100644 --- a/helm/software/components/cic/cicUtil.ml +++ b/helm/software/components/cic/cicUtil.ml @@ -216,16 +216,6 @@ let attributes_of_obj = function let is_generated obj = List.exists ((=) `Generated) (attributes_of_obj obj) -let arity_of_composed_coercion obj = - let attrs = attributes_of_obj obj in - try - let tag=List.find (function `Class (`Coercion _) -> true|_->false) attrs in - match tag with - | `Class (`Coercion n) -> n - | _-> assert false - with Not_found -> 0 -;; - let projections_of_record obj uri = let attrs = attributes_of_obj obj in try @@ -560,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) @@ -575,7 +566,8 @@ let is_sober c t = | C.LetIn (_, v, ty, t) -> sober_term c (sober_term c (sober_term c g t) ty) v | C.Appl [] - | C.Appl [_] -> fun b -> false + | C.Appl [_] + | C.Appl (C.Appl _ :: _) -> fun b -> false | C.Appl ts -> sober_terms c g ts | C.MutCase (_, _, t, v, ts) -> sober_terms c (sober_term c (sober_term c g t) v) ts @@ -630,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)) @@ -642,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