From c2f2610de7b8c84cf763900ea2b90893c2e18ec1 Mon Sep 17 00:00:00 2001
From: Martin Clochard <martin.clochard@lri.fr>
Date: Fri, 1 Jul 2016 11:07:11 +0200
Subject: [PATCH] compute: fix correction bug related to typing corner cases

---
 src/transform/reduction_engine.ml | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/transform/reduction_engine.ml b/src/transform/reduction_engine.ml
index f2f23f8fe8..f568867418 100644
--- a/src/transform/reduction_engine.ml
+++ b/src/transform/reduction_engine.ml
@@ -330,8 +330,12 @@ let first_order_matching (vars : Svs.t) (largs : term list)
               begin
                 match t2.t_node with
                   | Tapp(ls2,args2) when ls_equal ls1 ls2 ->
-                    loop sigma (List.rev_append args1 r1)
-                      (List.rev_append args2 r2)
+                    let mt, mv = loop sigma (List.rev_append args1 r1)
+                      (List.rev_append args2 r2) in
+                    begin
+                      try Ty.oty_match mt t1.t_ty t2.t_ty, mv
+                      with Ty.TypeMismatch _ -> raise NoMatch
+                    end
                   | _ -> raise NoMatch
               end
             | _ ->
-- 
GitLab