X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Ftactics%2Ftacticals.mli;h=06afc21dc1755c060f3de4e727844f62baa9fb20;hb=cb27dc85331027e290e3c4afc7ddef2e869cdfac;hp=b1861b5fae5a8f3697b6c38a37b42b3cab8f99b4;hpb=bac72fcaa876137ab7a5630e0c1badc2a627dce8;p=helm.git diff --git a/helm/ocaml/tactics/tacticals.mli b/helm/ocaml/tactics/tacticals.mli index b1861b5fa..06afc21dc 100644 --- a/helm/ocaml/tactics/tacticals.mli +++ b/helm/ocaml/tactics/tacticals.mli @@ -23,39 +23,44 @@ * http://cs.unibo.it/helm/. *) - val id_tac : ProofEngineTypes.tactic +val fail_tac: ProofEngineTypes.tactic +module type Status = + sig + type input_status + type output_status + type tactic + val id_tac : tactic + val mk_tactic : (input_status -> output_status) -> tactic + val apply_tactic : tactic -> input_status -> output_status + val goals : output_status -> ProofEngineTypes.goal list + val set_goals: output_status -> ProofEngineTypes.goal list -> output_status + val focus : output_status -> ProofEngineTypes.goal -> input_status + end +module type T = + sig + type tactic - (* pseudo tacticals *) -val try_tactics: - tactics: (string * ProofEngineTypes.tactic) list -> ProofEngineTypes.tactic - -val thens: - start: ProofEngineTypes.tactic -> - continuations: ProofEngineTypes.tactic list -> ProofEngineTypes.tactic + val first: tactics: (string * tactic) list -> tactic -val then_: - start: ProofEngineTypes.tactic -> - continuation: ProofEngineTypes.tactic -> ProofEngineTypes.tactic + val thens: start: tactic -> continuations: tactic list -> tactic + val then_: start: tactic -> continuation: tactic -> tactic -val repeat_tactic: - tactic: ProofEngineTypes.tactic -> ProofEngineTypes.tactic + (** "folding" of then_ *) + val seq: tactics: tactic list -> tactic -val do_tactic: - n: int -> - tactic: ProofEngineTypes.tactic -> ProofEngineTypes.tactic + val repeat_tactic: tactic: tactic -> tactic -val try_tactic: - tactic: ProofEngineTypes.tactic -> ProofEngineTypes.tactic + val do_tactic: n: int -> tactic: tactic -> tactic -val solve_tactics: - tactics: (string * ProofEngineTypes.tactic) list -> ProofEngineTypes.tactic + val try_tactic: tactic: tactic -> tactic + val solve_tactics: tactics: (string * tactic) list -> tactic + end +module Make (S:Status) : T with type tactic = S.tactic -(* -val prova_tac : ProofEngineTypes.tactic -*) +include T with type tactic = ProofEngineTypes.tactic