]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/tactics/primitiveTactics.ml
ported debian stuff to ocaml 3.08
[helm.git] / helm / ocaml / tactics / primitiveTactics.ml
index 2d741f1d1c317a72cfcf62d9b25be6f4cf88f496..e318bd87c562c31547208b944565c1200a1cee1c 100644 (file)
@@ -72,7 +72,11 @@ let eta_expand metasenv context t arg =
     | C.Var (uri,exp_named_subst) ->
        let exp_named_subst' = aux_exp_named_subst n exp_named_subst in
         C.Var (uri,exp_named_subst')
-    | C.Meta _
+    | C.Meta (i,l) ->
+       let l' =
+        List.map (function None -> None | Some t -> Some (aux n t)) l
+       in
+        C.Meta (i, l')
     | C.Sort _
     | C.Implicit _ as t -> t
     | C.Cast (te,ty) -> C.Cast (aux n te, aux n ty)
@@ -326,7 +330,9 @@ let apply_tac ~term (proof, goal) =
          in
           let newmetasenv'' = new_uninstantiatedmetas@old_uninstantiatedmetas in
           let (newproof, newmetasenv''') =
-           let subst_in = CicMetaSubst.apply_subst ((metano,bo')::subst) in
+           let subst_in =
+             CicMetaSubst.apply_subst ((metano,(context, bo'))::subst)
+           in
             subst_meta_and_metasenv_in_proof
               proof metano subst_in newmetasenv''
           in
@@ -501,7 +507,7 @@ let elim_tac ~term =
            C.Appl (eliminator_ref :: make_tl term (args_no - 1))
          in
           let metasenv', term_to_refine' =
-           CicMkImplicit.expand_implicits metasenv context term_to_refine in
+           CicMkImplicit.expand_implicits metasenv [] context term_to_refine in
           let refined_term,_,metasenv'' =
            CicRefine.type_of_aux' metasenv' context term_to_refine'
           in