diff options
author | Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr> | 2014-02-20 15:38:17 +0100 |
---|---|---|
committer | Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr> | 2014-02-20 15:38:17 +0100 |
commit | 3568e0b7b8728b1eb4aa1b036717933a490e8287 (patch) | |
tree | 091b6f68439edb41963647050378739fa1c0c89e /kernel/vars.ml | |
parent | c08b210e5929efdc16a7fee56037e5f14b81e8b2 (diff) |
Optimization in kernel/vars.ml: directly allocate a fixed-size block in the
subst1 case.
Diffstat (limited to 'kernel/vars.ml')
-rw-r--r-- | kernel/vars.ml | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/kernel/vars.ml b/kernel/vars.ml index ca1d31c0b..cb22a2e2f 100644 --- a/kernel/vars.ml +++ b/kernel/vars.ml @@ -152,16 +152,19 @@ let make_subst = function subst let substnl laml n c = substn_many (make_subst laml) n c -let substl laml c = substnl laml 0 c -let subst1 lam c = substl [lam] c - -let substnl_decl laml k r = map_rel_declaration (substnl laml k) r -let substl_decl laml r = substnl_decl laml 0 r -let subst1_decl lam r = substl_decl [lam] r - -let substnl_named_decl laml k d = map_named_declaration (substnl laml k) d -let substl_named_decl laml d = substnl_named_decl laml 0 d -let subst1_named_decl lam d = substl_named_decl [lam] d +let substl laml c = substn_many (make_subst laml) 0 c +let subst1 lam c = substn_many [|make_substituend lam|] 0 c + +let substnl_decl laml k r = map_rel_declaration (fun c -> substnl laml k c) r +let substl_decl laml r = map_rel_declaration (fun c -> substnl laml 0 c) r +let subst1_decl lam r = map_rel_declaration (fun c -> subst1 lam c) r + +let substnl_named_decl laml k d = + map_named_declaration (fun c -> substnl laml k c) d +let substl_named_decl laml d = + map_named_declaration (fun c -> substnl laml 0 c) d +let subst1_named_decl lam d = + map_named_declaration (fun c -> subst1 lam c) d (* (thin_val sigma) removes identity substitutions from sigma *) |