aboutsummaryrefslogtreecommitdiff
path: root/kernel/evd.ml
diff options
context:
space:
mode:
authorfilliatr1999-10-18 13:51:32 +0000
committerfilliatr1999-10-18 13:51:32 +0000
commit154f0fc69c79383cc75795554eb7e0256c8299d8 (patch)
treed39ed1dbe4d0c555a8373592162eee3043583a1a /kernel/evd.ml
parent22e4ceb13d18c8b941f6a27cc83f547dd90104b8 (diff)
- déplacement (encore une fois !) des variables existentielles : elles sont
toujours dans le noyau (en ce sens que Reduction et Typeops les connaissent) mais dans un argument supplémentaire A COTE de l'environnement (de type unsafe_env) - Indtypes et Typing n'utilisent strictement que Evd.empty git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@106 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'kernel/evd.ml')
-rw-r--r--kernel/evd.ml15
1 files changed, 10 insertions, 5 deletions
diff --git a/kernel/evd.ml b/kernel/evd.ml
index 9295d35872..270ad1f2e4 100644
--- a/kernel/evd.ml
+++ b/kernel/evd.ml
@@ -18,14 +18,15 @@ type evar_body =
| Evar_empty
| Evar_defined of constr
-type evar_info = {
+type 'a evar_info = {
evar_concl : constr;
evar_hyps : typed_type signature;
- evar_body : evar_body }
+ evar_body : evar_body;
+ evar_info : 'a }
-type evar_map = evar_info Intmap.t
+type 'a evar_map = 'a evar_info Intmap.t
-let mt_evd = Intmap.empty
+let empty = Intmap.empty
let to_list evc = Intmap.fold (fun ev x acc -> (ev,x)::acc) evc []
let dom evc = Intmap.fold (fun ev _ acc -> ev::acc) evc []
@@ -41,7 +42,8 @@ let define evd ev body =
let newinfo =
{ evar_concl = oldinfo.evar_concl;
evar_hyps = oldinfo.evar_hyps;
- evar_body = Evar_defined body }
+ evar_body = Evar_defined body;
+ evar_info = oldinfo.evar_info }
in
match oldinfo.evar_body with
| Evar_empty -> Intmap.add ev newinfo evd
@@ -61,3 +63,6 @@ let is_evar sigma ev = in_dom sigma ev
let is_defined sigma ev =
let info = map sigma ev in
not (info.evar_body = Evar_empty)
+
+let metamap sigma = failwith "metamap : NOT YET IMPLEMENTED"
+