diff options
| author | coq | 2002-12-04 11:09:01 +0000 |
|---|---|---|
| committer | coq | 2002-12-04 11:09:01 +0000 |
| commit | 161bf6d64ebcaf53ee1a15f07f33a6ffc93854ef (patch) | |
| tree | c49fd57cb927685931f6d8a1d041c676fbcda93e | |
| parent | 74a67eda542bf3ea723e0559131ef97dd753148f (diff) | |
Corrige un bug de composition de substitutions
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@3372 85f007b7-540e-0410-9357-904b9bb8a0f7
| -rw-r--r-- | kernel/names.ml | 6 | ||||
| -rw-r--r-- | kernel/names.mli | 3 |
2 files changed, 6 insertions, 3 deletions
diff --git a/kernel/names.ml b/kernel/names.ml index c9a1aa2ae8..78d39b6a07 100644 --- a/kernel/names.ml +++ b/kernel/names.ml @@ -143,9 +143,6 @@ let add_mbid = Umap.add let map_msid msid mp = add_msid msid mp empty_subst let map_mbid mbid mp = add_msid mbid mp empty_subst -let join subst = - Umap.fold Umap.add subst - let list_contents sub = let one_pair uid mp l = (string_of_uid uid, string_of_mp mp)::l @@ -176,6 +173,9 @@ let rec subst_mp sub mp = (* 's like subst *) MPdot (mp1',l) | _ -> mp +let join subst1 subst2 = + let subst = Umap.map (subst_mp subst2) subst1 in + Umap.fold Umap.add subst2 subst let rec occur_in_path uid = function | MPself sid -> sid = uid diff --git a/kernel/names.mli b/kernel/names.mli index 2ecdd602d8..89c90fef1a 100644 --- a/kernel/names.mli +++ b/kernel/names.mli @@ -96,6 +96,9 @@ val add_mbid : val map_msid : mod_self_id -> module_path -> substitution val map_mbid : mod_bound_id -> module_path -> substitution +(* sequential composition: + [substitute (join sub1 sub2) t = substitute sub2 (substitute sub1 t)] +*) val join : substitution -> substitution -> substitution (*i debugging *) |
