equal
deleted
inserted
replaced
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)" |