src/HOLCF/Ssum.thy
changeset 29063 7619f0561cd7
parent 27310 d0229bc6c461
child 29138 661a8db7e647
equal deleted inserted replaced
29062:6f8a100325b6 29063:7619f0561cd7
    17 
    17 
    18 pcpodef (Ssum)  ('a, 'b) "++" (infixr "++" 10) = 
    18 pcpodef (Ssum)  ('a, 'b) "++" (infixr "++" 10) = 
    19   "{p :: tr \<times> ('a \<times> 'b).
    19   "{p :: tr \<times> ('a \<times> 'b).
    20     (cfst\<cdot>p \<sqsubseteq> TT \<longleftrightarrow> csnd\<cdot>(csnd\<cdot>p) = \<bottom>) \<and>
    20     (cfst\<cdot>p \<sqsubseteq> TT \<longleftrightarrow> csnd\<cdot>(csnd\<cdot>p) = \<bottom>) \<and>
    21     (cfst\<cdot>p \<sqsubseteq> FF \<longleftrightarrow> cfst\<cdot>(csnd\<cdot>p) = \<bottom>)}"
    21     (cfst\<cdot>p \<sqsubseteq> FF \<longleftrightarrow> cfst\<cdot>(csnd\<cdot>p) = \<bottom>)}"
    22 by simp
    22 by simp_all
    23 
    23 
    24 instance "++" :: ("{finite_po,pcpo}", "{finite_po,pcpo}") finite_po
    24 instance "++" :: ("{finite_po,pcpo}", "{finite_po,pcpo}") finite_po
    25 by (rule typedef_finite_po [OF type_definition_Ssum])
    25 by (rule typedef_finite_po [OF type_definition_Ssum])
    26 
    26 
    27 instance "++" :: ("{chfin,pcpo}", "{chfin,pcpo}") chfin
    27 instance "++" :: ("{chfin,pcpo}", "{chfin,pcpo}") chfin