equal
deleted
inserted
replaced
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" |