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