Questions tagged «formal-methods»

10
Curry-Howard同构引起的最有趣的等价是什么?
在我编程生涯的后期,我遇到了Curry-Howard同构,也许这让我完全被它迷住了。这意味着对于每个编程概念,形式逻辑中都有一个精确的类似物,反之亦然。这是此类比喻的“基本”清单,让我无所适从: program/definition | proof type/declaration | proposition inhabited type | theorem/lemma function | implication function argument | hypothesis/antecedent function result | conclusion/consequent function application | modus ponens recursion | induction identity function | tautology non-terminating function | absurdity/contradiction tuple | conjunction (and) disjoint union | disjunction (or) -- corrected by …

11
Haskell函数是否可以通过正确性属性进行证明/模型检查/验证?
继续以下思想:是否存在可证明的现实世界语言? 我不认识你,但是我讨厌写我不能保证的代码。 在问完上述问题并得到了惊人的答复之后(谢谢!),我决定缩小对Haskell的可证明的,务实的方法的搜索范围。我选择Haskell是因为它实际上很有用(为此编写了许多 Web 框架,这似乎是一个不错的基准),而且我认为它在功能上非常严格,可能可以证明,或者至少允许测试不变式。 这就是我想要的(一直找不到) 我想要一个框架,可以查看以psudocode编写的Haskell函数: add(a, b): return a + b -并检查某些不变式是否保持在每个执行状态。我希望有一些正式的证明,但是我会选择模型检查器之类的东西。 在此示例中,不变的是给定值a和b,返回值始终是a + b之和。 这是一个简单的示例,但我认为这样的框架不可能存在。可以测试的函数的复杂度肯定会有一个上限(一个函数的10个字符串输入肯定会花费很长时间!),但这会鼓励更仔细地设计函数,与使用其他形式函数没什么不同方法。想象一下使用Z或B,当您定义变量/集时,您一定要确保为变量提供尽可能小的范围。如果您的INT永远不会超过100,请确保将其初始化!我认为,像这样的技术以及适当的问题分解应该能够令人满意地检查像Haskell这样的纯功能语言。 我对形式方法或Haskell还不是很有经验。让我知道我的想法是否合理,或者您认为haskell不适合?如果您建议使用其他语言,请确保其通过“具有网络框架”测试,并阅读原始问题:-)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.