X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Ftactics%2FprimitiveTactics.ml;h=c5815471a67880622c20026a99a2e92f858042ec;hb=b47af4383d51dae275964d464e6a8faf2a5a3f51;hp=c1823d1c9d3af3a12cc4a4d701ea9590cea56b4a;hpb=242e171b023f113228c55ad273797c63becf53e6;p=helm.git diff --git a/helm/ocaml/tactics/primitiveTactics.ml b/helm/ocaml/tactics/primitiveTactics.ml index c1823d1c9..c5815471a 100644 --- a/helm/ocaml/tactics/primitiveTactics.ml +++ b/helm/ocaml/tactics/primitiveTactics.ml @@ -26,9 +26,8 @@ open ProofEngineHelpers open ProofEngineTypes +exception TheTypeOfTheCurrentGoalIsAMetaICannotChooseTheRightElimiantionPrinciple exception NotAnInductiveTypeToEliminate -exception NotTheRightEliminatorShape -exception NoHypothesesFound exception WrongUriToVariable of string (* lambda_abstract newmeta ty *) @@ -329,12 +328,10 @@ let apply_tac_verbose ~term (proof, goal) = in let metasenv' = metasenv@newmetasenvfragment in let termty,_ = - CicTypeChecker.type_of_aux' metasenv' context term CicUniv.empty_ugraph in + CicTypeChecker.type_of_aux' metasenv' context term' CicUniv.empty_ugraph in let termty = CicSubstitution.subst_vars exp_named_subst_diff termty in - prerr_endline ("term:" ^ CicPp.ppterm term); - prerr_endline ("termty:" ^ CicPp.ppterm termty); let subst,newmetasenv',t = try new_metasenv_and_unify_and_t newmeta' metasenv' proof context term' ty @@ -406,7 +403,7 @@ let intros_tac ?howmany ?(mk_fresh_name_callback = FreshNamesGenerator.mk_fresh_ in mk_tactic (intros_tac ~mk_fresh_name_callback ()) -let cut_tac?(mk_fresh_name_callback = FreshNamesGenerator.mk_fresh_name ~subst:[]) ~term= +let cut_tac ?(mk_fresh_name_callback = FreshNamesGenerator.mk_fresh_name ~subst:[]) term = let cut_tac ?(mk_fresh_name_callback = FreshNamesGenerator.mk_fresh_name ~subst:[]) term (proof, goal) @@ -441,7 +438,7 @@ let cut_tac?(mk_fresh_name_callback = FreshNamesGenerator.mk_fresh_name ~subst:[ in mk_tactic (cut_tac ~mk_fresh_name_callback term) -let letin_tac ?(mk_fresh_name_callback=FreshNamesGenerator.mk_fresh_name ~subst:[]) ~term= +let letin_tac ?(mk_fresh_name_callback=FreshNamesGenerator.mk_fresh_name ~subst:[]) term = let letin_tac ?(mk_fresh_name_callback = FreshNamesGenerator.mk_fresh_name ~subst:[]) term (proof, goal) @@ -527,6 +524,7 @@ let elim_tac ~term = | C.Sort C.Set -> "_rec" | C.Sort C.CProp -> "_rec" | C.Sort (C.Type _)-> "_rect" + | C.Meta (_,_) -> raise TheTypeOfTheCurrentGoalIsAMetaICannotChooseTheRightElimiantionPrinciple | _ -> assert false in U.uri_of_string (buri ^ "/" ^ name ^ ext ^ ".con") @@ -588,7 +586,7 @@ let elim_intros_simpl_tac ~term = (Tacticals.thens ~start:(intros_tac ()) ~continuations: - [ReductionTactics.simpl_tac ~also_in_hypotheses:false ~terms:None]) + [ReductionTactics.simpl_tac ~pattern:ProofEngineTypes.goal_pattern]) ;; exception NotConvertible @@ -597,8 +595,9 @@ exception NotConvertible (*CSC: while [what] can have a richer context (because of binders) *) (*CSC: So it is _NOT_ possible to use those binders in the [with_what] term. *) (*CSC: Is that evident? Is that right? Or should it be changed? *) -let change_tac ~what ~with_what = - let change_tac ~what ~with_what (proof, goal) = +let change_tac ~what ~with_what ~pattern = +(* + let change_tac ~what ~with_what ~pattern (proof, goal) = let curi,metasenv,pbo,pty = proof in let metano,context,ty = CicUtil.lookup_meta goal metasenv in (* are_convertible works only on well-typed terms *) @@ -638,5 +637,5 @@ let change_tac ~what ~with_what = else raise (ProofEngineTypes.Fail "Not convertible") in - mk_tactic (change_tac ~what ~with_what) - + mk_tactic (change_tac ~what ~with_what ~pattern) +*) assert false