LLM 无法证明你的代码正确,但它们可以撰写实现证明的样板代码
净室验证需要生成并消解证明义务。以下介绍 LLM 如何自动化注解和验证条件生成,让你可以专注于真正困难的证明。
净室软件工程要求你在编译之前就证明代码的正确性。这听起来很高尚,直到你花三个小时为一个对十个整数进行排序的函数编写循环不变式。 瓶颈不在于证明本身,而在于样板代码。生成验证条件、用不变式注解循环、以及为 Dafny、Why3 或 Z3 格式化断言,这些工作枯燥乏味、容易出错,而且毫无乐趣。LLM…
2 posts
净室验证需要生成并消解证明义务。以下介绍 LLM 如何自动化注解和验证条件生成,让你可以专注于真正困难的证明。
净室软件工程要求你在编译之前就证明代码的正确性。这听起来很高尚,直到你花三个小时为一个对十个整数进行排序的函数编写循环不变式。 瓶颈不在于证明本身,而在于样板代码。生成验证条件、用不变式注解循环、以及为 Dafny、Why3 或 Z3 格式化断言,这些工作枯燥乏味、容易出错,而且毫无乐趣。LLM…
大语言模型能写出质量惊人的Rust代码,但当你要求形式化证明时,它们会幻觉出不变量,并编造出没有任何验证器接受的语法。本文介绍它们真正做对了什么、在哪里崩溃,以及如何善用它们。
LLM能写出可以编译甚至通过的Rust代码。但它们目前还无法可靠地写出形式化证明,来证实代码对所有可能的输入都是正确的。…