X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Ftactics%2Ftacticals.mli;h=88fafc1f8bf5e91be97802e7fcfea51bc44c5d75;hb=4167cea65ca58897d1a3dbb81ff95de5074700cc;hp=06afc21dc1755c060f3de4e727844f62baa9fb20;hpb=fddf15f1e9d253316bdcb854c2ff7ec64144bde8;p=helm.git diff --git a/helm/ocaml/tactics/tacticals.mli b/helm/ocaml/tactics/tacticals.mli index 06afc21dc..88fafc1f8 100644 --- a/helm/ocaml/tactics/tacticals.mli +++ b/helm/ocaml/tactics/tacticals.mli @@ -26,41 +26,67 @@ val id_tac : ProofEngineTypes.tactic val fail_tac: ProofEngineTypes.tactic -module type Status = +(* module type Status = sig +|+ type external_input_status +| type input_status type output_status +|+ type external_output_status +| + +|+ val internalize: external_input_status -> input_status + val externalize: output_status -> external_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 id_tac : tactic + 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 + val get_stack : input_status -> stack + val set_stack : stack -> output_status -> output_status + + val inject : input_status -> output_status + val focus : goal -> output_status -> input_status + end *) module type T = - sig +sig type tactic val first: tactics: (string * tactic) list -> tactic - val thens: start: tactic -> continuations: tactic list -> tactic - val then_: start: tactic -> continuation: tactic -> tactic - - (** "folding" of then_ *) - val seq: tactics: tactic list -> tactic - + val seq: tactics: tactic list -> tactic (** "folding" of then_ *) val repeat_tactic: tactic: tactic -> tactic - val do_tactic: n: int -> tactic: tactic -> 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 +(* module C: + sig *) + val tactic: tactic -> tactic (** apply tactic to all goal in env *) + val skip: tactic + val dot: tactic + val semicolon: tactic + val branch: tactic + val shift: tactic + val pos: int -> tactic + val merge: tactic + val focus: int list -> tactic + val unfocus: tactic +(* end *) +end + +module Make (S: Continuationals.Status) : T with type tactic = S.tactic include T with type tactic = ProofEngineTypes.tactic + +(* TODO temporary *) +val goals_diff: + before:ProofEngineTypes.goal list -> + after:ProofEngineTypes.goal list -> + opened:ProofEngineTypes.goal list -> + ProofEngineTypes.goal list * ProofEngineTypes.goal list +