src/HOL/Ring_and_Field.thy
changeset 29915 2146e512cec9
parent 29904 856f16a3b436
child 29925 17d1e32ef867
equal deleted inserted replaced
29914:c9ced4f54e82 29915:2146e512cec9
   371 
   371 
   372 class idom = comm_ring_1 + no_zero_divisors
   372 class idom = comm_ring_1 + no_zero_divisors
   373 begin
   373 begin
   374 
   374 
   375 subclass ring_1_no_zero_divisors ..
   375 subclass ring_1_no_zero_divisors ..
       
   376 
       
   377 lemma square_eq_iff: "a * a = b * b \<longleftrightarrow> (a = b \<or> a = - b)"
       
   378 proof
       
   379   assume "a * a = b * b"
       
   380   then have "(a - b) * (a + b) = 0"
       
   381     by (simp add: algebra_simps)
       
   382   then show "a = b \<or> a = - b"
       
   383     by (simp add: right_minus_eq eq_neg_iff_add_eq_0)
       
   384 next
       
   385   assume "a = b \<or> a = - b"
       
   386   then show "a * a = b * b" by auto
       
   387 qed
   376 
   388 
   377 end
   389 end
   378 
   390 
   379 class division_ring = ring_1 + inverse +
   391 class division_ring = ring_1 + inverse +
   380   assumes left_inverse [simp]:  "a \<noteq> 0 \<Longrightarrow> inverse a * a = 1"
   392   assumes left_inverse [simp]:  "a \<noteq> 0 \<Longrightarrow> inverse a * a = 1"