Statistics
Functions
def widenBelow (1 xs : (Array Float) | Array.size xs > 0) (t1 : Float) (t2 : Float | t2 ≥ t1) : {r : (Array Float) | Array.size r > 0 && fracBelow r t2 ≥ fracBelow xs t1}
def widenAbove (1 xs : (Array Float) | Array.size xs > 0) (t1 : Float) (t2 : Float | t2 ≤ t1) : {r : (Array Float) | Array.size r > 0 && fracAbove r t2 ≥ fracAbove xs t1}
def belowComplement (1 xs : (Array Float) | Array.size xs > 0) (t : Float) : {r : (Array Float) | Array.size r > 0 && fracBelow r t = 1.0 - fracAbove xs t}
def betweenFromBelow (1 xs : (Array Float) | Array.size xs > 0) (lo : Float) (hi : Float | hi ≥ lo) : {r : (Array Float) | Array.size r > 0 && fracBetween r lo hi ≥ fracBelow xs hi - fracBelow xs lo}
def mean (borrow xs : (Array Float) | Array.size xs > 0) : {m : Float | m = sampleMean xs}
def std (borrow xs : (Array Float) | Array.size xs > 0) : {s : Float | s = sampleStd xs}
def var (borrow xs : (Array Float) | Array.size xs > 0) : {v : Float | v = sampleVar xs}
def min (borrow xs : (Array Float) | Array.size xs > 0) : {m : Float | m = sampleMin xs}
def max (borrow xs : (Array Float) | Array.size xs > 0) : {m : Float | m = sampleMax xs}
def sum (borrow xs : (Array Float) | Array.size xs > 0) : Float
def quantile (borrow xs : (Array Float) | Array.size xs > 0) (q : Float) : Float
def prod (borrow xs : (Array Float) | Array.size xs > 0) : Float
def cumsum (borrow xs : (Array Float) | Array.size xs > 0) : (Array Float)
def cumprod (borrow xs : (Array Float) | Array.size xs > 0) : (Array Float)
def quartiles (borrow xs : (Array Float) | Array.size xs > 0) : (Array Float)
def unique (borrow xs : (Array Float) | Array.size xs > 0) : (Array Float)
def argmax (borrow xs : (Array Float) | Array.size xs > 0) : Float
def argmin (borrow xs : (Array Float) | Array.size xs > 0) : Float
def percentile (borrow xs : (Array Float) | Array.size xs > 0) (p : Float) : Float
def corrcoef (borrow xs : (Array Float) | Array.size xs > 0) (borrow ys : (Array Float) | Array.size ys = Array.size xs) : Float
def cov (borrow xs : (Array Float) | Array.size xs > 0) (borrow ys : (Array Float) | Array.size ys = Array.size xs) : Float
def proportionBelow (borrow xs : (Array Float) | Array.size xs > 0) (t : Float) : {f : Float | f = fracBelow xs t && 0.0 ≤ f && f ≤ 1.0}
def proportionAbove (borrow xs : (Array Float) | Array.size xs > 0) (t : Float) : {f : Float | f = fracAbove xs t && 0.0 ≤ f && f ≤ 1.0}
def proportionBetween (borrow xs : (Array Float) | Array.size xs > 0) (lo : Float) (hi : Float | hi ≥ lo) : {f : Float | f = fracBetween xs lo hi && 0.0 ≤ f && f ≤ 1.0}
Uninterpreted
Functions declared as def f ... = uninterpreted: only their signature is known to the verifier; they have no body.
def fracBelow : (xs : (Array Float)) → (t : Float) → Float
def fracAbove : (xs : (Array Float)) → (t : Float) → Float
def fracBetween : (xs : (Array Float)) → (lo : Float) → (hi : Float) → Float
def sampleMean : (xs : (Array Float)) → Float
def sampleVar : (xs : (Array Float)) → Float
def sampleStd : (xs : (Array Float)) → Float
def sampleMin : (xs : (Array Float)) → Float
def sampleMax : (xs : (Array Float)) → Float