src/HOL/Presburger.thy
changeset 70341 972c0c744e7c
parent 70340 7383930fc946
child 75669 43f5dfb7fa35
equal deleted inserted replaced
70340:7383930fc946 70341:972c0c744e7c
   430 lemma [presburger, algebra]: "m mod 2 = Suc 0 \<longleftrightarrow> \<not> 2 dvd m " by presburger
   430 lemma [presburger, algebra]: "m mod 2 = Suc 0 \<longleftrightarrow> \<not> 2 dvd m " by presburger
   431 lemma [presburger, algebra]: "m mod (Suc (Suc 0)) = (1::nat) \<longleftrightarrow> \<not> 2 dvd m " by presburger
   431 lemma [presburger, algebra]: "m mod (Suc (Suc 0)) = (1::nat) \<longleftrightarrow> \<not> 2 dvd m " by presburger
   432 lemma [presburger, algebra]: "m mod (Suc (Suc 0)) = Suc 0 \<longleftrightarrow> \<not> 2 dvd m " by presburger
   432 lemma [presburger, algebra]: "m mod (Suc (Suc 0)) = Suc 0 \<longleftrightarrow> \<not> 2 dvd m " by presburger
   433 lemma [presburger, algebra]: "m mod 2 = (1::int) \<longleftrightarrow> \<not> 2 dvd m " by presburger
   433 lemma [presburger, algebra]: "m mod 2 = (1::int) \<longleftrightarrow> \<not> 2 dvd m " by presburger
   434 
   434 
   435 context unique_euclidean_semiring_with_nat
   435 context semiring_parity
   436 begin
   436 begin
   437 
   437 
   438 declare even_mult_iff [presburger]
   438 declare even_mult_iff [presburger]
   439 
   439 
   440 declare even_power [presburger]
   440 declare even_power [presburger]
   443   "even (a + b) \<longleftrightarrow> even a \<and> even b \<or> odd a \<and> odd b"
   443   "even (a + b) \<longleftrightarrow> even a \<and> even b \<or> odd a \<and> odd b"
   444   by auto
   444   by auto
   445 
   445 
   446 end
   446 end
   447 
   447 
   448 context unique_euclidean_ring_with_nat
   448 context ring_parity
   449 begin
   449 begin
   450 
   450 
   451 declare even_minus [presburger]
   451 declare even_minus [presburger]
   452 
   452 
   453 end
   453 end