# HG changeset patch # User hoelzl # Date 1267728231 -3600 # Node ID 0f74806cab224a6c363db69566bf5ce89424c5bf # Parent cc9a5a0ab5eaa53dc8e7f7c37ea5aa04685b499a Rewrite rules for images of minus of intervals diff -r cc9a5a0ab5ea -r 0f74806cab22 src/HOL/Fun.thy --- a/src/HOL/Fun.thy Thu Mar 04 18:42:39 2010 +0100 +++ b/src/HOL/Fun.thy Thu Mar 04 19:43:51 2010 +0100 @@ -378,6 +378,8 @@ apply (simp_all (no_asm_simp) add: inj_image_Compl_subset surj_Compl_image_subset) done +lemma (in ordered_ab_group_add) inj_uminus[iff]: "inj uminus" + by (auto intro!: inj_onI) subsection{*Function Updating*} diff -r cc9a5a0ab5ea -r 0f74806cab22 src/HOL/SetInterval.thy --- a/src/HOL/SetInterval.thy Thu Mar 04 18:42:39 2010 +0100 +++ b/src/HOL/SetInterval.thy Thu Mar 04 19:43:51 2010 +0100 @@ -445,6 +445,47 @@ apply auto done +context ordered_ab_group_add +begin + +lemma + fixes x :: 'a + shows image_uminus_greaterThan[simp]: "uminus ` {x<..} = {..<-x}" + and image_uminus_atLeast[simp]: "uminus ` {x..} = {..-x}" +proof safe + fix y assume "y < -x" + hence *: "x < -y" using neg_less_iff_less[of "-y" x] by simp + have "- (-y) \ uminus ` {x<..}" + by (rule imageI) (simp add: *) + thus "y \ uminus ` {x<..}" by simp +next + fix y assume "y \ -x" + have "- (-y) \ uminus ` {x..}" + by (rule imageI) (insert `y \ -x`[THEN le_imp_neg_le], simp) + thus "y \ uminus ` {x..}" by simp +qed simp_all + +lemma + fixes x :: 'a + shows image_uminus_lessThan[simp]: "uminus ` {..