src/HOL/Analysis/Cross3.thy
changeset 69508 2a4c8a2a3f8e
parent 68902 8414bbd7bb46
child 69675 880ab0f27ddf
child 69677 a06b204527e6
equal deleted inserted replaced
69506:7d59af98af29 69508:2a4c8a2a3f8e
    97                    "(axis 3 1) \<times> (axis 1 1) = axis 2 1" "(axis 1 1) \<times> (axis 3 1) = -(axis 2 1)"
    97                    "(axis 3 1) \<times> (axis 1 1) = axis 2 1" "(axis 1 1) \<times> (axis 3 1) = -(axis 2 1)"
    98   using exhaust_3
    98   using exhaust_3
    99   by (force simp add: axis_def cross3_simps)+
    99   by (force simp add: axis_def cross3_simps)+
   100 
   100 
   101 lemma  cross_basis_nonzero:
   101 lemma  cross_basis_nonzero:
   102   "u \<noteq> 0 \<Longrightarrow> ~(u \<times> axis 1 1 = 0) \<or> ~(u \<times> axis 2 1 = 0) \<or> ~(u \<times> axis 3 1 = 0)"
   102   "u \<noteq> 0 \<Longrightarrow> u \<times> axis 1 1 \<noteq> 0 \<or> u \<times> axis 2 1 \<noteq> 0 \<or> u \<times> axis 3 1 \<noteq> 0"
   103   by (clarsimp simp add: axis_def cross3_simps) (metis vector_3 exhaust_3)
   103   by (clarsimp simp add: axis_def cross3_simps) (metis vector_3 exhaust_3)
   104 
   104 
   105 lemma  cross_dot_cancel:
   105 lemma  cross_dot_cancel:
   106   fixes x::"real^3"
   106   fixes x::"real^3"
   107   assumes deq: "x \<bullet> y = x \<bullet> z" and veq: "x \<times> y = x \<times> z" and x: "x \<noteq> 0"
   107   assumes deq: "x \<bullet> y = x \<bullet> z" and veq: "x \<times> y = x \<times> z" and x: "x \<noteq> 0"