diff options
| author | letouzey | 2013-02-27 14:39:14 +0000 |
|---|---|---|
| committer | letouzey | 2013-02-27 14:39:14 +0000 |
| commit | b3e1879a09c3623c7a04858a7421b316abd65293 (patch) | |
| tree | 7b02b6dd43c7febef378d1f8094d344327ad6457 /kernel/term_typing.ml | |
| parent | fb304bfac1872d724c814fcd860c691582492568 (diff) | |
Minor cleanup around Term_typing
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16253 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'kernel/term_typing.ml')
| -rw-r--r-- | kernel/term_typing.ml | 55 |
1 files changed, 10 insertions, 45 deletions
diff --git a/kernel/term_typing.ml b/kernel/term_typing.ml index 3ec0da4579..c70a3f2eb8 100644 --- a/kernel/term_typing.ml +++ b/kernel/term_typing.ml @@ -20,7 +20,6 @@ open Term open Declarations open Environ open Entries -open Indtypes open Typeops let constrain_type env j cst1 = function @@ -29,9 +28,9 @@ let constrain_type env j cst1 = function | Some t -> let (tj,cst2) = infer_type env t in let (_,cst3) = judge_of_cast env j DEFAULTcast tj in - assert (eq_constr t tj.utj_val); - let cstrs = union_constraints (union_constraints cst1 cst2) cst3 in - NonPolymorphicType t, cstrs + assert (eq_constr t tj.utj_val); + let cstrs = union_constraints (union_constraints cst1 cst2) cst3 in + NonPolymorphicType t, cstrs let local_constrain_type env j cst1 = function | None -> @@ -52,42 +51,10 @@ let translate_local_assum env t = let t = Typeops.assumption_of_judgment env j in (t,cst) -(* - -(* Same as push_named, but check that the variable is not already - there. Should *not* be done in Environ because tactics add temporary - hypothesis many many times, and the check performed here would - cost too much. *) -let safe_push_named (id,_,_ as d) env = - let _ = - try - let _ = lookup_named id env in - error ("Identifier "^Id.to_string id^" already defined.") - with Not_found -> () in - push_named d env - -let push_named_def = push_rel_or_named_def safe_push_named -let push_rel_def = push_rel_or_named_def push_rel - -let push_rel_or_named_assum push (id,t) env = - let (j,cst) = safe_infer env t in - let t = Typeops.assumption_of_judgment env j in - let env' = add_constraints cst env in - let env'' = push (id,None,t) env' in - (cst,env'') - -let push_named_assum = push_rel_or_named_assum push_named -let push_rel_assum d env = snd (push_rel_or_named_assum push_rel d env) - -let push_rels_with_univ vars env = - List.fold_left (fun env nvar -> push_rel_assum nvar env) env vars -*) - (* Insertion of constants and parameters in environment. *) -let infer_declaration env dcl = - match dcl with +let infer_declaration env = function | DefinitionEntry c -> let (j,cst) = infer env c.const_entry_body in let j = @@ -113,7 +80,7 @@ let global_vars_set_constant_type env = function (fun t c -> Id.Set.union (global_vars_set env t) c)) ctx ~init:Id.Set.empty -let build_constant_declaration env kn (def,typ,cst,inline_code,ctx) = +let build_constant_declaration env (def,typ,cst,inline_code,ctx) = let hyps = let inferred = let ids_typ = global_vars_set_constant_type env typ in @@ -144,14 +111,12 @@ let build_constant_declaration env kn (def,typ,cst,inline_code,ctx) = (*s Global and local constant declaration. *) -let translate_constant env kn ce = - build_constant_declaration env kn (infer_declaration env ce) +let translate_constant env ce = + build_constant_declaration env (infer_declaration env ce) -let translate_recipe env kn r = - build_constant_declaration env kn - (let def,typ,cst,inline,hyps = Cooking.cook_constant env r in - def,typ,cst,inline,Some hyps) +let translate_recipe env r = + build_constant_declaration env (Cooking.cook_constant env r) (* Insertion of inductive types. *) -let translate_mind env kn mie = check_inductive env kn mie +let translate_mind env kn mie = Indtypes.check_inductive env kn mie |
