equal
deleted
inserted
replaced
54 qed "letrecB"; |
54 qed "letrecB"; |
55 |
55 |
56 val rawBs = caseBs @ [applyB,applyBbot]; |
56 val rawBs = caseBs @ [applyB,applyBbot]; |
57 |
57 |
58 fun raw_mk_beta_rl defs s = prove_goalw Term.thy defs s |
58 fun raw_mk_beta_rl defs s = prove_goalw Term.thy defs s |
59 (fn _ => [rtac (letrecB RS ssubst) 1, |
59 (fn _ => [stac letrecB 1, |
60 simp_tac (CCL_ss addsimps rawBs) 1]); |
60 simp_tac (CCL_ss addsimps rawBs) 1]); |
61 fun mk_beta_rl s = raw_mk_beta_rl data_defs s; |
61 fun mk_beta_rl s = raw_mk_beta_rl data_defs s; |
62 |
62 |
63 fun raw_mk_beta_rl defs s = prove_goalw Term.thy defs s |
63 fun raw_mk_beta_rl defs s = prove_goalw Term.thy defs s |
64 (fn _ => [simp_tac (CCL_ss addsimps rawBs |
64 (fn _ => [simp_tac (CCL_ss addsimps rawBs |
65 setloop (rtac (letrecB RS ssubst))) 1]); |
65 setloop (stac letrecB)) 1]); |
66 fun mk_beta_rl s = raw_mk_beta_rl data_defs s; |
66 fun mk_beta_rl s = raw_mk_beta_rl data_defs s; |
67 |
67 |
68 val ifBtrue = mk_beta_rl "if true then t else u = t"; |
68 val ifBtrue = mk_beta_rl "if true then t else u = t"; |
69 val ifBfalse = mk_beta_rl "if false then t else u = u"; |
69 val ifBfalse = mk_beta_rl "if false then t else u = u"; |
70 val ifBbot = mk_beta_rl "if bot then t else u = bot"; |
70 val ifBbot = mk_beta_rl "if bot then t else u = bot"; |