# HG changeset patch # User wenzelm # Date 1193138956 -7200 # Node ID 271e499f2d033adde0c100ef04b244d19a437c2c # Parent 8b80535cd017a3c3c6c48acb952f09ee10685910 translations: use XCONST for input patterns (keeps original spelling of const); diff -r 8b80535cd017 -r 271e499f2d03 src/HOLCF/Fixrec.thy --- a/src/HOLCF/Fixrec.thy Tue Oct 23 13:10:19 2007 +0200 +++ b/src/HOLCF/Fixrec.thy Tue Oct 23 13:29:16 2007 +0200 @@ -193,7 +193,7 @@ "_Case1" :: "['a, 'b] => Case_syn" ("(2_ \/ _)" 10) translations - "_Case_syntax x ms" == "Fixrec.run\(ms\x)" + "_Case_syntax x ms" == "CONST Fixrec.run\(ms\x)" "_Case2 m ms" == "m \ ms" text {* Parsing Case expressions *} @@ -203,15 +203,15 @@ "_var" :: "'a" translations - "_Case1 p r" => "CONST branch (_pat p)\(_var p r)" - "_var (_args x y) r" => "CONST csplit\(_var x (_var y r))" - "_var () r" => "CONST unit_when\r" + "_Case1 p r" => "XCONST branch (_pat p)\(_var p r)" + "_var (_args x y) r" => "XCONST csplit\(_var x (_var y r))" + "_var () r" => "XCONST unit_when\r" parse_translation {* (* rewrites (_pat x) => (return) *) (* rewrites (_var x t) => (Abs_CFun (%x. t)) *) [("_pat", K (Syntax.const "Fixrec.return")), - mk_binder_tr ("_var", @{const_syntax Abs_CFun})]; + mk_binder_tr ("_var", "Abs_CFun")]; *} text {* Printing Case expressions *} @@ -287,25 +287,25 @@ text {* Parse translations (patterns) *} translations - "_pat (CONST cpair\x\y)" => "CONST cpair_pat (_pat x) (_pat y)" - "_pat (CONST spair\x\y)" => "CONST spair_pat (_pat x) (_pat y)" - "_pat (CONST sinl\x)" => "CONST sinl_pat (_pat x)" - "_pat (CONST sinr\x)" => "CONST sinr_pat (_pat x)" - "_pat (CONST up\x)" => "CONST up_pat (_pat x)" - "_pat (CONST TT)" => "CONST TT_pat" - "_pat (CONST FF)" => "CONST FF_pat" - "_pat (CONST ONE)" => "CONST ONE_pat" + "_pat (XCONST cpair\x\y)" => "XCONST cpair_pat (_pat x) (_pat y)" + "_pat (XCONST spair\x\y)" => "XCONST spair_pat (_pat x) (_pat y)" + "_pat (XCONST sinl\x)" => "XCONST sinl_pat (_pat x)" + "_pat (XCONST sinr\x)" => "XCONST sinr_pat (_pat x)" + "_pat (XCONST up\x)" => "XCONST up_pat (_pat x)" + "_pat (XCONST TT)" => "XCONST TT_pat" + "_pat (XCONST FF)" => "XCONST FF_pat" + "_pat (XCONST ONE)" => "XCONST ONE_pat" text {* Parse translations (variables) *} translations - "_var (CONST cpair\x\y) r" => "_var (_args x y) r" - "_var (CONST spair\x\y) r" => "_var (_args x y) r" - "_var (CONST sinl\x) r" => "_var x r" - "_var (CONST sinr\x) r" => "_var x r" - "_var (CONST up\x) r" => "_var x r" - "_var (CONST TT) r" => "_var () r" - "_var (CONST FF) r" => "_var () r" - "_var (CONST ONE) r" => "_var () r" + "_var (XCONST cpair\x\y) r" => "_var (_args x y) r" + "_var (XCONST spair\x\y) r" => "_var (_args x y) r" + "_var (XCONST sinl\x) r" => "_var x r" + "_var (XCONST sinr\x) r" => "_var x r" + "_var (XCONST up\x) r" => "_var x r" + "_var (XCONST TT) r" => "_var () r" + "_var (XCONST FF) r" => "_var () r" + "_var (XCONST ONE) r" => "_var () r" text {* Print translations *} translations @@ -405,9 +405,9 @@ text {* Parse translations (patterns) *} translations - "_pat _" => "CONST wild_pat" - "_pat (_as_pat x y)" => "CONST as_pat (_pat y)" - "_pat (_lazy_pat x)" => "CONST lazy_pat (_pat x)" + "_pat _" => "XCONST wild_pat" + "_pat (_as_pat x y)" => "XCONST as_pat (_pat y)" + "_pat (_lazy_pat x)" => "XCONST lazy_pat (_pat x)" text {* Parse translations (variables) *} translations @@ -423,7 +423,7 @@ text {* Lazy patterns in lambda abstractions *} translations - "_cabs (_lazy_pat p) r" == "CONST run oo (_Case1 (_lazy_pat p) r)" + "_cabs (_lazy_pat p) r" == "CONST Fixrec.run oo (_Case1 (_lazy_pat p) r)" lemma wild_pat [simp]: "branch wild_pat\(unit_when\r)\x = return\r" by (simp add: branch_def wild_pat_def)