使用;对称性“;在Coq表达式中
我正试图找出如何在Coq中执行以下操作。假设我们已经证明了以下几点: 反引理:a=b->b=c->a=c 我们想用它来推断 b=a->c=b->a=c 无论我做什么,我似乎都不能让“应用trans_引理…”来工作。看起来我需要用反引理重写方程,这样变量就会以相同的顺序匹配。是否有一些简单的方法可以做到这一点而不必责备引理,例如,我是否可以对表达式中的方程应用“对称”策略使用;对称性“;在Coq表达式中,coq,Coq,我正试图找出如何在Coq中执行以下操作。假设我们已经证明了以下几点: 反引理:a=b->b=c->a=c 我们想用它来推断 b=a->c=b->a=c 无论我做什么,我似乎都不能让“应用trans_引理…”来工作。看起来我需要用反引理重写方程,这样变量就会以相同的顺序匹配。是否有一些简单的方法可以做到这一点而不必责备引理,例如,我是否可以对表达式中的方程应用“对称”策略 (我知道我可以不用引理证明我想要的东西,只需使用一些介绍和重写,但我想知道是否有一种语法方法可以重用我已经得到的结果。)你不能
(我知道我可以不用引理证明我想要的东西,只需使用一些介绍和重写,但我想知道是否有一种语法方法可以重用我已经得到的结果。)你不能对引理应用某些东西,从而神奇地改变它的形状。这里你可以做的是引入你的等式
b=a
和c=b
,然后应用你的引理,给你留下两个目标,这两个目标很容易被=
的对称性所证明
总的来说,我不认为你能以你希望的方式运用战术
现在还有几件事:
- 如果这里的
是Coq等式,实际上你不需要引理,因为传递性是由系统给你的=
- 你的引理应该是多态的:
。也许你给我们看这一个是因为你在一个部分,但是一旦你结束了这个部分,你应该推断出第二个目标反引理:对于所有{T}(abc:T),a=b->b=c->c=d
Coq.Classes.RelationClasses
中的Transitive
类型类感兴趣。)