0
Q
Z3條件語句
A
回答
2
查找SSA形式:https://en.wikipedia.org/wiki/Static_single_assignment_form
本質上講,你必須改變你的程序看如:
value_0 = 0
value_1 = (a%2 == 0) ? 1 : value_0
一旦它在這個所謂的靜態單一賦值形式,你現在可以直接或多或少地直接翻譯每一行;最後的作業爲value_N
,最終值爲value
。
循環將會產生問題:通常的策略是將它們展開到一定數量(有界模型檢查),並希望這樣做足夠。如果您檢測到最後一次展開不夠用,那麼您可以在該點生成一個未解釋的值;這可能會導致你的證據以虛假的反例失敗;但如果沒有涉及適當處理歸納法和循環不變式的方案,這是最好的。
請注意,這個研究領域被稱爲「象徵性執行」,並有着悠久的歷史,目前正在進行積極的研究。您可能需要閱讀以下內容:https://en.wikipedia.org/wiki/Symbolic_execution
相關問題
- 1. 條件語句
- 2. 條件語句
- 3. 條件語句
- 4. 條件語句
- 5. mysql條件語句?
- 6. (Java)條件語句
- 7. r條件語句
- 8. XSL條件語句
- 9. SQL條件語句?
- 10. 條件語句JavaScript
- 11. IF語句條件
- 12. C#條件語句
- 13. 多條件語句
- 14. JSRender條件語句
- 15. C#條件語句
- 16. 條件INFILE語句
- 17. .htaccess條件語句
- 18. SQL條件語句
- 19. F#條件語句
- 20. Handlebars.js條件語句
- 21. SQL語句條件
- 22. Bash條件語句
- 23. 條件XPath語句
- 24. SQL條件語句
- 25. Expressionengine條件語句
- 26. 條件語句 - MATLAB
- 27. PHP條件語句
- 28. CSS條件語句
- 29. JSP條件語句
- 30. 條件CASE語句語法
首先請注意,Z3表達式不會直接對程序進行編碼。在表達中沒有直接的副作用概念。 您可以從任何由Z3公開的API中構建「if-then-else」表達式。 –