src/HOL/NSA/StarDef.thy
changeset 60353 838025c6e278
parent 60352 d46de31a50c4
child 60429 d3d1e185cd63
equal deleted inserted replaced
60352:d46de31a50c4 60353:838025c6e278
   851 instance star :: (ring) ring ..
   851 instance star :: (ring) ring ..
   852 instance star :: (comm_ring) comm_ring ..
   852 instance star :: (comm_ring) comm_ring ..
   853 instance star :: (ring_1) ring_1 ..
   853 instance star :: (ring_1) ring_1 ..
   854 instance star :: (comm_ring_1) comm_ring_1 ..
   854 instance star :: (comm_ring_1) comm_ring_1 ..
   855 instance star :: (semidom) semidom ..
   855 instance star :: (semidom) semidom ..
       
   856 instance star :: (semidom_divide) semidom_divide
       
   857 proof
       
   858   show "\<And>b a :: 'a star. b \<noteq> 0 \<Longrightarrow> divide (a * b) b = a"
       
   859     by transfer simp
       
   860   show "\<And>a :: 'a star. divide a 0 = 0"
       
   861     by transfer simp
       
   862 qed
   856 instance star :: (semiring_div) semiring_div
   863 instance star :: (semiring_div) semiring_div
   857 apply intro_classes
   864 apply intro_classes
   858 apply(transfer, rule mod_div_equality)
   865 apply(transfer, rule mod_div_equality)
   859 apply(transfer, rule div_by_0)
   866 apply(transfer, rule div_by_0)
   860 apply(transfer, rule div_0)
   867 apply(transfer, rule div_0)
   863 done
   870 done
   864 
   871 
   865 instance star :: (ring_no_zero_divisors) ring_no_zero_divisors ..
   872 instance star :: (ring_no_zero_divisors) ring_no_zero_divisors ..
   866 instance star :: (ring_1_no_zero_divisors) ring_1_no_zero_divisors ..
   873 instance star :: (ring_1_no_zero_divisors) ring_1_no_zero_divisors ..
   867 instance star :: (idom) idom .. 
   874 instance star :: (idom) idom .. 
       
   875 instance star :: (idom_divide) idom_divide ..
   868 
   876 
   869 instance star :: (division_ring) division_ring
   877 instance star :: (division_ring) division_ring
   870 apply (intro_classes)
   878 apply (intro_classes)
   871 apply (transfer, erule left_inverse)
   879 apply (transfer, erule left_inverse)
   872 apply (transfer, erule right_inverse)
   880 apply (transfer, erule right_inverse)