X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=helm%2Fsoftware%2Fcomponents%2Fng_tactics%2FnCicElim.ml;h=79a22b07720fa9d5a3e7b2503324653a249becd7;hb=3c17c53d6628c1863a33ab071266a0f5614bbce1;hp=0abff3a6c694727f79cc2e07eded3fd6ce48cc82;hpb=d34061fd1c820139fad38c39dee6377e5057bf26;p=helm.git diff --git a/helm/software/components/ng_tactics/nCicElim.ml b/helm/software/components/ng_tactics/nCicElim.ml index 0abff3a6c..79a22b077 100644 --- a/helm/software/components/ng_tactics/nCicElim.ml +++ b/helm/software/components/ng_tactics/nCicElim.ml @@ -265,16 +265,18 @@ let mk_projection leftno tyname consname consty (projname,_,_) i = @ names in let outtype = pp rels outtype in let outtype= CicNotationPt.Binder (`Lambda, (arg, Some arg_ty), outtype) in - CicNotationPt.Binder - (`Lambda, (arg,Some arg_ty), - CicNotationPt.Case (arg,None,Some outtype,[branch])) + [arg, Some arg_ty], CicNotationPt.Case (arg,None,Some outtype,[branch]) | _,NCic.Prod (name,_,t) -> let name = mk_id name in - CicNotationPt.Binder - (`Lambda, (name,None), aux (name::names) t (leftno - 1)) + let params,body = aux (name::names) t (leftno - 1) in + (name,None)::params, body | _,_ -> assert false in - let res = aux [] consty leftno in + let params,bo = aux [] consty leftno in + let pprojname = mk_id projname in + let res = + CicNotationPt.LetRec (`Inductive, + [params, (pprojname,None), bo, leftno], pprojname) in (* prerr_endline (BoxPp.render_to_string ~map_unicode_to_tex:false