簡體   English   中英

用矛盾的定理將假設重寫為假

[英]rewriting hypothesis to false with a contradictory theorem

我想表明

[seq q x t | x <- iota 0 (t + 1)] != [::]

我決定破壞iota 0 (t + 1)因為我有一個引理說:

iota 0 (t + 1) != [::]

所以 destruct 的第一種情況應該有iota 0 (t + 1) = [::] ,根據提到的定理,它是錯誤的,我可以區分。 如何使用引理重寫第一個破壞案例中的方程式? 我想不明白。

謝謝。

你不需要破壞。 請注意, iota是由其第二個變量的遞歸定義的。 您當前的目標無法簡化,因為t + 1不是以構造函數開始的。 但是,您可以by rewrite addn1將其放入可以解決的形式。

除了計算之外,正如 Arthur 所建議的那樣,您有時可以使用對位來處理非等式( Search "contra"以獲得變體版本)。

例如,在您的情況下,您可以顯示,如果您添加一些單射性約束:

Lemma foo (q : nat -> nat -> nat) t (injq: injective (q^~ t)) :
  iota 0 (t + 1) != [::] -> [seq q x t | x <- iota 0 (t + 1)] != [::].
Proof.
apply: contra_neq.
rewrite [RHS]( _ : [::] = [seq q x t | x <- [::]]) //.
exact: inj_map. 
Qed.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM