X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=helm%2Focaml%2Ftactics%2FequalityTactics.ml;h=a14a418bf5326808d8569b40e15b121468f0ab4b;hb=f981a524748846acc29b76b6e616af110b4ee13d;hp=7eae7fb5c0ee402d0761dd39df7fe4050d7ad4ce;hpb=016e4c6fc449b50ac19e73eb952cfb2dc64f4398;p=helm.git diff --git a/helm/ocaml/tactics/equalityTactics.ml b/helm/ocaml/tactics/equalityTactics.ml index 7eae7fb5c..a14a418bf 100644 --- a/helm/ocaml/tactics/equalityTactics.ml +++ b/helm/ocaml/tactics/equalityTactics.ml @@ -103,11 +103,9 @@ let rewrite_tac ~direction ~pattern equality = (PT.exact_tac ~term:exact_proof) ((curi,metasenv',pbo,pty),goal) in assert (List.length goals = 0) ; - let goals = List.map (fun (i,_,_) -> i) metasenv' in let goals = - List.filter - (fun i -> - not (List.exists (fun (j,_,_) -> i=j) metasenv)) goals + ProofEngineHelpers.compare_metasenvs ~oldmetasenv:metasenv + ~newmetasenv:metasenv' in (proof',goals) in @@ -128,19 +126,24 @@ let rewrite_simpl_tac ~direction ~pattern equality = ;; let replace_tac ~pattern ~with_what = -(* let replace_tac ~pattern:(wanted,hyps_pat,concl_pat) ~with_what status = let (proof, goal) = status in let module C = Cic in let module U = UriManager in let module P = PrimitiveTactics in let module T = Tacticals in - let _,metasenv,_,_ = proof in + let uri,metasenv,pbo,pty = proof in let (_,context,ty) as conjecture = CicUtil.lookup_meta goal metasenv in assert (hyps_pat = []); (*CSC: not implemented yet *) let context_len = List.length context in - let _,selected_terms_with_context = - ProofEngineHelpers.select ~metasenv ~conjecture ~pattern in + let subst,metasenv,u,_,selected_terms_with_context = + ProofEngineHelpers.select ~metasenv ~ugraph:CicUniv.empty_ugraph + ~conjecture ~pattern in + let metasenv = CicMetaSubst.apply_subst_metasenv subst metasenv in + let with_what = CicMetaSubst.apply_subst subst with_what in + let pbo = CicMetaSubst.apply_subst subst pbo in + let pty = CicMetaSubst.apply_subst subst pty in + let status = (uri,metasenv,pbo,pty),goal in let ty_of_with_what,u = CicTypeChecker.type_of_aux' metasenv context with_what CicUniv.empty_ugraph in @@ -225,7 +228,6 @@ let replace_tac ~pattern ~with_what = aux 0 whats status in ProofEngineTypes.mk_tactic (replace_tac ~pattern ~with_what) -*) assert false ;;