]> matita.cs.unibo.it Git - helm.git/commitdiff
fixed 1,2: and *: according to the camera ready semantics
authorEnrico Tassi <enrico.tassi@inria.fr>
Mon, 10 Jul 2006 17:04:52 +0000 (17:04 +0000)
committerEnrico Tassi <enrico.tassi@inria.fr>
Mon, 10 Jul 2006 17:04:52 +0000 (17:04 +0000)
helm/software/components/tactics/continuationals.ml

index a7c624120d45d85cb93965f80a69fcc668ed1a60..c6e4f0c1841fb68814a7632218e13cfc068b5dbf 100644 (file)
@@ -327,50 +327,21 @@ struct
           | [] -> fail (lazy "no more goals to shift")
           | loc :: loc_tl ->
               new_stack
-                (([ loc ], t @+ filter_open g, [],`BranchTag)
+                (([ loc ], t @+ filter_open g @+ k, [],`BranchTag)
                 :: (loc_tl, t', k', tag) :: s))
       | Shift, _ -> fail (lazy "can't shift goals here")
-      | Pos i_s, ([ loc ], [], [],`BranchTag) :: (g', t', k', tag) :: s
+      | Pos i_s, ([ loc ], t, [],`BranchTag) :: (g', t', k', tag) :: s
         when is_fresh loc ->
           let l_js = List.filter (fun (i, _) -> List.mem i i_s) (g' @+ [loc]) in
           new_stack
-            ((l_js, [], [],`BranchTag)
-             :: ([ loc ] @+ g' @- l_js, t', k', tag) :: s)
-      | Pos i_s, (g, t, k,`BranchTag) :: (g', t', k', tag) :: s ->
-          let l_js = List.filter (fun (i, pos) -> List.mem i i_s) g' in
-          new_stack
-            ((l_js, [], [],`BranchTag)
-             :: (g' @- l_js, t' @+ filter_open g, k', tag) :: s)
-(*
-      | Pos i_s, ([ loc ], [], [],`BranchTag) :: (g', t', k', tag) :: s
-        when is_fresh loc ->
-          let l_js = List.filter (fun (i, _) -> List.mem i i_s) g' in
-          new_stack
-            ((l_js, [], [],`BranchTag)
-             :: ([ loc ] @+ g' @- l_js, t', k', tag) :: s)
-      | Pos i_s, (g, t, k,`BranchTag) :: (g', t', k', tag) :: s ->
-          let l_js = List.filter (fun (i, _) -> List.mem i i_s) g' in
-          new_stack
-            ((l_js, [], [],`BranchTag)
-             :: (g' @- l_js, t' @+ filter_open g, k', tag) :: s)
-*)
+            ((l_js, t , [],`BranchTag)
+             :: (([ loc ] @+ g') @- l_js, t', k', tag) :: s)
       | Pos _, _ -> fail (lazy "can't use relative positioning here")
-      | Wildcard, ([ loc ] , t, k, `BranchTag) :: (g', t', k', tag) :: s
+      | Wildcard, ([ loc ] , t, [], `BranchTag) :: (g', t', k', tag) :: s
           when is_fresh loc ->
             new_stack
-              (([loc] @+ g', [], [], `BranchTag)
-                :: ([], t' @+ k, k', tag) :: s)
-      | Wildcard, (g, t, k, `BranchTag) :: (g', t', k', tag) :: s ->
-            new_stack
-              ((g', [], [], `BranchTag)
-                :: ([], t' @+ filter_open g @+ k, k', tag) :: s)
-(*
-      | Wildcard, (g, t, k, `BranchTag) :: (g', t', k', tag) :: s
-        when g = [] || is_fresh (List.hd g) ->
-          new_stack
-            ((g', [], [], `BranchTag)
-             :: ([], t' @+ filter_open g @+ k, k', tag) :: s)
-*)
+              (([loc] @+ g', t, [], `BranchTag)
+                :: ([], t', k', tag) :: s)
       | Wildcard, _ -> fail (lazy "can't use wildcard here")
       | Merge, (g, t, k,`BranchTag) :: (g', t', k', tag) :: s ->
           new_stack ((t @+ filter_open g @+ g' @+ k, t', k', tag) :: s)