src/CCL/Term.ML
changeset 2035 e329b36d9136
parent 1459 d12da312eff4
child 3837 d7f033c74b38
equal deleted inserted replaced
2034:5079fdf938dd 2035:e329b36d9136
    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";