src/HOLCF/ex/Powerdomain_ex.thy
changeset 35917 85b0efdcdae9
parent 35781 b7738ab762b1
child 35918 68397d86d454
equal deleted inserted replaced
35916:d5c5fc1b993b 35917:85b0efdcdae9
    55   mirror :: "'a tree \<rightarrow> 'a tree"
    55   mirror :: "'a tree \<rightarrow> 'a tree"
    56 where
    56 where
    57   mirror_Leaf: "mirror\<cdot>(Leaf\<cdot>a) = Leaf\<cdot>a"
    57   mirror_Leaf: "mirror\<cdot>(Leaf\<cdot>a) = Leaf\<cdot>a"
    58 | mirror_Node: "mirror\<cdot>(Node\<cdot>l\<cdot>r) = Node\<cdot>(mirror\<cdot>r)\<cdot>(mirror\<cdot>l)"
    58 | mirror_Node: "mirror\<cdot>(Node\<cdot>l\<cdot>r) = Node\<cdot>(mirror\<cdot>r)\<cdot>(mirror\<cdot>l)"
    59 
    59 
    60 fixpat
    60 lemma mirror_strict [simp]: "mirror\<cdot>\<bottom> = \<bottom>"
    61   mirror_strict [simp]: "mirror\<cdot>\<bottom>"
    61 by fixrec_simp
    62 
    62 
    63 fixrec
    63 fixrec
    64   pick :: "'a tree \<rightarrow> 'a convex_pd"
    64   pick :: "'a tree \<rightarrow> 'a convex_pd"
    65 where
    65 where
    66   pick_Leaf: "pick\<cdot>(Leaf\<cdot>a) = {a}\<natural>"
    66   pick_Leaf: "pick\<cdot>(Leaf\<cdot>a) = {a}\<natural>"
    67 | pick_Node: "pick\<cdot>(Node\<cdot>l\<cdot>r) = pick\<cdot>l +\<natural> pick\<cdot>r"
    67 | pick_Node: "pick\<cdot>(Node\<cdot>l\<cdot>r) = pick\<cdot>l +\<natural> pick\<cdot>r"
    68 
    68 
    69 fixpat
    69 lemma pick_strict [simp]: "pick\<cdot>\<bottom> = \<bottom>"
    70   pick_strict [simp]: "pick\<cdot>\<bottom>"
    70 by fixrec_simp
    71 
    71 
    72 lemma pick_mirror: "pick\<cdot>(mirror\<cdot>t) = pick\<cdot>t"
    72 lemma pick_mirror: "pick\<cdot>(mirror\<cdot>t) = pick\<cdot>t"
    73 by (induct t) (simp_all add: convex_plus_ac)
    73 by (induct t) (simp_all add: convex_plus_ac)
    74 
    74 
    75 fixrec tree1 :: "int lift tree"
    75 fixrec tree1 :: "int lift tree"