我是新的勒柯克和我想證明什麼非常基本的證明,如果再在其他勒柯克
引理eq_if_eq:FORALL A1 + A2,(如果beq_nat A1 + A2那麼A否則A1)= A1 。
我努力通過下面發佈的解決方案,但我認爲必須有更好的方法。理想情況下,我想幹淨地在beq_nat a1 a2
的情況下將案例值放入假設列表中。是否有策略t
這樣使用t (beq_nat a1 a2)
產生兩個子分類,其中beq_nat a1 a2 = true
和另一個beq_nat a1 a2 = false
?顯然,induction
非常接近,但失去了它的歷史。
下面是我通過努力證明:
Proof.
Hint Resolve beq_nat_refl.
Hint Resolve beq_nat_eq.
Hint Resolve beq_nat_true.
Hint Resolve beq_nat_false.
intros.
compare (beq_nat a1 a2) true.
intros. assert (a1 = a2). auto.
replace (beq_nat a1 a2) with true. auto.
intros. assert (a1 <> a2). apply beq_nat_false.
apply not_true_is_false. auto.
assert (beq_nat a1 a2 = false). apply not_true_is_false. auto.
replace (beq_nat a1 a2) with false. auto.
Qed.