def internal_mod_go_le

bend-mathlib@0.8.1.0 · nat.bend:1930

import bend-mathlib@0.8.1.0/nat.bend as Nat
import Base

1930def internal_mod_go_le(n: Nat, m: Nat, -d: Nat, +r: Nat) -> le(Pair.snd(Nat, Nat, Nat.divmod.go(n, m, d, r)), Nat.add(r, m)):
1931  match n m:
1932    case 0n k:
1933      le_add_right(r, k)
1934    case 1n++np 0n:
1935      %internal_div_add_zero_r(r) : le(Pair.snd(Nat, Nat, Nat.divmod.go(np, r, 1n+d, 0n)), _)
1936      internal_mod_go_le(np, r, 1n+d, 0n)
1937    case 1n++np 1n++mp:
1938      %Equal.sym(Nat, Nat.add(r, 1n+mp), 1n+Nat.add(r, mp), add_succ(r, mp)) : le(Pair.snd(Nat, Nat, Nat.divmod.go(np, mp, d, 1n+r)), _)
1939      internal_mod_go_le(np, mp, d, 1n+r)

Uses (9)

Used by (1)