对于足够多态的类型,参数性可以唯一地决定函数本身(详见 )。例如,类型为forall t. t -> t的唯一总函数是标识函数id。
有可能在Idris中陈述并证明这一点吗?(如果不能在Idris内部证明这一点,那是真的吗?)下面是我的尝试(我知道函数相等在Idris中不是一个基本概念,因此我断言,任何泛型类型</
对于依赖类型,可以为排序列表定义归纳类型,例如:
data IsSorted : {a: Type} -> (ltRel: (a -> a -> Type)) -> List a -> Type where在Coq中,人们还可以编写一个函数Fixpoint is_sorted: {A: Type} (l: List A) : bool,然后通过unfold is_sorted的定义,使用像is_sortedsomeList = true这样的类型</
假设我想定义一种证明,某一向量有一个确定的和。我也希望这个证明适用于任何Monoid类型的t。我的最后一个尝试是定义一个带有大写字母名称的helper常量,这样Idris就不会将其与绑定变量混淆: ZERO : Monoid t => t
data HasSumrem xs -> HasSum (x <+> rem) (x :: xs) 但是现在它不能猜测End