diff -r 58fb6e033c00 -r d83271bfaba5 src/HOL/Product_Type.thy --- a/src/HOL/Product_Type.thy Wed Apr 09 08:10:09 2008 +0200 +++ b/src/HOL/Product_Type.thy Wed Apr 09 08:10:11 2008 +0200 @@ -699,34 +699,33 @@ The composition-uncurry combinator. *} -definition - mbind :: "('a \ 'b \ 'c) \ ('b \ 'c \ 'd) \ 'a \ 'd" (infixl "o->" 60) -where - "f o-> g = (\x. split g (f x))" +notation fcomp (infixl "o>" 60) -notation (xsymbols) - mbind (infixl "\\" 60) +definition + scomp :: "('a \ 'b \ 'c) \ ('b \ 'c \ 'd) \ 'a \ 'd" (infixl "o\" 60) +where + "f o\ g = (\x. split g (f x))" -notation (HTML output) - mbind (infixl "\\" 60) +lemma scomp_apply: "(f o\ g) x = split g (f x)" + by (simp add: scomp_def) -lemma mbind_apply: "(f \\ g) x = split g (f x)" - by (simp add: mbind_def) +lemma Pair_scomp: "Pair x o\ f = f x" + by (simp add: expand_fun_eq scomp_apply) -lemma Pair_mbind: "Pair x \\ f = f x" - by (simp add: expand_fun_eq mbind_apply) +lemma scomp_Pair: "x o\ Pair = x" + by (simp add: expand_fun_eq scomp_apply) -lemma mbind_Pair: "x \\ Pair = x" - by (simp add: expand_fun_eq mbind_apply) +lemma scomp_scomp: "(f o\ g) o\ h = f o\ (\x. g x o\ h)" + by (simp add: expand_fun_eq split_twice scomp_def) -lemma mbind_mbind: "(f \\ g) \\ h = f \\ (\x. g x \\ h)" - by (simp add: expand_fun_eq split_twice mbind_def) +lemma scomp_fcomp: "(f o\ g) o> h = f o\ (\x. g x o> h)" + by (simp add: expand_fun_eq scomp_apply fcomp_def split_def) -lemma mbind_fcomp: "(f \\ g) \> h = f \\ (\x. g x \> h)" - by (simp add: expand_fun_eq mbind_apply fcomp_def split_def) +lemma fcomp_scomp: "(f o> g) o\ h = f o> (g o\ h)" + by (simp add: expand_fun_eq scomp_apply fcomp_apply) -lemma fcomp_mbind: "(f \> g) \\ h = f \> (g \\ h)" - by (simp add: expand_fun_eq mbind_apply fcomp_apply) +no_notation fcomp (infixl "o>" 60) +no_notation scomp (infixl "o\" 60) text {*