src/HOL/Divides.thy
changeset 78937 5e6b195eee83
parent 78935 5e788ff7a489
child 80452 0303b3a0edde
equal deleted inserted replaced
78936:ddf255a4ccc3 78937:5e6b195eee83
     5 
     5 
     6 theory Divides
     6 theory Divides
     7 imports Parity
     7 imports Parity
     8 begin
     8 begin
     9 
     9 
    10 class unique_euclidean_semiring_numeral = unique_euclidean_semiring_with_nat + discrete_linordered_semidom +
    10 class unique_euclidean_semiring_numeral = linordered_euclidean_semiring + discrete_linordered_semidom +
    11   assumes div_less [no_atp]: "0 \<le> a \<Longrightarrow> a < b \<Longrightarrow> a div b = 0"
    11   assumes div_less [no_atp]: "0 \<le> a \<Longrightarrow> a < b \<Longrightarrow> a div b = 0"
    12     and mod_less [no_atp]: " 0 \<le> a \<Longrightarrow> a < b \<Longrightarrow> a mod b = a"
    12     and mod_less [no_atp]: " 0 \<le> a \<Longrightarrow> a < b \<Longrightarrow> a mod b = a"
    13     and div_positive [no_atp]: "0 < b \<Longrightarrow> b \<le> a \<Longrightarrow> a div b > 0"
    13     and div_positive [no_atp]: "0 < b \<Longrightarrow> b \<le> a \<Longrightarrow> a div b > 0"
    14     and mod_less_eq_dividend [no_atp]: "0 \<le> a \<Longrightarrow> a mod b \<le> a"
    14     and mod_less_eq_dividend [no_atp]: "0 \<le> a \<Longrightarrow> a mod b \<le> a"
    15     and pos_mod_bound [no_atp]: "0 < b \<Longrightarrow> a mod b < b"
    15     and pos_mod_bound [no_atp]: "0 < b \<Longrightarrow> a mod b < b"