*** empty log message ***
authornipkow
Sun, 22 Dec 2002 10:42:09 +0100
changeset 13762 9dd78dab72bc
parent 13761 52d1b293da7f
child 13763 f94b569cd610
*** empty log message ***
src/HOL/Hoare/Pointers.thy
src/Pure/Syntax/syn_trans.ML
--- a/src/HOL/Hoare/Pointers.thy	Fri Dec 20 10:54:33 2002 +0100
+++ b/src/HOL/Hoare/Pointers.thy	Sun Dec 22 10:42:09 2002 +0100
@@ -39,7 +39,7 @@
 translations
   "f(r \<rightarrow> v)"  ==  "f(addr r := v)"
   "p^.f := e"  =>  "f := f(p \<rightarrow> e)"
-  "p^.f"       ==  "f(addr p)"
+  "p^.f"       =>  "f(addr p)"
 
 
 text "An example due to Suzuki:"
--- a/src/Pure/Syntax/syn_trans.ML	Fri Dec 20 10:54:33 2002 +0100
+++ b/src/Pure/Syntax/syn_trans.ML	Sun Dec 22 10:42:09 2002 +0100
@@ -9,6 +9,7 @@
 signature SYN_TRANS0 =
 sig
   val eta_contract: bool ref
+  val atomic_abs_tr': string * typ * term -> term * term
   val mk_binder_tr: string * string -> string * (term list -> term)
   val mk_binder_tr': string * string -> string * (term list -> term)
   val dependent_tr': string * string -> term list -> term
@@ -225,6 +226,10 @@
     (strip_abss strip_abs_vars strip_abs_body (eta_contr tm));
 
 
+fun atomic_abs_tr' (x,T,t) = 
+  let val [xT] = rename_wrt_term t [(x,T)];
+  in  (mark_boundT xT, subst_bound (mark_bound(fst xT), t)) end;
+
 fun abs_ast_tr' (*"_abs"*) asts =
   (case Ast.unfold_ast_p "_abs" (Ast.Appl (Ast.Constant "_abs" :: asts)) of
     ([], _) => raise Ast.AST ("abs_ast_tr'", asts)