Z3 的简化策略究竟做了什么?
What does Z3's simplify tactic do exactly?
我想知道Z3的战术simplify
到底有什么作用?
在Z3's official document中表示:
The command (simplify t) displays a possibly simpler expression equivalent to t.
由于这种策略的功能通常可以通过一些语法重写规则来概括,例如Not(A or B) --> Not(A) and Not (B)
,谁能告诉我Z3的simplify
重写是做什么的?谢谢。
没有文档可以解释重写规则,也没有语法规则列表,无论是在代码还是文档中。要找出究竟执行了什么,您必须查看代码。简化策略只运行 th_rewriter
(here) which applies a number of cross-theory simplifications (all over th_rewriter.cpp) and it then calls out to the theory-specific rewriters (here). For example, for bit-vector terms it will call out to bv_rewriter::reduce_app_core.
我想知道Z3的战术simplify
到底有什么作用?
在Z3's official document中表示:
The command (simplify t) displays a possibly simpler expression equivalent to t.
由于这种策略的功能通常可以通过一些语法重写规则来概括,例如Not(A or B) --> Not(A) and Not (B)
,谁能告诉我Z3的simplify
重写是做什么的?谢谢。
没有文档可以解释重写规则,也没有语法规则列表,无论是在代码还是文档中。要找出究竟执行了什么,您必须查看代码。简化策略只运行 th_rewriter
(here) which applies a number of cross-theory simplifications (all over th_rewriter.cpp) and it then calls out to the theory-specific rewriters (here). For example, for bit-vector terms it will call out to bv_rewriter::reduce_app_core.