我正在与 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
将永远是一个概率?