在 Coq 中区分目标
Discriminate goal in Coq
我对nat号码有两个条件:
H: a < b
H1: b < a
如何区分目标?
是否存在针对 < ?
的任何策略
使用lia
:
From Coq Require Import Lia.
Goal forall a b, a < b -> b < a -> False.
lia.
Qed.
您可以详细了解 lia
和其他算术决策程序 here。
供参考,在这种情况下进行手动证明并不难:
From mathcomp Require Import all_ssreflect.
Set Implicit Arguments.
Unset Strict Implicit.
Unset Printing Implicit Defensive.
Lemma foo a b (a_lt_b : a < b) : b < a -> False.
Proof. by rewrite ltnNge (ltnW a_lt_b). Qed.
我对nat号码有两个条件:
H: a < b
H1: b < a
如何区分目标? 是否存在针对 < ?
的任何策略使用lia
:
From Coq Require Import Lia.
Goal forall a b, a < b -> b < a -> False.
lia.
Qed.
您可以详细了解 lia
和其他算术决策程序 here。
供参考,在这种情况下进行手动证明并不难:
From mathcomp Require Import all_ssreflect.
Set Implicit Arguments.
Unset Strict Implicit.
Unset Printing Implicit Defensive.
Lemma foo a b (a_lt_b : a < b) : b < a -> False.
Proof. by rewrite ltnNge (ltnW a_lt_b). Qed.