PySMT 0.9.7.dev337__tar.gz → 0.9.7.dev354__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 (166) hide show
  1. pysmt-0.9.7.dev354/PKG-INFO +58 -0
  2. pysmt-0.9.7.dev354/PySMT.egg-info/PKG-INFO +58 -0
  3. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/PySMT.egg-info/entry_points.txt +0 -1
  4. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/__init__.py +1 -1
  5. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/cmd/install.py +2 -2
  6. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/cmd/installers/base.py +10 -0
  7. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/cmd/installers/msat.py +24 -18
  8. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/cmd/installers/optimsat.py +1 -1
  9. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/cmd/installers/pico.py +3 -4
  10. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/solvers/cvcfive.py +163 -122
  11. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/solvers/z3.py +5 -2
  12. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/smtlib/parser_utils.py +12 -12
  13. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_bdd.py +1 -1
  14. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_logics.py +0 -3
  15. PySMT-0.9.7.dev337/PKG-INFO +0 -50
  16. PySMT-0.9.7.dev337/PySMT.egg-info/PKG-INFO +0 -50
  17. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/LICENSE +0 -0
  18. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/MANIFEST.in +0 -0
  19. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/NOTICE +0 -0
  20. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/PySMT.egg-info/SOURCES.txt +0 -0
  21. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/PySMT.egg-info/dependency_links.txt +0 -0
  22. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/PySMT.egg-info/top_level.txt +0 -0
  23. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/README.rst +0 -0
  24. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/docs/CHANGES.rst +0 -0
  25. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/docs/api_ref.rst +0 -0
  26. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/docs/development.rst +0 -0
  27. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/docs/getting_started.rst +0 -0
  28. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/docs/index.rst +0 -0
  29. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/docs/tutorials/boolean_logic.rst +0 -0
  30. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/docs/tutorials.rst +0 -0
  31. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/__main__.py +0 -0
  32. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/cmd/__init__.py +0 -0
  33. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/cmd/check_version.py +0 -0
  34. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/cmd/installers/__init__.py +0 -0
  35. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/cmd/installers/bdd.py +0 -0
  36. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/cmd/installers/btor.py +0 -0
  37. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/cmd/installers/cvcfive.py +0 -0
  38. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/cmd/installers/cvcfour.py +0 -0
  39. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/cmd/installers/yices.py +0 -0
  40. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/cmd/installers/z3.py +0 -0
  41. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/cmd/shell.py +0 -0
  42. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/configuration.py +0 -0
  43. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/constants.py +0 -0
  44. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/decorators.py +0 -0
  45. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/environment.py +0 -0
  46. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/exceptions.py +0 -0
  47. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/factory.py +0 -0
  48. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/fnode.py +0 -0
  49. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/formula.py +0 -0
  50. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/logics.py +0 -0
  51. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/operators.py +0 -0
  52. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/optimization/__init__.py +0 -0
  53. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/optimization/goal.py +0 -0
  54. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/optimization/msat.py +0 -0
  55. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/optimization/optimizer.py +0 -0
  56. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/optimization/optimsat.py +0 -0
  57. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/optimization/yices.py +0 -0
  58. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/optimization/z3.py +0 -0
  59. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/oracles.py +0 -0
  60. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/parsing.py +0 -0
  61. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/printers.py +0 -0
  62. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/rewritings.py +0 -0
  63. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/shortcuts.py +0 -0
  64. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/simplifier.py +0 -0
  65. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/smtlib/__init__.py +0 -0
  66. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/smtlib/annotations.py +0 -0
  67. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/smtlib/commands.py +0 -0
  68. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/smtlib/parser/__init__.py +0 -0
  69. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/smtlib/parser/parser.py +0 -0
  70. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/smtlib/printers.py +0 -0
  71. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/smtlib/script.py +0 -0
  72. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/smtlib/solver.py +0 -0
  73. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/smtlib/utils.py +0 -0
  74. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/solvers/__init__.py +0 -0
  75. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/solvers/bdd.py +0 -0
  76. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/solvers/btor.py +0 -0
  77. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/solvers/cvcfour.py +0 -0
  78. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/solvers/dynmsat.py +0 -0
  79. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/solvers/eager.py +0 -0
  80. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/solvers/interpolation.py +0 -0
  81. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/solvers/msat.py +0 -0
  82. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/solvers/options.py +0 -0
  83. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/solvers/pico.py +0 -0
  84. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/solvers/portfolio.py +0 -0
  85. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/solvers/qelim.py +0 -0
  86. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/solvers/smtlib.py +0 -0
  87. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/solvers/solver.py +0 -0
  88. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/solvers/yices.py +0 -0
  89. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/substituter.py +0 -0
  90. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/__init__.py +0 -0
  91. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/configs/config1.ini +0 -0
  92. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/configs/config_bad.ini +0 -0
  93. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/examples.py +0 -0
  94. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/omt_examples.py +0 -0
  95. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/optimization_utils.py +0 -0
  96. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/smtlib/__init__.py +0 -0
  97. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/smtlib/test_annotations.py +0 -0
  98. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/smtlib/test_fuzzed.py +0 -0
  99. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/smtlib/test_generic_wrapper.py +0 -0
  100. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/smtlib/test_griggio.py +0 -0
  101. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/smtlib/test_model_validation.py +0 -0
  102. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/smtlib/test_omt_lib_solver.py +0 -0
  103. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/smtlib/test_parser_examples.py +0 -0
  104. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/smtlib/test_parser_extensibility.py +0 -0
  105. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/smtlib/test_parser_lra.py +0 -0
  106. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/smtlib/test_parser_omt.py +0 -0
  107. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/smtlib/test_parser_qf_arrays.py +0 -0
  108. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/smtlib/test_parser_qf_lia.py +0 -0
  109. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/smtlib/test_parser_qf_lira.py +0 -0
  110. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/smtlib/test_parser_qf_lra.py +0 -0
  111. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/smtlib/test_parser_qf_nia.py +0 -0
  112. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/smtlib/test_parser_qf_nra.py +0 -0
  113. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/smtlib/test_parser_qf_uf.py +0 -0
  114. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/smtlib/test_parser_qf_ufbv.py +0 -0
  115. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/smtlib/test_parser_type_error.py +0 -0
  116. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/smtlib/test_smtlibscript.py +0 -0
  117. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_array.py +0 -0
  118. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_back.py +0 -0
  119. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_bv.py +0 -0
  120. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_bv_simplification.py +0 -0
  121. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_cnf.py +0 -0
  122. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_configuration.py +0 -0
  123. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_constants.py +0 -0
  124. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_cvc_quantifiers.py +0 -0
  125. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_dwf.py +0 -0
  126. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_eager_model.py +0 -0
  127. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_env.py +0 -0
  128. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_euf.py +0 -0
  129. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_formula.py +0 -0
  130. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_hr_parsing.py +0 -0
  131. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_imports.py +0 -0
  132. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_int.py +0 -0
  133. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_interpolation.py +0 -0
  134. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_lira.py +0 -0
  135. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_models.py +0 -0
  136. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_native_qe.py +0 -0
  137. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_nia.py +0 -0
  138. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_nlira.py +0 -0
  139. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_optimization.py +0 -0
  140. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_optimizing.py +0 -0
  141. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_oracles.py +0 -0
  142. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_portfolio.py +0 -0
  143. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_printing.py +0 -0
  144. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_qe.py +0 -0
  145. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_regressions.py +0 -0
  146. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_rewritings.py +0 -0
  147. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_shannon_expansion.py +0 -0
  148. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_simplify.py +0 -0
  149. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_size.py +0 -0
  150. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_solving.py +0 -0
  151. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_sorts.py +0 -0
  152. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_string.py +0 -0
  153. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_typechecker.py +0 -0
  154. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_unsat_cores.py +0 -0
  155. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_walker_ext.py +0 -0
  156. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/test/test_walkers.py +0 -0
  157. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/type_checker.py +0 -0
  158. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/typing.py +0 -0
  159. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/utils.py +0 -0
  160. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/walkers/__init__.py +0 -0
  161. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/walkers/dag.py +0 -0
  162. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/walkers/generic.py +0 -0
  163. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/walkers/identitydag.py +0 -0
  164. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/pysmt/walkers/tree.py +0 -0
  165. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/setup.cfg +0 -0
  166. {PySMT-0.9.7.dev337 → pysmt-0.9.7.dev354}/setup.py +0 -0
@@ -0,0 +1,58 @@
1
+ Metadata-Version: 2.4
2
+ Name: PySMT
3
+ Version: 0.9.7.dev354
4
+ Summary: A solver-agnostic library for SMT Formulae manipulation and solving
5
+ Home-page: http://www.pysmt.org
6
+ Author: PySMT Team
7
+ Author-email: info@pysmt.org
8
+ License: APACHE
9
+ License-File: LICENSE
10
+ License-File: NOTICE
11
+ Dynamic: author
12
+ Dynamic: author-email
13
+ Dynamic: description
14
+ Dynamic: home-page
15
+ Dynamic: license
16
+ Dynamic: license-file
17
+ Dynamic: summary
18
+
19
+ ============================================================
20
+ pySMT: A library for SMT formulae manipulation and solving
21
+ ============================================================
22
+
23
+ pySMT makes working with Satisfiability Modulo Theory simple.
24
+
25
+ Among others, you can:
26
+
27
+ * Define formulae in a solver independent way in a simple and
28
+ inutitive way,
29
+ * Write ad-hoc simplifiers and operators,
30
+ * Dump your problems in the SMT-Lib format,
31
+ * Solve them using one of the native solvers, or by wrapping any
32
+ SMT-Lib complaint solver.
33
+
34
+ Supported Theories and Solvers
35
+ ==============================
36
+ pySMT provides methods to define a formula in Linear Real Arithmetic (LRA),
37
+ Real Difference Logic (RDL), their combination (LIRA),
38
+ Equalities and Uninterpreted Functions (EUF), Bit-Vectors (BV), and Arrays (A).
39
+ The following solvers are supported through native APIs:
40
+
41
+ * MathSAT (http://mathsat.fbk.eu/)
42
+ * Z3 (https://github.com/Z3Prover/z3/)
43
+ * cvc5 (https://cvc5.github.io/)
44
+ * Yices 2 (http://yices.csl.sri.com/)
45
+ * CUDD (http://vlsi.colorado.edu/~fabio/CUDD/)
46
+ * PicoSAT (http://fmv.jku.at/picosat/)
47
+ * Boolector (http://fmv.jku.at/boolector/)
48
+
49
+ Additionally, you can use any SMT-LIB 2 compliant solver.
50
+
51
+ PySMT assumes that the python bindings for the SMT Solver are installed and
52
+ accessible from your PYTHONPATH.
53
+
54
+
55
+ Wanna know more?
56
+ ================
57
+
58
+ Visit http://www.pysmt.org
@@ -0,0 +1,58 @@
1
+ Metadata-Version: 2.4
2
+ Name: PySMT
3
+ Version: 0.9.7.dev354
4
+ Summary: A solver-agnostic library for SMT Formulae manipulation and solving
5
+ Home-page: http://www.pysmt.org
6
+ Author: PySMT Team
7
+ Author-email: info@pysmt.org
8
+ License: APACHE
9
+ License-File: LICENSE
10
+ License-File: NOTICE
11
+ Dynamic: author
12
+ Dynamic: author-email
13
+ Dynamic: description
14
+ Dynamic: home-page
15
+ Dynamic: license
16
+ Dynamic: license-file
17
+ Dynamic: summary
18
+
19
+ ============================================================
20
+ pySMT: A library for SMT formulae manipulation and solving
21
+ ============================================================
22
+
23
+ pySMT makes working with Satisfiability Modulo Theory simple.
24
+
25
+ Among others, you can:
26
+
27
+ * Define formulae in a solver independent way in a simple and
28
+ inutitive way,
29
+ * Write ad-hoc simplifiers and operators,
30
+ * Dump your problems in the SMT-Lib format,
31
+ * Solve them using one of the native solvers, or by wrapping any
32
+ SMT-Lib complaint solver.
33
+
34
+ Supported Theories and Solvers
35
+ ==============================
36
+ pySMT provides methods to define a formula in Linear Real Arithmetic (LRA),
37
+ Real Difference Logic (RDL), their combination (LIRA),
38
+ Equalities and Uninterpreted Functions (EUF), Bit-Vectors (BV), and Arrays (A).
39
+ The following solvers are supported through native APIs:
40
+
41
+ * MathSAT (http://mathsat.fbk.eu/)
42
+ * Z3 (https://github.com/Z3Prover/z3/)
43
+ * cvc5 (https://cvc5.github.io/)
44
+ * Yices 2 (http://yices.csl.sri.com/)
45
+ * CUDD (http://vlsi.colorado.edu/~fabio/CUDD/)
46
+ * PicoSAT (http://fmv.jku.at/picosat/)
47
+ * Boolector (http://fmv.jku.at/boolector/)
48
+
49
+ Additionally, you can use any SMT-LIB 2 compliant solver.
50
+
51
+ PySMT assumes that the python bindings for the SMT Solver are installed and
52
+ accessible from your PYTHONPATH.
53
+
54
+
55
+ Wanna know more?
56
+ ================
57
+
58
+ Visit http://www.pysmt.org
@@ -1,3 +1,2 @@
1
1
  [console_scripts]
2
2
  pysmt-install = pysmt.cmd.install:main
3
-
@@ -16,7 +16,7 @@
16
16
  # limitations under the License.
17
17
  #
18
18
 
19
- VERSION = (0, 9, 7, "dev", 337)
19
+ VERSION = (0, 9, 7, "dev", 354)
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
@@ -32,8 +32,8 @@ from pysmt import __version__ as pysmt_version
32
32
  Installer = namedtuple("Installer",
33
33
  ["InstallerClass", "version", "extra_params"])
34
34
  INSTALLERS = [
35
- Installer(MSatInstaller, "5.6.10", {}),
36
- Installer(CVC5Installer, "1.1.2", {}),
35
+ Installer(MSatInstaller, "5.6.16", {}),
36
+ Installer(CVC5Installer, "1.3.3", {}),
37
37
  Installer(CVC4Installer, "1.7-prerelease",
38
38
  {"git_version" : "391ab9df6c3fd9a3771864900c1718534c1e4666"}),
39
39
  Installer(Z3Installer, "4.15.0", {}),
@@ -231,6 +231,16 @@ class SolverInstaller(object):
231
231
  stderr.close()
232
232
 
233
233
 
234
+ @staticmethod
235
+ def replace_in_file(file_path, old_str, new_str):
236
+ """Replaces all occurrences of old_str with new_str in the given file"""
237
+ with open(file_path, "r") as f:
238
+ content = f.read()
239
+ content = content.replace(old_str, new_str)
240
+ with open(file_path, "w") as f:
241
+ f.write(content)
242
+
243
+
234
244
  @staticmethod
235
245
  def clean_dir(path):
236
246
  """Empties a (possibly non-existent) directory"""
@@ -34,14 +34,14 @@ class MSatInstaller(SolverInstaller):
34
34
  "ext": "tar.gz"
35
35
  }
36
36
  if self.os_name == "windows":
37
+ archive_name_template = "mathsat-{version}-{os}.{ext}"
37
38
  format["ext"] = "zip"
38
- format["arch"] = "msvc"
39
- format["os"] = "win64" if self.architecture == "x86_64" else "win32"
39
+ format["os"] = "win64"
40
40
  elif self.os_name == "darwin":
41
41
  # Since version 5.6.7 the architecture is not included in the
42
42
  # pkg name for the OSX release as it is considered a "univeral binary"
43
43
  archive_name_template = "mathsat-{version}-{os}.{ext}"
44
- format["os"] = "osx"
44
+ format["os"] = "macos"
45
45
 
46
46
  archive_name = archive_name_template.format(**format)
47
47
 
@@ -61,19 +61,25 @@ class MSatInstaller(SolverInstaller):
61
61
  if self.os_name == "windows":
62
62
  libdir = os.path.join(self.python_bindings_dir, "../lib")
63
63
  incdir = os.path.join(self.python_bindings_dir, "../include")
64
- gmp_h_url = "https://github.com/mikand/tamer-windows-deps/raw/master/gmp/include/gmp.h"
65
- mpir_dll_url = "https://github.com/Legrandin/mpir-windows-builds/blob/master/mpir-2.6.0_VS2015_%s/mpir.dll?raw=true" % self.bits
66
- mpir_lib_url = "https://github.com/Legrandin/mpir-windows-builds/blob/master/mpir-2.6.0_VS2015_%s/mpir.lib?raw=true" % self.bits
67
- setup_py_win_url = "https://github.com/pysmt/solvers_patches/raw/master/mathsat/setup-win.py"
68
-
69
- SolverInstaller.do_download(gmp_h_url, os.path.join(incdir, "gmp.h"))
70
- SolverInstaller.do_download(mpir_dll_url, os.path.join(libdir, "mpir.dll"))
71
- SolverInstaller.do_download(mpir_lib_url, os.path.join(libdir, "mpir.lib"))
72
64
 
73
- # Overwrite setup.py with the patched version
74
- setup_py = os.path.join(self.python_bindings_dir, "setup.py")
75
- SolverInstaller.mv(setup_py, setup_py + ".original")
76
- SolverInstaller.do_download(setup_py_win_url, setup_py)
65
+ gmp_win_url = "https://github.com/apotocki/gmp-win/releases/download/6.3.0/gmp-6.3.0.zip"
66
+ gmp_archive = os.path.join(self.base_dir, "gmp-6.3.0.zip")
67
+ gmp_dir = os.path.join(self.base_dir, "gmp-6.3.0")
68
+ SolverInstaller.clean_dir(gmp_dir)
69
+ SolverInstaller.do_download(url=gmp_win_url, file_name=gmp_archive)
70
+ SolverInstaller.unzip(gmp_archive, gmp_dir)
71
+
72
+ gmp_include_dir = os.path.join(self.base_dir, "gmp-6.3.0", "include")
73
+ gmp_lib_dir = os.path.join(self.base_dir, "gmp-6.3.0", "lib")
74
+ # gmp_dll_dir = os.path.join(self.base_dir, "gmp-6.3.0", "bin")
75
+ SolverInstaller.mv(os.path.join(gmp_include_dir, "gmp.h"), incdir)
76
+ SolverInstaller.mv(source=os.path.join(gmp_lib_dir, "gmpdll.lib"),
77
+ dest=os.path.join(libdir, "gmp.lib"))
78
+
79
+ # The MathSAT setup.py expects to link against "mpir" on Windows,
80
+ # but we link against "gmp", so we need to patch the setup.py
81
+ setup_py_path = os.path.join(self.python_bindings_dir, "setup.py")
82
+ SolverInstaller.replace_in_file(setup_py_path, "mpir", "gmp")
77
83
 
78
84
  # Run setup.py to compile the bindings
79
85
  if self.os_name in {"windows", "darwin"}:
@@ -89,11 +95,11 @@ class MSatInstaller(SolverInstaller):
89
95
  pdir = self.python_bindings_dir
90
96
  bdir = os.path.join(pdir, "build")
91
97
  sodir = glob.glob(bdir + "/lib.*")[0]
92
- libdir = os.path.join(self.python_bindings_dir, "../lib")
98
+ libdir = os.path.join(self.python_bindings_dir, "../bin")
93
99
 
94
100
  # First, we need the SWIG-generated wrapper
95
101
  for f in os.listdir(sodir):
96
- if f.endswith(".so") or f.endswith(".pyd"):
102
+ if "_mathsat" in f:
97
103
  SolverInstaller.mv(os.path.join(sodir, f), self.bindings_dir)
98
104
  SolverInstaller.mv(os.path.join(pdir, "mathsat.py"), self.bindings_dir)
99
105
 
@@ -103,7 +109,7 @@ class MSatInstaller(SolverInstaller):
103
109
  if f.endswith(".so") or f.endswith(".dll") or f.endswith(".dylib"):
104
110
  SolverInstaller.mv(os.path.join(libdir, f), self.bindings_dir)
105
111
 
106
- # Fix issue in MathSAT 5.6.10 linking to incorrect directory on OSX
112
+ # Fix issue in MathSAT 5.6.10 linking to incorrect directory on MacOS
107
113
  if self.os_name == "darwin":
108
114
  soname = glob.glob(self.bindings_dir + "/_mathsat*.so")[0]
109
115
  old_path = "/Users/alb/src/release/build/libmathsat.dylib"
@@ -37,7 +37,7 @@ class OptiMSatInstaller(SolverInstaller):
37
37
  archive_name = "optimathsat-%s-%s-%s.%s" % (solver_version, os_name,
38
38
  arch, ext)
39
39
 
40
- native_link = "http://optimathsat.disi.unitn.it/releases/optimathsat-%s/{archive_name}" % solver_version
40
+ native_link = "https://optimathsat.disi.unitn.it/releases/optimathsat-%s/{archive_name}" % solver_version
41
41
 
42
42
  SolverInstaller.__init__(self, install_dir=install_dir,
43
43
  bindings_dir=bindings_dir,
@@ -11,9 +11,10 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- import sys, os
14
+ import os
15
15
  import json
16
16
  import codecs
17
+ import glob
17
18
 
18
19
  import urllib.request
19
20
 
@@ -59,10 +60,8 @@ class PicoSATInstaller(SolverInstaller):
59
60
  SolverInstaller.run_python("setup.py build", directory=self.extract_path)
60
61
 
61
62
  def move(self):
62
- libdir = "lib.%s-%s-%s" % (self.os_name, self.architecture,
63
- self.python_version)
64
63
  bdir = os.path.join(self.extract_path, "build")
65
- sodir = os.path.join(bdir, libdir)
64
+ sodir = glob.glob(bdir + "/lib.*")[0]
66
65
 
67
66
  for f in os.listdir(sodir):
68
67
  if f.endswith(".so"):