equal
deleted
inserted
replaced
128 "z3div k l = (if 0 \<le> l then k div l else -(k div (-l)))" |
128 "z3div k l = (if 0 \<le> l then k div l else -(k div (-l)))" |
129 |
129 |
130 definition z3mod :: "int \<Rightarrow> int \<Rightarrow> int" where |
130 definition z3mod :: "int \<Rightarrow> int \<Rightarrow> int" where |
131 "z3mod k l = (if 0 \<le> l then k mod l else k mod (-l))" |
131 "z3mod k l = (if 0 \<le> l then k mod l else k mod (-l))" |
132 |
132 |
133 lemma div_by_z3div: "k div l = ( |
133 lemma div_by_z3div: |
134 if k = 0 \<or> l = 0 then 0 |
134 "\<forall>k l. k div l = ( |
135 else if (0 < k \<and> 0 < l) \<or> (k < 0 \<and> 0 < l) then z3div k l |
135 if k = 0 \<or> l = 0 then 0 |
136 else z3div (-k) (-l))" |
136 else if (0 < k \<and> 0 < l) \<or> (k < 0 \<and> 0 < l) then z3div k l |
137 by (auto simp add: z3div_def) |
137 else z3div (-k) (-l))" |
138 |
138 by (auto simp add: z3div_def trigger_def) |
139 lemma mod_by_z3mod: "k mod l = ( |
139 |
140 if l = 0 then k |
140 lemma mod_by_z3mod: |
141 else if k = 0 then 0 |
141 "\<forall>k l. k mod l = ( |
142 else if (0 < k \<and> 0 < l) \<or> (k < 0 \<and> 0 < l) then z3mod k l |
142 if l = 0 then k |
143 else - z3mod (-k) (-l))" |
143 else if k = 0 then 0 |
144 by (auto simp add: z3mod_def) |
144 else if (0 < k \<and> 0 < l) \<or> (k < 0 \<and> 0 < l) then z3mod k l |
|
145 else - z3mod (-k) (-l))" |
|
146 by (auto simp add: z3mod_def trigger_def) |
145 |
147 |
146 |
148 |
147 |
149 |
148 subsection {* Setup *} |
150 subsection {* Setup *} |
149 |
151 |