X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fcic_transformations%2FtacticAst.ml;h=3a74b3863b1cdd52c57b6b5d11408c384c45ee57;hb=9e2b452ac3b4b5ba72834fd6e51e104e4faa032c;hp=833e1b1c4beed5c35bb7788e0520b6134d2a6715;hpb=f065a68682b23976d185370d85869c196da3f20b;p=helm.git diff --git a/helm/ocaml/cic_transformations/tacticAst.ml b/helm/ocaml/cic_transformations/tacticAst.ml index 833e1b1c4..3a74b3863 100644 --- a/helm/ocaml/cic_transformations/tacticAst.ml +++ b/helm/ocaml/cic_transformations/tacticAst.ml @@ -23,8 +23,6 @@ * http://helm.cs.unibo.it/ *) -type location = int * int - type direction = [ `Left | `Right ] type reduction_kind = [ `Reduce | `Simpl | `Whd ] type 'term pattern = Pattern of 'term @@ -33,7 +31,7 @@ type 'term pattern = Pattern of 'term to the current goal *) type ('term, 'ident) tactic = - | LocatedTactic of location * ('term, 'ident) tactic + | LocatedTactic of CicAst.location * ('term, 'ident) tactic | Absurd | Apply of 'term @@ -67,17 +65,45 @@ type ('term, 'ident) tactic = | Symmetry | Transitivity of 'term -type 'tactic tactical = - | LocatedTactical of location * 'tactic tactical +type thm_flavour = + [ `Definition + | `Fact + | `Goal + | `Lemma + | `Remark + | `Theorem + ] + +type 'term command = + | Abort + | Check of 'term + | Proof + | Qed of string option + (* name. + * Name is needed when theorem was started without providing a name + *) + | Quit + | Theorem of thm_flavour * string option * 'term * 'term option + (* flavour, name, type, body + * - name is absent when an unnamed theorem is being proved, tipically in + * interactive usage + * - body is present when its given along with the command, otherwise it + * will be given in proof editing mode using the tactical language + *) + +type ('term, 'ident) tactical = + | LocatedTactical of CicAst.location * ('term, 'ident) tactical + + | Tactic of ('term, 'ident) tactic + | Command of 'term command | Fail - | Do of int * 'tactic tactical + | Do of int * ('term, 'ident) tactical | IdTac - | Repeat of 'tactic tactical - | Seq of 'tactic tactical list (* sequential composition *) - | Tactic of 'tactic - | Then of 'tactic tactical * 'tactic tactical list - | Tries of 'tactic tactical list + | Repeat of ('term, 'ident) tactical + | Seq of ('term, 'ident) tactical list (* sequential composition *) + | Then of ('term, 'ident) tactical * ('term, 'ident) tactical list + | Tries of ('term, 'ident) tactical list (* try a sequence of tacticals until one succeeds, fail otherwise *) - | Try of 'tactic tactical (* try a tactical and mask failures *) + | Try of ('term, 'ident) tactical (* try a tactical and mask failures *)