diff -r 7d673ab6a8d9 -r 229765cc3414 src/HOL/BNF_Def.thy --- a/src/HOL/BNF_Def.thy Fri Nov 07 12:24:56 2014 +0100 +++ b/src/HOL/BNF_Def.thy Fri Nov 07 11:28:37 2014 +0100 @@ -18,13 +18,13 @@ lemma Collect_splitD: "x \ Collect (split A) \ A (fst x) (snd x)" by auto -definition - rel_sum :: "('a \ 'c \ bool) \ ('b \ 'd \ bool) \ 'a + 'b \ 'c + 'd \ bool" +inductive + rel_sum :: "('a \ 'c \ bool) \ ('b \ 'd \ bool) \ 'a + 'b \ 'c + 'd \ bool" for R1 R2 where - "rel_sum R1 R2 x y = - (case (x, y) of (Inl x, Inl y) \ R1 x y - | (Inr x, Inr y) \ R2 x y - | _ \ False)" + "R1 a c \ rel_sum R1 R2 (Inl a) (Inl c)" +| "R2 b d \ rel_sum R1 R2 (Inr b) (Inr d)" + +hide_fact rel_sum_def definition rel_fun :: "('a \ 'c \ bool) \ ('b \ 'd \ bool) \ ('a \ 'b) \ ('c \ 'd) \ bool"