# HG changeset patch # User haftmann # Date 1444720874 -7200 # Node ID 0dfcd0fb4172a7dd19a0e1dcdf53431f332c5cce # Parent e0825405d398d3e115bc0959eec75373b313500c moved lemmas diff -r e0825405d398 -r 0dfcd0fb4172 src/HOL/BNF_Def.thy --- a/src/HOL/BNF_Def.thy Mon Oct 12 22:03:24 2015 +0200 +++ b/src/HOL/BNF_Def.thy Tue Oct 13 09:21:14 2015 +0200 @@ -176,15 +176,6 @@ lemma flip_pred: "A \ Collect (case_prod (R ^--1)) \ (%(x, y). (y, x)) ` A \ Collect (case_prod R)" by auto -lemma Collect_split_mono: "A \ B \ Collect (case_prod A) \ Collect (case_prod B)" - by auto - -lemma Collect_split_mono_strong: - "\X = fst ` A; Y = snd ` A; \a\X. \b \ Y. P a b \ Q a b; A \ Collect (case_prod P)\ \ - A \ Collect (case_prod Q)" - by fastforce - - lemma predicate2_eqD: "A = B \ A a b \ B a b" by simp diff -r e0825405d398 -r 0dfcd0fb4172 src/HOL/Product_Type.thy --- a/src/HOL/Product_Type.thy Mon Oct 12 22:03:24 2015 +0200 +++ b/src/HOL/Product_Type.thy Tue Oct 13 09:21:14 2015 +0200 @@ -1084,6 +1084,19 @@ "{(a, b). P a \ Q b} = Collect P \ Collect Q " by (fact SetCompr_Sigma_eq) +lemma Collect_splitD: + "x \ Collect (uncurry A) \ A (fst x) (snd x)" + by auto + +lemma Collect_split_mono: + "A \ B \ Collect (uncurry A) \ Collect (uncurry B)" + by auto (auto elim!: le_funE) + +lemma Collect_split_mono_strong: + "X = fst ` A \ Y = snd ` A \ \a\X. \b \ Y. P a b \ Q a b + \ A \ Collect (uncurry P) \ A \ Collect (uncurry Q)" + by fastforce + lemma UN_Times_distrib: "(\(a, b)\A \ B. E a \ F b) = UNION A E \ UNION B F" -- \Suggested by Pierre Chartier\