]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/gTopLevel/reductionTactics.ml
* fold_tac has now a new parameter, which is the reduction to ``undo''
[helm.git] / helm / gTopLevel / reductionTactics.ml
index 0080e4571255062d85a4b91be1bdb8b2e701a2f4..54b439b25ae40ef31a0fc0c8356eadec95774383 100644 (file)
@@ -92,10 +92,10 @@ let simpl_tac = reduction_tac ~reduction:ProofEngineReduction.simpl ;;
 let reduce_tac = reduction_tac ~reduction:ProofEngineReduction.reduce ;;
 let whd_tac = reduction_tac ~reduction:CicReduction.whd ;;
 
-let fold_tac ~also_in_hypotheses ~term ~status:(proof,goal) =
+let fold_tac ~reduction ~also_in_hypotheses ~term ~status:(proof,goal) =
  let curi,metasenv,pbo,pty = proof in
  let metano,context,ty = List.find (function (m,_,_) -> m=goal) metasenv in
-  let term' = CicReduction.whd context term in
+  let term' = reduction context term in
    (* We don't know if [term] is a subterm of [ty] or a subterm of *)
    (* the type of one metavariable. So we replace it everywhere.   *)
    (*CSC: ma si potrebbe ovviare al problema. Ma non credo *)