Statistics
Functions
def widenBelow (xs: {x : Array Float | Array.size x > 0}) (t1: Float) (t2: {t : Float | t >= t1}) : {r : Array Float | Array.size r > 0 && fracBelow r t2 >= fracBelow xs t1}
def widenAbove (xs: {x : Array Float | Array.size x > 0}) (t1: Float) (t2: {t : Float | t <= t1}) : {r : Array Float | Array.size r > 0 && fracAbove r t2 >= fracAbove xs t1}
def belowComplement (xs: {x : Array Float | Array.size x > 0}) (t: Float) : {r : Array Float | Array.size r > 0 && fracBelow r t == 1.0 - fracAbove xs t}
def betweenFromBelow (xs: {x : Array Float | Array.size x > 0}) (lo: Float) (hi: {h : Float | h >= lo}) : {r : Array Float | Array.size r > 0 && fracBetween r lo hi >= fracBelow xs hi - fracBelow xs lo}
def mean (xs: {x : Array Float | Array.size x > 0}) : {m : Float | m == sampleMean xs}
def std (xs: {x : Array Float | Array.size x > 0}) : {s : Float | s == sampleStd xs}
def var (xs: {x : Array Float | Array.size x > 0}) : {v : Float | v == sampleVar xs}
def min (xs: {x : Array Float | Array.size x > 0}) : {m : Float | m == sampleMin xs}
def max (xs: {x : Array Float | Array.size x > 0}) : {m : Float | m == sampleMax xs}
def sum (xs: {x : Array Float | Array.size x > 0}) : Float
def quantile (xs: {x : Array Float | Array.size x > 0}) (q: Float) : Float
def prod (xs: {x : Array Float | Array.size x > 0}) : Float
def cumsum (xs: {x : Array Float | Array.size x > 0}) : Array Float
def cumprod (xs: {x : Array Float | Array.size x > 0}) : Array Float
def quartiles (xs: {x : Array Float | Array.size x > 0}) : Array Float
def unique (xs: {x : Array Float | Array.size x > 0}) : Array Float
def argmax (xs: {x : Array Float | Array.size x > 0}) : Float
def argmin (xs: {x : Array Float | Array.size x > 0}) : Float
def percentile (xs: {x : Array Float | Array.size x > 0}) (p: Float) : Float
def corrcoef (xs: {x : Array Float | Array.size x > 0}) (ys: {y : Array Float | Array.size y == Array.size xs}) : Float
def cov (xs: {x : Array Float | Array.size x > 0}) (ys: {y : Array Float | Array.size y == Array.size xs}) : Float
def proportionBelow (xs: {x : Array Float | Array.size x > 0}) (t: Float) : {f : Float | f == fracBelow xs t && (0.0 <= f && f <= 1.0)}
def proportionAbove (xs: {x : Array Float | Array.size x > 0}) (t: Float) : {f : Float | f == fracAbove xs t && (0.0 <= f && f <= 1.0)}
def proportionBetween (xs: {x : Array Float | Array.size x > 0}) (lo: Float) (hi: {h : Float | h >= 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