src/HOL/Datatype.thy
changeset 25511 54db9b5080b8
parent 24845 abcd15369ffa
child 25534 d0b74fdd6067
equal deleted inserted replaced
25510:38c15efe603b 25511:54db9b5080b8
   650   by (cases xo) auto
   650   by (cases xo) auto
   651 
   651 
   652 lemma o2s_empty_eq [simp]: "(o2s xo = {}) = (xo = None)"
   652 lemma o2s_empty_eq [simp]: "(o2s xo = {}) = (xo = None)"
   653   by (cases xo) auto
   653   by (cases xo) auto
   654 
   654 
   655 constdefs
   655 definition
   656   option_map :: "('a => 'b) => ('a option => 'b option)"
   656   option_map :: "('a \<Rightarrow> 'b) \<Rightarrow> 'a option \<Rightarrow> 'b option"
   657   "option_map == %f y. case y of None => None | Some x => Some (f x)"
   657 where
   658 
   658   [code func del]: "option_map = (%f y. case y of None => None | Some x => Some (f x))"
   659 lemmas [code func del] = option_map_def
       
   660 
   659 
   661 lemma option_map_None [simp, code]: "option_map f None = None"
   660 lemma option_map_None [simp, code]: "option_map f None = None"
   662   by (simp add: option_map_def)
   661   by (simp add: option_map_def)
   663 
   662 
   664 lemma option_map_Some [simp, code]: "option_map f (Some x) = Some (f x)"
   663 lemma option_map_Some [simp, code]: "option_map f (Some x) = Some (f x)"