module K = Content
module P = Mpresentation
-let sequent2pres term2pres (_,_,context,ty) =
+let sequent2pres0 term2pres (_,_,context,ty) =
let context2pres context =
let rec aux accum =
function
(match dec_name with
None -> "_"
| Some n -> n)) ;
- Box.b_text [] ":" ;
+ Box.b_space; Box.b_text [] ":"; Box.b_space;
term2pres ty] in
aux (r::accum) tl
| (Some (`Definition d))::tl ->
[ Box.b_object (p_mi []
(match def_name with
None -> "_"
- | Some n -> n)) ;
- Box.b_text [] (Utf8Macro.unicode_of_tex "\\def") ;
- term2pres bo] in
+ | Some n -> n)) ; Box.b_space ;
+ Box.b_text [] (Utf8Macro.unicode_of_tex "\\def") ;
+ Box.b_space; term2pres bo] in
aux (r::accum) tl
| _::_ -> assert false in
aux [] context in
- let pres_context = (Box.b_v [] (context2pres context)) in
+ let pres_context =
+ if context <> [] then [Box.b_v [] (context2pres context)] else [] in
let pres_goal = term2pres ty in
(Box.b_h [] [
Box.b_space;
(Box.b_v []
- [Box.b_space;
- pres_context;
+ (Box.b_space ::
+ pres_context @ [
b_ink [None,"width","4cm"; None,"height","2px"]; (* sequent line *)
Box.b_space;
- pres_goal])])
+ pres_goal]))])
let sequent2pres ~ids_to_inner_sorts =
- sequent2pres
+ sequent2pres0
(fun annterm ->
let ast, ids_to_uris =
- TermAcicContent.ast_of_acic ids_to_inner_sorts annterm
+ TermAcicContent.ast_of_acic ~output_type:`Term ids_to_inner_sorts annterm
in
CicNotationPres.box_of_mpres
- (CicNotationPres.render ids_to_uris
+ (CicNotationPres.render
+ ~lookup_uri:(CicNotationPres.lookup_uri ids_to_uris)
(TermContentPres.pp_ast ast)))
+let nsequent2pres ~ids_to_nrefs ~subst =
+ let lookup_uri id =
+ try
+ let nref = Hashtbl.find ids_to_nrefs id in
+ Some (NReference.string_of_reference nref)
+ with Not_found -> None
+ in
+ sequent2pres0
+ (fun ast ->
+ CicNotationPres.box_of_mpres
+ (CicNotationPres.render ~lookup_uri
+ (TermContentPres.pp_ast ast)))