src/HOL/Analysis/Cartesian_Euclidean_Space.thy
changeset 70136 f03a01a18c6e
parent 70113 c8deb8ba6d05
child 70817 dd675800469d
equal deleted inserted replaced
70135:ad6d4a14adb5 70136:f03a01a18c6e
   563 qed
   563 qed
   564 
   564 
   565 
   565 
   566 subsection "Derivative"
   566 subsection "Derivative"
   567 
   567 
   568 definition%important "jacobian f net = matrix(frechet_derivative f net)"
   568 definition\<^marker>\<open>tag important\<close> "jacobian f net = matrix(frechet_derivative f net)"
   569 
   569 
   570 proposition jacobian_works:
   570 proposition jacobian_works:
   571   "(f::(real^'a) \<Rightarrow> (real^'b)) differentiable net \<longleftrightarrow>
   571   "(f::(real^'a) \<Rightarrow> (real^'b)) differentiable net \<longleftrightarrow>
   572     (f has_derivative (\<lambda>h. (jacobian f net) *v h)) net" (is "?lhs = ?rhs")
   572     (f has_derivative (\<lambda>h. (jacobian f net) *v h)) net" (is "?lhs = ?rhs")
   573 proof
   573 proof
   589   shows "jacobian f (at x) $ k = 0"
   589   shows "jacobian f (at x) $ k = 0"
   590   using differential_zero_maxmin_component[of "axis k 1" e x f] assms
   590   using differential_zero_maxmin_component[of "axis k 1" e x f] assms
   591     vector_cart[of "\<lambda>j. frechet_derivative f (at x) j $ k"]
   591     vector_cart[of "\<lambda>j. frechet_derivative f (at x) j $ k"]
   592   by (simp add: Basis_vec_def axis_eq_axis inner_axis jacobian_def matrix_def)
   592   by (simp add: Basis_vec_def axis_eq_axis inner_axis jacobian_def matrix_def)
   593 
   593 
   594 subsection%unimportant\<open>Routine results connecting the types \<^typ>\<open>real^1\<close> and \<^typ>\<open>real\<close>\<close>
   594 subsection\<^marker>\<open>tag unimportant\<close>\<open>Routine results connecting the types \<^typ>\<open>real^1\<close> and \<^typ>\<open>real\<close>\<close>
   595 
   595 
   596 lemma vec_cbox_1_eq [simp]:
   596 lemma vec_cbox_1_eq [simp]:
   597   shows "vec ` cbox u v = cbox (vec u) (vec v ::real^1)"
   597   shows "vec ` cbox u v = cbox (vec u) (vec v ::real^1)"
   598   by (force simp: Basis_vec_def cart_eq_inner_axis [symmetric] mem_box)
   598   by (force simp: Basis_vec_def cart_eq_inner_axis [symmetric] mem_box)
   599 
   599