src/HOL/HOLCF/Representable.thy
changeset 80768 c7723cc15de8
parent 69597 ff784d5a5bfb
child 80914 d97fdabd9e2b
equal deleted inserted replaced
80767:079fe4292526 80768:c7723cc15de8
    30 class predomain = predomain_syn +
    30 class predomain = predomain_syn +
    31   assumes predomain_ep: "ep_pair liftemb liftprj"
    31   assumes predomain_ep: "ep_pair liftemb liftprj"
    32   assumes cast_liftdefl: "cast\<cdot>(liftdefl TYPE('a)) = liftemb oo liftprj"
    32   assumes cast_liftdefl: "cast\<cdot>(liftdefl TYPE('a)) = liftemb oo liftprj"
    33 
    33 
    34 syntax "_LIFTDEFL" :: "type \<Rightarrow> logic"  ("(1LIFTDEFL/(1'(_')))")
    34 syntax "_LIFTDEFL" :: "type \<Rightarrow> logic"  ("(1LIFTDEFL/(1'(_')))")
       
    35 syntax_consts "_LIFTDEFL" \<rightleftharpoons> liftdefl
    35 translations "LIFTDEFL('t)" \<rightleftharpoons> "CONST liftdefl TYPE('t)"
    36 translations "LIFTDEFL('t)" \<rightleftharpoons> "CONST liftdefl TYPE('t)"
    36 
    37 
    37 definition liftdefl_of :: "udom defl \<rightarrow> udom u defl"
    38 definition liftdefl_of :: "udom defl \<rightarrow> udom u defl"
    38   where "liftdefl_of = defl_fun1 ID ID u_map"
    39   where "liftdefl_of = defl_fun1 ID ID u_map"
    39 
    40 
    49   assumes liftemb_eq: "liftemb = u_map\<cdot>emb"
    50   assumes liftemb_eq: "liftemb = u_map\<cdot>emb"
    50   assumes liftprj_eq: "liftprj = u_map\<cdot>prj"
    51   assumes liftprj_eq: "liftprj = u_map\<cdot>prj"
    51   assumes liftdefl_eq: "liftdefl TYPE('a) = liftdefl_of\<cdot>(defl TYPE('a))"
    52   assumes liftdefl_eq: "liftdefl TYPE('a) = liftdefl_of\<cdot>(defl TYPE('a))"
    52 
    53 
    53 syntax "_DEFL" :: "type \<Rightarrow> logic"  ("(1DEFL/(1'(_')))")
    54 syntax "_DEFL" :: "type \<Rightarrow> logic"  ("(1DEFL/(1'(_')))")
       
    55 syntax_consts "_DEFL" \<rightleftharpoons> defl
    54 translations "DEFL('t)" \<rightleftharpoons> "CONST defl TYPE('t)"
    56 translations "DEFL('t)" \<rightleftharpoons> "CONST defl TYPE('t)"
    55 
    57 
    56 instance "domain" \<subseteq> predomain
    58 instance "domain" \<subseteq> predomain
    57 proof
    59 proof
    58   show "ep_pair liftemb (liftprj::udom\<^sub>\<bottom> \<rightarrow> 'a\<^sub>\<bottom>)"
    60   show "ep_pair liftemb (liftprj::udom\<^sub>\<bottom> \<rightarrow> 'a\<^sub>\<bottom>)"