软件基础基础 - 定理 lower_grade_lowers 需要证明蕴涵 Eq = Lt -> Eq = Lt

问题描述 投票:0回答:1

我正在独自完成软件基础,并且陷入了lower_grade_lowers的最后一个项目。我的定理很好地遵循了提示,直到最终的情况,这显然是问题的症结所在,但我不会发布示例,因为它用于家庭作业。我的问题是子目标的情况:

grade_comparison (Grade F Minus) (Grade F Minus) = Lt ->
grade_comparison (lower_grade (Grade F Minus)) (Grade F Minus) = Lt

grade_comparison 是返回归纳法的定义

Inductive comparison : Set :=
  | Eq : comparison        (* "equal" *)
  | Lt : comparison        (* "less than" *)
  | Gt : comparison.       (* "greater than" *)

按照帮助注释中的建议使用 lower_grade_F_Minus 然后进行简化,我得到一个似乎应该很容易证明的命题。要么

grade_comparison (Grade F Minus) (Grade F Minus) = Lt ->
grade_comparison (Grade F Minus) (Grade F Minus) = Lt

或简化

Eq = Lt -> Eq = Lt

鉴于条件条件的前提总是假的,证明这个命题似乎微不足道,但是从网上搜索如何在策略中实际写出这个命题来看,这听起来只能用直觉命题演算来覆盖,而直觉命题演算还没有被证明。文本中的这一点已涵盖,所以看起来我的方法超出了文本,我错过了一些东西。

有没有一种更简单的方法来证明一个前提错误的命题总是正确的,仅使用介绍、解构、简化、重写和反身性(这是迄今为止所涵盖的唯一策略)?

coq coq-tactic logical-foundations
1个回答
0
投票

自然地,当我发布这个问题时,我会重新阅读之前的示例并过度思考这个问题。只需使用假设进行简单重写即可将蕴涵转化为微不足道的等式,并且评分者会接受该解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.