def dcase

bend-collections-laws-math@1.0.0.0 · proofs/math/typed/f64divc.bend:150

import bend-collections-laws-math@1.0.0.0/proofs/math/typed/f64divc.bend as F64divc
import Base
import bend-collections-laws-math@1.0.0.0/spec/math/f64.bend as SF
import bend-collections-laws-math@1.0.0.0/src/math/f64.bend as F
import bend-collections-laws-math@1.0.0.0/proofs/math/typed/f64round.bend as FR

150def dcase(+s: Bool, +xl: U32, +xh: U32, +yl: U32, +yh: U32, +r1: F.F64, +r2: F.F64, +a1: Bool, +b1: Bool, +c1: Bool, +a2: Bool, +b2: Bool, +c2: Bool, +hR: {SF.pick(F.F64, Bool.or(Bool.or(a1, a2), Bool.or(Bool.and(c1, b1), Bool.and(c2, b2))), r2, r1) == r2 : F.F64}, +hZ: {SF.pick(F.F64, Bool.or(Bool.or(a1, a2), Bool.or(Bool.not(Bool.and(c1, b1)), Bool.and(c2, b2))), r2, F.zero(s)) == r2 : F.F64}) -> {dimpl(s, a1, b1, c1, a2, b2, c2, r1) == dspec(s, a1, b1, c1, a2, b2, c2, r2) : F.F64}:
151  match a1 b1 c1 a2 b2 c2:
152    case True{} True{} True{} True{} True{} True{}:
153      {==}
154    case True{} True{} True{} True{} True{} False{}:
155      {==}
156    case True{} True{} True{} True{} False{} True{}:
157      {==}
158    case True{} True{} True{} True{} False{} False{}:
159      {==}
160    case True{} True{} True{} False{} True{} True{}:
161      FR.inf_v(s)
162    case True{} True{} True{} False{} True{} False{}:
163      FR.inf_v(s)
164    case True{} True{} True{} False{} False{} True{}:
165      FR.inf_v(s)
166    case True{} True{} True{} False{} False{} False{}:
167      FR.inf_v(s)
168    case True{} True{} False{} True{} True{} True{}:
169      {==}
170    case True{} True{} False{} True{} True{} False{}:
171      {==}
172    case True{} True{} False{} True{} False{} True{}:
173      {==}
174    case True{} True{} False{} True{} False{} False{}:
175      {==}
176    case True{} True{} False{} False{} True{} True{}:
177      FR.inf_v(s)
178    case True{} True{} False{} False{} True{} False{}:
179      FR.inf_v(s)
180    case True{} True{} False{} False{} False{} True{}:
181      FR.inf_v(s)
182    case True{} True{} False{} False{} False{} False{}:
183      FR.inf_v(s)
184    case True{} False{} True{} True{} True{} True{}:
185      {==}
186    case True{} False{} True{} True{} True{} False{}:
187      {==}
188    case True{} False{} True{} True{} False{} True{}:
189      {==}
190    case True{} False{} True{} True{} False{} False{}:
191      {==}
192    case True{} False{} True{} False{} True{} True{}:
193      {==}
194    case True{} False{} True{} False{} True{} False{}:
195      {==}
196    case True{} False{} True{} False{} False{} True{}:
197      {==}
198    case True{} False{} True{} False{} False{} False{}:
199      {==}
200    case True{} False{} False{} True{} True{} True{}:
201      {==}
202    case True{} False{} False{} True{} True{} False{}:
203      {==}
204    case True{} False{} False{} True{} False{} True{}:
205      {==}
206    case True{} False{} False{} True{} False{} False{}:
207      {==}
208    case True{} False{} False{} False{} True{} True{}:
209      {==}
210    case True{} False{} False{} False{} True{} False{}:
211      {==}
212    case True{} False{} False{} False{} False{} True{}:
213      {==}
214    case True{} False{} False{} False{} False{} False{}:
215      {==}
216    case False{} True{} True{} True{} True{} True{}:
217      zero_v(s)
218    case False{} True{} True{} True{} True{} False{}:
219      zero_v(s)
220    case False{} True{} True{} True{} False{} True{}:
221      {==}
222    case False{} True{} True{} True{} False{} False{}:
223      {==}
224    case False{} True{} True{} False{} True{} True{}:
225      {==}
226    case False{} True{} True{} False{} True{} False{}:
227      hZ
228    case False{} True{} True{} False{} False{} True{}:
229      hZ
230    case False{} True{} True{} False{} False{} False{}:
231      hZ
232    case False{} True{} False{} True{} True{} True{}:
233      zero_v(s)
234    case False{} True{} False{} True{} True{} False{}:
235      zero_v(s)
236    case False{} True{} False{} True{} False{} True{}:
237      {==}
238    case False{} True{} False{} True{} False{} False{}:
239      {==}
240    case False{} True{} False{} False{} True{} True{}:
241      FR.inf_v(s)
242    case False{} True{} False{} False{} True{} False{}:
243      hR
244    case False{} True{} False{} False{} False{} True{}:
245      hR
246    case False{} True{} False{} False{} False{} False{}:
247      hR
248    case False{} False{} True{} True{} True{} True{}:
249      zero_v(s)
250    case False{} False{} True{} True{} True{} False{}:
251      zero_v(s)
252    case False{} False{} True{} True{} False{} True{}:
253      {==}
254    case False{} False{} True{} True{} False{} False{}:
255      {==}
256    case False{} False{} True{} False{} True{} True{}:
257      FR.inf_v(s)
258    case False{} False{} True{} False{} True{} False{}:
259      hR
260    case False{} False{} True{} False{} False{} True{}:
261      hR
262    case False{} False{} True{} False{} False{} False{}:
263      hR
264    case False{} False{} False{} True{} True{} True{}:
265      zero_v(s)
266    case False{} False{} False{} True{} True{} False{}:
267      zero_v(s)
268    case False{} False{} False{} True{} False{} True{}:
269      {==}
270    case False{} False{} False{} True{} False{} False{}:
271      {==}
272    case False{} False{} False{} False{} True{} True{}:
273      FR.inf_v(s)
274    case False{} False{} False{} False{} True{} False{}:
275      hR
276    case False{} False{} False{} False{} False{} True{}:
277      hR
278    case False{} False{} False{} False{} False{} False{}:
279      hR

Uses (12)

Used by (1)