diff -r 81290fe85890 -r 2d3df8633dad src/HOL/Multivariate_Analysis/Cartesian_Euclidean_Space.thy --- a/src/HOL/Multivariate_Analysis/Cartesian_Euclidean_Space.thy Mon Dec 16 14:49:18 2013 +0100 +++ b/src/HOL/Multivariate_Analysis/Cartesian_Euclidean_Space.thy Mon Dec 16 17:08:22 2013 +0100 @@ -903,23 +903,23 @@ qed lemma interval_cart: - fixes a :: "'a::ord^'n" - shows "{a <..< b} = {x::'a^'n. \i. a$i < x$i \ x$i < b$i}" - and "{a .. b} = {x::'a^'n. \i. a$i \ x$i \ x$i \ b$i}" - by (auto simp add: set_eq_iff less_vec_def less_eq_vec_def) + fixes a :: "real^'n" + shows "box a b = {x::real^'n. \i. a$i < x$i \ x$i < b$i}" + and "{a .. b} = {x::real^'n. \i. a$i \ x$i \ x$i \ b$i}" + by (auto simp add: set_eq_iff less_vec_def less_eq_vec_def mem_interval Basis_vec_def inner_axis) lemma mem_interval_cart: - fixes a :: "'a::ord^'n" - shows "x \ {a<.. (\i. a$i < x$i \ x$i < b$i)" + fixes a :: "real^'n" + shows "x \ box a b \ (\i. a$i < x$i \ x$i < b$i)" and "x \ {a .. b} \ (\i. a$i \ x$i \ x$i \ b$i)" using interval_cart[of a b] by (auto simp add: set_eq_iff less_vec_def less_eq_vec_def) lemma interval_eq_empty_cart: fixes a :: "real^'n" - shows "({a <..< b} = {} \ (\i. b$i \ a$i))" (is ?th1) + shows "(box a b = {} \ (\i. b$i \ a$i))" (is ?th1) and "({a .. b} = {} \ (\i. b$i < a$i))" (is ?th2) proof - - { fix i x assume as:"b$i \ a$i" and x:"x\{a <..< b}" + { fix i x assume as:"b$i \ a$i" and x:"x\box a b" hence "a $ i < x $ i \ x $ i < b $ i" unfolding mem_interval_cart by auto hence "a$i < b$i" by auto hence False using as by auto } @@ -931,7 +931,7 @@ hence "a$i < ((1/2) *\<^sub>R (a+b)) $ i" "((1/2) *\<^sub>R (a+b)) $ i < b$i" unfolding vector_smult_component and vector_add_component by auto } - hence "{a <..< b} \ {}" using mem_interval_cart(1)[of "?x" a b] by auto } + hence "box a b \ {}" using mem_interval_cart(1)[of "?x" a b] by auto } ultimately show ?th1 by blast { fix i x assume as:"b$i < a$i" and x:"x\{a .. b}" @@ -953,16 +953,16 @@ lemma interval_ne_empty_cart: fixes a :: "real^'n" shows "{a .. b} \ {} \ (\i. a$i \ b$i)" - and "{a <..< b} \ {} \ (\i. a$i < b$i)" + and "box a b \ {} \ (\i. a$i < b$i)" unfolding interval_eq_empty_cart[of a b] by (auto simp add: not_less not_le) (* BH: Why doesn't just "auto" work here? *) lemma subset_interval_imp_cart: fixes a :: "real^'n" shows "(\i. a$i \ c$i \ d$i \ b$i) \ {c .. d} \ {a .. b}" - and "(\i. a$i < c$i \ d$i < b$i) \ {c .. d} \ {a<..i. a$i \ c$i \ d$i \ b$i) \ {c<.. {a .. b}" - and "(\i. a$i \ c$i \ d$i \ b$i) \ {c<.. {a<..i. a$i < c$i \ d$i < b$i) \ {c .. d} \ box a b" + and "(\i. a$i \ c$i \ d$i \ b$i) \ box c d \ {a .. b}" + and "(\i. a$i \ c$i \ d$i \ b$i) \ box c d \ box a b" unfolding subset_eq[unfolded Ball_def] unfolding mem_interval_cart by (auto intro: order_trans less_le_trans le_less_trans less_imp_le) (* BH: Why doesn't just "auto" work here? *) @@ -975,21 +975,21 @@ done lemma interval_open_subset_closed_cart: - fixes a :: "'a::preorder^'n" - shows "{a<.. {a .. b}" + fixes a :: "real^'n" + shows "box a b \ {a .. b}" proof (simp add: subset_eq, rule) fix x - assume x: "x \{a<..box a b" { fix i have "a $ i \ x $ i" using x order_less_imp_le[of "a$i" "x$i"] - by(simp add: set_eq_iff less_vec_def less_eq_vec_def vec_eq_iff) + by(simp add: set_eq_iff less_vec_def less_eq_vec_def vec_eq_iff mem_interval Basis_vec_def inner_axis) } moreover { fix i have "x $ i \ b $ i" using x order_less_imp_le[of "x$i" "b$i"] - by(simp add: set_eq_iff less_vec_def less_eq_vec_def vec_eq_iff) + by(simp add: set_eq_iff less_vec_def less_eq_vec_def vec_eq_iff mem_interval Basis_vec_def inner_axis) } ultimately show "a \ x \ x \ b" @@ -999,21 +999,21 @@ lemma subset_interval_cart: fixes a :: "real^'n" shows "{c .. d} \ {a .. b} \ (\i. c$i \ d$i) --> (\i. a$i \ c$i \ d$i \ b$i)" (is ?th1) - and "{c .. d} \ {a<.. (\i. c$i \ d$i) --> (\i. a$i < c$i \ d$i < b$i)" (is ?th2) - and "{c<.. {a .. b} \ (\i. c$i < d$i) --> (\i. a$i \ c$i \ d$i \ b$i)" (is ?th3) - and "{c<.. {a<.. (\i. c$i < d$i) --> (\i. a$i \ c$i \ d$i \ b$i)" (is ?th4) + and "{c .. d} \ box a b \ (\i. c$i \ d$i) --> (\i. a$i < c$i \ d$i < b$i)" (is ?th2) + and "box c d \ {a .. b} \ (\i. c$i < d$i) --> (\i. a$i \ c$i \ d$i \ b$i)" (is ?th3) + and "box c d \ box a b \ (\i. c$i < d$i) --> (\i. a$i \ c$i \ d$i \ b$i)" (is ?th4) using subset_interval[of c d a b] by (simp_all add: Basis_vec_def inner_axis) lemma disjoint_interval_cart: fixes a::"real^'n" shows "{a .. b} \ {c .. d} = {} \ (\i. (b$i < a$i \ d$i < c$i \ b$i < c$i \ d$i < a$i))" (is ?th1) - and "{a .. b} \ {c<.. (\i. (b$i < a$i \ d$i \ c$i \ b$i \ c$i \ d$i \ a$i))" (is ?th2) - and "{a<.. {c .. d} = {} \ (\i. (b$i \ a$i \ d$i < c$i \ b$i \ c$i \ d$i \ a$i))" (is ?th3) - and "{a<.. {c<.. (\i. (b$i \ a$i \ d$i \ c$i \ b$i \ c$i \ d$i \ a$i))" (is ?th4) + and "{a .. b} \ box c d = {} \ (\i. (b$i < a$i \ d$i \ c$i \ b$i \ c$i \ d$i \ a$i))" (is ?th2) + and "box a b \ {c .. d} = {} \ (\i. (b$i \ a$i \ d$i < c$i \ b$i \ c$i \ d$i \ a$i))" (is ?th3) + and "box a b \ box c d = {} \ (\i. (b$i \ a$i \ d$i \ c$i \ b$i \ c$i \ d$i \ a$i))" (is ?th4) using disjoint_interval[of a b c d] by (simp_all add: Basis_vec_def inner_axis) lemma inter_interval_cart: - fixes a :: "'a::linorder^'n" + fixes a :: "real^'n" shows "{a .. b} \ {c .. d} = {(\ i. max (a$i) (c$i)) .. (\ i. min (b$i) (d$i))}" unfolding set_eq_iff and Int_iff and mem_interval_cart by auto