簡體   English   中英

在Coq中,將目標從“S x = S y”改為“x = y”的策略

[英]In Coq, which tactic to change the goal from `S x = S y` to `x = y`

我想將目標從S x = S y改為x = y 這就像inversion ,但是為了目標而不是假設。

這樣的策略似乎是合法的,因為當我們有x = y ,我們可以簡單地使用rewritereflexivity來證明目標。

目前我總是發現自己使用assert (x = y)來引入一個新的子目標,但是當xy是復雜的表達式時,編寫它是很繁瑣的。

戰術apply f_equal. 任何構造函數或函數都會做你想要的。

lema f_equal顯示對於任何函數f ,你總是有x = y -> fx = fy 這允許您將目標從fx = fy減少到x = y

Proposition myprop (x y: nat) (H : x = y) : S x = S y.
Proof.
  apply f_equal.  assumption.
Qed.

injection策略實現了相反的含義 - 對於某些函數,特別是對於構造函數, fx = fy -> x = y 。)

暫無
暫無

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

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