equal
deleted
inserted
replaced
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" |