X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FgTopLevel%2FproofEngine.ml;h=7d637551fdc693fef96b6ce9f2b4d3b7e7e02071;hb=3fcde61beded58d18775c13906b9741ba4735864;hp=55531c2aadd5b2c8c3d6446a536deb0804252683;hpb=989a5444a5162ba9259858a25a1dadab300291a3;p=helm.git diff --git a/helm/gTopLevel/proofEngine.ml b/helm/gTopLevel/proofEngine.ml index 55531c2aa..7d637551f 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,53 @@ 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 (EliminationTactics.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 reflexivity () = apply_tactic VariousTactics.reflexivity_tac -let symmetry () = apply_tactic VariousTactics.symmetry_tac -let transitivity term = apply_tactic (VariousTactics.transitivity_tac ~term) +let rewrite_simpl term = apply_tactic (EqualityTactics.rewrite_simpl_tac ~term) +let rewrite_back_simpl term = apply_tactic (EqualityTactics.rewrite_back_simpl_tac ~term) +let replace ~goal_input:what ~input:with_what = + apply_tactic (EqualityTactics.replace_tac ~what ~with_what) + +let reflexivity () = apply_tactic EqualityTactics.reflexivity_tac +let symmetry () = apply_tactic EqualityTactics.symmetry_tac +let transitivity term = apply_tactic (EqualityTactics.transitivity_tac ~term) -let left () = apply_tactic VariousTactics.left_tac -let right () = apply_tactic VariousTactics.right_tac +let exists () = apply_tactic IntroductionTactics.exists_tac +let split () = apply_tactic IntroductionTactics.split_tac +let left () = apply_tactic IntroductionTactics.left_tac +let right () = apply_tactic IntroductionTactics.right_tac let assumption () = apply_tactic VariousTactics.assumption_tac + +let generalize term = apply_tactic (VariousTactics.generalize_tac ~term) + +let absurd term = apply_tactic (NegationTactics.absurd_tac ~term) +let contradiction () = apply_tactic NegationTactics.contradiction_tac + +let decompose ~clist = apply_tactic (EliminationTactics.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 *)