equal
deleted
inserted
replaced
446 "cast\<cdot>(upper_defl\<cdot>A) = |
446 "cast\<cdot>(upper_defl\<cdot>A) = |
447 udom_emb upper_approx oo upper_map\<cdot>(cast\<cdot>A) oo udom_prj upper_approx" |
447 udom_emb upper_approx oo upper_map\<cdot>(cast\<cdot>A) oo udom_prj upper_approx" |
448 using upper_approx finite_deflation_upper_map |
448 using upper_approx finite_deflation_upper_map |
449 unfolding upper_defl_def by (rule cast_defl_fun1) |
449 unfolding upper_defl_def by (rule cast_defl_fun1) |
450 |
450 |
451 instantiation upper_pd :: (bifinite) bifinite |
451 instantiation upper_pd :: (bifinite) liftdomain |
452 begin |
452 begin |
453 |
453 |
454 definition |
454 definition |
455 "emb = udom_emb upper_approx oo upper_map\<cdot>emb" |
455 "emb = udom_emb upper_approx oo upper_map\<cdot>emb" |
456 |
456 |
469 definition |
469 definition |
470 "liftdefl (t::'a upper_pd itself) = u_defl\<cdot>DEFL('a upper_pd)" |
470 "liftdefl (t::'a upper_pd itself) = u_defl\<cdot>DEFL('a upper_pd)" |
471 |
471 |
472 instance |
472 instance |
473 using liftemb_upper_pd_def liftprj_upper_pd_def liftdefl_upper_pd_def |
473 using liftemb_upper_pd_def liftprj_upper_pd_def liftdefl_upper_pd_def |
474 proof (rule bifinite_class_intro) |
474 proof (rule liftdomain_class_intro) |
475 show "ep_pair emb (prj :: udom \<rightarrow> 'a upper_pd)" |
475 show "ep_pair emb (prj :: udom \<rightarrow> 'a upper_pd)" |
476 unfolding emb_upper_pd_def prj_upper_pd_def |
476 unfolding emb_upper_pd_def prj_upper_pd_def |
477 using ep_pair_udom [OF upper_approx] |
477 using ep_pair_udom [OF upper_approx] |
478 by (intro ep_pair_comp ep_pair_upper_map ep_pair_emb_prj) |
478 by (intro ep_pair_comp ep_pair_upper_map ep_pair_emb_prj) |
479 next |
479 next |