308 bin_pred_1, bin_pred_0, bin_pred_Pls, bin_pred_Min]; |
308 bin_pred_1, bin_pred_0, bin_pred_Pls, bin_pred_Min]; |
309 |
309 |
310 |
310 |
311 (*To let us treat subtraction as addition*) |
311 (*To let us treat subtraction as addition*) |
312 val diff_simps = [hcomplex_diff_def, hcomplex_minus_add_distrib, |
312 val diff_simps = [hcomplex_diff_def, hcomplex_minus_add_distrib, |
313 hcomplex_minus_minus]; |
313 minus_minus]; |
314 |
314 |
315 (*push the unary minus down: - x * y = x * - y *) |
315 (*push the unary minus down: - x * y = x * - y *) |
316 val hcomplex_minus_mult_eq_1_to_2 = |
316 val hcomplex_minus_mult_eq_1_to_2 = |
317 [hcomplex_minus_mult_eq1 RS sym, hcomplex_minus_mult_eq2] MRS trans |
317 [hcomplex_minus_mult_eq1 RS sym, hcomplex_minus_mult_eq2] MRS trans |
318 |> standard; |
318 |> standard; |
319 |
319 |
320 (*to extract again any uncancelled minuses*) |
320 (*to extract again any uncancelled minuses*) |
321 val hcomplex_minus_from_mult_simps = |
321 val hcomplex_minus_from_mult_simps = |
322 [hcomplex_minus_minus, hcomplex_minus_mult_eq1 RS sym, |
322 [minus_minus, hcomplex_minus_mult_eq1 RS sym, |
323 hcomplex_minus_mult_eq2 RS sym]; |
323 hcomplex_minus_mult_eq2 RS sym]; |
324 |
324 |
325 (*combine unary minus with numeric literals, however nested within a product*) |
325 (*combine unary minus with numeric literals, however nested within a product*) |
326 val hcomplex_mult_minus_simps = |
326 val hcomplex_mult_minus_simps = |
327 [hcomplex_mult_assoc, hcomplex_minus_mult_eq1, hcomplex_minus_mult_eq_1_to_2]; |
327 [hcomplex_mult_assoc, hcomplex_minus_mult_eq1, hcomplex_minus_mult_eq_1_to_2]; |