我正在与 Idris 一起工作,并且我已经为概率编写了一个类型 -Float介于0.0和之间1.0:
data Probability : Type where
MkProbability : (x : Float) -> ((x >= 0.0) && (x <= 1.0) = True) -> Probability
我希望能够将它们相乘:
multProbability : Probability -> Probability -> Probability
multProbability (MkProbability p1 proof1) (MkProbability p2 proof2) =
MkProbability (p1 * p2) ???
我如何证明这p1 * p2将永远是一个概率?