Coq 混淆“程序”策略产生的义务
我对coq认证助理还很陌生,现在仍在努力。 我遇到了一个我不知道如何处理的案例:我试图使用Coq 混淆“程序”策略产生的义务,coq,Coq,我对coq认证助理还很陌生,现在仍在努力。 我遇到了一个我不知道如何处理的案例:我试图使用程序定点策略来削弱对我的代码的要求,以便稍后证明所需的属性,即所谓的义务。虽然其中大多数都很简单,但有两个义务生成目标的形式为[a-quity-simplee-xpr]=[my function name]\u Responsibility\u 3,一般来说,这些目标是指以前证明的其他义务。我试着展开和替换,但没有真正的帮助。 如果这些问题没有通用的解决方案,我可以发送证明脚本+添加一些上下文的义务截图 先
程序定点
策略来削弱对我的代码的要求,以便稍后证明所需的属性,即所谓的义务
。虽然其中大多数都很简单,但有两个义务生成目标的形式为[a-quity-simplee-xpr]=[my function name]\u Responsibility\u 3
,一般来说,这些目标是指以前证明的其他义务。我试着展开和替换,但没有真正的帮助。
如果这些问题没有通用的解决方案,我可以发送证明脚本+添加一些上下文的义务截图
先谢谢你 可能发生的一件事是,您拥有同时包含“数据”和“证明”的类型(通常,如果您试图使用
sig
或包含证明项的自定义归纳类型进行细化),并且您的函数需要命题相等的证明,对于这种依赖类型来说,它通常太强了
证明术语应该是无关的:最简单的解决方法是使用证明无关性
(在stdlib中)中的公理来解决该目标
有一些没有axiom的方法,但我相信它们需要更多的工作/专业知识 可能发生的一件事是,您拥有同时包含“数据”和“证明”的类型(通常,如果您试图使用
sig
或包含证明项的自定义归纳类型进行细化),并且您的函数需要命题相等的证明,对于这种依赖类型来说,它通常太强了
证明术语应该是无关的:最简单的解决方法是使用证明无关性
(在stdlib中)中的公理来解决该目标
有一些没有axiom的方法,但我相信它们需要更多的工作/专业知识 我没有使用细化类型(sig)。我所做的唯一一件事是:我有一个
P
类型tx
的值,它被传递给函数,该函数接受typey
类型的值。我知道x=y
。但是这个属性必须被明确证明,coq不能自动证明。我没有使用细化类型(sig)。我所做的唯一一件事是:我有一个P
类型tx
的值,它被传递给函数,该函数接受typey
类型的值。我知道x=y
。但是这个属性必须被明确证明,coq不能自动证明。