]> matita.cs.unibo.it Git - helm.git/commitdiff
fixed a bug, it used to report o wrong is_normal bit in case of match
authorEnrico Tassi <enrico.tassi@inria.fr>
Tue, 16 Dec 2008 13:54:37 +0000 (13:54 +0000)
committerEnrico Tassi <enrico.tassi@inria.fr>
Tue, 16 Dec 2008 13:54:37 +0000 (13:54 +0000)
helm/software/components/ng_kernel/nCicReduction.ml

index 7dbe379e4144f77801abfd6631cfdeaec547391d..3b082339507b3739ae816516f507ebdef1a34e52 100644 (file)
@@ -114,7 +114,9 @@ module Reduction(RS : Strategy) = struct
          aux (k, e, he, tl' @ s)
      | (_, _, C.Const
             (Ref.Ref (_,Ref.Def height) as refer), s) as config ->
-         if delta >= height then config, false else 
+         if delta >= height then 
+           config, false
+         else 
            let _,_,body,_,_,_ = NCicEnvironment.get_checked_def refer in
            aux (0, [], body, s) 
      | (_, _, C.Const (Ref.Ref (_,
@@ -154,13 +156,15 @@ module Reduction(RS : Strategy) = struct
              c
           | config -> config
         in
-        (match decofix (fst (reduce ~delta:0 ~subst context (k,e,term,[]))) with
+        let match_head = k,e,term,[] in
+        let reduced,_ = reduce ~delta:0 ~subst context match_head in
+        (match decofix reduced with
         | (_, _, C.Const (Ref.Ref (_,Ref.Con (_,j,_))),[]) ->
             aux (k, e, List.nth pl (j-1), s)
         | (_, _, C.Const (Ref.Ref (_,Ref.Con (_,j,lno))), s')->
           let _,params = HExtlib.split_nth lno s' in
           aux (k, e, List.nth pl (j-1), params@s)
-        | _ -> config,true)
+        | _ -> config,reduced == match_head)
    in
     aux
   ;;