def bitw.fls_zero

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

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

360def bitw.fls_zero(n: Nat, w: Word(n), e: {A.bitw.fls(n, w) == 0n : Nat}) -> {w == Word.zero(n) : Word(n)}:
361  match n:
362    case 0n:
363      match w:
364        case WNil{}:
365          {==}
366    case 1n+ +p:
367      match w:
368        case WCon{+b, +t}:
369          +e2 = e
370          %bitw.fls_zero(p, t, bitw.fls_zero.m(A.bitw.fls(p, t), b, e2)) : {WCon{b, t} == WCon{False{}, _} : Word(1n+p)}
371          %bitw.fls_zero.b(A.bitw.fls(p, t), b, e2) : {WCon{b, t} == WCon{_, t} : Word(1n+p)}
372          {==}

Uses (9)

Used by (1)