~/bend-docscommunity

proofs/u32_comparison.bend checks

raw source on the hub · import stelliferous@0.0.2.0/proofs/u32_comparison.bend as U32_comparison

1 import
import Base

Laws

law digits provedsource · line 10 · raw

@+a:Nat -> @+b:Nat -> @+ab:Bool -> @+bb:Bool -> {Nat.cmp(digit(ab, a), digit(bb, b)) == Word.cmp.fin(ab, bb, Nat.cmp(a, b)) : Cmp}

law word provedsource · line 51 · raw

@+n:Nat -> @+a:Word(n) -> @+b:Word(n) -> {Word.cmp(n, a, b) == Nat.cmp(Word.to_nat(n, a), Word.to_nat(n, b)) : Cmp}

law uint provedsource · line 87 · raw

@+a:U32 -> @+b:U32 -> {U32.cmp(a, b) == Nat.cmp(U32.to_nat(a), U32.to_nat(b)) : Cmp}

Definitions

def digit source · line 3 · raw

@bit:Bool -> @n:Nat -> Nat

def lt source · line 96 · raw

@+a:U32 -> @+b:U32 -> {U32.is_lt(a, b) == Nat.is_lt(U32.to_nat(a), U32.to_nat(b)) : Bool}

def le source · line 100 · raw

@+a:U32 -> @+b:U32 -> {U32.is_le(a, b) == Nat.is_le(U32.to_nat(a), U32.to_nat(b)) : Bool}

def eq source · line 104 · raw

@+a:U32 -> @+b:U32 -> {U32.is_eq(a, b) == Nat.is_eq(U32.to_nat(a), U32.to_nat(b)) : Bool}

def ge source · line 108 · raw

@+a:U32 -> @+b:U32 -> {U32.is_ge(a, b) == Nat.is_ge(U32.to_nat(a), U32.to_nat(b)) : Bool}