~/bend-docscommunity

proofs/math/typed/f64ratio.bend checks

raw source on the hub · import bend-collections-laws-math@1.0.0.0/proofs/math/typed/f64ratio.bend as F64ratio

21 imports
import Base
import ../../../spec/lib/common.bend as C
import ../../../spec/math/f64.bend as SF
import ../../../spec/math/w64.bend as SW
import ../../../src/math/f64.bend as F
import ../../../src/math/w64.bend as X
import ../../../src/math/u64.bend as WU
import ../../../src/math/num.bend as NE
import ../../../src/math/natural.bend as M
import ../../lib/nat.bend as N
import ../../lib/logic.bend as L
import ./w64add.bend as WA
import ./w64sh.bend as SH
import ./w64clz.bend as CZ
import ./f64bits.bend as FB
import ./f64light.bend as FL
import ./f64rtools.bend as RT
import ./f64nrp.bend as NR
import ./f64bl.bend as BL
import ./f64tools.bend as T
import ./f64conv.bend as CV

Definitions

def cz source · line 32 · raw

@+fuel:Nat -> @+w:0xf86f5f1d9a594d5a5cff999100e01d03/src/math/u64.U64 -> @+o:Bool -> @+ho:{0xf86f5f1d9a594d5a5cff999100e01d03/src/math/w64.odd(w) == o : Bool} -> {0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.ctz_go(fuel, w, o) == 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.tz(fuel, 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/w64.value(w)) : Nat}

def ctz_v source · line 47 · raw

@+w:0xf86f5f1d9a594d5a5cff999100e01d03/src/math/u64.U64 -> {0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.ctz(w) == 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.tz(64n, 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/w64.value(w)) : Nat}

def SMALL source · line 52 · raw

@+x:0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.F64 -> Result<&2, &2, 0xf86f5f1d9a594d5a5cff999100e01d03/src/math/num.NumError, 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.Rat>

def G source · line 55 · raw

@+s:Bool -> @+V:Nat -> @+k:Nat -> @+j:Nat -> Result<&2, &2, 0xf86f5f1d9a594d5a5cff999100e01d03/src/math/num.NumError, 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.Rat>

def small_v source · line 58 · raw

@+x:0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.F64 -> {0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.rtriple(0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.ar_small(0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.signbit(x), 0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.dmant(x), Nat.sub(3000n, 0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.dexp(x)), Nat.min(0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.ctz(0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.dmant(x)), Nat.sub(3000n, 0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.dexp(x))))) == SMALL(x) : Result<&2, &2, 0xf86f5f1d9a594d5a5cff999100e01d03/src/math/num.NumError, 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.Rat>}

def BIGR source · line 76 · raw

@+s:Bool -> @+n:Nat -> Result<&2, &2, 0xf86f5f1d9a594d5a5cff999100e01d03/src/math/num.NumError, 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.Rat>

def ab_c source · line 79 · raw

@+s:Bool -> @+w:0xf86f5f1d9a594d5a5cff999100e01d03/src/math/u64.U64 -> @+k:Nat -> @+hz:{Nat.is_eq(0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/w64.value(w), 0n) == False{} : Bool} -> @+c:Bool -> @+hc:{Nat.is_le(Nat.add(k, 0xf86f5f1d9a594d5a5cff999100e01d03/src/math/natural.bit_length(0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/w64.value(w))), 64n) == c : Bool} -> {0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.rtriple(0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.ar_big(s, w, k, c)) == BIGR(s, 0xf86f5f1d9a594d5a5cff999100e01d03/spec/lib/common.shift(k, 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/w64.value(w))) : Result<&2, &2, 0xf86f5f1d9a594d5a5cff999100e01d03/src/math/num.NumError, 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.Rat>}

def big_v source · line 106 · raw

@+x:0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.F64 -> @+hc:{Nat.is_le(3000n, 0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.dexp(x)) == True{} : Bool} -> {0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.rtriple(0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.ar_big(0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.signbit(x), 0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.dmant(x), Nat.sub(0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.dexp(x), 3000n), Nat.is_le(Nat.add(Nat.sub(0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.dexp(x), 3000n), Nat.sub(64n, 0xf86f5f1d9a594d5a5cff999100e01d03/src/math/w64.clz(0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.dmant(x)))), 64n))) == BIGR(0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.sign(x), 0xf86f5f1d9a594d5a5cff999100e01d03/spec/lib/common.shift(Nat.sub(0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.xexp(x), 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.zb), 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.mant(x))) : Result<&2, &2, 0xf86f5f1d9a594d5a5cff999100e01d03/src/math/num.NumError, 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.Rat>}

def FINR source · line 128 · raw

@+x:0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.F64 -> @+c:Bool -> Result<&2, &2, 0xf86f5f1d9a594d5a5cff999100e01d03/src/math/num.NumError, 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.Rat>

def arf_c source · line 131 · raw

@+x:0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.F64 -> @+c:Bool -> @+hc:{Nat.is_le(3000n, 0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.dexp(x)) == c : Bool} -> {0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.rtriple(0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.ar_fin(x, c)) == FINR(x, c) : Result<&2, &2, 0xf86f5f1d9a594d5a5cff999100e01d03/src/math/num.NumError, 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.Rat>}

def arz_c source · line 138 · raw

@+x:0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.F64 -> @+iz:Bool -> {0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.rtriple(0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.ar_z(x, iz)) == 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.pick(Result<&2, &2, 0xf86f5f1d9a594d5a5cff999100e01d03/src/math/num.NumError, 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.Rat>, iz, Done{0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.Rat{False{}, 0n, 0n}}, FINR(x, Nat.is_le(0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.zb, 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.xexp(x)))) : Result<&2, &2, 0xf86f5f1d9a594d5a5cff999100e01d03/src/math/num.NumError, 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.Rat>}

def ar_c source · line 147 · raw

@+x:0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.F64 -> @+t:Bool -> @+z:Bool -> @+hz:{0xf86f5f1d9a594d5a5cff999100e01d03/src/math/w64.is_zero(0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.frac(x)) == z : Bool} -> {0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.rtriple(0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.ar_cls(x, t)) == 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.pick(Result<&2, &2, 0xf86f5f1d9a594d5a5cff999100e01d03/src/math/num.NumError, 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.Rat>, Bool.and(t, Bool.not(z)), Fail{0xf86f5f1d9a594d5a5cff999100e01d03/src/math/num.BadDomain{}}, 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.pick(Result<&2, &2, 0xf86f5f1d9a594d5a5cff999100e01d03/src/math/num.NumError, 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.Rat>, Bool.and(t, z), Fail{0xf86f5f1d9a594d5a5cff999100e01d03/src/math/num.Overflow{}}, 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.pick(Result<&2, &2, 0xf86f5f1d9a594d5a5cff999100e01d03/src/math/num.NumError, 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.Rat>, 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.is_zero(x), Done{0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.Rat{False{}, 0n, 0n}}, FINR(x, Nat.is_le(0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.zb, 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.xexp(x)))))) : Result<&2, &2, 0xf86f5f1d9a594d5a5cff999100e01d03/src/math/num.NumError, 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.Rat>}

def as_integer_ratio_value source · line 157 · raw

@+x:0xf86f5f1d9a594d5a5cff999100e01d03/src/math/f64.F64 -> 0xf86f5f1d9a594d5a5cff999100e01d03/spec/math/f64.AsIntegerRatio.value(x)