我目前正在学习模型检查(模态逻辑、LTL、CTL、SAL模型检查器等),并在业余时间学习Idris,它是一种支持依赖类型的强类型函数式编程语言。由于我同时涉及模型检查和Idris,所以我开始好奇Idris与形式方法和模型检查的关系。
在学习模型检查时,感觉大多数举例都是关于验证用命令式方式编写的系统或硬件组件。因此,我对在强类型函数式编程语言,尤其是像Idris这样的依赖类型语言中进行模型检查的相关性感到困惑,因为在这些语言中,类型检查器似乎已经非常出色地验证了正确性。 然而,我的直觉告诉我,模型检查可能与不保证终止的部分函数有关。
在使用像Idris这样的强类型和依赖类型编程语言时,模型检查是否相关?