Nominal/nominal_dt_alpha.ML
changeset 2475 486d4647bb37
parent 2469 4a6e78bd9de9
child 2476 8f8652a8107f
--- a/Nominal/nominal_dt_alpha.ML	Sun Sep 05 07:00:19 2010 +0800
+++ b/Nominal/nominal_dt_alpha.ML	Fri Sep 10 09:17:40 2010 +0800
@@ -14,7 +14,7 @@
     term list -> typ list -> thm list
 
   val mk_alpha_eq_iff: Proof.context -> thm list -> thm list -> thm list -> 
-    thm list -> (thm list * thm list)
+    thm list -> thm list
 
   val alpha_prove: term list -> (term * ((term * term) -> term)) list -> thm -> 
     (Proof.context -> int -> tactic) -> Proof.context -> thm list
@@ -315,11 +315,12 @@
 
 (** produces the alpha_eq_iff simplification rules **)
 
-(* in case a theorem is of the form (C.. = C..), it will be
-   rewritten to ((C.. = C..) = True) *)
+(* in case a theorem is of the form (Rel Const Const), it will be
+   rewritten to ((Rel Const = Const) = True) 
+*)
 fun mk_simp_rule thm =
   case (prop_of thm) of
-    @{term "Trueprop"} $ (Const (@{const_name "op ="}, _) $ _ $ _) => @{thm eqTrueI} OF [thm]
+    @{term "Trueprop"} $ (_ $ Const _ $ Const _) => thm RS @{thm eqTrueI}
   | _ => thm
 
 fun alpha_eq_iff_tac dist_inj intros elims =
@@ -347,7 +348,7 @@
   val thms = map (fn goal => Goal.prove ctxt' [] [] goal (K tac)) goals;
 in
   Variable.export ctxt' ctxt thms
-  |> `(map mk_simp_rule)
+  |> map mk_simp_rule
 end