List.map (function name -> name, None) args in
let recno = List.length final_params in
let where = recno - 1 in
+ let attrs = `Generated, `Definition, pragma in
let res =
NotationPt.LetRec (`Inductive,
- [final_params, (rec_name,ty), bo, where], rec_name)
+ [final_params, (rec_name,ty), bo, where], attrs)
in
(*
prerr_endline
(function x::_ -> x | _ -> assert false) 80
(NotationPres.mpres_of_box boxml)));
*)
- NotationPt.Theorem
- (`Definition,srec_name,
- NotationPt.Implicit `JustOne,Some res,pragma)
+ res
;;
let ast_of_sort s =
let rec pp rels =
function
NCic.Rel i -> List.nth rels (i - 1)
- | NCic.Const _ as t ->
- NotationPt.Ident
- (status#ppterm ~metasenv:[] ~subst:[] ~context:[] t,None)
+ | NCic.Const _ as t -> NotationPt.NCic t
| NCic.Sort s -> NotationPt.Sort (fst (ast_of_sort s))
| NCic.Meta _
| NCic.Implicit _ -> assert false
| NCic.Lambda (n,s,t) ->
let n = mk_id n in
NotationPt.Binder (`Lambda, (n,Some (pp rels s)), pp (n::rels) t)
- | NCic.LetIn (n,s,ty,t) ->
+ | NCic.LetIn (n,ty,s,t) ->
let n = mk_id n in
NotationPt.LetIn ((n, Some (pp rels ty)), pp rels s, pp (n::rels) t)
| NCic.Match (NReference.Ref (uri,_) as r,outty,te,patterns) ->
in
let params,bo = aux [] consty leftno in
let pprojname = mk_id projname in
+ let attrs = `Generated, `Definition, `Projection in
let res =
NotationPt.LetRec (`Inductive,
- [params, (pprojname,None), bo, leftno], pprojname) in
+ [params, (pprojname,None), bo, leftno], attrs) in
(* prerr_endline
(BoxPp.render_to_string
~map_unicode_to_tex:false
(function x::_ -> x | _ -> assert false)
80 (NotationPres.render (fun _ -> None)
(TermContentPres.pp_ast res)));*)
- NotationPt.Theorem
- (`Definition,projname,NotationPt.Implicit `JustOne,Some res,`Projection)
+ res
;;
let mk_projections status (_,_,_,_,obj) =