作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在阅读 ssreflect 教程,which reads :
Below, we prove the ... by translating the propositional statement into its boolean counterpart, which is easily proved using brute force. This proof technique is called reflection. Ssreflect’s design allows for and ssreflect’s spirit recommends wide use of such a technique.
forall A:Prop, A \/ ~A
)?
Since it is usually used locally to handle efficiently small parts of the proofs (instead of being used in the overall proof structure), this is called small scale reflection, hence the name ssreflect.
case
到目前为止我所阅读的分析)的这种“蛮力”风格如何比 Vanilla 更有效考克方式。对我来说,蛮力不是很直观,并且在您看到结果之前不容易预先猜测。
最佳答案
Ssreflect 不假设排中间,但库的大部分内容都建立在 bool 命题上,即类型 bool
,它确实认为
forall b : bool, b = true \/ b = false
通常使用隐式
is_true
编写上述等效版本。类型转换,如:
forall b : bool, b \/ ~ b.
“可反射”谓词是那些在
bool
中有一个版本的谓词。 ;一个很好的例子是自然数之间的“小于或等于”关系。
le
被编码为归纳类型,而在 ssreflect 中它是一个计算函数
leq: nat -> nat -> bool
.
leq
由于以下原因,证明函数更“有效”:假设您想证明
102 < 203
.使用标准的 Coq 定义,您将不得不构建一个大的证明项,您必须明确地对证明的每一步进行编码。
erefl
,见证算法返回
true
.除了 IMO 的许多其他优势外,这在大型证明中至关重要。
关于coq - ssreflect 是否假定排中间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34520944/
我是一名优秀的程序员,十分优秀!