PySMT 0.9.7.dev132__tar.gz → 0.9.7.dev139__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. {PySMT-0.9.7.dev132/PySMT.egg-info → PySMT-0.9.7.dev139}/PKG-INFO +1 -1
  2. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139/PySMT.egg-info}/PKG-INFO +1 -1
  3. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/__init__.py +1 -1
  4. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/cmd/install.py +1 -1
  5. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/rewritings.py +2 -0
  6. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/smtlib/parser/parser.py +1 -0
  7. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_cnf.py +26 -2
  8. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_regressions.py +0 -1
  9. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/LICENSE +0 -0
  10. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/MANIFEST.in +0 -0
  11. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/NOTICE +0 -0
  12. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/PySMT.egg-info/SOURCES.txt +0 -0
  13. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/PySMT.egg-info/dependency_links.txt +0 -0
  14. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/PySMT.egg-info/entry_points.txt +0 -0
  15. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/PySMT.egg-info/top_level.txt +0 -0
  16. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/README.rst +0 -0
  17. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/docs/CHANGES.rst +0 -0
  18. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/docs/api_ref.rst +0 -0
  19. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/docs/development.rst +0 -0
  20. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/docs/getting_started.rst +0 -0
  21. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/docs/index.rst +0 -0
  22. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/docs/tutorials/boolean_logic.rst +0 -0
  23. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/docs/tutorials.rst +0 -0
  24. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/__main__.py +0 -0
  25. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/cmd/__init__.py +0 -0
  26. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/cmd/check_version.py +0 -0
  27. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/cmd/installers/__init__.py +0 -0
  28. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/cmd/installers/base.py +0 -0
  29. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/cmd/installers/bdd.py +0 -0
  30. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/cmd/installers/btor.py +0 -0
  31. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/cmd/installers/cvcfive.py +0 -0
  32. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/cmd/installers/cvcfour.py +0 -0
  33. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/cmd/installers/msat.py +0 -0
  34. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/cmd/installers/pico.py +0 -0
  35. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/cmd/installers/yices.py +0 -0
  36. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/cmd/installers/z3.py +0 -0
  37. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/cmd/shell.py +0 -0
  38. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/configuration.py +0 -0
  39. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/constants.py +0 -0
  40. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/decorators.py +0 -0
  41. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/environment.py +0 -0
  42. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/exceptions.py +0 -0
  43. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/factory.py +0 -0
  44. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/fnode.py +0 -0
  45. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/formula.py +0 -0
  46. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/logics.py +0 -0
  47. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/operators.py +0 -0
  48. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/oracles.py +0 -0
  49. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/parsing.py +0 -0
  50. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/printers.py +0 -0
  51. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/shortcuts.py +0 -0
  52. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/simplifier.py +0 -0
  53. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/smtlib/__init__.py +0 -0
  54. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/smtlib/annotations.py +0 -0
  55. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/smtlib/commands.py +0 -0
  56. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/smtlib/parser/__init__.py +0 -0
  57. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/smtlib/printers.py +0 -0
  58. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/smtlib/script.py +0 -0
  59. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/smtlib/solver.py +0 -0
  60. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/smtlib/utils.py +0 -0
  61. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/solvers/__init__.py +0 -0
  62. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/solvers/bdd.py +0 -0
  63. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/solvers/btor.py +0 -0
  64. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/solvers/cvcfive.py +0 -0
  65. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/solvers/cvcfour.py +0 -0
  66. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/solvers/eager.py +0 -0
  67. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/solvers/interpolation.py +0 -0
  68. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/solvers/msat.py +0 -0
  69. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/solvers/options.py +0 -0
  70. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/solvers/pico.py +0 -0
  71. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/solvers/portfolio.py +0 -0
  72. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/solvers/qelim.py +0 -0
  73. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/solvers/smtlib.py +0 -0
  74. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/solvers/solver.py +0 -0
  75. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/solvers/yices.py +0 -0
  76. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/solvers/z3.py +0 -0
  77. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/substituter.py +0 -0
  78. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/__init__.py +0 -0
  79. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/configs/config1.ini +0 -0
  80. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/configs/config_bad.ini +0 -0
  81. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/examples.py +0 -0
  82. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/smtlib/__init__.py +0 -0
  83. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/smtlib/parser_utils.py +0 -0
  84. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/smtlib/test_annotations.py +0 -0
  85. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/smtlib/test_fuzzed.py +0 -0
  86. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/smtlib/test_generic_wrapper.py +0 -0
  87. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/smtlib/test_griggio.py +0 -0
  88. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/smtlib/test_model_validation.py +0 -0
  89. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/smtlib/test_parser_examples.py +0 -0
  90. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/smtlib/test_parser_extensibility.py +0 -0
  91. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/smtlib/test_parser_lra.py +0 -0
  92. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/smtlib/test_parser_qf_arrays.py +0 -0
  93. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/smtlib/test_parser_qf_lia.py +0 -0
  94. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/smtlib/test_parser_qf_lira.py +0 -0
  95. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/smtlib/test_parser_qf_lra.py +0 -0
  96. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/smtlib/test_parser_qf_nia.py +0 -0
  97. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/smtlib/test_parser_qf_nra.py +0 -0
  98. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/smtlib/test_parser_qf_uf.py +0 -0
  99. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/smtlib/test_parser_qf_ufbv.py +0 -0
  100. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/smtlib/test_parser_type_error.py +0 -0
  101. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/smtlib/test_smtlibscript.py +0 -0
  102. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_array.py +0 -0
  103. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_back.py +0 -0
  104. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_bdd.py +0 -0
  105. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_bv.py +0 -0
  106. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_bv_simplification.py +0 -0
  107. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_configuration.py +0 -0
  108. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_constants.py +0 -0
  109. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_cvc_quantifiers.py +0 -0
  110. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_dwf.py +0 -0
  111. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_eager_model.py +0 -0
  112. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_env.py +0 -0
  113. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_euf.py +0 -0
  114. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_formula.py +0 -0
  115. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_hr_parsing.py +0 -0
  116. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_imports.py +0 -0
  117. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_int.py +0 -0
  118. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_interpolation.py +0 -0
  119. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_lira.py +0 -0
  120. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_logics.py +0 -0
  121. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_models.py +0 -0
  122. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_native_qe.py +0 -0
  123. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_nia.py +0 -0
  124. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_nlira.py +0 -0
  125. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_oracles.py +0 -0
  126. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_portfolio.py +0 -0
  127. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_printing.py +0 -0
  128. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_qe.py +0 -0
  129. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_rewritings.py +0 -0
  130. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_shannon_expansion.py +0 -0
  131. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_simplify.py +0 -0
  132. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_size.py +0 -0
  133. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_solving.py +0 -0
  134. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_sorts.py +0 -0
  135. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_string.py +0 -0
  136. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_typechecker.py +0 -0
  137. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_unsat_cores.py +0 -0
  138. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_walker_ext.py +0 -0
  139. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/test/test_walkers.py +0 -0
  140. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/type_checker.py +0 -0
  141. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/typing.py +0 -0
  142. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/utils.py +0 -0
  143. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/walkers/__init__.py +0 -0
  144. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/walkers/dag.py +0 -0
  145. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/walkers/generic.py +0 -0
  146. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/walkers/identitydag.py +0 -0
  147. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/pysmt/walkers/tree.py +0 -0
  148. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/setup.cfg +0 -0
  149. {PySMT-0.9.7.dev132 → PySMT-0.9.7.dev139}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: PySMT
3
- Version: 0.9.7.dev132
3
+ Version: 0.9.7.dev139
4
4
  Summary: A solver-agnostic library for SMT Formulae manipulation and solving
5
5
  Home-page: http://www.pysmt.org
6
6
  Author: PySMT Team
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: PySMT
3
- Version: 0.9.7.dev132
3
+ Version: 0.9.7.dev139
4
4
  Summary: A solver-agnostic library for SMT Formulae manipulation and solving
5
5
  Home-page: http://www.pysmt.org
6
6
  Author: PySMT Team
@@ -16,7 +16,7 @@
16
16
  # limitations under the License.
17
17
  #
18
18
 
19
- VERSION = (0, 9, 7, "dev", 132)
19
+ VERSION = (0, 9, 7, "dev", 139)
20
20
 
21
21
  # Try to provide human-readable version of latest commit for dev versions
22
22
  # E.g. v0.5.1-4-g49a49f2-wip
@@ -36,7 +36,7 @@ INSTALLERS = [
36
36
  Installer(CVC5Installer, "1.1.2", {}),
37
37
  Installer(CVC4Installer, "1.7-prerelease",
38
38
  {"git_version" : "391ab9df6c3fd9a3771864900c1718534c1e4666"}),
39
- Installer(Z3Installer, "4.13.0", {}),
39
+ Installer(Z3Installer, "4.15.0", {}),
40
40
  Installer(YicesInstaller, "2.6.4", {"yices_api_version": "1.1.5"}),
41
41
  Installer(BtorInstaller, "3.2.3", {}),
42
42
  Installer(PicoSATInstaller, "965",
@@ -188,6 +188,8 @@ class CNFizer(DagWalker):
188
188
  @handles(op.THEORY_OPERATORS)
189
189
  def walk_theory_op(self, formula, **kwargs):
190
190
  #pylint: disable=unused-argument
191
+ if formula.get_type().is_bool_type():
192
+ return formula, CNFizer.TRUE_CNF
191
193
  return CNFizer.THEORY_PLACEHOLDER
192
194
 
193
195
  @handles(op.CONSTANTS)
@@ -1438,6 +1438,7 @@ class SmtLibZ3Parser(SmtLibParser):
1438
1438
  self._operator_adapter(self._ext_rotate_right)
1439
1439
  mgr = self.env.formula_manager
1440
1440
  self.interpreted['bv2int'] = self._operator_adapter(mgr.BVToNatural)
1441
+ self.interpreted['ubv_to_int'] = self._operator_adapter(mgr.BVToNatural)
1441
1442
 
1442
1443
  def _ext_rotate_left(self, x, y):
1443
1444
  return self.env.formula_manager.BVRol(x, y.simplify().constant_value())
@@ -18,9 +18,9 @@
18
18
  import os
19
19
  import pytest
20
20
 
21
- from pysmt.shortcuts import Implies, is_sat, reset_env, Symbol, Iff
21
+ from pysmt.shortcuts import Implies, is_sat, reset_env, Symbol, Iff, Select, ArrayType, INT, BOOL, And, get_env
22
22
  from pysmt.rewritings import CNFizer
23
- from pysmt.logics import QF_BOOL, QF_LRA, QF_LIA, QF_UFLIRA, QF_UFLRA
23
+ from pysmt.logics import QF_BOOL, QF_LRA, QF_LIA, QF_UFLIRA, QF_UFLRA, QF_ALIA
24
24
  from pysmt.test import TestCase, skipIfNoSolverForLogic, main
25
25
  from pysmt.test.examples import get_example_formulae
26
26
  from pysmt.test.smtlib.parser_utils import SMTLIB_TEST_FILES, SMTLIB_DIR
@@ -106,5 +106,29 @@ class TestCnf(TestCase):
106
106
 
107
107
  self.assertValid(Implies(cnf, f), logic=QF_BOOL)
108
108
 
109
+ @skipIfNoSolverForLogic(QF_ALIA)
110
+ def test_CNFizer_bool_theory(self):
111
+ test_logic = QF_ALIA
112
+ # (and (select boolean_array idx0) (select boolean_array idx1))
113
+ boolean_array = Symbol("boolean_array", ArrayType(INT, BOOL))
114
+ idx_0, idx_1 = Symbol("idx0", INT), Symbol("idx1", INT)
115
+ f = And(
116
+ Select(boolean_array, idx_0),
117
+ Select(boolean_array, idx_1)
118
+ )
119
+ conv = CNFizer()
120
+ cnf = conv.convert_as_formula(f)
121
+
122
+ factory = get_env().factory
123
+ for solver_name in factory.all_solvers(test_logic):
124
+ # msat needs to be skipped. Check issue #807
125
+ if solver_name == "msat":
126
+ continue
127
+ self.assertValid(
128
+ Implies(cnf, f),
129
+ solver_name=solver_name,
130
+ logic=test_logic
131
+ )
132
+
109
133
  if __name__ == '__main__':
110
134
  main()
@@ -565,7 +565,6 @@ class TestRegressions(TestCase):
565
565
  self.assertIn(p, atoms)
566
566
  self.assertIn(Equals(x, Int(1)), atoms)
567
567
 
568
-
569
568
  @skipIfSolverNotAvailable("yices")
570
569
  def test_yices_quantifier(self):
571
570
  x = Symbol('x', REAL)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes