当我在应用脚本中使用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. 验证规则不适用于CakePHP
- 6. 使用规则
- 7. Grails - CSS规则不适用
- 8. designer.cs代使用什么规则
- 9. 重用laravel验证规则
- 10. 全球规则适用于所有现有规则
- 11. 使用matplotlib说明Trapzeium/Simpson规则
- 12. 这是什么CSS规则?
- 13. 什么是80列规则?
- 14. Firebase规则:什么是.contains()?
- 15. 什么是输入规则?
- 16. CodeIgniter验证规则
- 17. Jquery - 验证 - 规则
- 18. 规则验证color_id
- 19. JQuery验证和asp.net - 明确的规则?
- 20. 为什么CSS应用#flowerContainer IMG规则而不是应用#flower规则
- 21. jquery使用多个规则验证
- 22. 使用的多个验证规则
- 23. 使用PHP创建jQuery验证规则
- 24. 使用规则进行Laravel验证?
- 25. 为什么规则不起作用?
- 26. 为什么不应用此CSS规则?
- 27. 重写规则和重定向规则有什么区别?
- 28. 验证规则无法正确更新2验证规则
- 29. XML验证 - 什么基于规则的引擎或框架,我应该使用
- 30. 为什么参考折叠规则仅适用于模板?