]> matita.cs.unibo.it Git - helm.git/blobdiff - matitaB/components/ng_kernel/nCicUtils.ml
Map in NCicUtils now takes an optional boolea to disable head beta reduction.
[helm.git] / matitaB / components / ng_kernel / nCicUtils.ml
index 400d693638f880366da93bffe5b187b24eea2933..13fbb586f2dd044ba55666993b312fd8bb46ff22 100644 (file)
@@ -56,7 +56,7 @@ let fold g k f acc = function
  | C.Match (_,oty,t,pl) -> List.fold_left (f k) (f k (f k acc oty) t) pl
 ;;
 
-let map status g k f = function
+let map ?(hbr=true) status g k f = function
  | C.Meta _ -> assert false
  | C.Implicit _
  | C.Sort _
@@ -74,7 +74,7 @@ let map status g k f = function
       | C.Appl l :: tl -> C.Appl (l@tl)
       | l1 -> C.Appl l1
     in
-      if fire_beta then !head_beta_reduce (status :> NCicEnvironment.status) ~upto t
+      if fire_beta & hbr then !head_beta_reduce (status :> NCicEnvironment.status) ~upto t
       else t
  | C.Prod (n,s,t) as orig ->
      let s1 = f k s in let t1 = f (g (n,C.Decl s) k) t in