let ty = NCicTypeChecker.typeof status [] [] [] t in
let source, target =
let clean = function
- | NCic.Appl (NCic.Const _ as r :: l) ->
- NotationPt.Appl (NotationPt.NCic r ::
- List.map (fun _ -> NotationPt.Implicit `JustOne)l)
- | NCic.Const _ as r -> NotationPt.NCic r
- | _ -> assert false in
+ | NCic.Appl (NCic.Const _ as r :: l) ->
+ NotationPt.Appl (NotationPt.NCic r ::
+ List.map (fun _ -> NotationPt.Implicit `JustOne)l)
+ | NCic.Const _ as r -> NotationPt.NCic r
+ | NCic.Sort _ as r -> NotationPt.NCic r (* FG: missing case *)
+ | _ -> assert false
+ in
let rec aux = function
- | NCic.Prod (_,_, (NCic.Prod _ as rest)) -> aux rest
- | NCic.Prod (name, src, tgt) -> (name, clean src), clean tgt
- | _ -> assert false in aux ty in
- status, o_t, NotationPt.NCic ty, source, target in
+ | NCic.Prod (_,_, (NCic.Prod _ as rest)) -> aux rest
+ | NCic.Prod (name, src, tgt) -> (name, clean src), clean tgt
+ | _ -> assert false
+ in
+ aux ty
+ in
+ status, o_t, NotationPt.NCic ty, source, target
+ in
let status, composites =
NCicCoercDeclaration.eval_ncoercion status name compose t ty source
- target in
+ target
+ in
let mode = GrafiteAst.WithPreferences in (* MATITA 1.0: fixme *)
let aliases = GrafiteDisambiguate.aliases_for_objs status composites in
eval_alias status (mode,aliases)
(match spec with
| NReference.Def _ -> NReference.Def height
| NReference.Fix (i,j,_) -> NReference.Fix(i,j,height)
- | NReference.CoFix _ -> NReference.CoFix height
+ | NReference.CoFix i -> NReference.CoFix i
| NReference.Ind _ | NReference.Con _
| NReference.Decl as s -> s))
| t -> NCicUtils.map status (fun _ () -> ()) () fix t
try
let nstatus =
eval_ncommand ~include_paths opts status
- ("",0,GrafiteAst.NObj (HExtlib.dummy_floc,boxml))
+ ("",0,GrafiteAst.NObj (HExtlib.dummy_floc,boxml,true))
in
if nstatus#ng_mode <> `CommandMode then
begin
) status boxml in
let _,_,_,_,nobj = obj in
let status = match nobj with
- NCic.Inductive (is_ind,leftno,[it],_) ->
- let _,ind_name,ty,cl = it in
- List.fold_left
+ NCic.Inductive (is_ind,leftno,itl,_) ->
+ List.fold_left (fun status it ->
+ (let _,ind_name,ty,cl = it in
+ List.fold_left
(fun status outsort ->
let status = status#set_ng_mode `ProofMode in
try
let status = status#set_ng_mode `CommandMode in status)
status
(NCic.Prop::
- List.map (fun s -> NCic.Type s) (NCicEnvironment.get_universes ()))
+ List.map (fun s -> NCic.Type s)
+ (NCicEnvironment.get_universes ())))) status itl
| _ -> status
in
let status = match nobj with
let status = subst_metasenv_and_fix_names status in
let status = status#set_ng_mode `ProofMode in
eval_ncommand ~include_paths opts status ("",0,GrafiteAst.NQed(Stdpp.dummy_loc,false))
- | GrafiteAst.NObj (loc,obj) ->
+ | GrafiteAst.NObj (loc,obj,index) ->
if status#ng_mode <> `CommandMode then
raise (GrafiteTypes.Command_error "Not in command mode")
else
let status = status#set_ng_mode `ProofMode in
(match nmenv with
[] ->
- eval_ncommand ~include_paths opts status ("",0,GrafiteAst.NQed(Stdpp.dummy_loc,true))
+ eval_ncommand ~include_paths opts status
+ ("",0,GrafiteAst.NQed(Stdpp.dummy_loc,index))
| _ -> status)
| GrafiteAst.NDiscriminator (loc, indty) ->
if status#ng_mode <> `CommandMode then