aboutsummaryrefslogtreecommitdiff
path: root/kernel/mod_subst.ml
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/mod_subst.ml')
-rw-r--r--kernel/mod_subst.ml13
1 files changed, 13 insertions, 0 deletions
diff --git a/kernel/mod_subst.ml b/kernel/mod_subst.ml
index 52fb39e1d0..cd675653cb 100644
--- a/kernel/mod_subst.ml
+++ b/kernel/mod_subst.ml
@@ -330,6 +330,19 @@ let subst_proj_repr sub p =
let subst_proj sub p =
Projection.map (subst_mind sub) p
+let subst_retro_action subst action =
+ let open Retroknowledge in
+ match action with
+ | Register_ind(prim,ind) ->
+ let ind' = subst_ind subst ind in
+ if ind == ind' then action else Register_ind(prim, ind')
+ | Register_type(prim,c) ->
+ let c' = subst_constant subst c in
+ if c == c' then action else Register_type(prim, c')
+ | Register_inline(c) ->
+ let c' = subst_constant subst c in
+ if c == c' then action else Register_inline(c')
+
(* Here the semantics is completely unclear.
What does "Hint Unfold t" means when "t" is a parameter?
Does the user mean "Unfold X.t" or does she mean "Unfold y"