equal
deleted
inserted
replaced
528 in |
528 in |
529 |
529 |
530 fun divmod_proc rule = binary_proc (fn ctxt => fn ((m, t), (n, u)) => |
530 fun divmod_proc rule = binary_proc (fn ctxt => fn ((m, t), (n, u)) => |
531 if n = 0 then NONE |
531 if n = 0 then NONE |
532 else |
532 else |
533 let val (k, l) = IntInf.divMod (m, n); |
533 let val (k, l) = Integer.div_mod m n; |
534 fun mk_num x = HOLogic.mk_number HOLogic.intT x; |
534 fun mk_num x = HOLogic.mk_number HOLogic.intT x; |
535 in SOME (rule OF [prove ctxt (t == plus (mult u (mk_num k)) (mk_num l))]) |
535 in SOME (rule OF [prove ctxt (t == plus (mult u (mk_num k)) (mk_num l))]) |
536 end); |
536 end); |
537 |
537 |
538 end; |
538 end; |