From c2f4625e7e0fea969da5b44a0ea543ebfdc32d87 Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 22 Mar 2002 13:29:25 +0000 Subject: An intuitionistic first-order theorem prover -- JProver. See the "README" file for more information. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@2563 85f007b7-540e-0410-9357-904b9bb8a0f7 --- contrib/jprover/jterm.mli | 110 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 contrib/jprover/jterm.mli (limited to 'contrib/jprover/jterm.mli') diff --git a/contrib/jprover/jterm.mli b/contrib/jprover/jterm.mli new file mode 100644 index 000000000..0bc42010d --- /dev/null +++ b/contrib/jprover/jterm.mli @@ -0,0 +1,110 @@ +(* This module is modified and extracted from Meta-Prl. *) + +(* Definitions of [jterm]: *) +type param = param' +and operator = operator' +and term = term' +and bound_term = bound_term' +and param' = + | Number of int + | String of string + | Token of string + | Var of string + | ParamList of param list +and operator' = { op_name : Opname.opname; op_params : param list; } +and term' = { term_op : operator; term_terms : bound_term list; } +and bound_term' = { bvars : string list; bterm : term; } +type term_subst = (string * term) list + +type error_msg = TermMatchError of term * string | StringError of string + +exception RefineError of string * error_msg + +(* Collect free variables: *) +val free_vars_list : term -> string list + +(* Substitutions: *) +val subst_term : term list -> string list list -> string list -> term -> term +val subst : term -> string list -> term list -> term +val subst1 : term -> string -> term -> term +val var_subst : term -> term -> string -> term +val apply_subst : term -> (string * term) list -> term + +(* Unification: *) +val unify_mm : term -> term -> 'a -> (string * term) list + +val xnil_term : term' + +(* Testing functions: *) +val is_xnil_term : term' -> bool +val is_var_term : term' -> bool +val is_true_term : term' -> bool +val is_false_term : term' -> bool +val is_all_term : term' -> bool +val is_exists_term : term' -> bool +val is_or_term : term' -> bool +val is_and_term : term' -> bool +val is_cor_term : term' -> bool +val is_cand_term : term' -> bool +val is_implies_term : term' -> bool +val is_iff_term : term' -> bool +val is_not_term : term' -> bool +val is_fun_term : term -> bool +val is_const_term : term -> bool + + +(* Constructors for [jterms]: *) +val var_ : string -> term' +val fun_ : string -> term list -> term' +val const_ : string -> term' +val pred_ : string -> term list -> term' +val not_ : term -> term' +val and_ : term -> term -> term' +val or_ : term -> term -> term' +val imp_ : term -> term -> term' +val cand_ : term -> term -> term' +val cor_ : term -> term -> term' +val iff_ : term -> term -> term' +val false_ : term' +val true_ : term' +val nil_term : term' +val forall : string -> term -> term' +val exists : string -> term -> term' + + +(* Destructors for [jterm]: *) +val dest_var : term -> string +val dest_fun : term -> string * term list +val dest_const : term -> string +val dest_not : term -> term +val dest_iff : term -> term * term +val dest_implies : term -> term * term +val dest_cand : term -> term * term +val dest_cor : term -> term * term +val dest_and : term -> term * term +val dest_or : term -> term * term +val dest_exists : term -> string * term * term +val dest_all : term -> string * term * term + +(* Wide-logical connectives: *) +val wand_ : term list -> term +val wor_ : term list -> term +val wimp_ : term list -> term + +(* Printing and debugging tools: *) +val fprint_str_list : out_channel -> string list -> unit +val mbreak : string -> unit +val print_strs : string list -> unit +val print_term : out_channel -> term -> unit +val print_error_msg : exn -> unit + +(* Other exported functions for [jall.ml]: *) +val make_term : 'a -> 'a +val dest_term : 'a -> 'a +val make_op : 'a -> 'a +val dest_op : 'a -> 'a +val make_bterm : 'a -> 'a +val dest_bterm : 'a -> 'a +val dest_param : 'a -> 'a +val mk_var_term : string -> term' +val mk_string_term : Opname.opname -> string -> term' -- cgit v1.2.3