]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/tactics/reductionTactics.ml
1) moved select and pattern_of from cicUtil to proofEngineHelpers
[helm.git] / helm / ocaml / tactics / reductionTactics.ml
index c641cbf653af905c3b4689b5f4407dc6bdb6ecaa..430414b78b8f25376355b126afe3d5a727ce0ae2 100644 (file)
@@ -58,12 +58,9 @@ let reduction_tac ~reduction ~pattern:(hyp_patterns,goal_pattern) (proof,goal) =
     try
      let terms, terms' = 
        List.split
-       (List.map 
-       (fun i, t -> t, 
-          (let x, _, _ = CicMetaSubst.delift_rels [] metasenv i t in
-          let t' = reduction context x in 
-          CicSubstitution.lift i t'))
-       terms)
+         (List.map 
+           (fun i, t -> t, reduction (i @ context) t)
+         terms)
      in
       ProofEngineReduction.replace ~equality:(==) ~what:terms ~with_what:terms'
        ~where:where
@@ -76,9 +73,9 @@ let reduction_tac ~reduction ~pattern:(hyp_patterns,goal_pattern) (proof,goal) =
   in
   let ty' = 
     match goal_pattern with
-    | None -> replace context ty [0,ty]
+    | None -> replace context ty [[],ty]
     | Some pat -> 
-        let terms = CicUtil.select ~term:ty ~context:pat in
+        let terms = ProofEngineHelpers.select ~term:ty ~pattern:pat in
         replace context ty terms
   in
   let context' =
@@ -90,7 +87,7 @@ let reduction_tac ~reduction ~pattern:(hyp_patterns,goal_pattern) (proof,goal) =
            (match find_pattern_for name with
            | None -> entry::context
            | Some pat -> 
-               let terms = CicUtil.select ~term ~context:pat in
+               let terms = ProofEngineHelpers.select ~term ~pattern:pat in
                let where = replace context term terms in
                let entry = Some (name,Cic.Decl where) in
                entry::context)
@@ -98,7 +95,7 @@ let reduction_tac ~reduction ~pattern:(hyp_patterns,goal_pattern) (proof,goal) =
            (match find_pattern_for name with
            | None -> entry::context
            | Some pat -> 
-               let terms = CicUtil.select ~term ~context:pat in
+               let terms = ProofEngineHelpers.select ~term ~pattern:pat in
                let where = replace context term terms in
                let entry = Some (name,Cic.Def (where,None)) in
                entry::context)