src/HOL/Analysis/Cartesian_Euclidean_Space.thy
changeset 67981 349c639e593c
parent 67979 53323937ee25
child 67982 7643b005b29a
equal deleted inserted replaced
67980:a8177d098b74 67981:349c639e593c
   738   shows "matrix(adjoint f) = transpose(matrix f)"
   738   shows "matrix(adjoint f) = transpose(matrix f)"
   739   apply (subst matrix_vector_mul[OF lf])
   739   apply (subst matrix_vector_mul[OF lf])
   740   unfolding adjoint_matrix matrix_of_matrix_vector_mul
   740   unfolding adjoint_matrix matrix_of_matrix_vector_mul
   741   apply rule
   741   apply rule
   742   done
   742   done
       
   743 
       
   744 lemma inj_matrix_vector_mult:
       
   745   fixes A::"'a::field^'n^'m"
       
   746   assumes "invertible A"
       
   747   shows "inj (( *v) A)"
       
   748   by (metis assms inj_on_inverseI invertible_def matrix_vector_mul_assoc matrix_vector_mul_lid)
   743 
   749 
   744 
   750 
   745 subsection\<open>Some bounds on components etc. relative to operator norm\<close>
   751 subsection\<open>Some bounds on components etc. relative to operator norm\<close>
   746 
   752 
   747 lemma norm_column_le_onorm:
   753 lemma norm_column_le_onorm:
  1553   by (simp add: norm_vector_1)
  1559   by (simp add: norm_vector_1)
  1554 
  1560 
  1555 lemma dist_real: "dist(x::real ^ 1) y = \<bar>(x$1) - (y$1)\<bar>"
  1561 lemma dist_real: "dist(x::real ^ 1) y = \<bar>(x$1) - (y$1)\<bar>"
  1556   by (auto simp add: norm_real dist_norm)
  1562   by (auto simp add: norm_real dist_norm)
  1557 
  1563 
       
  1564 subsection\<open>Routine results connecting the types @{typ "real^1"} and @{typ real}\<close>
       
  1565 
       
  1566 lemma vector_one_nth [simp]:
       
  1567   fixes x :: "'a^1" shows "vec (x $ 1) = x"
       
  1568   by (metis vec_def vector_one)
       
  1569 
       
  1570 lemma vec_cbox_1_eq [simp]:
       
  1571   shows "vec ` cbox u v = cbox (vec u) (vec v ::real^1)"
       
  1572   by (force simp: Basis_vec_def cart_eq_inner_axis [symmetric] mem_box)
       
  1573 
       
  1574 lemma vec_nth_cbox_1_eq [simp]:
       
  1575   fixes u v :: "'a::euclidean_space^1"
       
  1576   shows "(\<lambda>x. x $ 1) ` cbox u v = cbox (u$1) (v$1)"
       
  1577     by (auto simp: Basis_vec_def cart_eq_inner_axis [symmetric] mem_box image_iff Bex_def inner_axis) (metis vec_component)
       
  1578 
       
  1579 lemma vec_nth_1_iff_cbox [simp]:
       
  1580   fixes a b :: "'a::euclidean_space"
       
  1581   shows "(\<lambda>x::'a^1. x $ 1) ` S = cbox a b \<longleftrightarrow> S = cbox (vec a) (vec b)"
       
  1582     (is "?lhs = ?rhs")
       
  1583 proof
       
  1584   assume L: ?lhs show ?rhs
       
  1585   proof (intro equalityI subsetI)
       
  1586     fix x 
       
  1587     assume "x \<in> S"
       
  1588     then have "x $ 1 \<in> (\<lambda>v. v $ (1::1)) ` cbox (vec a) (vec b)"
       
  1589       using L by auto
       
  1590     then show "x \<in> cbox (vec a) (vec b)"
       
  1591       by (metis (no_types, lifting) imageE vector_one_nth)
       
  1592   next
       
  1593     fix x :: "'a^1"
       
  1594     assume "x \<in> cbox (vec a) (vec b)"
       
  1595     then show "x \<in> S"
       
  1596       by (metis (no_types, lifting) L imageE imageI vec_component vec_nth_cbox_1_eq vector_one_nth)
       
  1597   qed
       
  1598 qed simp
  1558 
  1599 
  1559 lemma tendsto_at_within_vector_1:
  1600 lemma tendsto_at_within_vector_1:
  1560   fixes S :: "'a :: metric_space set"
  1601   fixes S :: "'a :: metric_space set"
  1561   assumes "(f \<longlongrightarrow> fx) (at x within S)"
  1602   assumes "(f \<longlongrightarrow> fx) (at x within S)"
  1562   shows "((\<lambda>y::'a^1. \<chi> i. f (y $ 1)) \<longlongrightarrow> (vec fx::'a^1)) (at (vec x) within vec ` S)"
  1603   shows "((\<lambda>y::'a^1. \<chi> i. f (y $ 1)) \<longlongrightarrow> (vec fx::'a^1)) (at (vec x) within vec ` S)"