Coq 形式化时间和空间复杂性需求

Coq 形式化时间和空间复杂性需求,coq,agda,idris,Coq,Agda,Idris,∀ a b∈ ℕ, B≠ 0→ ∃ ! q r∈ ℕ, a=q×b+r∧ r

∀ a b∈ ℕ, B≠ 0→ ∃ ! q r∈ ℕ, a=q×b+r∧ r
是使用依赖类型的标准示例。如何扩展此类型,使其同时表示时间和空间复杂性要求?

尼尔斯·安德斯·丹尼尔森在Agda中使用单子来跟踪时间复杂性:与所研究复杂性“相关”的子计算通过使每个子计算“一次勾选”来明确标记。然后,通过跟踪monad类型索引中的记号总数,将这些子计算进行一元组合


细节在他的论文中有描述。

Twan var Laarhoven在Agda中写了一些关于时间复杂性的文章,你可以查看一下。据我所知,这些语言没有任何表示时间和/或空间复杂性的原生方式,因此您必须自己定义所需的构建块。我还发现这两篇论文使用了coq:and中的monad方法