def un.nc

bend-osdev-u32@0.1.0.0 · PROOF.bend:367

import bend-osdev-u32@0.1.0.0/PROOF.bend as PROOF
import Base

367def un.nc(x: Nat, y: Nat, a: Bool, b: Bool) -> {Nat.cmp(un.bv(a, x), un.bv(b, y)) == Word.cmp.fin(a, b, Nat.cmp(x, y)) : Cmp}:
368  match x y:
369    case 0n 0n:
370      match a b:
371        case False{} False{}:
372          {==}
373        case False{} True{}:
374          {==}
375        case True{} False{}:
376          {==}
377        case True{} True{}:
378          {==}
379    case 0n 1n+q:
380      match a b:
381        case False{} False{}:
382          {==}
383        case False{} True{}:
384          {==}
385        case True{} False{}:
386          {==}
387        case True{} True{}:
388          {==}
389    case 1n+p 0n:
390      match a b:
391        case False{} False{}:
392          {==}
393        case False{} True{}:
394          {==}
395        case True{} False{}:
396          {==}
397        case True{} True{}:
398          {==}
399    case 1n+p 1n+q:
400      match a b:
401        case False{} False{}:
402          un.nc(p, q, False{}, False{})
403        case False{} True{}:
404          un.nc(p, q, False{}, True{})
405        case True{} False{}:
406          un.nc(p, q, True{}, False{})
407        case True{} True{}:
408          un.nc(p, q, True{}, True{})

Uses (6)

Used by (1)