src/HOL/Option.ML
changeset 9343 1c4754938980
parent 9001 93af64f54bf2
child 11655 923e4d0d36d5
equal deleted inserted replaced
9342:d66f25a206b4 9343:1c4754938980
    58     "(option_map f xo = Some y) = (? z. xo = Some z & f z = y)";
    58     "(option_map f xo = Some y) = (? z. xo = Some z & f z = y)";
    59 by (asm_full_simp_tac (simpset() addsplits [option.split]) 1);
    59 by (asm_full_simp_tac (simpset() addsplits [option.split]) 1);
    60 qed "option_map_eq_Some";
    60 qed "option_map_eq_Some";
    61 AddIffs[option_map_eq_Some];
    61 AddIffs[option_map_eq_Some];
    62 
    62 
       
    63 Goal 
       
    64 "option_map f o sum_case g h = sum_case (option_map f o g) (option_map f o h)";
       
    65 by (rtac ext 1);
       
    66 by (simp_tac (simpset() addsplits [sum.split]) 1);
       
    67 qed "option_map_o_sum_case";
       
    68 Addsimps [option_map_o_sum_case];
       
    69 
    63 
    70 
    64 section "o2s";
    71 section "o2s";
    65 
    72 
    66 Goal "[| !x:o2s A. P x; A = Some x |] ==> P x";
    73 Goal "[| !x:o2s A. P x; A = Some x |] ==> P x";
    67 by Auto_tac;
    74 by Auto_tac;