# HG changeset patch # User Christian Urban # Date 1265796666 -3600 # Node ID f24e9d21a948912be56f208aa3a9ac7dfaefcfc3 # Parent 67dff6c1a1238e77dc2a7524a4a5797028116a92# Parent 9f6c606d5b594300e519bd0e17d0a9042b922e44 merged again diff -r 9f6c606d5b59 -r f24e9d21a948 Quot/Examples/LamEx.thy --- a/Quot/Examples/LamEx.thy Wed Feb 10 11:09:30 2010 +0100 +++ b/Quot/Examples/LamEx.thy Wed Feb 10 11:11:06 2010 +0100 @@ -72,8 +72,6 @@ \ rLam a t \ rLam b s" - - (* should be automatic with new version of eqvt-machinery *) lemma alpha_eqvt: fixes pi::"name prm" @@ -253,12 +251,18 @@ \ P lam" by (lifting rlam.induct) +ML {* show_all_types := true *} + lemma perm_lam [simp]: fixes pi::"'a prm" shows "pi \ Var a = Var (pi \ a)" and "pi \ App t1 t2 = App (pi \ t1) (pi \ t2)" and "pi \ Lam a t = Lam (pi \ a) (pi \ t)" apply(lifting perm_rlam.simps) +ML_prf {* + List.last (map (symmetric o #def) (Quotient_Info.qconsts_dest @{context})); + List.last (map (Thm.varifyT o symmetric o #def) (Quotient_Info.qconsts_dest @{context})) +*} done instance lam::pt_name diff -r 9f6c606d5b59 -r f24e9d21a948 Quot/quotient_def.ML --- a/Quot/quotient_def.ML Wed Feb 10 11:09:30 2010 +0100 +++ b/Quot/quotient_def.ML Wed Feb 10 11:11:06 2010 +0100 @@ -73,9 +73,10 @@ let val lhs = Syntax.read_term lthy lhs_str val rhs = Syntax.read_term lthy rhs_str - (* FIXME: Relating the reads will cause errors. *) + val lthy' = Variable.declare_term lhs lthy + val lthy'' = Variable.declare_term rhs lthy' in - quotient_def mx attr lhs rhs lthy |> snd + quotient_def mx attr lhs rhs lthy'' |> snd end val _ = OuterKeyword.keyword "as";