當我在應用腳本中使用apply (rule)
時,通常會選擇適當的規則。對於結構化證明中的proof
也是如此。我可以在哪裏學習/查找使用的規則的名稱?被聲明爲Pure.intro
/intro
/iff
(或其?
或!
變種之一)'適用(規則)'或'證明'使用什麼規則?
7
A
回答
5
您可以嘗試使用rule_trace
如下:
lemma "a ∧ b"
using [[rule_trace]]
apply rule
將在輸出中顯示:
rules:
?P ⟹ ?Q ⟹ ?P ∧ ?Q
?P ⟹ ?Q ⟹ ?P ∧ ?Q
proof (prove): step 2
goal (2 subgoals):
1. a
2. b
如果規則名稱是必需的,您可以嘗試使用find_theorems
;我不確定他們是否可以直接確定。
3
一切都被認爲是默認的規則出臺(即,如果沒有目前的事實在鏈接)。類似地,聲明爲Pure.elim
/elim
/iff
的所有內容都被認爲是默認的消除規則(即,如果鏈接當前事實)。通常後面的聲明優先於先前的聲明(至少如果使用相同種類的聲明...混合,例如Pure.intro?
與intro
等可能會以不同方式出現)。
但是,這只是回答原則上考慮哪種規則。我不知道直接找出應用哪條規則的方法。但直接在find_theorems intro
的正上方找到正確的規則是比較直接的。例如,
lemma "A & B"
find_theorems intro
proof
會告訴你,可以作爲引進規則應用到目標A & B
所有規則。其中之一是由proof
應用的默認規則(您將通過您獲得的子目標識別它)。
對於消除規則,你可以使用,例如,
lemma assumes "A | B" shows "P"
using assms
find_theorems elim
proof
3
其他答案已經告訴你如何確定rule
應用哪些引理。請注意,proof
不會調用rule
,但方法default
。在大多數情況下,default
與rule
的功能相同,但例如,以證明它稱爲unfold_locales
的區域謂詞。
我不知道有什麼方法可以查看實際發生的情況。
相關問題
- 1. 爲什麼不使用規則引擎?或規則引擎
- 2. 適用規則
- 3. 什麼規則適用於MIME邊界?
- 4. Kohana的驗證規則(該規則或該規則)
- 5. 驗證規則和業務規則有什麼區別?
- 6. 驗證規則不適用於CakePHP
- 7. jQuery驗證規則不會適用
- 8. jQuery驗證規則不適用於PHP
- 9. 使用規則
- 10. Grails - CSS規則不適用
- 11. 重寫規則不適用
- 12. designer.cs代使用什麼規則
- 13. 重用laravel驗證規則
- 14. jQuery驗證插件適用於某些規則,但忽略其他規則
- 15. 全球規則適用於所有現有規則
- 16. 使用PMD規則
- 17. 在使用C++之前聲明的規則是什麼?
- 18. 使用規則的自適應進程
- 19. 規格尺寸的規則是什麼?
- 20. 使用matplotlib說明Trapzeium/Simpson規則
- 21. 什麼是輸入規則?
- 22. 什麼是80列規則?
- 23. 什麼是「級聯規則」?
- 24. Firebase規則:什麼是.contains()?
- 25. 這是什麼CSS規則?
- 26. 規則驗證color_id
- 27. Jquery - 驗證 - 規則
- 28. CodeIgniter驗證規則
- 29. Laravel驗證規則
- 30. Combobox驗證規則