def word.cmp_nat.d

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

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

863def word.cmp_nat.d(a: Nat, b: Nat, x: Bool, y: Bool) -> {Word.cmp.fin(x, y, Nat.cmp(a, b)) == Nat.cmp(nat.dbit(x, a), nat.dbit(y, b)) : Cmp}:
864  match a b:
865    case 0n 0n:
866      match x y:
867        case True{} True{}:
868          {==}
869        case True{} False{}:
870          {==}
871        case False{} True{}:
872          {==}
873        case False{} False{}:
874          {==}
875    case 0n 1n+bp:
876      match x y:
877        case True{} True{}:
878          {==}
879        case True{} False{}:
880          {==}
881        case False{} True{}:
882          {==}
883        case False{} False{}:
884          {==}
885    case 1n+ap 0n:
886      match x y:
887        case True{} True{}:
888          {==}
889        case True{} False{}:
890          {==}
891        case False{} True{}:
892          {==}
893        case False{} False{}:
894          {==}
895    case 1n+ +ap 1n+ +bp:
896      match x y:
897        case True{} True{}:
898          word.cmp_nat.d(ap, bp, True{}, True{})
899        case True{} False{}:
900          word.cmp_nat.d(ap, bp, True{}, False{})
901        case False{} True{}:
902          word.cmp_nat.d(ap, bp, False{}, True{})
903        case False{} False{}:
904          word.cmp_nat.d(ap, bp, False{}, False{})

Uses (6)

Used by (1)