equal
deleted
inserted
replaced
497 end handle FalseE thm => trace_thm "False reached early:" thm |
497 end handle FalseE thm => trace_thm "False reached early:" thm |
498 end |
498 end |
499 end; |
499 end; |
500 |
500 |
501 fun coeff poly atom = |
501 fun coeff poly atom = |
502 AList.lookup (op =) poly atom |> the_default Integer.zero; |
502 AList.lookup (op =) poly atom |> the_default (0: integer); |
503 |
503 |
504 fun lcms ks = fold Integer.lcm ks Integer.one; |
504 fun lcms ks = fold Integer.lcm ks 1; |
505 |
505 |
506 fun integ(rlhs,r,rel,rrhs,s,d) = |
506 fun integ(rlhs,r,rel,rrhs,s,d) = |
507 let val (rn,rd) = Rat.quotient_of_rat r and (sn,sd) = Rat.quotient_of_rat s |
507 let val (rn,rd) = Rat.quotient_of_rat r and (sn,sd) = Rat.quotient_of_rat s |
508 val m = lcms(map (abs o snd o Rat.quotient_of_rat) (r :: s :: map snd rlhs @ map snd rrhs)) |
508 val m = lcms(map (abs o snd o Rat.quotient_of_rat) (r :: s :: map snd rlhs @ map snd rrhs)) |
509 fun mult(t,r) = |
509 fun mult(t,r) = |