src/HOL/Multivariate_Analysis/Euclidean_Space.thy
changeset 44628 bd17b7543af1
parent 44571 bd91b77c4cd6
child 44902 9ba11d41cd1f
equal deleted inserted replaced
44627:134c06282ae6 44628:bd17b7543af1
     5 
     5 
     6 header {* Finite-Dimensional Inner Product Spaces *}
     6 header {* Finite-Dimensional Inner Product Spaces *}
     7 
     7 
     8 theory Euclidean_Space
     8 theory Euclidean_Space
     9 imports
     9 imports
    10   Complex_Main
    10   L2_Norm
    11   "~~/src/HOL/Library/Inner_Product"
    11   "~~/src/HOL/Library/Inner_Product"
    12   "~~/src/HOL/Library/Product_Vector"
    12   "~~/src/HOL/Library/Product_Vector"
    13 begin
    13 begin
    14 
    14 
    15 subsection {* Type class of Euclidean spaces *}
    15 subsection {* Type class of Euclidean spaces *}
   214   "inner x (y::'a) = (\<Sum>i<DIM('a::euclidean_space). (x $$ i) * (y $$ i))"
   214   "inner x (y::'a) = (\<Sum>i<DIM('a::euclidean_space). (x $$ i) * (y $$ i))"
   215   by (subst (1 2) euclidean_representation,
   215   by (subst (1 2) euclidean_representation,
   216     simp add: inner_setsum_left inner_setsum_right
   216     simp add: inner_setsum_left inner_setsum_right
   217     dot_basis if_distrib setsum_cases mult_commute)
   217     dot_basis if_distrib setsum_cases mult_commute)
   218 
   218 
       
   219 lemma euclidean_dist_l2:
       
   220   fixes x y :: "'a::euclidean_space"
       
   221   shows "dist x y = setL2 (\<lambda>i. dist (x $$ i) (y $$ i)) {..<DIM('a)}"
       
   222   unfolding dist_norm norm_eq_sqrt_inner setL2_def
       
   223   by (simp add: euclidean_inner power2_eq_square)
       
   224 
   219 lemma component_le_norm: "\<bar>x$$i\<bar> \<le> norm (x::'a::euclidean_space)"
   225 lemma component_le_norm: "\<bar>x$$i\<bar> \<le> norm (x::'a::euclidean_space)"
   220   unfolding euclidean_component_def
   226   unfolding euclidean_component_def
   221   by (rule order_trans [OF Cauchy_Schwarz_ineq2]) simp
   227   by (rule order_trans [OF Cauchy_Schwarz_ineq2]) simp
       
   228 
       
   229 lemma dist_nth_le: "dist (x $$ i) (y $$ i) \<le> dist x (y::'a::euclidean_space)"
       
   230   unfolding euclidean_dist_l2 [where 'a='a]
       
   231   by (cases "i < DIM('a)", rule member_le_setL2, auto)
   222 
   232 
   223 subsection {* Subclass relationships *}
   233 subsection {* Subclass relationships *}
   224 
   234 
   225 instance euclidean_space \<subseteq> perfect_space
   235 instance euclidean_space \<subseteq> perfect_space
   226 proof
   236 proof