aboutsummaryrefslogtreecommitdiffhomepage
path: root/contrib/first-order/formula.mli
diff options
context:
space:
mode:
authorGravatar corbinea <corbinea@85f007b7-540e-0410-9357-904b9bb8a0f7>2003-04-25 19:55:41 +0000
committerGravatar corbinea <corbinea@85f007b7-540e-0410-9357-904b9bb8a0f7>2003-04-25 19:55:41 +0000
commite12ff90edcc4af4eb0998f11186e998b23ada15d (patch)
tree8d9f1939569005ea89a2e69bab1557ec1f601886 /contrib/first-order/formula.mli
parentb8f8a4fc5636d7751cf58c01044e8da56e92b074 (diff)
Added the Ground tactic.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@3955 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'contrib/first-order/formula.mli')
-rw-r--r--contrib/first-order/formula.mli69
1 files changed, 69 insertions, 0 deletions
diff --git a/contrib/first-order/formula.mli b/contrib/first-order/formula.mli
new file mode 100644
index 000000000..bb6dc030a
--- /dev/null
+++ b/contrib/first-order/formula.mli
@@ -0,0 +1,69 @@
+(***********************************************************************)
+(* v * The Coq Proof Assistant / The Coq Development Team *)
+(* <O___,, * INRIA-Rocquencourt & LRI-CNRS-Orsay *)
+(* \VV/ *************************************************************)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(***********************************************************************)
+
+(* $Id$ *)
+
+open Term
+open Names
+
+type ('a,'b) sum = Left of 'a | Right of 'b
+
+type kind_of_formula=
+ Arrow of constr*constr
+ |And of inductive*constr list
+ |Or of inductive*constr list
+ |Exists of inductive*constr*constr*constr
+ |Forall of constr*constr
+ |Atom of constr
+ |False
+
+type counter = bool -> int
+
+val newcnt : unit -> counter
+
+val construct_nhyps : inductive -> int array
+
+val ind_hyps : inductive -> constr list -> Sign.rel_context array
+
+val kind_of_formula : constr -> kind_of_formula
+
+type right_pattern =
+ Rand
+ | Ror
+ | Rforall
+ | Rexists of int*constr
+ | Rarrow
+
+type right_formula =
+ Complex of right_pattern*((bool*constr) list)
+ | Atomic of constr
+
+type left_pattern=
+ Lfalse
+ | Land of inductive
+ | Lor of inductive
+ | Lforall of int*constr
+ | Lexists
+ | LAatom of constr
+ | LAfalse
+ | LAand of inductive*constr list
+ | LAor of inductive*constr list
+ | LAforall of constr
+ | LAexists of inductive*constr*constr*constr
+ | LAarrow of constr*constr*constr
+
+type left_formula={id:identifier;
+ pat:left_pattern;
+ atoms:(bool*constr) list}
+
+val build_left_entry :
+ identifier -> types -> counter -> (left_formula,types) sum
+
+val build_right_entry : types -> counter -> right_formula
+
+