equal
deleted
inserted
replaced
22 (*** Beta Rules, including strictness ***) |
22 (*** Beta Rules, including strictness ***) |
23 |
23 |
24 goalw Term.thy [let_def] "~ t=bot--> let x be t in f(x) = f(t)"; |
24 goalw Term.thy [let_def] "~ t=bot--> let x be t in f(x) = f(t)"; |
25 by (res_inst_tac [("t","t")] term_case 1); |
25 by (res_inst_tac [("t","t")] term_case 1); |
26 by (ALLGOALS(simp_tac(CCL_ss addsimps [caseBtrue,caseBfalse,caseBpair,caseBlam]))); |
26 by (ALLGOALS(simp_tac(CCL_ss addsimps [caseBtrue,caseBfalse,caseBpair,caseBlam]))); |
27 val letB = store_thm("letB", result() RS mp); |
27 bind_thm("letB", result() RS mp); |
28 |
28 |
29 goalw Term.thy [let_def] "let x be bot in f(x) = bot"; |
29 goalw Term.thy [let_def] "let x be bot in f(x) = bot"; |
30 by (rtac caseBbot 1); |
30 by (rtac caseBbot 1); |
31 qed "letBabot"; |
31 qed "letBabot"; |
32 |
32 |