src/HOL/Real/RealVector.thy
changeset 20560 49996715bc6e
parent 20554 c433e78d4203
child 20584 60b1d52a455d
equal deleted inserted replaced
20559:2116b7a371c7 20560:49996715bc6e
   277   norm_mult_ineq: "norm (x * y) \<le> norm x * norm y"
   277   norm_mult_ineq: "norm (x * y) \<le> norm x * norm y"
   278 
   278 
   279 axclass real_normed_div_algebra < normed, real_algebra_1, division_ring
   279 axclass real_normed_div_algebra < normed, real_algebra_1, division_ring
   280   norm_of_real: "norm (of_real r) = abs r"
   280   norm_of_real: "norm (of_real r) = abs r"
   281   norm_mult: "norm (x * y) = norm x * norm y"
   281   norm_mult: "norm (x * y) = norm x * norm y"
   282   norm_one [simp]: "norm 1 = 1"
       
   283 
   282 
   284 instance real_normed_div_algebra < real_normed_algebra
   283 instance real_normed_div_algebra < real_normed_algebra
   285 proof
   284 proof
   286   fix a :: real and x :: 'a
   285   fix a :: real and x :: 'a
   287   have "norm (a *# x) = norm (of_real a * x)"
   286   have "norm (a *# x) = norm (of_real a * x)"
   300 apply (rule abs_ge_zero)
   299 apply (rule abs_ge_zero)
   301 apply (rule abs_eq_0)
   300 apply (rule abs_eq_0)
   302 apply (rule abs_triangle_ineq)
   301 apply (rule abs_triangle_ineq)
   303 apply simp
   302 apply simp
   304 apply (rule abs_mult)
   303 apply (rule abs_mult)
   305 apply (rule abs_one)
       
   306 done
   304 done
   307 
   305 
   308 lemma norm_zero [simp]: "norm (0::'a::real_normed_vector) = 0"
   306 lemma norm_zero [simp]: "norm (0::'a::real_normed_vector) = 0"
   309 by simp
   307 by simp
   310 
   308 
   364   also have "\<dots> \<le> norm (a - c) + norm (b - d)"
   362   also have "\<dots> \<le> norm (a - c) + norm (b - d)"
   365     by (rule norm_triangle_ineq)
   363     by (rule norm_triangle_ineq)
   366   finally show ?thesis .
   364   finally show ?thesis .
   367 qed
   365 qed
   368 
   366 
       
   367 lemma norm_one [simp]: "norm (1::'a::real_normed_div_algebra) = 1"
       
   368 proof -
       
   369   have "norm (of_real 1 :: 'a) = abs 1"
       
   370     by (rule norm_of_real)
       
   371   thus ?thesis by simp
       
   372 qed
       
   373 
   369 lemma nonzero_norm_inverse:
   374 lemma nonzero_norm_inverse:
   370   fixes a :: "'a::real_normed_div_algebra"
   375   fixes a :: "'a::real_normed_div_algebra"
   371   shows "a \<noteq> 0 \<Longrightarrow> norm (inverse a) = inverse (norm a)"
   376   shows "a \<noteq> 0 \<Longrightarrow> norm (inverse a) = inverse (norm a)"
   372 apply (rule inverse_unique [symmetric])
   377 apply (rule inverse_unique [symmetric])
   373 apply (simp add: norm_mult [symmetric])
   378 apply (simp add: norm_mult [symmetric])