有人能給我一個簡單的存在實例化和存在性泛化的例子嗎?當我想證明exists x, P
,其中P
是一些Prop
,它使用x
,我經常想要命名x
(如x0
或某些這樣的),並操縱體育這可能是一個在Coq?存在實例化和coq中的泛化
回答
如果你打算直接證明存在,而不是通過引理,你可以使用eapply ex_intro
。這引入了一個存在變量(編寫?42
)。然後你可以操縱這個詞。爲了完成證明,您需要最終提供一種方法來構建該變量的值。您可以使用instantiate
策略明確執行此操作,也可以隱式執行諸如eauto
之類的策略。
請注意,使用存在變量通常很麻煩。許多策略都假定所有術語都被實例化並可能隱藏存在於子目標中的存在;你只會在Qed
告訴你「Error:嘗試保存一個不完整的證明」時纔會發現。當你計劃很快例化它們時,你只應該使用存在變量。
下面是一個愚蠢的例子,說明使用eapply
。
Goal exists x, 1 + x = 3.
Proof. (* ⊢ exists x, 1 + x = 3 *)
eapply ex_intro. (* ⊢ 1 + ?42 = 3 *)
simpl. (* ⊢ S ?42 = 3 *)
apply f_equal. (* ⊢ ?42 = 2 *)
reflexivity. (* proof completed *)
Qed.
憑藉Coq後備箱,您可以在證明結束時將未經證實的存在變爲子目標 - 這是我長期以來的願望。 –
除[以前的評論](https://stackoverflow.com/questions/10686164/existential-instantiation-and-generalization-in-coq#comment13933112_10693631):這可以用[抓取存在變量。]來完成。 (https://coq.inria.fr/refman/Reference-Manual009.html#GrabEvars) –
- 1. Coq:實例化多重泛化?
- 2. 實例化泛型方法
- 3. C++泛型實例化
- 4. 實例化泛型類
- 5. 實例化Kotlin中的泛型類型
- 6. 實例化飛鏢中的泛型類
- 7. 在Coq中執行通用實例化的最佳方法
- 8. 如何在Coq中實例化一個假設的變量?
- 9. 從泛型類型的Swift實例化
- 10. 泛型類與特定的實例化
- 11. 泛型類型的實例化?
- 12. Java泛型和反射|如何實例化一個泛型類
- 13. 如何在實例化之前參數化泛型類?
- 14. 實例化一個泛型類(JAVA)
- 15. 通過反射實例化泛型
- 16. 實例化一個泛型類型
- 17. 不能實例化一個泛型類
- 18. 如何實例化泛型spring bean?
- 19. Scala - 使用參數實例化泛型?
- 20. 如何用JNI實例化Java泛型?
- 21. 如何實例泛型參數化類
- 22. 實例化泛型時發生InvalidCastException
- 23. 使用泛型類型實例化DynamoDBQueryExpression
- 24. 泛型通配符實例化
- 25. Spring BeanUtils無法實例化泛型類
- 26. 類型化別名泛化類的實例
- 27. `沒有更多的子目標,但Coq證明語言中存在非實例化的存在變量?
- 28. C#泛型類型的泛型對象實例化
- 29. 存儲實例序列化
- 30. 在初始化中實例化對象?
我知道過去有這樣的coq問題,但我懷疑隨着更多網站的推出,coq問題的最佳位置現在是http://cs.stackexchange.com/(不太滿意我自己的分裂,但它是生活的一個事實...) –
@andrewcooke [這還沒有得到確鑿的證實。](http://meta.cs.stackexchange.com/questions/52/scope-limits-on-證明助手 - 例如coq)我的感覺是,如果目標是要完成一個證明,Coq問題更關注於SO,如果目標是理解證明技術爲什麼工作,[cs.se]或不工作,但它是一條很細的線。專業知識遍佈於[so],[cs.se]和[cstheory.se]。 – Gilles