src/HOL/Presburger.thy
changeset 28967 3bdb1eae352c
parent 28402 09e4aa3ddc25
child 29667 53103fc8ffa3
equal deleted inserted replaced
28963:f6d9e0e0b153 28967:3bdb1eae352c
   409 
   409 
   410 theorem conj_le_cong: "(0 <= x \<Longrightarrow> P = P') \<Longrightarrow> (0 <= (x::int) \<and> P) = (0 <= x \<and> P')" 
   410 theorem conj_le_cong: "(0 <= x \<Longrightarrow> P = P') \<Longrightarrow> (0 <= (x::int) \<and> P) = (0 <= x \<and> P')" 
   411   by (simp cong: conj_cong)
   411   by (simp cong: conj_cong)
   412 lemma int_eq_number_of_eq:
   412 lemma int_eq_number_of_eq:
   413   "(((number_of v)::int) = (number_of w)) = iszero ((number_of (v + (uminus w)))::int)"
   413   "(((number_of v)::int) = (number_of w)) = iszero ((number_of (v + (uminus w)))::int)"
   414   by simp
   414   by (rule eq_number_of_eq)
   415 
   415 
   416 lemma mod_eq0_dvd_iff[presburger]: "(m::nat) mod n = 0 \<longleftrightarrow> n dvd m"
   416 lemma mod_eq0_dvd_iff[presburger]: "(m::nat) mod n = 0 \<longleftrightarrow> n dvd m"
   417 unfolding dvd_eq_mod_eq_0[symmetric] ..
   417 unfolding dvd_eq_mod_eq_0[symmetric] ..
   418 
   418 
   419 lemma zmod_eq0_zdvd_iff[presburger]: "(m::int) mod n = 0 \<longleftrightarrow> n dvd m"
   419 lemma zmod_eq0_zdvd_iff[presburger]: "(m::int) mod n = 0 \<longleftrightarrow> n dvd m"