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}