summaryrefslogtreecommitdiff
path: root/tactics/setoid_replace.mli
diff options
context:
space:
mode:
Diffstat (limited to 'tactics/setoid_replace.mli')
-rw-r--r--tactics/setoid_replace.mli64
1 files changed, 57 insertions, 7 deletions
diff --git a/tactics/setoid_replace.mli b/tactics/setoid_replace.mli
index 854fa478..5dc691a9 100644
--- a/tactics/setoid_replace.mli
+++ b/tactics/setoid_replace.mli
@@ -6,22 +6,72 @@
(* * GNU Lesser General Public License Version 2.1 *)
(************************************************************************)
-(*i $Id: setoid_replace.mli,v 1.3.6.2 2005/01/21 17:14:11 herbelin Exp $ i*)
+(*i $Id: setoid_replace.mli 6621 2005-01-21 17:24:37Z herbelin $ i*)
open Term
open Proof_type
open Topconstr
+open Names
+
+type relation =
+ { rel_a: constr ;
+ rel_aeq: constr;
+ rel_refl: constr option;
+ rel_sym: constr option;
+ rel_trans : constr option;
+ rel_quantifiers_no: int (* it helps unification *);
+ rel_X_relation_class: constr;
+ rel_Xreflexive_relation_class: constr
+ }
+
+type 'a relation_class =
+ Relation of 'a (* the [rel_aeq] of the relation or the relation*)
+ | Leibniz of constr option (* the [carrier] (if [eq] is partially instantiated)*)
+
+type 'a morphism =
+ { args : (bool option * 'a relation_class) list;
+ output : 'a relation_class;
+ lem : constr;
+ morphism_theory : constr
+ }
+
+type morphism_signature = (bool option * constr_expr) list * constr_expr
+
+val pr_morphism_signature : morphism_signature -> Pp.std_ppcmds
+
+val register_replace : (constr -> constr -> tactic) -> unit
+val register_general_rewrite : (bool -> constr -> tactic) -> unit
+
+val print_setoids : unit -> unit
val equiv_list : unit -> constr list
+val default_relation_for_carrier :
+ ?filter:(relation -> bool) -> types -> relation relation_class
+(* [default_morphism] raises [Not_found] *)
+val default_morphism :
+ ?filter:(constr morphism -> bool) -> constr -> relation morphism
-val setoid_replace : constr -> constr -> constr option -> tactic
+val setoid_replace :
+ constr option -> constr -> constr -> new_goals:constr list -> tactic
+val setoid_replace_in :
+ identifier -> constr option -> constr -> constr -> new_goals:constr list ->
+ tactic
-val setoid_rewriteLR : constr -> tactic
+val general_s_rewrite : bool -> constr -> new_goals:constr list -> tactic
+val general_s_rewrite_in :
+ identifier -> bool -> constr -> new_goals:constr list -> tactic
-val setoid_rewriteRL : constr -> tactic
+val setoid_reflexivity : tactic
+val setoid_symmetry : tactic
+val setoid_symmetry_in : identifier -> tactic
+val setoid_transitivity : constr -> tactic
-val general_s_rewrite : bool -> constr -> tactic
+val add_relation :
+ Names.identifier -> constr_expr -> constr_expr -> constr_expr option ->
+ constr_expr option -> constr_expr option -> unit
-val add_setoid : constr_expr -> constr_expr -> constr_expr -> unit
+val add_setoid :
+ Names.identifier -> constr_expr -> constr_expr -> constr_expr -> unit
-val new_named_morphism : Names.identifier -> constr_expr -> unit
+val new_named_morphism :
+ Names.identifier -> constr_expr -> morphism_signature option -> unit