def bitseq.next_ge

bend-osdev-algo@0.1.0.0 · PROOF.bend:619

import bend-osdev-algo@0.1.0.0/PROOF.bend as PROOF
import Base
import bend-osdev-algo@0.1.0.0/bitmap.bend as M

619def bitseq.next_ge(size: Nat, start: Nat, want: Bool, bs: List<&2, Bool>, l: {Nat.is_lt(M.bitseq.next(size, start, want, bs), size) == True{} : Bool}) -> {Nat.is_le(start, M.bitseq.next(size, start, want, bs)) == True{} : Bool}:
620  match size:
621    case 0n:
622      Empty.absurd({Nat.is_le(start, 0n) == True{} : Bool}, absurd.ft(l))
623    case 1n+ +s:
624      match start want bs:
625        case 1n+st w Nil{}:
626          bitseq.next_ge(s, st, w, Nil{}, l)
627        case 1n+st w Con{h, t}:
628          bitseq.next_ge(s, st, w, t, l)
629        case 0n False{} Nil{}:
630          {==}
631        case 0n True{} Nil{}:
632          {==}
633        case 0n True{} Con{True{}, t}:
634          {==}
635        case 0n False{} Con{False{}, t}:
636          {==}
637        case 0n True{} Con{False{}, t}:
638          {==}
639        case 0n False{} Con{True{}, t}:
640          {==}

Uses (8)

Used by (2)