]> matita.cs.unibo.it Git - helm.git/blob - helm/software/components/ng_tactics/nCicTacReduction.ml
Release 0.5.9.
[helm.git] / helm / software / components / ng_tactics / nCicTacReduction.ml
1 (*
2     ||M||  This file is part of HELM, an Hypertextual, Electronic        
3     ||A||  Library of Mathematics, developed at the Computer Science     
4     ||T||  Department, University of Bologna, Italy.                     
5     ||I||                                                                
6     ||T||  HELM is free software; you can redistribute it and/or         
7     ||A||  modify it under the terms of the GNU General Public License   
8     \   /  version 2 or (at your option) any later version.      
9      \ /   This software is distributed as is, NO WARRANTY.     
10       V_______________________________________________________________ *)
11
12 (* $Id: nCic.ml 9058 2008-10-13 17:42:30Z tassi $ *)
13  
14 let rec normalize ?(delta=0) ~subst ctx t =
15  let aux = normalize ~delta ~subst in
16   match NCicReduction.whd ~delta ~subst ctx t with
17      NCic.Meta (n,(s,lc)) ->
18       let l = NCicUtils.expand_local_context lc in
19       let l' = List.map (aux ctx) l in
20        if l = l' then t
21        else
22         NCic.Meta (n,(s,NCic.Ctx l))
23    | t -> NCicUtils.map (fun h ctx -> h::ctx) ctx aux t
24 ;;