X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FgTopLevel%2FproofEngine.ml;h=81b2cd3e04540936f617433b26aed3b96ca36d8b;hb=23886971f037b00a358d9b422aa0b3b40a75dc10;hp=55531c2aadd5b2c8c3d6446a536deb0804252683;hpb=989a5444a5162ba9259858a25a1dadab300291a3;p=helm.git diff --git a/helm/gTopLevel/proofEngine.ml b/helm/gTopLevel/proofEngine.ml index 55531c2aa..81b2cd3e0 100644 --- a/helm/gTopLevel/proofEngine.ml +++ b/helm/gTopLevel/proofEngine.ml @@ -136,14 +136,6 @@ let perforate context term ty = (* Some easy tactics. *) (************************************************************) -(*CSC: generatore di nomi? Chiedere il nome? *) -let fresh_name = - let next_fresh_index = ref 0 -in - function () -> - incr next_fresh_index ; - "fresh_name" ^ string_of_int !next_fresh_index - (* Reduces [term] using [reduction_function] in the current scratch goal [ty] *) let reduction_tactic_in_scratch reduction_function term ty = let metasenv = @@ -173,13 +165,12 @@ let simpl_in_scratch = reduction_tactic_in_scratch ProofEngineReduction.simpl let can_apply term = can_apply_tactic (PrimitiveTactics.apply_tac ~term) let apply term = apply_tactic (PrimitiveTactics.apply_tac ~term) -let intros () = - apply_tactic (PrimitiveTactics.intros_tac ~name:(fresh_name ())) +let intros () = apply_tactic PrimitiveTactics.intros_tac let cut term = apply_tactic (PrimitiveTactics.cut_tac ~term) let letin term = apply_tactic (PrimitiveTactics.letin_tac ~term) let exact term = apply_tactic (PrimitiveTactics.exact_tac ~term) -let elim_simpl_intros term = - apply_tactic (PrimitiveTactics.elim_simpl_intros_tac ~term) +let elim_intros_simpl term = + apply_tactic (PrimitiveTactics.elim_intros_simpl_tac ~term) let change ~goal_input:what ~input:with_what = apply_tactic (PrimitiveTactics.change_tac ~what ~with_what) @@ -200,24 +191,49 @@ let simpl term = apply_tactic (ReductionTactics.simpl_tac ~also_in_hypotheses:true ~term:(Some term)) -let fold term = - apply_tactic (ReductionTactics.fold_tac ~also_in_hypotheses:true ~term) +let fold_whd term = + apply_tactic + (ReductionTactics.fold_tac ~reduction:CicReduction.whd + ~also_in_hypotheses:true ~term) +let fold_reduce term = + apply_tactic + (ReductionTactics.fold_tac ~reduction:ProofEngineReduction.reduce + ~also_in_hypotheses:true ~term) +let fold_simpl term = + apply_tactic + (ReductionTactics.fold_tac ~reduction:ProofEngineReduction.simpl + ~also_in_hypotheses:true ~term) (* other tactics *) -let elim_type term = apply_tactic (Ring.elim_type_tac ~term) +let elim_type term = apply_tactic (VariousTactics.elim_type_tac ~term) let ring () = apply_tactic Ring.ring_tac let fourier () = apply_tactic FourierR.fourier_tac -let rewrite_simpl term = apply_tactic (FourierR.rewrite_simpl_tac ~term) +let rewrite_simpl term = apply_tactic (VariousTactics.rewrite_simpl_tac ~term) let reflexivity () = apply_tactic VariousTactics.reflexivity_tac let symmetry () = apply_tactic VariousTactics.symmetry_tac let transitivity term = apply_tactic (VariousTactics.transitivity_tac ~term) +let exists () = apply_tactic VariousTactics.exists_tac +let split () = apply_tactic VariousTactics.split_tac let left () = apply_tactic VariousTactics.left_tac let right () = apply_tactic VariousTactics.right_tac let assumption () = apply_tactic VariousTactics.assumption_tac + +let generalize term = apply_tactic (VariousTactics.generalize_tac ~term) + +let absurd term = apply_tactic (VariousTactics.absurd_tac ~term) +let contradiction () = apply_tactic VariousTactics.contradiction_tac + +let decompose ~clist = apply_tactic (VariousTactics.decompose_tac ~clist) + +(* +let decide_equality () = apply_tactic VariousTactics.decide_equality_tac +let compare term1 term2 = apply_tactic (VariousTactics.compare_tac ~term1 ~term2) +*) + (* let prova_tatticali () = apply_tactic Tacticals.prova_tac *)