# HG changeset patch # User wenzelm # Date 1727118563 -7200 # Node ID 8e72f55295fd9caf41b0b698dc35ddf77e5e8419 # Parent 56f1c0af602c3ffc6acca1d5ca4801de046c9319 more inner syntax markup: HOL; diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/BNF_Cardinal_Arithmetic.thy --- a/src/HOL/BNF_Cardinal_Arithmetic.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/BNF_Cardinal_Arithmetic.thy Mon Sep 23 21:09:23 2024 +0200 @@ -273,7 +273,7 @@ (* Similar setup to the one for SIGMA from theory Big_Operators: *) syntax "_Csum" :: "pttrn => ('a * 'a) set => 'b * 'b set => (('a * 'b) * ('a * 'b)) set" - (\(3CSUM _:_. _)\ [0, 51, 10] 10) + (\(\indent=3 notation=\binder CSUM\\CSUM _:_. _)\ [0, 51, 10] 10) syntax_consts "_Csum" == Csum diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/Complete_Lattices.thy --- a/src/HOL/Complete_Lattices.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/Complete_Lattices.thy Mon Sep 23 21:09:23 2024 +0200 @@ -21,16 +21,16 @@ fixes Sup :: "'a set \ 'a" (\\ _\ [900] 900) syntax - "_INF1" :: "pttrns \ 'b \ 'b" (\(3INF _./ _)\ [0, 10] 10) - "_INF" :: "pttrn \ 'a set \ 'b \ 'b" (\(3INF _\_./ _)\ [0, 0, 10] 10) - "_SUP1" :: "pttrns \ 'b \ 'b" (\(3SUP _./ _)\ [0, 10] 10) - "_SUP" :: "pttrn \ 'a set \ 'b \ 'b" (\(3SUP _\_./ _)\ [0, 0, 10] 10) + "_INF1" :: "pttrns \ 'b \ 'b" (\(\indent=3 notation=\binder INF\\INF _./ _)\ [0, 10] 10) + "_INF" :: "pttrn \ 'a set \ 'b \ 'b" (\(\indent=3 notation=\binder INF\\INF _\_./ _)\ [0, 0, 10] 10) + "_SUP1" :: "pttrns \ 'b \ 'b" (\(\indent=3 notation=\binder SUP\\SUP _./ _)\ [0, 10] 10) + "_SUP" :: "pttrn \ 'a set \ 'b \ 'b" (\(\indent=3 notation=\binder SUP\\SUP _\_./ _)\ [0, 0, 10] 10) syntax - "_INF1" :: "pttrns \ 'b \ 'b" (\(3\_./ _)\ [0, 10] 10) - "_INF" :: "pttrn \ 'a set \ 'b \ 'b" (\(3\_\_./ _)\ [0, 0, 10] 10) - "_SUP1" :: "pttrns \ 'b \ 'b" (\(3\_./ _)\ [0, 10] 10) - "_SUP" :: "pttrn \ 'a set \ 'b \ 'b" (\(3\_\_./ _)\ [0, 0, 10] 10) + "_INF1" :: "pttrns \ 'b \ 'b" (\(\indent=3 notation=\binder \\\\_./ _)\ [0, 10] 10) + "_INF" :: "pttrn \ 'a set \ 'b \ 'b" (\(\indent=3 notation=\binder \\\\_\_./ _)\ [0, 0, 10] 10) + "_SUP1" :: "pttrns \ 'b \ 'b" (\(\indent=3 notation=\binder \\\\_./ _)\ [0, 10] 10) + "_SUP" :: "pttrn \ 'a set \ 'b \ 'b" (\(\indent=3 notation=\binder \\\\_\_./ _)\ [0, 0, 10] 10) syntax_consts "_INF1" "_INF" \ Inf and @@ -843,12 +843,12 @@ subsubsection \Intersections of families\ syntax (ASCII) - "_INTER1" :: "pttrns \ 'b set \ 'b set" (\(3INT _./ _)\ [0, 10] 10) - "_INTER" :: "pttrn \ 'a set \ 'b set \ 'b set" (\(3INT _:_./ _)\ [0, 0, 10] 10) + "_INTER1" :: "pttrns \ 'b set \ 'b set" (\(\indent=3 notation=\binder INT\\INT _./ _)\ [0, 10] 10) + "_INTER" :: "pttrn \ 'a set \ 'b set \ 'b set" (\(\indent=3 notation=\binder INT\\INT _:_./ _)\ [0, 0, 10] 10) syntax - "_INTER1" :: "pttrns \ 'b set \ 'b set" (\(3\_./ _)\ [0, 10] 10) - "_INTER" :: "pttrn \ 'a set \ 'b set \ 'b set" (\(3\_\_./ _)\ [0, 0, 10] 10) + "_INTER1" :: "pttrns \ 'b set \ 'b set" (\(\indent=3 notation=\binder \\\\_./ _)\ [0, 10] 10) + "_INTER" :: "pttrn \ 'a set \ 'b set \ 'b set" (\(\indent=3 notation=\binder \\\\_\_./ _)\ [0, 0, 10] 10) syntax (latex output) "_INTER1" :: "pttrns \ 'b set \ 'b set" (\(3\(\unbreakable\\<^bsub>_\<^esub>)/ _)\ [0, 10] 10) @@ -1009,12 +1009,12 @@ subsubsection \Unions of families\ syntax (ASCII) - "_UNION1" :: "pttrns => 'b set => 'b set" (\(3UN _./ _)\ [0, 10] 10) - "_UNION" :: "pttrn => 'a set => 'b set => 'b set" (\(3UN _:_./ _)\ [0, 0, 10] 10) + "_UNION1" :: "pttrns => 'b set => 'b set" (\(\indent=3 notation=\binder UN\\UN _./ _)\ [0, 10] 10) + "_UNION" :: "pttrn => 'a set => 'b set => 'b set" (\(\indent=3 notation=\binder UN\\UN _:_./ _)\ [0, 0, 10] 10) syntax - "_UNION1" :: "pttrns => 'b set => 'b set" (\(3\_./ _)\ [0, 10] 10) - "_UNION" :: "pttrn => 'a set => 'b set => 'b set" (\(3\_\_./ _)\ [0, 0, 10] 10) + "_UNION1" :: "pttrns => 'b set => 'b set" (\(\indent=3 notation=\binder \\\\_./ _)\ [0, 10] 10) + "_UNION" :: "pttrn => 'a set => 'b set => 'b set" (\(\indent=3 notation=\binder \\\\_\_./ _)\ [0, 0, 10] 10) syntax (latex output) "_UNION1" :: "pttrns => 'b set => 'b set" (\(3\(\unbreakable\\<^bsub>_\<^esub>)/ _)\ [0, 10] 10) diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/Deriv.thy --- a/src/HOL/Deriv.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/Deriv.thy Mon Sep 23 21:09:23 2024 +0200 @@ -70,7 +70,7 @@ \ abbreviation (input) FDERIV :: "('a::real_normed_vector \ 'b::real_normed_vector) \ 'a \ ('a \ 'b) \ bool" - (\(FDERIV (_)/ (_)/ :> (_))\ [1000, 1000, 60] 60) + (\(\notation=\mixfix FDERIV\\FDERIV (_)/ (_)/ :> (_))\ [1000, 1000, 60] 60) where "FDERIV f x :> f' \ (f has_derivative f') (at x)" lemma has_derivative_bounded_linear: "(f has_derivative f') F \ bounded_linear f'" @@ -782,7 +782,7 @@ abbreviation (input) DERIV :: "('a::real_normed_field \ 'a) \ 'a \ 'a \ bool" - (\(DERIV (_)/ (_)/ :> (_))\ [1000, 1000, 60] 60) + (\(\notation=\mixfix DERIV\\DERIV (_)/ (_)/ :> (_))\ [1000, 1000, 60] 60) where "DERIV f x :> D \ (f has_field_derivative D) (at x)" abbreviation has_real_derivative :: "(real \ real) \ real \ real filter \ bool" diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/Filter.thy --- a/src/HOL/Filter.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/Filter.thy Mon Sep 23 21:09:23 2024 +0200 @@ -40,7 +40,7 @@ where "eventually P F \ Rep_filter F P" syntax - "_eventually" :: "pttrn => 'a filter => bool => bool" (\(3\\<^sub>F _ in _./ _)\ [0, 0, 10] 10) + "_eventually" :: "pttrn => 'a filter => bool => bool" (\(\indent=3 notation=\binder \\<^sub>F\\\\<^sub>F _ in _./ _)\ [0, 0, 10] 10) syntax_consts "_eventually" == eventually translations @@ -160,7 +160,7 @@ where "frequently P F \ \ eventually (\x. \ P x) F" syntax - "_frequently" :: "pttrn \ 'a filter \ bool \ bool" (\(3\\<^sub>F _ in _./ _)\ [0, 0, 10] 10) + "_frequently" :: "pttrn \ 'a filter \ bool \ bool" (\(\indent=3 notation=\binder \\<^sub>F\\\\<^sub>F _ in _./ _)\ [0, 0, 10] 10) syntax_consts "_frequently" == frequently translations @@ -1307,7 +1307,7 @@ "filterlim f F2 F1 \ filtermap f F1 \ F2" syntax - "_LIM" :: "pttrns \ 'a \ 'b \ 'a \ bool" (\(3LIM (_)/ (_)./ (_) :> (_))\ [1000, 10, 0, 10] 10) + "_LIM" :: "pttrns \ 'a \ 'b \ 'a \ bool" (\(\indent=3 notation=\binder LIM\\LIM (_)/ (_)./ (_) :> (_))\ [1000, 10, 0, 10] 10) syntax_consts "_LIM" == filterlim diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/Fun.thy --- a/src/HOL/Fun.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/Fun.thy Mon Sep 23 21:09:23 2024 +0200 @@ -841,10 +841,10 @@ nonterminal updbinds and updbind syntax - "_updbind" :: "'a \ 'a \ updbind" (\(2_ :=/ _)\) + "_updbind" :: "'a \ 'a \ updbind" (\(\indent=2 notation=\mixfix update\\_ :=/ _)\) "" :: "updbind \ updbinds" (\_\) "_updbinds":: "updbind \ updbinds \ updbinds" (\_,/ _\) - "_Update" :: "'a \ updbinds \ 'a" (\_/'((_)')\ [1000, 0] 900) + "_Update" :: "'a \ updbinds \ 'a" (\_/'((\indent=2 notation=\mixfix updates\\_)')\ [1000, 0] 900) syntax_consts "_updbind" "_updbinds" "_Update" \ fun_upd diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/GCD.thy --- a/src/HOL/GCD.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/GCD.thy Mon Sep 23 21:09:23 2024 +0200 @@ -148,10 +148,10 @@ and Lcm :: "'a set \ 'a" syntax - "_GCD1" :: "pttrns \ 'b \ 'b" (\(3GCD _./ _)\ [0, 10] 10) - "_GCD" :: "pttrn \ 'a set \ 'b \ 'b" (\(3GCD _\_./ _)\ [0, 0, 10] 10) - "_LCM1" :: "pttrns \ 'b \ 'b" (\(3LCM _./ _)\ [0, 10] 10) - "_LCM" :: "pttrn \ 'a set \ 'b \ 'b" (\(3LCM _\_./ _)\ [0, 0, 10] 10) + "_GCD1" :: "pttrns \ 'b \ 'b" (\(\indent=3 notation=\binder GCD\\GCD _./ _)\ [0, 10] 10) + "_GCD" :: "pttrn \ 'a set \ 'b \ 'b" (\(\indent=3 notation=\binder GCD\\GCD _\_./ _)\ [0, 0, 10] 10) + "_LCM1" :: "pttrns \ 'b \ 'b" (\(\indent=3 notation=\binder LCM\\LCM _./ _)\ [0, 10] 10) + "_LCM" :: "pttrn \ 'a set \ 'b \ 'b" (\(\indent=3 notation=\binder LCM\\LCM _\_./ _)\ [0, 0, 10] 10) syntax_consts "_GCD1" "_GCD" \ Gcd and @@ -2851,7 +2851,7 @@ definition (in semiring_1) semiring_char :: "'a itself \ nat" where "semiring_char _ = Gcd {n. of_nat n = (0 :: 'a)}" -syntax "_type_char" :: "type => nat" (\(1CHAR/(1'(_')))\) +syntax "_type_char" :: "type => nat" (\(\indent=1 notation=\prefix CHAR\\CHAR/(1'(_')))\) syntax_consts "_type_char" \ semiring_char translations "CHAR('t)" \ "CONST semiring_char (CONST Pure.type :: 't itself)" print_translation \ diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/Groups_Big.thy --- a/src/HOL/Groups_Big.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/Groups_Big.thy Mon Sep 23 21:09:23 2024 +0200 @@ -651,9 +651,9 @@ text \Now: lots of fancy syntax. First, \<^term>\sum (\x. e) A\ is written \\x\A. e\.\ syntax (ASCII) - "_sum" :: "pttrn \ 'a set \ 'b \ 'b::comm_monoid_add" (\(3SUM (_/:_)./ _)\ [0, 51, 10] 10) + "_sum" :: "pttrn \ 'a set \ 'b \ 'b::comm_monoid_add" (\(\indent=3 notation=\binder SUM\\SUM (_/:_)./ _)\ [0, 51, 10] 10) syntax - "_sum" :: "pttrn \ 'a set \ 'b \ 'b::comm_monoid_add" (\(2\(_/\_)./ _)\ [0, 51, 10] 10) + "_sum" :: "pttrn \ 'a set \ 'b \ 'b::comm_monoid_add" (\(\indent=2 notation=\binder \\\\(_/\_)./ _)\ [0, 51, 10] 10) syntax_consts "_sum" \ sum @@ -665,9 +665,9 @@ text \Instead of \<^term>\\x\{x. P}. e\ we introduce the shorter \\x|P. e\.\ syntax (ASCII) - "_qsum" :: "pttrn \ bool \ 'a \ 'a" (\(3SUM _ |/ _./ _)\ [0, 0, 10] 10) + "_qsum" :: "pttrn \ bool \ 'a \ 'a" (\(\indent=3 notation=\binder SUM Collect\\SUM _ |/ _./ _)\ [0, 0, 10] 10) syntax - "_qsum" :: "pttrn \ bool \ 'a \ 'a" (\(2\_ | (_)./ _)\ [0, 0, 10] 10) + "_qsum" :: "pttrn \ bool \ 'a \ 'a" (\(\indent=2 notation=\binder \ Collect\\\_ | (_)./ _)\ [0, 0, 10] 10) syntax_consts "_qsum" == sum @@ -1421,9 +1421,9 @@ end syntax (ASCII) - "_prod" :: "pttrn => 'a set => 'b => 'b::comm_monoid_mult" (\(4PROD (_/:_)./ _)\ [0, 51, 10] 10) + "_prod" :: "pttrn => 'a set => 'b => 'b::comm_monoid_mult" (\(\indent=4 notation=\binder PROD\\PROD (_/:_)./ _)\ [0, 51, 10] 10) syntax - "_prod" :: "pttrn => 'a set => 'b => 'b::comm_monoid_mult" (\(2\(_/\_)./ _)\ [0, 51, 10] 10) + "_prod" :: "pttrn => 'a set => 'b => 'b::comm_monoid_mult" (\(\indent=2 notation=\binder \\\\(_/\_)./ _)\ [0, 51, 10] 10) syntax_consts "_prod" == prod @@ -1435,9 +1435,9 @@ text \Instead of \<^term>\\x\{x. P}. e\ we introduce the shorter \\x|P. e\.\ syntax (ASCII) - "_qprod" :: "pttrn \ bool \ 'a \ 'a" (\(4PROD _ |/ _./ _)\ [0, 0, 10] 10) + "_qprod" :: "pttrn \ bool \ 'a \ 'a" (\(\indent=4 notation=\binder PROD Collect\\PROD _ |/ _./ _)\ [0, 0, 10] 10) syntax - "_qprod" :: "pttrn \ bool \ 'a \ 'a" (\(2\_ | (_)./ _)\ [0, 0, 10] 10) + "_qprod" :: "pttrn \ bool \ 'a \ 'a" (\(\indent=2 notation=\binder \ Collect\\\_ | (_)./ _)\ [0, 0, 10] 10) syntax_consts "_qprod" == prod diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/Groups_List.thy --- a/src/HOL/Groups_List.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/Groups_List.thy Mon Sep 23 21:09:23 2024 +0200 @@ -98,9 +98,9 @@ text \Some syntactic sugar for summing a function over a list:\ syntax (ASCII) - "_sum_list" :: "pttrn => 'a list => 'b => 'b" (\(3SUM _<-_. _)\ [0, 51, 10] 10) + "_sum_list" :: "pttrn => 'a list => 'b => 'b" (\(\indent=3 notation=\binder SUM\\SUM _<-_. _)\ [0, 51, 10] 10) syntax - "_sum_list" :: "pttrn => 'a list => 'b => 'b" (\(3\_\_. _)\ [0, 51, 10] 10) + "_sum_list" :: "pttrn => 'a list => 'b => 'b" (\(\indent=3 notation=\binder \\\\_\_. _)\ [0, 51, 10] 10) syntax_consts "_sum_list" == sum_list translations \ \Beware of argument permutation!\ @@ -597,9 +597,9 @@ text \Some syntactic sugar:\ syntax (ASCII) - "_prod_list" :: "pttrn => 'a list => 'b => 'b" (\(3PROD _<-_. _)\ [0, 51, 10] 10) + "_prod_list" :: "pttrn => 'a list => 'b => 'b" (\(\indent=3 notation=\binder PROD\\PROD _<-_. _)\ [0, 51, 10] 10) syntax - "_prod_list" :: "pttrn => 'a list => 'b => 'b" (\(3\_\_. _)\ [0, 51, 10] 10) + "_prod_list" :: "pttrn => 'a list => 'b => 'b" (\(\indent=3 notation=\binder \\\\_\_. _)\ [0, 51, 10] 10) syntax_consts "_prod_list" \ prod_list translations \ \Beware of argument permutation!\ diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/HOL.thy --- a/src/HOL/HOL.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/HOL.thy Mon Sep 23 21:09:23 2024 +0200 @@ -81,7 +81,7 @@ typedecl bool -judgment Trueprop :: "bool \ prop" (\(_)\ 5) +judgment Trueprop :: "bool \ prop" (\(\notation=judgment\_)\ 5) axiomatization implies :: "[bool, bool] \ bool" (infixr \\\ 25) and eq :: "['a, 'a] \ bool" @@ -127,8 +127,8 @@ subsubsection \Additional concrete syntax\ -syntax (ASCII) "_Uniq" :: "pttrn \ bool \ bool" (\(4?< _./ _)\ [0, 10] 10) -syntax "_Uniq" :: "pttrn \ bool \ bool" (\(2\\<^sub>\\<^sub>1 _./ _)\ [0, 10] 10) +syntax (ASCII) "_Uniq" :: "pttrn \ bool \ bool" (\(\indent=4 notation=\binder ?<\\?< _./ _)\ [0, 10] 10) +syntax "_Uniq" :: "pttrn \ bool \ bool" (\(\indent=2 notation=\binder \\<^sub>\\<^sub>1\\\\<^sub>\\<^sub>1 _./ _)\ [0, 10] 10) syntax_consts "_Uniq" \ Uniq @@ -140,10 +140,10 @@ syntax (ASCII) - "_Ex1" :: "pttrn \ bool \ bool" (\(3EX! _./ _)\ [0, 10] 10) + "_Ex1" :: "pttrn \ bool \ bool" (\(\indent=3 notation=\binder EX!\\EX! _./ _)\ [0, 10] 10) syntax (input) - "_Ex1" :: "pttrn \ bool \ bool" (\(3?! _./ _)\ [0, 10] 10) -syntax "_Ex1" :: "pttrn \ bool \ bool" (\(3\!_./ _)\ [0, 10] 10) + "_Ex1" :: "pttrn \ bool \ bool" (\(\indent=3 notation=\binder ?!\\?! _./ _)\ [0, 10] 10) +syntax "_Ex1" :: "pttrn \ bool \ bool" (\(\indent=3 notation=\binder \!\\\!_./ _)\ [0, 10] 10) syntax_consts "_Ex1" \ Ex1 @@ -155,8 +155,8 @@ syntax - "_Not_Ex" :: "idts \ bool \ bool" (\(3\_./ _)\ [0, 10] 10) - "_Not_Ex1" :: "pttrn \ bool \ bool" (\(3\!_./ _)\ [0, 10] 10) + "_Not_Ex" :: "idts \ bool \ bool" (\(\indent=3 notation=\binder \\\\_./ _)\ [0, 10] 10) + "_Not_Ex1" :: "pttrn \ bool \ bool" (\(\indent=3 notation=\binder \!\\\!_./ _)\ [0, 10] 10) syntax_consts "_Not_Ex" \ Ex and "_Not_Ex1" \ Ex1 @@ -179,7 +179,7 @@ iff :: "[bool, bool] \ bool" (infixr \\\ 25) where "A \ B \ A = B" -syntax "_The" :: "[pttrn, bool] \ 'a" (\(3THE _./ _)\ [0, 10] 10) +syntax "_The" :: "[pttrn, bool] \ 'a" (\(\indent=3 notation=\binder THE\\THE _./ _)\ [0, 10] 10) syntax_consts "_The" \ The translations "THE x. P" \ "CONST The (\x. P)" print_translation \ @@ -190,12 +190,12 @@ nonterminal case_syn and cases_syn syntax - "_case_syntax" :: "['a, cases_syn] \ 'b" (\(case _ of/ _)\ 10) - "_case1" :: "['a, 'b] \ case_syn" (\(2_ \/ _)\ 10) + "_case_syntax" :: "['a, cases_syn] \ 'b" (\(\notation=\mixfix case expression\\case _ of/ _)\ 10) + "_case1" :: "['a, 'b] \ case_syn" (\(\indent=2 notation=\mixfix case pattern\\_ \/ _)\ 10) "" :: "case_syn \ cases_syn" (\_\) "_case2" :: "[case_syn, cases_syn] \ cases_syn" (\_/ | _\) syntax (ASCII) - "_case1" :: "['a, 'b] \ case_syn" (\(2_ =>/ _)\ 10) + "_case1" :: "['a, 'b] \ case_syn" (\(\indent=2 notation=\mixfix case pattern\\_ =>/ _)\ 10) notation (ASCII) All (binder \ALL \ 10) and @@ -224,7 +224,7 @@ True_or_False: "(P = True) \ (P = False)" -definition If :: "bool \ 'a \ 'a \ 'a" (\(if (_)/ then (_)/ else (_))\ [0, 0, 10] 10) +definition If :: "bool \ 'a \ 'a \ 'a" (\(\notation=\mixfix if expression\\if (_)/ then (_)/ else (_))\ [0, 0, 10] 10) where "If P x y \ (THE z::'a. (P = True \ z = x) \ (P = False \ z = y))" definition Let :: "'a \ ('a \ 'b) \ 'b" @@ -232,10 +232,10 @@ nonterminal letbinds and letbind syntax - "_bind" :: "[pttrn, 'a] \ letbind" (\(2_ =/ _)\ 10) + "_bind" :: "[pttrn, 'a] \ letbind" (\(\indent=2 notation=\mixfix let binding\\_ =/ _)\ 10) "" :: "letbind \ letbinds" (\_\) "_binds" :: "[letbind, letbinds] \ letbinds" (\_;/ _\) - "_Let" :: "[letbinds, 'a] \ 'a" (\(let (_)/ in (_))\ [0, 10] 10) + "_Let" :: "[letbinds, 'a] \ 'a" (\(\notation=\mixfix let expression\\let (_)/ in (_))\ [0, 10] 10) syntax_consts "_bind" "_binds" "_Let" \ Let translations diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/Hilbert_Choice.thy --- a/src/HOL/Hilbert_Choice.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/Hilbert_Choice.thy Mon Sep 23 21:09:23 2024 +0200 @@ -17,11 +17,11 @@ where someI: "P x \ P (Eps P)" syntax (epsilon) - "_Eps" :: "pttrn \ bool \ 'a" (\(3\_./ _)\ [0, 10] 10) + "_Eps" :: "pttrn \ bool \ 'a" (\(\indent=3 notation=\binder \\\\_./ _)\ [0, 10] 10) syntax (input) - "_Eps" :: "pttrn \ bool \ 'a" (\(3@ _./ _)\ [0, 10] 10) + "_Eps" :: "pttrn \ bool \ 'a" (\(\indent=3 notation=\binder @\\@ _./ _)\ [0, 10] 10) syntax - "_Eps" :: "pttrn \ bool \ 'a" (\(3SOME _./ _)\ [0, 10] 10) + "_Eps" :: "pttrn \ bool \ 'a" (\(\indent=3 notation=\binder SOME\\SOME _./ _)\ [0, 10] 10) syntax_consts "_Eps" \ Eps diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/Inductive.thy --- a/src/HOL/Inductive.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/Inductive.thy Mon Sep 23 21:09:23 2024 +0200 @@ -525,9 +525,9 @@ text \Lambda-abstractions with pattern matching:\ syntax (ASCII) - "_lam_pats_syntax" :: "cases_syn \ 'a \ 'b" (\(%_)\ 10) + "_lam_pats_syntax" :: "cases_syn \ 'a \ 'b" (\(\notation=abstraction\%_)\ 10) syntax - "_lam_pats_syntax" :: "cases_syn \ 'a \ 'b" (\(\_)\ 10) + "_lam_pats_syntax" :: "cases_syn \ 'a \ 'b" (\(\notation=abstraction\\_)\ 10) parse_translation \ let fun fun_tr ctxt [cs] = diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/Lattices_Big.thy --- a/src/HOL/Lattices_Big.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/Lattices_Big.thy Mon Sep 23 21:09:23 2024 +0200 @@ -465,10 +465,10 @@ end syntax - "_MIN1" :: "pttrns \ 'b \ 'b" (\(3MIN _./ _)\ [0, 10] 10) - "_MIN" :: "pttrn \ 'a set \ 'b \ 'b" (\(3MIN _\_./ _)\ [0, 0, 10] 10) - "_MAX1" :: "pttrns \ 'b \ 'b" (\(3MAX _./ _)\ [0, 10] 10) - "_MAX" :: "pttrn \ 'a set \ 'b \ 'b" (\(3MAX _\_./ _)\ [0, 0, 10] 10) + "_MIN1" :: "pttrns \ 'b \ 'b" (\(\indent=3 notation=\binder MIN\\MIN _./ _)\ [0, 10] 10) + "_MIN" :: "pttrn \ 'a set \ 'b \ 'b" (\(\indent=3 notation=\binder MIN\\MIN _\_./ _)\ [0, 0, 10] 10) + "_MAX1" :: "pttrns \ 'b \ 'b" (\(\indent=3 notation=\binder MAX\\MAX _./ _)\ [0, 10] 10) + "_MAX" :: "pttrn \ 'a set \ 'b \ 'b" (\(\indent=3 notation=\binder MAX\\MAX _\_./ _)\ [0, 0, 10] 10) syntax_consts "_MIN1" "_MIN" \ Min and @@ -923,7 +923,7 @@ syntax "_arg_min" :: "('b \ 'a) \ pttrn \ bool \ 'b" - (\(3ARG'_MIN _ _./ _)\ [1000, 0, 10] 10) + (\(\indent=3 notation=\binder ARG_MIN\\ARG'_MIN _ _./ _)\ [1000, 0, 10] 10) syntax_consts "_arg_min" \ arg_min translations @@ -1034,7 +1034,7 @@ syntax "_arg_max" :: "('b \ 'a) \ pttrn \ bool \ 'a" - (\(3ARG'_MAX _ _./ _)\ [1000, 0, 10] 10) + (\(\indent=3 notation=\binder ARG_MAX\\ARG'_MAX _ _./ _)\ [1000, 0, 10] 10) syntax_consts "_arg_max" \ arg_max translations diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/List.thy --- a/src/HOL/List.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/List.thy Mon Sep 23 21:09:23 2024 +0200 @@ -86,9 +86,9 @@ text \Special input syntax for filter:\ syntax (ASCII) - "_filter" :: "[pttrn, 'a list, bool] => 'a list" (\(1[_<-_./ _])\) + "_filter" :: "[pttrn, 'a list, bool] => 'a list" (\(\indent=1 notation=\mixfix filter\\[_<-_./ _])\) syntax - "_filter" :: "[pttrn, 'a list, bool] => 'a list" (\(1[_\_ ./ _])\) + "_filter" :: "[pttrn, 'a list, bool] => 'a list" (\(\indent=1 notation=\mixfix filter\\[_\_ ./ _])\) syntax_consts "_filter" \ filter translations @@ -135,7 +135,7 @@ nonterminal lupdbinds and lupdbind syntax - "_lupdbind":: "['a, 'a] => lupdbind" (\(2_ :=/ _)\) + "_lupdbind":: "['a, 'a] => lupdbind" (\(\indent=2 notation=\mixfix list update\\_ :=/ _)\) "" :: "lupdbind => lupdbinds" (\_\) "_lupdbinds" :: "[lupdbind, lupdbinds] => lupdbinds" (\_,/ _\) "_LUpdate" :: "['a, lupdbinds] => 'a" (\_/[(_)]\ [1000,0] 900) @@ -175,7 +175,7 @@ "product_lists [] = [[]]" | "product_lists (xs # xss) = concat (map (\x. map (Cons x) (product_lists xss)) xs)" -primrec upt :: "nat \ nat \ nat list" (\(1[_..) where +primrec upt :: "nat \ nat \ nat list" (\(\indent=1 notation=\mixfix list interval\\[_..) where upt_0: "[i..<0] = []" | upt_Suc: "[i..<(Suc j)] = (if i \ j then [i..\upto\: interval-list on \<^typ>\int\\ -function upto :: "int \ int \ int list" (\(1[_../_])\) where +function upto :: "int \ int \ int list" (\(\indent=1 notation=\mixfix list interval\\[_../_])\) where "upto i j = (if i \ j then i # [i+1..j] else [])" by auto termination diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/Main.thy --- a/src/HOL/Main.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/Main.thy Mon Sep 23 21:09:23 2024 +0200 @@ -77,10 +77,10 @@ Sup (\\ _\ [900] 900) syntax - "_INF1" :: "pttrns \ 'b \ 'b" (\(3\_./ _)\ [0, 10] 10) - "_INF" :: "pttrn \ 'a set \ 'b \ 'b" (\(3\_\_./ _)\ [0, 0, 10] 10) - "_SUP1" :: "pttrns \ 'b \ 'b" (\(3\_./ _)\ [0, 10] 10) - "_SUP" :: "pttrn \ 'a set \ 'b \ 'b" (\(3\_\_./ _)\ [0, 0, 10] 10) + "_INF1" :: "pttrns \ 'b \ 'b" (\(\indent=3 notation=\binder \\\\_./ _)\ [0, 10] 10) + "_INF" :: "pttrn \ 'a set \ 'b \ 'b" (\(\indent=3 notation=\binder \\\\_\_./ _)\ [0, 0, 10] 10) + "_SUP1" :: "pttrns \ 'b \ 'b" (\(\indent=3 notation=\binder \\\\_./ _)\ [0, 10] 10) + "_SUP" :: "pttrn \ 'a set \ 'b \ 'b" (\(\indent=3 notation=\binder \\\\_\_./ _)\ [0, 0, 10] 10) end @@ -96,10 +96,10 @@ Sup (\\ _\ [900] 900) no_syntax - "_INF1" :: "pttrns \ 'b \ 'b" (\(3\_./ _)\ [0, 10] 10) - "_INF" :: "pttrn \ 'a set \ 'b \ 'b" (\(3\_\_./ _)\ [0, 0, 10] 10) - "_SUP1" :: "pttrns \ 'b \ 'b" (\(3\_./ _)\ [0, 10] 10) - "_SUP" :: "pttrn \ 'a set \ 'b \ 'b" (\(3\_\_./ _)\ [0, 0, 10] 10) + "_INF1" :: "pttrns \ 'b \ 'b" (\(\indent=3 notation=\binder \\\\_./ _)\ [0, 10] 10) + "_INF" :: "pttrn \ 'a set \ 'b \ 'b" (\(\indent=3 notation=\binder \\\\_\_./ _)\ [0, 0, 10] 10) + "_SUP1" :: "pttrns \ 'b \ 'b" (\(\indent=3 notation=\binder \\\\_./ _)\ [0, 10] 10) + "_SUP" :: "pttrn \ 'a set \ 'b \ 'b" (\(\indent=3 notation=\binder \\\\_\_./ _)\ [0, 0, 10] 10) end diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/Map.thy --- a/src/HOL/Map.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/Map.thy Mon Sep 23 21:09:23 2024 +0200 @@ -61,7 +61,7 @@ "" :: "maplet \ updbind" (\_\) "" :: "maplet \ maplets" (\_\) "_Maplets" :: "[maplet, maplets] \ maplets" (\_,/ _\) - "_Map" :: "maplets \ 'a \ 'b" (\(1[_])\) + "_Map" :: "maplets \ 'a \ 'b" (\(\indent=1 notation=\mixfix maplets\\[_])\) (* Syntax forbids \[\, x := y, \]\ by introducing \maplets\ in addition to \updbinds\ *) syntax (ASCII) diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/Orderings.thy --- a/src/HOL/Orderings.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/Orderings.thy Mon Sep 23 21:09:23 2024 +0200 @@ -179,9 +179,9 @@ notation less_eq (\'(\')\) and - less_eq (\(_/ \ _)\ [51, 51] 50) and + less_eq (\(\notation=\infix \\\_/ \ _)\ [51, 51] 50) and less (\'(<')\) and - less (\(_/ < _)\ [51, 51] 50) + less (\(\notation=\infix <\\_/ < _)\ [51, 51] 50) abbreviation (input) greater_eq (infix \\\ 50) @@ -193,7 +193,7 @@ notation (ASCII) less_eq (\'(<=')\) and - less_eq (\(_/ <= _)\ [51, 51] 50) + less_eq (\(\notation=\infix <=\\_/ <= _)\ [51, 51] 50) notation (input) greater_eq (infix \>=\ 50) @@ -710,40 +710,40 @@ subsection \Bounded quantifiers\ syntax (ASCII) - "_All_less" :: "[idt, 'a, bool] => bool" (\(3ALL _<_./ _)\ [0, 0, 10] 10) - "_Ex_less" :: "[idt, 'a, bool] => bool" (\(3EX _<_./ _)\ [0, 0, 10] 10) - "_All_less_eq" :: "[idt, 'a, bool] => bool" (\(3ALL _<=_./ _)\ [0, 0, 10] 10) - "_Ex_less_eq" :: "[idt, 'a, bool] => bool" (\(3EX _<=_./ _)\ [0, 0, 10] 10) + "_All_less" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder ALL\\ALL _<_./ _)\ [0, 0, 10] 10) + "_Ex_less" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder EX\\EX _<_./ _)\ [0, 0, 10] 10) + "_All_less_eq" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder ALL\\ALL _<=_./ _)\ [0, 0, 10] 10) + "_Ex_less_eq" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder EX\\EX _<=_./ _)\ [0, 0, 10] 10) - "_All_greater" :: "[idt, 'a, bool] => bool" (\(3ALL _>_./ _)\ [0, 0, 10] 10) - "_Ex_greater" :: "[idt, 'a, bool] => bool" (\(3EX _>_./ _)\ [0, 0, 10] 10) - "_All_greater_eq" :: "[idt, 'a, bool] => bool" (\(3ALL _>=_./ _)\ [0, 0, 10] 10) - "_Ex_greater_eq" :: "[idt, 'a, bool] => bool" (\(3EX _>=_./ _)\ [0, 0, 10] 10) + "_All_greater" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder ALL\\ALL _>_./ _)\ [0, 0, 10] 10) + "_Ex_greater" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder EX\\EX _>_./ _)\ [0, 0, 10] 10) + "_All_greater_eq" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder ALL\\ALL _>=_./ _)\ [0, 0, 10] 10) + "_Ex_greater_eq" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder EX\\EX _>=_./ _)\ [0, 0, 10] 10) - "_All_neq" :: "[idt, 'a, bool] => bool" (\(3ALL _~=_./ _)\ [0, 0, 10] 10) - "_Ex_neq" :: "[idt, 'a, bool] => bool" (\(3EX _~=_./ _)\ [0, 0, 10] 10) + "_All_neq" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder ALL\\ALL _~=_./ _)\ [0, 0, 10] 10) + "_Ex_neq" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder EX\\EX _~=_./ _)\ [0, 0, 10] 10) syntax - "_All_less" :: "[idt, 'a, bool] => bool" (\(3\_<_./ _)\ [0, 0, 10] 10) - "_Ex_less" :: "[idt, 'a, bool] => bool" (\(3\_<_./ _)\ [0, 0, 10] 10) - "_All_less_eq" :: "[idt, 'a, bool] => bool" (\(3\_\_./ _)\ [0, 0, 10] 10) - "_Ex_less_eq" :: "[idt, 'a, bool] => bool" (\(3\_\_./ _)\ [0, 0, 10] 10) + "_All_less" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder \\\\_<_./ _)\ [0, 0, 10] 10) + "_Ex_less" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder \\\\_<_./ _)\ [0, 0, 10] 10) + "_All_less_eq" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder \\\\_\_./ _)\ [0, 0, 10] 10) + "_Ex_less_eq" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder \\\\_\_./ _)\ [0, 0, 10] 10) - "_All_greater" :: "[idt, 'a, bool] => bool" (\(3\_>_./ _)\ [0, 0, 10] 10) - "_Ex_greater" :: "[idt, 'a, bool] => bool" (\(3\_>_./ _)\ [0, 0, 10] 10) - "_All_greater_eq" :: "[idt, 'a, bool] => bool" (\(3\_\_./ _)\ [0, 0, 10] 10) - "_Ex_greater_eq" :: "[idt, 'a, bool] => bool" (\(3\_\_./ _)\ [0, 0, 10] 10) + "_All_greater" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder \\\\_>_./ _)\ [0, 0, 10] 10) + "_Ex_greater" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder \\\\_>_./ _)\ [0, 0, 10] 10) + "_All_greater_eq" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder \\\\_\_./ _)\ [0, 0, 10] 10) + "_Ex_greater_eq" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder \\\\_\_./ _)\ [0, 0, 10] 10) - "_All_neq" :: "[idt, 'a, bool] => bool" (\(3\_\_./ _)\ [0, 0, 10] 10) - "_Ex_neq" :: "[idt, 'a, bool] => bool" (\(3\_\_./ _)\ [0, 0, 10] 10) + "_All_neq" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder \\\\_\_./ _)\ [0, 0, 10] 10) + "_Ex_neq" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder \\\\_\_./ _)\ [0, 0, 10] 10) syntax (input) - "_All_less" :: "[idt, 'a, bool] => bool" (\(3! _<_./ _)\ [0, 0, 10] 10) - "_Ex_less" :: "[idt, 'a, bool] => bool" (\(3? _<_./ _)\ [0, 0, 10] 10) - "_All_less_eq" :: "[idt, 'a, bool] => bool" (\(3! _<=_./ _)\ [0, 0, 10] 10) - "_Ex_less_eq" :: "[idt, 'a, bool] => bool" (\(3? _<=_./ _)\ [0, 0, 10] 10) - "_All_neq" :: "[idt, 'a, bool] => bool" (\(3! _~=_./ _)\ [0, 0, 10] 10) - "_Ex_neq" :: "[idt, 'a, bool] => bool" (\(3? _~=_./ _)\ [0, 0, 10] 10) + "_All_less" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder !\\! _<_./ _)\ [0, 0, 10] 10) + "_Ex_less" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder ?\\? _<_./ _)\ [0, 0, 10] 10) + "_All_less_eq" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder !\\! _<=_./ _)\ [0, 0, 10] 10) + "_Ex_less_eq" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder ?\\? _<=_./ _)\ [0, 0, 10] 10) + "_All_neq" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder !\\! _~=_./ _)\ [0, 0, 10] 10) + "_Ex_neq" :: "[idt, 'a, bool] => bool" (\(\indent=3 notation=\binder ?\\? _~=_./ _)\ [0, 0, 10] 10) syntax_consts "_All_less" "_All_less_eq" "_All_greater" "_All_greater_eq" "_All_neq" \ All and diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/Power.thy --- a/src/HOL/Power.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/Power.thy Mon Sep 23 21:09:23 2024 +0200 @@ -23,7 +23,7 @@ power (\(_\<^bsup>_\<^esup>)\ [1000] 1000) text \Special syntax for squares.\ -abbreviation power2 :: "'a \ 'a" (\(_\<^sup>2)\ [1000] 999) +abbreviation power2 :: "'a \ 'a" (\(\notation=\postfix 2\\_\<^sup>2)\ [1000] 999) where "x\<^sup>2 \ x ^ 2" end diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/Product_Type.thy --- a/src/HOL/Product_Type.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/Product_Type.thy Mon Sep 23 21:09:23 2024 +0200 @@ -214,7 +214,7 @@ definition "prod = {f. \a b. f = Pair_Rep (a::'a) (b::'b)}" -typedef ('a, 'b) prod (\(_ \/ _)\ [21, 20] 20) = "prod :: ('a \ 'b \ bool) set" +typedef ('a, 'b) prod (\(\notation=\infix \\\_ \/ _)\ [21, 20] 20) = "prod :: ('a \ 'b \ bool) set" unfolding prod_def by auto type_notation (ASCII) @@ -286,7 +286,7 @@ nonterminal tuple_args and patterns syntax - "_tuple" :: "'a \ tuple_args \ 'a \ 'b" (\(1'(_,/ _'))\) + "_tuple" :: "'a \ tuple_args \ 'a \ 'b" (\(\indent=1 notation=\mixfix tuple\\'(_,/ _'))\) "_tuple_arg" :: "'a \ tuple_args" (\_\) "_tuple_args" :: "'a \ tuple_args \ tuple_args" (\_,/ _\) "_pattern" :: "pttrn \ patterns \ pttrn" (\'(_,/ _')\) @@ -1013,7 +1013,8 @@ end syntax - "_Sigma" :: "pttrn \ 'a set \ 'b set \ ('a \ 'b) set" (\(3SIGMA _:_./ _)\ [0, 0, 10] 10) + "_Sigma" :: "pttrn \ 'a set \ 'b set \ ('a \ 'b) set" + (\(\indent=3 notation=\binder SIGMA\\SIGMA _:_./ _)\ [0, 0, 10] 10) syntax_consts "_Sigma" \ Sigma translations diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/Record.thy --- a/src/HOL/Record.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/Record.thy Mon Sep 23 21:09:23 2024 +0200 @@ -426,29 +426,29 @@ "_constify" :: "id => ident" (\_\) "_constify" :: "longid => ident" (\_\) - "_field_type" :: "ident => type => field_type" (\(2_ ::/ _)\) + "_field_type" :: "ident => type => field_type" (\(\indent=2 notation=\infix field type\\_ ::/ _)\) "" :: "field_type => field_types" (\_\) "_field_types" :: "field_type => field_types => field_types" (\_,/ _\) - "_record_type" :: "field_types => type" (\(3\_\)\) - "_record_type_scheme" :: "field_types => type => type" (\(3\_,/ (2\ ::/ _)\)\) + "_record_type" :: "field_types => type" (\(\indent=3 notation=\mixfix record type\\\_\)\) + "_record_type_scheme" :: "field_types => type => type" (\(\indent=3 notation=\mixfix record type\\\_,/ (2\ ::/ _)\)\) - "_field" :: "ident => 'a => field" (\(2_ =/ _)\) + "_field" :: "ident => 'a => field" (\(\indent=2 notation=\infix field value\\_ =/ _)\) "" :: "field => fields" (\_\) "_fields" :: "field => fields => fields" (\_,/ _\) - "_record" :: "fields => 'a" (\(3\_\)\) - "_record_scheme" :: "fields => 'a => 'a" (\(3\_,/ (2\ =/ _)\)\) + "_record" :: "fields => 'a" (\(\indent=3 notation=\mixfix record value\\\_\)\) + "_record_scheme" :: "fields => 'a => 'a" (\(\indent=3 notation=\mixfix record value\\\_,/ (2\ =/ _)\)\) - "_field_update" :: "ident => 'a => field_update" (\(2_ :=/ _)\) + "_field_update" :: "ident => 'a => field_update" (\(\indent=2 notation=\infix field update\\_ :=/ _)\) "" :: "field_update => field_updates" (\_\) "_field_updates" :: "field_update => field_updates => field_updates" (\_,/ _\) - "_record_update" :: "'a => field_updates => 'b" (\_/(3\_\)\ [900, 0] 900) + "_record_update" :: "'a => field_updates => 'b" (\_/(\indent=3 notation=\mixfix record update\\\_\)\ [900, 0] 900) syntax (ASCII) - "_record_type" :: "field_types => type" (\(3'(| _ |'))\) - "_record_type_scheme" :: "field_types => type => type" (\(3'(| _,/ (2... ::/ _) |'))\) - "_record" :: "fields => 'a" (\(3'(| _ |'))\) - "_record_scheme" :: "fields => 'a => 'a" (\(3'(| _,/ (2... =/ _) |'))\) - "_record_update" :: "'a => field_updates => 'b" (\_/(3'(| _ |'))\ [900, 0] 900) + "_record_type" :: "field_types => type" (\(\indent=3 notation=\mixfix record type\\'(| _ |'))\) + "_record_type_scheme" :: "field_types => type => type" (\(\indent=3 notation=\mixfix record type\\'(| _,/ (2... ::/ _) |'))\) + "_record" :: "fields => 'a" (\(\indent=3 notation=\mixfix record value\\'(| _ |'))\) + "_record_scheme" :: "fields => 'a => 'a" (\(\indent=3 notation=\mixfix record value\\'(| _,/ (2... =/ _) |'))\) + "_record_update" :: "'a => field_updates => 'b" (\_/(\indent=3 notation=\mixfix record update\\'(| _ |'))\ [900, 0] 900) subsection \Record package\ diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/Relation.thy --- a/src/HOL/Relation.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/Relation.thy Mon Sep 23 21:09:23 2024 +0200 @@ -1074,15 +1074,15 @@ subsubsection \Converse\ -inductive_set converse :: "('a \ 'b) set \ ('b \ 'a) set" (\(_\)\ [1000] 999) +inductive_set converse :: "('a \ 'b) set \ ('b \ 'a) set" (\(\notation=\postfix -1\\_\)\ [1000] 999) for r :: "('a \ 'b) set" where "(a, b) \ r \ (b, a) \ r\" -notation conversep (\(_\\)\ [1000] 1000) +notation conversep (\(\notation=\postfix -1-1\\_\\)\ [1000] 1000) notation (ASCII) - converse (\(_^-1)\ [1000] 999) and - conversep (\(_^--1)\ [1000] 1000) + converse (\(\notation=\postfix -1\\_^-1)\ [1000] 999) and + conversep (\(\notation=\postfix -1-1\\_^--1)\ [1000] 1000) lemma converseI [sym]: "(a, b) \ r \ (b, a) \ r\" by (fact converse.intros) diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/Set.thy --- a/src/HOL/Set.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/Set.thy Mon Sep 23 21:09:23 2024 +0200 @@ -21,34 +21,34 @@ notation member (\'(\')\) and - member (\(_/ \ _)\ [51, 51] 50) + member (\(\notation=\infix \\\_/ \ _)\ [51, 51] 50) abbreviation not_member where "not_member x A \ \ (x \ A)" \ \non-membership\ notation not_member (\'(\')\) and - not_member (\(_/ \ _)\ [51, 51] 50) + not_member (\(\notation=\infix \\\_/ \ _)\ [51, 51] 50) notation (ASCII) member (\'(:')\) and - member (\(_/ : _)\ [51, 51] 50) and + member (\(\notation=\infix :\\_/ : _)\ [51, 51] 50) and not_member (\'(~:')\) and - not_member (\(_/ ~: _)\ [51, 51] 50) + not_member (\(\notation=\infix ~:\\_/ ~: _)\ [51, 51] 50) text \Set comprehensions\ syntax - "_Coll" :: "pttrn \ bool \ 'a set" (\(1{_./ _})\) + "_Coll" :: "pttrn \ bool \ 'a set" (\(\indent=1 notation=\mixfix Collect\\{_./ _})\) syntax_consts "_Coll" \ Collect translations "{x. P}" \ "CONST Collect (\x. P)" syntax (ASCII) - "_Collect" :: "pttrn \ 'a set \ bool \ 'a set" (\(1{(_/: _)./ _})\) + "_Collect" :: "pttrn \ 'a set \ bool \ 'a set" (\(\indent=1 notation=\mixfix Collect\\{(_/: _)./ _})\) syntax - "_Collect" :: "pttrn \ 'a set \ bool \ 'a set" (\(1{(_/ \ _)./ _})\) + "_Collect" :: "pttrn \ 'a set \ bool \ 'a set" (\(\indent=1 notation=\mixfix Collect\\{(_/ \ _)./ _})\) syntax_consts "_Collect" \ Collect translations @@ -165,9 +165,9 @@ notation subset (\'(\')\) and - subset (\(_/ \ _)\ [51, 51] 50) and + subset (\(\notation=\infix \\\_/ \ _)\ [51, 51] 50) and subset_eq (\'(\')\) and - subset_eq (\(_/ \ _)\ [51, 51] 50) + subset_eq (\(\notation=\infix \\\_/ \ _)\ [51, 51] 50) abbreviation (input) supset :: "'a set \ 'a set \ bool" where @@ -179,15 +179,15 @@ notation supset (\'(\')\) and - supset (\(_/ \ _)\ [51, 51] 50) and + supset (\(\notation=\infix \\\_/ \ _)\ [51, 51] 50) and supset_eq (\'(\')\) and - supset_eq (\(_/ \ _)\ [51, 51] 50) + supset_eq (\(\notation=\infix \\\_/ \ _)\ [51, 51] 50) notation (ASCII output) subset (\'(<')\) and - subset (\(_/ < _)\ [51, 51] 50) and + subset (\(\notation=\infix <\\_/ < _)\ [51, 51] 50) and subset_eq (\'(<=')\) and - subset_eq (\(_/ <= _)\ [51, 51] 50) + subset_eq (\(\notation=\infix <=\\_/ <= _)\ [51, 51] 50) definition Ball :: "'a set \ ('a \ bool) \ bool" where "Ball A P \ (\x. x \ A \ P x)" \ \bounded universal quantifiers\ @@ -196,21 +196,21 @@ where "Bex A P \ (\x. x \ A \ P x)" \ \bounded existential quantifiers\ syntax (ASCII) - "_Ball" :: "pttrn \ 'a set \ bool \ bool" (\(3ALL (_/:_)./ _)\ [0, 0, 10] 10) - "_Bex" :: "pttrn \ 'a set \ bool \ bool" (\(3EX (_/:_)./ _)\ [0, 0, 10] 10) - "_Bex1" :: "pttrn \ 'a set \ bool \ bool" (\(3EX! (_/:_)./ _)\ [0, 0, 10] 10) - "_Bleast" :: "id \ 'a set \ bool \ 'a" (\(3LEAST (_/:_)./ _)\ [0, 0, 10] 10) + "_Ball" :: "pttrn \ 'a set \ bool \ bool" (\(\indent=3 notation=\binder ALL :\\ALL (_/:_)./ _)\ [0, 0, 10] 10) + "_Bex" :: "pttrn \ 'a set \ bool \ bool" (\(\indent=3 notation=\binder EX :\\EX (_/:_)./ _)\ [0, 0, 10] 10) + "_Bex1" :: "pttrn \ 'a set \ bool \ bool" (\(\indent=3 notation=\binder EX! :\\EX! (_/:_)./ _)\ [0, 0, 10] 10) + "_Bleast" :: "id \ 'a set \ bool \ 'a" (\(\indent=3 notation=\binder LEAST :\\LEAST (_/:_)./ _)\ [0, 0, 10] 10) syntax (input) - "_Ball" :: "pttrn \ 'a set \ bool \ bool" (\(3! (_/:_)./ _)\ [0, 0, 10] 10) - "_Bex" :: "pttrn \ 'a set \ bool \ bool" (\(3? (_/:_)./ _)\ [0, 0, 10] 10) - "_Bex1" :: "pttrn \ 'a set \ bool \ bool" (\(3?! (_/:_)./ _)\ [0, 0, 10] 10) + "_Ball" :: "pttrn \ 'a set \ bool \ bool" (\(\indent=3 notation=\binder ! :\\! (_/:_)./ _)\ [0, 0, 10] 10) + "_Bex" :: "pttrn \ 'a set \ bool \ bool" (\(\indent=3 notation=\binder ? :\\? (_/:_)./ _)\ [0, 0, 10] 10) + "_Bex1" :: "pttrn \ 'a set \ bool \ bool" (\(\indent=3 notation=\binder ?! :\\?! (_/:_)./ _)\ [0, 0, 10] 10) syntax - "_Ball" :: "pttrn \ 'a set \ bool \ bool" (\(3\(_/\_)./ _)\ [0, 0, 10] 10) - "_Bex" :: "pttrn \ 'a set \ bool \ bool" (\(3\(_/\_)./ _)\ [0, 0, 10] 10) - "_Bex1" :: "pttrn \ 'a set \ bool \ bool" (\(3\!(_/\_)./ _)\ [0, 0, 10] 10) - "_Bleast" :: "id \ 'a set \ bool \ 'a" (\(3LEAST(_/\_)./ _)\ [0, 0, 10] 10) + "_Ball" :: "pttrn \ 'a set \ bool \ bool" (\(\indent=3 notation=\binder \\\\(_/\_)./ _)\ [0, 0, 10] 10) + "_Bex" :: "pttrn \ 'a set \ bool \ bool" (\(\indent=3 notation=\binder \\\\(_/\_)./ _)\ [0, 0, 10] 10) + "_Bex1" :: "pttrn \ 'a set \ bool \ bool" (\(\indent=3 notation=\binder \!\\\!(_/\_)./ _)\ [0, 0, 10] 10) + "_Bleast" :: "id \ 'a set \ bool \ 'a" (\(\indent=3 notation=\binder LEAST\\LEAST(_/\_)./ _)\ [0, 0, 10] 10) syntax_consts "_Ball" \ Ball and @@ -225,18 +225,18 @@ "LEAST x:A. P" \ "LEAST x. x \ A \ P" syntax (ASCII output) - "_setlessAll" :: "[idt, 'a, bool] \ bool" (\(3ALL _<_./ _)\ [0, 0, 10] 10) - "_setlessEx" :: "[idt, 'a, bool] \ bool" (\(3EX _<_./ _)\ [0, 0, 10] 10) - "_setleAll" :: "[idt, 'a, bool] \ bool" (\(3ALL _<=_./ _)\ [0, 0, 10] 10) - "_setleEx" :: "[idt, 'a, bool] \ bool" (\(3EX _<=_./ _)\ [0, 0, 10] 10) - "_setleEx1" :: "[idt, 'a, bool] \ bool" (\(3EX! _<=_./ _)\ [0, 0, 10] 10) + "_setlessAll" :: "[idt, 'a, bool] \ bool" (\(\indent=3 notation=\binder ALL\\ALL _<_./ _)\ [0, 0, 10] 10) + "_setlessEx" :: "[idt, 'a, bool] \ bool" (\(\indent=3 notation=\binder EX\\EX _<_./ _)\ [0, 0, 10] 10) + "_setleAll" :: "[idt, 'a, bool] \ bool" (\(\indent=3 notation=\binder ALL\\ALL _<=_./ _)\ [0, 0, 10] 10) + "_setleEx" :: "[idt, 'a, bool] \ bool" (\(\indent=3 notation=\binder EX\\EX _<=_./ _)\ [0, 0, 10] 10) + "_setleEx1" :: "[idt, 'a, bool] \ bool" (\(\indent=3 notation=\binder EX!\\EX! _<=_./ _)\ [0, 0, 10] 10) syntax - "_setlessAll" :: "[idt, 'a, bool] \ bool" (\(3\_\_./ _)\ [0, 0, 10] 10) - "_setlessEx" :: "[idt, 'a, bool] \ bool" (\(3\_\_./ _)\ [0, 0, 10] 10) - "_setleAll" :: "[idt, 'a, bool] \ bool" (\(3\_\_./ _)\ [0, 0, 10] 10) - "_setleEx" :: "[idt, 'a, bool] \ bool" (\(3\_\_./ _)\ [0, 0, 10] 10) - "_setleEx1" :: "[idt, 'a, bool] \ bool" (\(3\!_\_./ _)\ [0, 0, 10] 10) + "_setlessAll" :: "[idt, 'a, bool] \ bool" (\(\indent=3 notation=\binder \\\\_\_./ _)\ [0, 0, 10] 10) + "_setlessEx" :: "[idt, 'a, bool] \ bool" (\(\indent=3 notation=\binder \\\\_\_./ _)\ [0, 0, 10] 10) + "_setleAll" :: "[idt, 'a, bool] \ bool" (\(\indent=3 notation=\binder \\\\_\_./ _)\ [0, 0, 10] 10) + "_setleEx" :: "[idt, 'a, bool] \ bool" (\(\indent=3 notation=\binder \\\\_\_./ _)\ [0, 0, 10] 10) + "_setleEx1" :: "[idt, 'a, bool] \ bool" (\(\indent=3 notation=\binder \!\\\!_\_./ _)\ [0, 0, 10] 10) syntax_consts "_setlessAll" "_setleAll" \ All and @@ -291,7 +291,8 @@ \ syntax - "_Setcompr" :: "'a \ idts \ bool \ 'a set" (\(1{_ |/_./ _})\) + "_Setcompr" :: "'a \ idts \ bool \ 'a set" + (\(\indent=1 notation=\mixfix set comprehension\\{_ |/_./ _})\) syntax_consts "_Setcompr" \ Collect diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/Set_Interval.thy --- a/src/HOL/Set_Interval.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/Set_Interval.thy Mon Sep 23 21:09:23 2024 +0200 @@ -29,35 +29,35 @@ begin definition - lessThan :: "'a => 'a set" (\(1{..<_})\) where + lessThan :: "'a => 'a set" (\(\indent=1 notation=\mixfix set interval\\{..<_})\) where "{.. 'a set" (\(1{.._})\) where + atMost :: "'a => 'a set" (\(\indent=1 notation=\mixfix set interval\\{.._})\) where "{..u} == {x. x \ u}" definition - greaterThan :: "'a => 'a set" (\(1{_<..})\) where + greaterThan :: "'a => 'a set" (\(\indent=1 notation=\mixfix set interval\\{_<..})\) where "{l<..} == {x. l 'a set" (\(1{_..})\) where + atLeast :: "'a => 'a set" (\(\indent=1 notation=\mixfix set interval\\{_..})\) where "{l..} == {x. l\x}" definition - greaterThanLessThan :: "'a => 'a => 'a set" (\(1{_<..<_})\) where + greaterThanLessThan :: "'a => 'a => 'a set" (\(\indent=1 notation=\mixfix set interval\\{_<..<_})\) where "{l<.. 'a => 'a set" (\(1{_..<_})\) where + atLeastLessThan :: "'a => 'a => 'a set" (\(\indent=1 notation=\mixfix set interval\\{_..<_})\) where "{l.. 'a => 'a set" (\(1{_<.._})\) where + greaterThanAtMost :: "'a => 'a => 'a set" (\(\indent=1 notation=\mixfix set interval\\{_<.._})\) where "{l<..u} == {l<..} Int {..u}" definition - atLeastAtMost :: "'a => 'a => 'a set" (\(1{_.._})\) where + atLeastAtMost :: "'a => 'a => 'a set" (\(\indent=1 notation=\mixfix set interval\\{_.._})\) where "{l..u} == {l..} Int {..u}" end @@ -67,10 +67,10 @@ \<^term>\{m.. may not exist in \<^term>\{..-form as well.\ syntax (ASCII) - "_UNION_le" :: "'a => 'a => 'b set => 'b set" (\(3UN _<=_./ _)\ [0, 0, 10] 10) - "_UNION_less" :: "'a => 'a => 'b set => 'b set" (\(3UN _<_./ _)\ [0, 0, 10] 10) - "_INTER_le" :: "'a => 'a => 'b set => 'b set" (\(3INT _<=_./ _)\ [0, 0, 10] 10) - "_INTER_less" :: "'a => 'a => 'b set => 'b set" (\(3INT _<_./ _)\ [0, 0, 10] 10) + "_UNION_le" :: "'a => 'a => 'b set => 'b set" (\(\indent=3 notation=\binder UN\\UN _<=_./ _)\ [0, 0, 10] 10) + "_UNION_less" :: "'a => 'a => 'b set => 'b set" (\(\indent=3 notation=\binder UN\\UN _<_./ _)\ [0, 0, 10] 10) + "_INTER_le" :: "'a => 'a => 'b set => 'b set" (\(\indent=3 notation=\binder INT\\INT _<=_./ _)\ [0, 0, 10] 10) + "_INTER_less" :: "'a => 'a => 'b set => 'b set" (\(\indent=3 notation=\binder INT\\INT _<_./ _)\ [0, 0, 10] 10) syntax (latex output) "_UNION_le" :: "'a \ 'a => 'b set => 'b set" (\(3\(\unbreakable\_ \ _)/ _)\ [0, 0, 10] 10) @@ -79,10 +79,10 @@ "_INTER_less" :: "'a \ 'a => 'b set => 'b set" (\(3\(\unbreakable\_ < _)/ _)\ [0, 0, 10] 10) syntax - "_UNION_le" :: "'a => 'a => 'b set => 'b set" (\(3\_\_./ _)\ [0, 0, 10] 10) - "_UNION_less" :: "'a => 'a => 'b set => 'b set" (\(3\_<_./ _)\ [0, 0, 10] 10) - "_INTER_le" :: "'a => 'a => 'b set => 'b set" (\(3\_\_./ _)\ [0, 0, 10] 10) - "_INTER_less" :: "'a => 'a => 'b set => 'b set" (\(3\_<_./ _)\ [0, 0, 10] 10) + "_UNION_le" :: "'a => 'a => 'b set => 'b set" (\(\indent=3 notation=\binder \\\\_\_./ _)\ [0, 0, 10] 10) + "_UNION_less" :: "'a => 'a => 'b set => 'b set" (\(\indent=3 notation=\binder \\\\_<_./ _)\ [0, 0, 10] 10) + "_INTER_le" :: "'a => 'a => 'b set => 'b set" (\(\indent=3 notation=\binder \\\\_\_./ _)\ [0, 0, 10] 10) + "_INTER_less" :: "'a => 'a => 'b set => 'b set" (\(\indent=3 notation=\binder \\\\_<_./ _)\ [0, 0, 10] 10) syntax_consts "_UNION_le" "_UNION_less" \ Union and @@ -1988,10 +1988,10 @@ subsection \Summation indexed over intervals\ syntax (ASCII) - "_from_to_sum" :: "idt \ 'a \ 'a \ 'b \ 'b" (\(SUM _ = _.._./ _)\ [0,0,0,10] 10) - "_from_upto_sum" :: "idt \ 'a \ 'a \ 'b \ 'b" (\(SUM _ = _..<_./ _)\ [0,0,0,10] 10) - "_upt_sum" :: "idt \ 'a \ 'b \ 'b" (\(SUM _<_./ _)\ [0,0,10] 10) - "_upto_sum" :: "idt \ 'a \ 'b \ 'b" (\(SUM _<=_./ _)\ [0,0,10] 10) + "_from_to_sum" :: "idt \ 'a \ 'a \ 'b \ 'b" (\(\notation=\binder SUM\\SUM _ = _.._./ _)\ [0,0,0,10] 10) + "_from_upto_sum" :: "idt \ 'a \ 'a \ 'b \ 'b" (\(\notation=\binder SUM\\SUM _ = _..<_./ _)\ [0,0,0,10] 10) + "_upt_sum" :: "idt \ 'a \ 'b \ 'b" (\(\notation=\binder SUM\\SUM _<_./ _)\ [0,0,10] 10) + "_upto_sum" :: "idt \ 'a \ 'b \ 'b" (\(\notation=\binder SUM\\SUM _<=_./ _)\ [0,0,10] 10) syntax (latex_sum output) "_from_to_sum" :: "idt \ 'a \ 'a \ 'b \ 'b" @@ -2004,10 +2004,10 @@ (\(3\<^latex>\$\sum_{\_ \ _\<^latex>\}$\ _)\ [0,0,10] 10) syntax - "_from_to_sum" :: "idt \ 'a \ 'a \ 'b \ 'b" (\(3\_ = _.._./ _)\ [0,0,0,10] 10) - "_from_upto_sum" :: "idt \ 'a \ 'a \ 'b \ 'b" (\(3\_ = _..<_./ _)\ [0,0,0,10] 10) - "_upt_sum" :: "idt \ 'a \ 'b \ 'b" (\(3\_<_./ _)\ [0,0,10] 10) - "_upto_sum" :: "idt \ 'a \ 'b \ 'b" (\(3\_\_./ _)\ [0,0,10] 10) + "_from_to_sum" :: "idt \ 'a \ 'a \ 'b \ 'b" (\(\indent=3 notation=\binder \\\\_ = _.._./ _)\ [0,0,0,10] 10) + "_from_upto_sum" :: "idt \ 'a \ 'a \ 'b \ 'b" (\(\indent=3 notation=\binder \\\\_ = _..<_./ _)\ [0,0,0,10] 10) + "_upt_sum" :: "idt \ 'a \ 'b \ 'b" (\(\indent=3 notation=\binder \\\\_<_./ _)\ [0,0,10] 10) + "_upto_sum" :: "idt \ 'a \ 'b \ 'b" (\(\indent=3 notation=\binder \\\\_\_./ _)\ [0,0,10] 10) syntax_consts "_from_to_sum" "_from_upto_sum" "_upt_sum" "_upto_sum" == sum @@ -2681,10 +2681,10 @@ subsection \Products indexed over intervals\ syntax (ASCII) - "_from_to_prod" :: "idt \ 'a \ 'a \ 'b \ 'b" (\(PROD _ = _.._./ _)\ [0,0,0,10] 10) - "_from_upto_prod" :: "idt \ 'a \ 'a \ 'b \ 'b" (\(PROD _ = _..<_./ _)\ [0,0,0,10] 10) - "_upt_prod" :: "idt \ 'a \ 'b \ 'b" (\(PROD _<_./ _)\ [0,0,10] 10) - "_upto_prod" :: "idt \ 'a \ 'b \ 'b" (\(PROD _<=_./ _)\ [0,0,10] 10) + "_from_to_prod" :: "idt \ 'a \ 'a \ 'b \ 'b" (\(\notation=\binder PROD\\PROD _ = _.._./ _)\ [0,0,0,10] 10) + "_from_upto_prod" :: "idt \ 'a \ 'a \ 'b \ 'b" (\(\notation=\binder PROD\\PROD _ = _..<_./ _)\ [0,0,0,10] 10) + "_upt_prod" :: "idt \ 'a \ 'b \ 'b" (\(\notation=\binder PROD\\PROD _<_./ _)\ [0,0,10] 10) + "_upto_prod" :: "idt \ 'a \ 'b \ 'b" (\(\notation=\binder PROD\\PROD _<=_./ _)\ [0,0,10] 10) syntax (latex_prod output) "_from_to_prod" :: "idt \ 'a \ 'a \ 'b \ 'b" @@ -2697,10 +2697,10 @@ (\(3\<^latex>\$\prod_{\_ \ _\<^latex>\}$\ _)\ [0,0,10] 10) syntax - "_from_to_prod" :: "idt \ 'a \ 'a \ 'b \ 'b" (\(3\_ = _.._./ _)\ [0,0,0,10] 10) - "_from_upto_prod" :: "idt \ 'a \ 'a \ 'b \ 'b" (\(3\_ = _..<_./ _)\ [0,0,0,10] 10) - "_upt_prod" :: "idt \ 'a \ 'b \ 'b" (\(3\_<_./ _)\ [0,0,10] 10) - "_upto_prod" :: "idt \ 'a \ 'b \ 'b" (\(3\_\_./ _)\ [0,0,10] 10) + "_from_to_prod" :: "idt \ 'a \ 'a \ 'b \ 'b" (\(\indent=3 notation=\binder \\\\_ = _.._./ _)\ [0,0,0,10] 10) + "_from_upto_prod" :: "idt \ 'a \ 'a \ 'b \ 'b" (\(\indent=3 notation=\binder \\\\_ = _..<_./ _)\ [0,0,0,10] 10) + "_upt_prod" :: "idt \ 'a \ 'b \ 'b" (\(\indent=3 notation=\binder \\\\_<_./ _)\ [0,0,10] 10) + "_upto_prod" :: "idt \ 'a \ 'b \ 'b" (\(\indent=3 notation=\binder \\\\_\_./ _)\ [0,0,10] 10) syntax_consts "_from_to_prod" "_from_upto_prod" "_upt_prod" "_upto_prod" \ prod diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/Topological_Spaces.thy --- a/src/HOL/Topological_Spaces.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/Topological_Spaces.thy Mon Sep 23 21:09:23 2024 +0200 @@ -1191,7 +1191,7 @@ subsection \Limits on sequences\ abbreviation (in topological_space) - LIMSEQ :: "[nat \ 'a, 'a] \ bool" (\((_)/ \ (_))\ [60, 60] 60) + LIMSEQ :: "[nat \ 'a, 'a] \ bool" (\(\notation=\infix LIMSEQ\\(_)/ \ (_))\ [60, 60] 60) where "X \ L \ (X \ L) sequentially" abbreviation (in t2_space) lim :: "(nat \ 'a) \ 'a" @@ -1760,7 +1760,7 @@ subsection \Function limit at a point\ abbreviation LIM :: "('a::topological_space \ 'b::topological_space) \ 'a \ 'b \ bool" - (\((_)/ \(_)/\ (_))\ [60, 0, 60] 60) + (\(\notation=\infix LIM\\(_)/ \(_)/\ (_))\ [60, 0, 60] 60) where "f \a\ L \ (f \ L) (at a)" lemma tendsto_within_open: "a \ S \ open S \ (f \ l) (at a within S) \ (f \a\ l)" diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/Transitive_Closure.thy --- a/src/HOL/Transitive_Closure.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/Transitive_Closure.thy Mon Sep 23 21:09:23 2024 +0200 @@ -26,21 +26,21 @@ context notes [[inductive_internals]] begin -inductive_set rtrancl :: "('a \ 'a) set \ ('a \ 'a) set" (\(_\<^sup>*)\ [1000] 999) +inductive_set rtrancl :: "('a \ 'a) set \ ('a \ 'a) set" (\(\notation=\postfix *\\_\<^sup>*)\ [1000] 999) for r :: "('a \ 'a) set" where rtrancl_refl [intro!, Pure.intro!, simp]: "(a, a) \ r\<^sup>*" | rtrancl_into_rtrancl [Pure.intro]: "(a, b) \ r\<^sup>* \ (b, c) \ r \ (a, c) \ r\<^sup>*" -inductive_set trancl :: "('a \ 'a) set \ ('a \ 'a) set" (\(_\<^sup>+)\ [1000] 999) +inductive_set trancl :: "('a \ 'a) set \ ('a \ 'a) set" (\(\notation=\postfix +\\_\<^sup>+)\ [1000] 999) for r :: "('a \ 'a) set" where r_into_trancl [intro, Pure.intro]: "(a, b) \ r \ (a, b) \ r\<^sup>+" | trancl_into_trancl [Pure.intro]: "(a, b) \ r\<^sup>+ \ (b, c) \ r \ (a, c) \ r\<^sup>+" notation - rtranclp (\(_\<^sup>*\<^sup>*)\ [1000] 1000) and - tranclp (\(_\<^sup>+\<^sup>+)\ [1000] 1000) + rtranclp (\(\notation=\postfix **\\_\<^sup>*\<^sup>*)\ [1000] 1000) and + tranclp (\(\notation=\postfix ++\\_\<^sup>+\<^sup>+)\ [1000] 1000) declare rtrancl_def [nitpick_unfold del] @@ -50,19 +50,19 @@ end -abbreviation reflcl :: "('a \ 'a) set \ ('a \ 'a) set" (\(_\<^sup>=)\ [1000] 999) +abbreviation reflcl :: "('a \ 'a) set \ ('a \ 'a) set" (\(\notation=\postfix =\\_\<^sup>=)\ [1000] 999) where "r\<^sup>= \ r \ Id" -abbreviation reflclp :: "('a \ 'a \ bool) \ 'a \ 'a \ bool" (\(_\<^sup>=\<^sup>=)\ [1000] 1000) +abbreviation reflclp :: "('a \ 'a \ bool) \ 'a \ 'a \ bool" (\(\notation=\postfix ==\\_\<^sup>=\<^sup>=)\ [1000] 1000) where "r\<^sup>=\<^sup>= \ sup r (=)" notation (ASCII) - rtrancl (\(_^*)\ [1000] 999) and - trancl (\(_^+)\ [1000] 999) and - reflcl (\(_^=)\ [1000] 999) and - rtranclp (\(_^**)\ [1000] 1000) and - tranclp (\(_^++)\ [1000] 1000) and - reflclp (\(_^==)\ [1000] 1000) + rtrancl (\(\notation=\postfix *\\_^*)\ [1000] 999) and + trancl (\(\notation=\postfix +\\_^+)\ [1000] 999) and + reflcl (\(\notation=\postfix =\\_^=)\ [1000] 999) and + rtranclp (\(\notation=\postfix **\\_^**)\ [1000] 1000) and + tranclp (\(\notation=\postfix ++\\_^++)\ [1000] 1000) and + reflclp (\(\notation=\postfix ==\\_^==)\ [1000] 1000) subsection \Reflexive closure\ diff -r 56f1c0af602c -r 8e72f55295fd src/HOL/Typerep.thy --- a/src/HOL/Typerep.thy Mon Sep 23 15:01:10 2024 +0200 +++ b/src/HOL/Typerep.thy Mon Sep 23 21:09:23 2024 +0200 @@ -18,7 +18,7 @@ end syntax - "_TYPEREP" :: "type => logic" (\(1TYPEREP/(1'(_')))\) + "_TYPEREP" :: "type => logic" (\(\indent=1 notation=\prefix TYPEREP\\TYPEREP/(1'(_')))\) syntax_consts "_TYPEREP" \ typerep