slight type signature changes
authorhaftmann
Wed, 11 Oct 2006 14:51:25 +0200
changeset 20974 2a29a21825d1
parent 20973 0b8e436ed071
child 20975 5bfa2e4ed789
slight type signature changes
src/FOL/hypsubstdata.ML
src/Provers/hypsubst.ML
--- a/src/FOL/hypsubstdata.ML	Wed Oct 11 14:51:24 2006 +0200
+++ b/src/FOL/hypsubstdata.ML	Wed Oct 11 14:51:25 2006 +0200
@@ -1,10 +1,9 @@
 
 (** Applying HypsubstFun to generate hyp_subst_tac **)
 structure Hypsubst_Data =
-  struct
+struct
   structure Simplifier = Simplifier
-    (*These destructors  Match!*)
-  fun dest_eq (Const("op =",T)  $ t $ u) = (t, u, domain_type T)
+  fun dest_eq (Const("op =",T) $ t $ u) = ((t, u), domain_type T)
   val dest_Trueprop = FOLogic.dest_Trueprop
   val dest_imp = FOLogic.dest_imp
   val eq_reflection = eq_reflection
@@ -13,9 +12,8 @@
   val rev_mp = rev_mp
   val subst = subst
   val sym = sym
-  val thin_refl = prove_goal (the_context ())
-                  "!!X. [|x=x; PROP W|] ==> PROP W" (K [atac 1]);
-  end;
+  val thin_refl = prove_goal (the_context ()) "!!X. [|x=x; PROP W|] ==> PROP W" (K [atac 1]);
+end;
 
 structure Hypsubst = HypsubstFun(Hypsubst_Data);
 open Hypsubst;
--- a/src/Provers/hypsubst.ML	Wed Oct 11 14:51:24 2006 +0200
+++ b/src/Provers/hypsubst.ML	Wed Oct 11 14:51:25 2006 +0200
@@ -34,8 +34,8 @@
 signature HYPSUBST_DATA =
   sig
   val dest_Trueprop    : term -> term
-  val dest_eq          : term -> term*term*typ
-  val dest_imp         : term -> term*term
+  val dest_eq          : term -> (term * term) *typ
+  val dest_imp         : term -> term * term
   val eq_reflection    : thm               (* a=b ==> a==b *)
   val rev_eq_reflection: thm               (* a==b ==> a=b *)
   val imp_intr         : thm               (* (P ==> Q) ==> P-->Q *)
@@ -55,7 +55,7 @@
   val gen_hyp_subst_tac      : bool -> int -> tactic
   val vars_gen_hyp_subst_tac : bool -> int -> tactic
   val eq_var                 : bool -> bool -> term -> int * bool
-  val inspect_pair           : bool -> bool -> term * term * typ -> bool
+  val inspect_pair           : bool -> bool -> (term * term) * typ -> bool
   val mk_eqs                 : bool -> thm -> thm list
   val stac                   : thm -> int -> tactic
   val hypsubst_setup         : theory -> theory
@@ -89,7 +89,7 @@
         but we can't check for this -- hence bnd and bound_hyp_subst_tac
   Prefer to eliminate Bound variables if possible.
   Result:  true = use as is,  false = reorient first *)
-fun inspect_pair bnd novars (t,u,T) =
+fun inspect_pair bnd novars ((t, u), T) =
   if novars andalso maxidx_of_typ T <> ~1
   then raise Match   (*variables in the type!*)
   else