equal
deleted
inserted
replaced
321 "(rel_option A ===> (A ===> rel_option B) ===> rel_option B) |
321 "(rel_option A ===> (A ===> rel_option B) ===> rel_option B) |
322 Option.bind Option.bind" |
322 Option.bind Option.bind" |
323 unfolding rel_fun_def split_option_all by simp |
323 unfolding rel_fun_def split_option_all by simp |
324 |
324 |
325 lemma pred_option_parametric [transfer_rule]: |
325 lemma pred_option_parametric [transfer_rule]: |
326 "((A ===> op =) ===> rel_option A ===> op =) pred_option pred_option" |
326 "((A ===> (=)) ===> rel_option A ===> (=)) pred_option pred_option" |
327 by (rule rel_funI)+ (auto simp add: rel_option_unfold Option.is_none_def dest: rel_funD) |
327 by (rule rel_funI)+ (auto simp add: rel_option_unfold Option.is_none_def dest: rel_funD) |
328 |
328 |
329 end |
329 end |
330 |
330 |
331 |
331 |