src/HOL/NSA/NSCA.thy
changeset 57512 cc97b347b301
parent 56889 48a745e1bde7
child 58878 f962e42e324d
equal deleted inserted replaced
57511:de51a86fc903 57512:cc97b347b301
   135 *)
   135 *)
   136 
   136 
   137 lemma approx_SComplex_mult_cancel_zero:
   137 lemma approx_SComplex_mult_cancel_zero:
   138      "[| a \<in> SComplex; a \<noteq> 0; a*x @= 0 |] ==> x @= 0"
   138      "[| a \<in> SComplex; a \<noteq> 0; a*x @= 0 |] ==> x @= 0"
   139 apply (drule Standard_inverse [THEN Standard_subset_HFinite [THEN subsetD]])
   139 apply (drule Standard_inverse [THEN Standard_subset_HFinite [THEN subsetD]])
   140 apply (auto dest: approx_mult2 simp add: mult_assoc [symmetric])
   140 apply (auto dest: approx_mult2 simp add: mult.assoc [symmetric])
   141 done
   141 done
   142 
   142 
   143 lemma approx_mult_SComplex1: "[| a \<in> SComplex; x @= 0 |] ==> x*a @= 0"
   143 lemma approx_mult_SComplex1: "[| a \<in> SComplex; x @= 0 |] ==> x*a @= 0"
   144 by (auto dest: Standard_subset_HFinite [THEN subsetD] approx_mult1)
   144 by (auto dest: Standard_subset_HFinite [THEN subsetD] approx_mult1)
   145 
   145 
   151 by (blast intro: approx_SComplex_mult_cancel_zero approx_mult_SComplex2)
   151 by (blast intro: approx_SComplex_mult_cancel_zero approx_mult_SComplex2)
   152 
   152 
   153 lemma approx_SComplex_mult_cancel:
   153 lemma approx_SComplex_mult_cancel:
   154      "[| a \<in> SComplex; a \<noteq> 0; a* w @= a*z |] ==> w @= z"
   154      "[| a \<in> SComplex; a \<noteq> 0; a* w @= a*z |] ==> w @= z"
   155 apply (drule Standard_inverse [THEN Standard_subset_HFinite [THEN subsetD]])
   155 apply (drule Standard_inverse [THEN Standard_subset_HFinite [THEN subsetD]])
   156 apply (auto dest: approx_mult2 simp add: mult_assoc [symmetric])
   156 apply (auto dest: approx_mult2 simp add: mult.assoc [symmetric])
   157 done
   157 done
   158 
   158 
   159 lemma approx_SComplex_mult_cancel_iff1 [simp]:
   159 lemma approx_SComplex_mult_cancel_iff1 [simp]:
   160      "[| a \<in> SComplex; a \<noteq> 0|] ==> (a* w @= a*z) = (w @= z)"
   160      "[| a \<in> SComplex; a \<noteq> 0|] ==> (a* w @= a*z) = (w @= z)"
   161 by (auto intro!: approx_mult2 Standard_subset_HFinite [THEN subsetD]
   161 by (auto intro!: approx_mult2 Standard_subset_HFinite [THEN subsetD]