equal
deleted
inserted
replaced
374 class norm = type + |
374 class norm = type + |
375 fixes norm :: "'a \<Rightarrow> real" |
375 fixes norm :: "'a \<Rightarrow> real" |
376 |
376 |
377 instance real :: norm |
377 instance real :: norm |
378 real_norm_def [simp]: "norm r \<equiv> \<bar>r\<bar>" .. |
378 real_norm_def [simp]: "norm r \<equiv> \<bar>r\<bar>" .. |
379 ML"set Toplevel.debug" |
|
380 |
379 |
381 class sgn_div_norm = scaleR + inverse + norm + sgn + |
380 class sgn_div_norm = scaleR + inverse + norm + sgn + |
382 assumes sgn_div_norm: "sgn x = x /# norm x" |
381 assumes sgn_div_norm: "sgn x = x /# norm x" |
383 (* FIXME junk needed because of bug in locales *) |
382 (* FIXME junk needed because of broken locale interpretation *) |
384 and "(sgn :: 'a::scaleR \<Rightarrow> 'a) = sgn" |
383 and "(sgn :: 'a::scaleR \<Rightarrow> 'a) = sgn" |
385 and "(inverse :: 'a::scaleR \<Rightarrow> 'a) = inverse" |
384 and "(inverse :: 'a::scaleR \<Rightarrow> 'a) = inverse" |
386 and "(scaleR :: real \<Rightarrow> 'a::scaleR \<Rightarrow> 'a) = scaleR" |
385 and "(scaleR :: real \<Rightarrow> 'a::scaleR \<Rightarrow> 'a) = scaleR" |
387 |
386 |
388 axclass real_normed_vector < real_vector, sgn_div_norm |
387 axclass real_normed_vector < real_vector, sgn_div_norm |