def branch_bound

stelliferous@0.0.2.0 · proofs/binary_division.bend:102

import stelliferous@0.0.2.0/proofs/binary_division.bend as BinaryDivision
import Base
import stelliferous@0.0.2.0/proofs/nat_order.bend as Order

102def branch_bound(+g: Bool,+q: Nat,+s: Nat,+b: Nat,guard: {Nat.is_ge(s,b) == g : Bool},bound: {Nat.is_lt(s,
103      Nat.double(b)) == True{} : Bool}) -> {Nat.is_lt(remainder(branch(g,q,s,b)),b) == True{} : Bool}:
104  match g:
105    case False{}:
106      Order.ge_false(s,b,guard)
107    case True{}:
108      Order.sub_lt(s,b,b,Order.ge_true(s,b,guard),sum_bound(s,b,bound))

Uses (11)

Used by (1)