def ud.dm_round

bend-osdev-u32@0.1.0.0 · PROOF_div.bend:131

import bend-osdev-u32@0.1.0.0/PROOF_div.bend as PROOFDiv
import Base
import bend-osdev-u32@0.1.0.0/LAWS.bend as UL

131# finishing a round: m steps, then one more starts the next
132def ud.dm_round(+m: Nat, +n: Nat, +d: Nat, +r: Nat) -> {Nat.divmod.go(Nat.add(m, 1n+n), m, d, r) == Nat.divmod.go(n, Nat.add(m, r), 1n+d, 0n) : Nat & Nat}:
133  match m:
134    case 0n:
135      {==}
136    case 1n+mp:
137      %UL.nat_add_succ(mp, r) : {Nat.divmod.go(Nat.add(1n+mp, 1n+n), 1n+mp, d, r) == Nat.divmod.go(n, _, 1n+d, 0n) : Nat & Nat}
138      ud.dm_round(mp, n, d, 1n+r)

Uses (5)

Used by (1)