PySMT 0.9.7.dev474__tar.gz → 0.9.7.dev477__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 (164) hide show
  1. {pysmt-0.9.7.dev474/PySMT.egg-info → pysmt-0.9.7.dev477}/PKG-INFO +1 -1
  2. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477/PySMT.egg-info}/PKG-INFO +1 -1
  3. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/__init__.py +1 -1
  4. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/smtlib/parser/parser.py +4 -0
  5. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/smtlib/test_model_validation.py +23 -0
  6. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/LICENSE +0 -0
  7. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/MANIFEST.in +0 -0
  8. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/NOTICE +0 -0
  9. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/PySMT.egg-info/SOURCES.txt +0 -0
  10. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/PySMT.egg-info/dependency_links.txt +0 -0
  11. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/PySMT.egg-info/entry_points.txt +0 -0
  12. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/PySMT.egg-info/top_level.txt +0 -0
  13. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/README.rst +0 -0
  14. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/docs/CHANGES.rst +0 -0
  15. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/docs/api_ref.rst +0 -0
  16. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/docs/development.rst +0 -0
  17. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/docs/getting_started.rst +0 -0
  18. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/docs/index.rst +0 -0
  19. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/docs/tutorials/boolean_logic.rst +0 -0
  20. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/docs/tutorials.rst +0 -0
  21. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/__main__.py +0 -0
  22. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/cmd/__init__.py +0 -0
  23. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/cmd/check_version.py +0 -0
  24. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/cmd/install.py +0 -0
  25. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/cmd/installers/__init__.py +0 -0
  26. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/cmd/installers/base.py +0 -0
  27. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/cmd/installers/bdd.py +0 -0
  28. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/cmd/installers/btor.py +0 -0
  29. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/cmd/installers/cvcfive.py +0 -0
  30. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/cmd/installers/cvcfour.py +0 -0
  31. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/cmd/installers/msat.py +0 -0
  32. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/cmd/installers/optimsat.py +0 -0
  33. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/cmd/installers/pico.py +0 -0
  34. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/cmd/installers/yices.py +0 -0
  35. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/cmd/installers/z3.py +0 -0
  36. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/cmd/shell.py +0 -0
  37. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/configuration.py +0 -0
  38. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/constants.py +0 -0
  39. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/decorators.py +0 -0
  40. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/environment.py +0 -0
  41. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/exceptions.py +0 -0
  42. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/factory.py +0 -0
  43. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/fnode.py +0 -0
  44. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/formula.py +0 -0
  45. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/logics.py +0 -0
  46. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/operators.py +0 -0
  47. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/optimization/__init__.py +0 -0
  48. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/optimization/goal.py +0 -0
  49. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/optimization/msat.py +0 -0
  50. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/optimization/optimizer.py +0 -0
  51. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/optimization/optimsat.py +0 -0
  52. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/optimization/yices.py +0 -0
  53. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/optimization/z3.py +0 -0
  54. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/oracles.py +0 -0
  55. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/parsing.py +0 -0
  56. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/printers.py +0 -0
  57. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/rewritings.py +0 -0
  58. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/shortcuts.py +0 -0
  59. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/simplifier.py +0 -0
  60. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/smtlib/__init__.py +0 -0
  61. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/smtlib/annotations.py +0 -0
  62. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/smtlib/commands.py +0 -0
  63. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/smtlib/parser/__init__.py +0 -0
  64. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/smtlib/printers.py +0 -0
  65. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/smtlib/script.py +0 -0
  66. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/smtlib/solver.py +0 -0
  67. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/smtlib/utils.py +0 -0
  68. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/solvers/__init__.py +0 -0
  69. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/solvers/bdd.py +0 -0
  70. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/solvers/btor.py +0 -0
  71. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/solvers/cvcfive.py +0 -0
  72. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/solvers/cvcfour.py +0 -0
  73. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/solvers/dynmsat.py +0 -0
  74. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/solvers/eager.py +0 -0
  75. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/solvers/interpolation.py +0 -0
  76. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/solvers/msat.py +0 -0
  77. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/solvers/options.py +0 -0
  78. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/solvers/pico.py +0 -0
  79. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/solvers/portfolio.py +0 -0
  80. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/solvers/qelim.py +0 -0
  81. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/solvers/smtlib.py +0 -0
  82. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/solvers/solver.py +0 -0
  83. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/solvers/yices.py +0 -0
  84. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/solvers/z3.py +0 -0
  85. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/substituter.py +0 -0
  86. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/__init__.py +0 -0
  87. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/configs/config1.ini +0 -0
  88. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/configs/config_bad.ini +0 -0
  89. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/examples.py +0 -0
  90. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/omt_examples.py +0 -0
  91. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/optimization_utils.py +0 -0
  92. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/smtlib/__init__.py +0 -0
  93. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/smtlib/parser_utils.py +0 -0
  94. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/smtlib/test_annotations.py +0 -0
  95. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/smtlib/test_fuzzed.py +0 -0
  96. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/smtlib/test_generic_wrapper.py +0 -0
  97. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/smtlib/test_griggio.py +0 -0
  98. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/smtlib/test_omt_lib_solver.py +0 -0
  99. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/smtlib/test_parser_examples.py +0 -0
  100. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/smtlib/test_parser_extensibility.py +0 -0
  101. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/smtlib/test_parser_lra.py +0 -0
  102. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/smtlib/test_parser_omt.py +0 -0
  103. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/smtlib/test_parser_qf_arrays.py +0 -0
  104. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/smtlib/test_parser_qf_lia.py +0 -0
  105. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/smtlib/test_parser_qf_lira.py +0 -0
  106. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/smtlib/test_parser_qf_lra.py +0 -0
  107. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/smtlib/test_parser_qf_nia.py +0 -0
  108. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/smtlib/test_parser_qf_nra.py +0 -0
  109. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/smtlib/test_parser_qf_uf.py +0 -0
  110. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/smtlib/test_parser_qf_ufbv.py +0 -0
  111. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/smtlib/test_parser_type_error.py +0 -0
  112. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/smtlib/test_smtlibscript.py +0 -0
  113. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_array.py +0 -0
  114. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_back.py +0 -0
  115. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_bdd.py +0 -0
  116. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_bv.py +0 -0
  117. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_bv_simplification.py +0 -0
  118. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_cnf.py +0 -0
  119. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_configuration.py +0 -0
  120. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_constants.py +0 -0
  121. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_cvc_quantifiers.py +0 -0
  122. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_dwf.py +0 -0
  123. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_eager_model.py +0 -0
  124. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_env.py +0 -0
  125. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_euf.py +0 -0
  126. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_formula.py +0 -0
  127. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_hr_parsing.py +0 -0
  128. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_imports.py +0 -0
  129. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_int.py +0 -0
  130. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_interpolation.py +0 -0
  131. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_lira.py +0 -0
  132. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_logics.py +0 -0
  133. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_models.py +0 -0
  134. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_native_qe.py +0 -0
  135. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_nia.py +0 -0
  136. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_nlira.py +0 -0
  137. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_optimization.py +0 -0
  138. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_optimizing.py +0 -0
  139. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_oracles.py +0 -0
  140. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_portfolio.py +0 -0
  141. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_printing.py +0 -0
  142. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_qe.py +0 -0
  143. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_regressions.py +0 -0
  144. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_rewritings.py +0 -0
  145. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_shannon_expansion.py +0 -0
  146. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_simplify.py +0 -0
  147. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_size.py +0 -0
  148. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_solving.py +0 -0
  149. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_sorts.py +0 -0
  150. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_string.py +0 -0
  151. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_typechecker.py +0 -0
  152. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_unsat_cores.py +0 -0
  153. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_walker_ext.py +0 -0
  154. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/test/test_walkers.py +0 -0
  155. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/type_checker.py +0 -0
  156. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/typing.py +0 -0
  157. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/utils.py +0 -0
  158. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/walkers/__init__.py +0 -0
  159. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/walkers/dag.py +0 -0
  160. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/walkers/generic.py +0 -0
  161. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/walkers/identitydag.py +0 -0
  162. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/pysmt/walkers/tree.py +0 -0
  163. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/setup.cfg +0 -0
  164. {pysmt-0.9.7.dev474 → pysmt-0.9.7.dev477}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PySMT
3
- Version: 0.9.7.dev474
3
+ Version: 0.9.7.dev477
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: 2.4
2
2
  Name: PySMT
3
- Version: 0.9.7.dev474
3
+ Version: 0.9.7.dev477
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
@@ -19,7 +19,7 @@
19
19
  from typing import Tuple, Union
20
20
 
21
21
 
22
- VERSION: Union[Tuple[int, int, int], Tuple[int, int, int, str, int]] = (0, 9, 7, "dev", 474)
22
+ VERSION: Union[Tuple[int, int, int], Tuple[int, int, int, str, int]] = (0, 9, 7, "dev", 477)
23
23
 
24
24
  # Try to provide human-readable version of latest commit for dev versions
25
25
  # E.g. v0.5.1-4-g49a49f2-wip
@@ -561,6 +561,10 @@ class SmtLibParser(object):
561
561
  return res
562
562
  stack[-1].append(handler)
563
563
  else:
564
+ # pySMT binds one type per symbol name, but SMT-LIB model values
565
+ # reuse the same @name across sorts, so we qualify it with the sort
566
+ if what.startswith('@'):
567
+ what += "_" + str(ty)
564
568
  def handler():
565
569
  return self.env.formula_manager.Symbol(what, ty)
566
570
  stack[-1].append(handler)
@@ -97,6 +97,29 @@ class TestModelValidation(TestCase):
97
97
  simp = simplifier.simplify(formula.substitute(model, interpretations))
98
98
  self.assertEqual(simp, self.fm.TRUE())
99
99
 
100
+ def test_same_value_name_different_sorts(self):
101
+ # SMT-COMP/postprocessors#10: solvers reuse @0 across sorts
102
+ model_source ="""\
103
+ (model
104
+ (define-fun a () U (as @0 U))
105
+ (define-fun c () U (as @1 U))
106
+ (define-fun b () V (as @0 V))
107
+ (define-fun d () V (as @0 V))
108
+ )
109
+ """
110
+ U = self.tm.Type('U', 0)
111
+ V = self.tm.Type('V', 0)
112
+ a = self.fm.Symbol('a', U)
113
+ b = self.fm.Symbol('b', V)
114
+ c = self.fm.Symbol('c', U)
115
+ d = self.fm.Symbol('d', V)
116
+ formula = self.fm.And(self.fm.Not(self.fm.Equals(a, c)),
117
+ self.fm.Equals(b, d))
118
+
119
+ model, interpretations = SmtLibParser().parse_model(StringIO(model_source))
120
+ simp = SmtLibModelValidationSimplifier(self.env).simplify(
121
+ formula.substitute(model, interpretations))
122
+ self.assertEqual(simp, self.fm.TRUE())
100
123
 
101
124
 
102
125
  if __name__ == '__main__':
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes