X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Fng_cic_content%2FnTermCicContent.ml;h=e36a1290c949ed8bdc5549546228fb82efff9ea3;hb=fb2fabf6c94d6a2f930b7a84673c90af32c48803;hp=3c17823b6c9160e25f298839d67c41703a395aba;hpb=07713b63c109a99c2b9dc7265571bcdd3dd6ed0d;p=helm.git diff --git a/helm/software/components/ng_cic_content/nTermCicContent.ml b/helm/software/components/ng_cic_content/nTermCicContent.ml index 3c17823b6..e36a1290c 100644 --- a/helm/software/components/ng_cic_content/nTermCicContent.ml +++ b/helm/software/components/ng_cic_content/nTermCicContent.ml @@ -58,6 +58,12 @@ let idref register_ref = Ast.AttributedTerm (`IdRef id, t) ;; +let level_of_uri u = + let name = NUri.name_of_uri u in + assert(String.length name > String.length "Type"); + String.sub name 4 (String.length name - 4) +;; + (* CODICE c&p da NCicPp *) let nast_of_cic0 status ~(idref: @@ -81,17 +87,13 @@ let nast_of_cic0 status idref (Ast.Meta (n, List.map (fun x -> Some (k ~context (NCicSubstitution.lift s x))) l)) | NCic.Sort NCic.Prop -> idref (Ast.Sort `Prop) - | NCic.Sort NCic.Type _ -> idref (Ast.Sort `Set) - (* CSC: | C.Sort (C.Type []) -> F.fprintf f "Type0" - | C.Sort (C.Type [false, u]) -> F.fprintf f "%s" (NUri.name_of_uri u) - | C.Sort (C.Type [true, u]) -> F.fprintf f "S(%s)" (NUri.name_of_uri u) - | C.Sort (C.Type l) -> - F.fprintf f "Max("; - aux ctx (C.Sort (C.Type [List.hd l])); - List.iter (fun x -> F.fprintf f ",";aux ctx (C.Sort (C.Type [x]))) - (List.tl l); - F.fprintf f ")"*) - (* CSC: qua siamo grezzi *) + | NCic.Sort NCic.Type [] -> idref (Ast.Sort `Set) + | NCic.Sort NCic.Type ((`Type,u)::_) -> + idref(Ast.Sort (`NType (level_of_uri u))) + | NCic.Sort NCic.Type ((`CProp,u)::_) -> + idref(Ast.Sort (`NCProp (level_of_uri u))) + | NCic.Sort NCic.Type ((`Succ,u)::_) -> + idref(Ast.Sort (`NType (level_of_uri u ^ "+1"))) | NCic.Implicit `Hole -> idref (Ast.UserInput) | NCic.Implicit `Vector -> idref (Ast.Implicit `Vector) | NCic.Implicit _ -> idref (Ast.Implicit `JustOne)