# HG changeset patch # User wenzelm # Date 1729357219 -7200 # Node ID 243f6bec771cbb3da25db4643da8295d45e386bc # Parent dff445a16252c22e2fb98257b642aa6d2f9326ad more type information; clarified signature; diff -r dff445a16252 -r 243f6bec771c src/FOL/IFOL.thy --- a/src/FOL/IFOL.thy Sat Oct 19 17:16:16 2024 +0200 +++ b/src/FOL/IFOL.thy Sat Oct 19 19:00:19 2024 +0200 @@ -104,9 +104,8 @@ syntax "_Uniq" :: "pttrn \ o \ o" (\(\indent=2 notation=\binder \\<^sub>\\<^sub>1\\\\<^sub>\\<^sub>1 _./ _)\ [0, 10] 10) syntax_consts "_Uniq" \ Uniq translations "\\<^sub>\\<^sub>1x. P" \ "CONST Uniq (\x. P)" - -print_translation \ - [Syntax_Trans.preserve_binder_abs_tr' \<^const_syntax>\Uniq\ \<^syntax_const>\_Uniq\] +typed_print_translation \ + [(\<^const_syntax>\Uniq\, fn _ => Syntax_Trans.preserve_binder_abs_tr' \<^syntax_const>\_Uniq\)] \ \ \to avoid eta-contraction of body\ diff -r dff445a16252 -r 243f6bec771c src/HOL/HOL.thy --- a/src/HOL/HOL.thy Sat Oct 19 17:16:16 2024 +0200 +++ b/src/HOL/HOL.thy Sat Oct 19 19:00:19 2024 +0200 @@ -134,8 +134,8 @@ translations "\\<^sub>\\<^sub>1x. P" \ "CONST Uniq (\x. P)" -print_translation \ - [Syntax_Trans.preserve_binder_abs_tr' \<^const_syntax>\Uniq\ \<^syntax_const>\_Uniq\] +typed_print_translation \ + [(\<^const_syntax>\Uniq\, fn _ => Syntax_Trans.preserve_binder_abs_tr' \<^syntax_const>\_Uniq\)] \ \ \to avoid eta-contraction of body\ @@ -149,8 +149,8 @@ translations "\!x. P" \ "CONST Ex1 (\x. P)" -print_translation \ - [Syntax_Trans.preserve_binder_abs_tr' \<^const_syntax>\Ex1\ \<^syntax_const>\_Ex1\] +typed_print_translation \ + [(\<^const_syntax>\Ex1\, fn _ => Syntax_Trans.preserve_binder_abs_tr' \<^syntax_const>\_Ex1\)] \ \ \to avoid eta-contraction of body\ diff -r dff445a16252 -r 243f6bec771c src/HOL/Library/FSet.thy --- a/src/HOL/Library/FSet.thy Sat Oct 19 17:16:16 2024 +0200 +++ b/src/HOL/Library/FSet.thy Sat Oct 19 19:00:19 2024 +0200 @@ -215,9 +215,9 @@ "\x|\|A. P" \ "CONST fBall A (\x. \ P)" "\!x|\|A. P" \ "\!x. x |\| A \ P" -print_translation \ - [Syntax_Trans.preserve_binder_abs2_tr' \<^const_syntax>\fBall\ \<^syntax_const>\_fBall\, - Syntax_Trans.preserve_binder_abs2_tr' \<^const_syntax>\fBex\ \<^syntax_const>\_fBex\] +typed_print_translation \ + [(\<^const_syntax>\fBall\, fn _ => Syntax_Trans.preserve_binder_abs2_tr' \<^syntax_const>\_fBall\), + (\<^const_syntax>\fBex\, fn _ => Syntax_Trans.preserve_binder_abs2_tr' \<^syntax_const>\_fBex\)] \ \ \to avoid eta-contraction of body\ syntax diff -r dff445a16252 -r 243f6bec771c src/HOL/Library/Multiset.thy --- a/src/HOL/Library/Multiset.thy Sat Oct 19 17:16:16 2024 +0200 +++ b/src/HOL/Library/Multiset.thy Sat Oct 19 19:00:19 2024 +0200 @@ -180,9 +180,9 @@ "\x\#A. P" \ "CONST Multiset.Ball A (\x. P)" "\x\#A. P" \ "CONST Multiset.Bex A (\x. P)" -print_translation \ - [Syntax_Trans.preserve_binder_abs2_tr' \<^const_syntax>\Multiset.Ball\ \<^syntax_const>\_MBall\, - Syntax_Trans.preserve_binder_abs2_tr' \<^const_syntax>\Multiset.Bex\ \<^syntax_const>\_MBex\] +typed_print_translation \ + [(\<^const_syntax>\Multiset.Ball\, fn _ => Syntax_Trans.preserve_binder_abs2_tr' \<^syntax_const>\_MBall\), + (\<^const_syntax>\Multiset.Bex\, fn _ => Syntax_Trans.preserve_binder_abs2_tr' \<^syntax_const>\_MBex\)] \ \ \to avoid eta-contraction of body\ lemma count_eq_zero_iff: diff -r dff445a16252 -r 243f6bec771c src/HOL/Set.thy --- a/src/HOL/Set.thy Sat Oct 19 17:16:16 2024 +0200 +++ b/src/HOL/Set.thy Sat Oct 19 19:00:19 2024 +0200 @@ -323,9 +323,9 @@ in [(\<^syntax_const>\_Setcompr\, setcompr_tr)] end \ -print_translation \ - [Syntax_Trans.preserve_binder_abs2_tr' \<^const_syntax>\Ball\ \<^syntax_const>\_Ball\, - Syntax_Trans.preserve_binder_abs2_tr' \<^const_syntax>\Bex\ \<^syntax_const>\_Bex\] +typed_print_translation \ + [(\<^const_syntax>\Ball\, fn _ => Syntax_Trans.preserve_binder_abs2_tr' \<^syntax_const>\_Ball\), + (\<^const_syntax>\Bex\, fn _ => Syntax_Trans.preserve_binder_abs2_tr' \<^syntax_const>\_Bex\)] \ \ \to avoid eta-contraction of body\ print_translation \ diff -r dff445a16252 -r 243f6bec771c src/Pure/Syntax/syntax_trans.ML --- a/src/Pure/Syntax/syntax_trans.ML Sat Oct 19 17:16:16 2024 +0200 +++ b/src/Pure/Syntax/syntax_trans.ML Sat Oct 19 19:00:19 2024 +0200 @@ -36,8 +36,8 @@ val atomic_abs_tr': string * typ * term -> term * term val const_abs_tr': term -> term val mk_binder_tr': string * string -> string * (Proof.context -> term list -> term) - val preserve_binder_abs_tr': string -> string -> string * (Proof.context -> term list -> term) - val preserve_binder_abs2_tr': string -> string -> string * (Proof.context -> term list -> term) + val preserve_binder_abs_tr': string -> typ -> term list -> term + val preserve_binder_abs2_tr': string -> typ -> term list -> term val print_abs: string * typ * term -> string * term val dependent_tr': string * string -> term list -> term val antiquote_tr': string -> term -> term @@ -355,13 +355,13 @@ | binder_tr' [] = raise Match; in (name, fn _ => binder_tr') end; -fun preserve_binder_abs_tr' name syn = (name, fn _ => fn Abs abs :: ts => +fun preserve_binder_abs_tr' syn ty (Abs abs :: ts) = let val (x, t) = atomic_abs_tr' abs - in list_comb (Syntax.const syn $ x $ t, ts) end); + in list_comb (Const (syn, ty) $ x $ t, ts) end; -fun preserve_binder_abs2_tr' name syn = (name, fn _ => fn A :: Abs abs :: ts => +fun preserve_binder_abs2_tr' syn ty (A :: Abs abs :: ts) = let val (x, t) = atomic_abs_tr' abs - in list_comb (Syntax.const syn $ x $ A $ t, ts) end); + in list_comb (Const (syn, ty) $ x $ A $ t, ts) end; (* idtyp constraints *)