X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fcic_disambiguation%2Fdisambiguate.ml;h=dd915a2829c0831961b860dbc76e02b7805cce8d;hb=08791e80816548121e81e04d3ead8c9a5171d033;hp=6b5e3f8332c60e21283486461032d020f12ac60d;hpb=405d288cca88e63515164a8d42d60087e305615c;p=helm.git diff --git a/helm/ocaml/cic_disambiguation/disambiguate.ml b/helm/ocaml/cic_disambiguation/disambiguate.ml index 6b5e3f833..dd915a282 100644 --- a/helm/ocaml/cic_disambiguation/disambiguate.ml +++ b/helm/ocaml/cic_disambiguation/disambiguate.ml @@ -119,7 +119,7 @@ let interpretate_term ~context ~env ~uri ~is_path ast = resolve env (Symbol (symb, i)) ~args:cic_args () | CicAst.Appl terms -> Cic.Appl (List.map (aux loc context) terms) | CicAst.Binder (binder_kind, (var, typ), body) -> - let cic_type = aux_option loc context typ in + let cic_type = aux_option loc context (Some `Type) typ in let cic_body = aux loc (var :: context) body in (match binder_kind with | `Lambda -> Cic.Lambda (var, cic_type, cic_body) @@ -129,7 +129,7 @@ let interpretate_term ~context ~env ~uri ~is_path ast = ~args:[ cic_type; Cic.Lambda (var, cic_type, cic_body) ] ()) | CicAst.Case (term, indty_ident, outtype, branches) -> let cic_term = aux loc context term in - let cic_outtype = aux_option loc context outtype in + let cic_outtype = aux_option loc context None outtype in let do_branch ((head, args), term) = let rec do_branch' context = function | [] -> aux loc context term @@ -184,7 +184,7 @@ let interpretate_term ~context ~env ~uri ~is_path ast = List.map (fun ((name, typ), body, decr_idx) -> let cic_body = aux loc context' body in - let cic_type = aux_option loc context typ in + let cic_type = aux_option loc context (Some `Type) typ in let name = match name with | Cic.Anonymous -> @@ -311,8 +311,8 @@ let interpretate_term ~context ~env ~uri ~is_path ast = | CicAst.Sort `CProp -> Cic.Sort Cic.CProp | CicAst.Symbol (symbol, instance) -> resolve env (Symbol (symbol, instance)) () - and aux_option loc context = function - | None -> Cic.Implicit (Some `Type) + and aux_option loc context annotation = function + | None -> Cic.Implicit annotation | Some term -> aux loc context term in match ast with @@ -412,14 +412,16 @@ let interpretate_obj ~context ~env ~uri ~is_path obj = let field_names = List.map fst fields in Cic.InductiveDefinition (tyl,[],List.length params,[`Class (`Record field_names)]) - | TacticAst.Theorem (_,name,ty,bo) -> + | TacticAst.Theorem (flavour, name, ty, bo) -> + let attrs = [`Flavour flavour] in let ty' = interpretate_term [] env None false ty in - match bo with + (match bo with None -> - Cic.CurrentProof (name,[],Cic.Implicit None,ty',[],[]) + Cic.CurrentProof (name,[],Cic.Implicit None,ty',[],attrs) | Some bo -> let bo' = Some (interpretate_term [] env None false bo) in - Cic.Constant (name,bo',ty',[],[]) + Cic.Constant (name,bo',ty',[],attrs)) + (* e.g. [5;1;1;1;2;3;4;1;2] -> [2;1;4;3;5] *) let rev_uniq =