chase-cps 0.1.0__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 (617) hide show
  1. chase_cps-0.1.0/.dockerignore +11 -0
  2. chase_cps-0.1.0/.gitignore +23 -0
  3. chase_cps-0.1.0/.gitmodules +24 -0
  4. chase_cps-0.1.0/CHANGELOG.md +55 -0
  5. chase_cps-0.1.0/CITATION.cff +33 -0
  6. chase_cps-0.1.0/CMakeLists.txt +142 -0
  7. chase_cps-0.1.0/Dockerfile +102 -0
  8. chase_cps-0.1.0/LICENSE +30 -0
  9. chase_cps-0.1.0/PKG-INFO +120 -0
  10. chase_cps-0.1.0/README.md +235 -0
  11. chase_cps-0.1.0/THIRD_PARTY_NOTICES +73 -0
  12. chase_cps-0.1.0/_config.yml +1 -0
  13. chase_cps-0.1.0/demos/CPSWeek22/compositional_demo.sh +59 -0
  14. chase_cps-0.1.0/demos/CPSWeek22/script.chase +8 -0
  15. chase_cps-0.1.0/demos/CPSWeek22/single_model.ltl +85 -0
  16. chase_cps-0.1.0/demos/CPSWeek22/single_model_demo.sh +31 -0
  17. chase_cps-0.1.0/demos/CPSWeek22/singlemodel.chase +2 -0
  18. chase_cps-0.1.0/demos/CPSWeek22/specs.ltl +191 -0
  19. chase_cps-0.1.0/demos/CPSWeek22/synthesis.chase +3 -0
  20. chase_cps-0.1.0/demos/CPSWeek22/verification.chase +7 -0
  21. chase_cps-0.1.0/demos/DATE18/requirements.txt +16 -0
  22. chase_cps-0.1.0/demos/DATE18/solution.sh +52 -0
  23. chase_cps-0.1.0/demos/DATE18/template_0_realizable.txt +81 -0
  24. chase_cps-0.1.0/demos/DATE18/template_0_unrealizable.txt +81 -0
  25. chase_cps-0.1.0/demos/DATE21/DATE21.md +157 -0
  26. chase_cps-0.1.0/demos/DATE21/solution.script +10 -0
  27. chase_cps-0.1.0/demos/DATE21/specs/requirements_1.txt +16 -0
  28. chase_cps-0.1.0/demos/DATE21/specs/robotic_arm.ltl +176 -0
  29. chase_cps-0.1.0/demos/DATE21/specs/template_0_synthesizable.txt +81 -0
  30. chase_cps-0.1.0/demos/DATE21/specs/template_0_unrealizable.txt +81 -0
  31. chase_cps-0.1.0/demos/FDL2024/dsl_factory_realizable.txt +86 -0
  32. chase_cps-0.1.0/demos/LICENSE +29 -0
  33. chase_cps-0.1.0/demos/README.md +23 -0
  34. chase_cps-0.1.0/demos/RoboticJoints/compositional_demo.sh +68 -0
  35. chase_cps-0.1.0/demos/RoboticJoints/refinement.smv +323 -0
  36. chase_cps-0.1.0/demos/RoboticJoints/scaling.py +136 -0
  37. chase_cps-0.1.0/demos/RoboticJoints/script.chase +8 -0
  38. chase_cps-0.1.0/demos/RoboticJoints/single_model.ltl +85 -0
  39. chase_cps-0.1.0/demos/RoboticJoints/singlemodel.chase +2 -0
  40. chase_cps-0.1.0/demos/RoboticJoints/singlemodel_demo.sh +38 -0
  41. chase_cps-0.1.0/demos/RoboticJoints/specs.ltl +191 -0
  42. chase_cps-0.1.0/demos/RoboticJoints/synthesis.chase +3 -0
  43. chase_cps-0.1.0/demos/RoboticJoints/verification.chase +7 -0
  44. chase_cps-0.1.0/docs/api.sh +11 -0
  45. chase_cps-0.1.0/docs/chase-framework.png +0 -0
  46. chase_cps-0.1.0/docs/pacti-comparison.md +39 -0
  47. chase_cps-0.1.0/docs/usage.md +151 -0
  48. chase_cps-0.1.0/install.sh +81 -0
  49. chase_cps-0.1.0/modules/DSL_tool/.gitignore +11 -0
  50. chase_cps-0.1.0/modules/DSL_tool/CMakeLists.txt +141 -0
  51. chase_cps-0.1.0/modules/DSL_tool/LICENSE +29 -0
  52. chase_cps-0.1.0/modules/DSL_tool/README.md +45 -0
  53. chase_cps-0.1.0/modules/DSL_tool/grammar/Chase.g4 +70 -0
  54. chase_cps-0.1.0/modules/DSL_tool/include/DSLParser/ChaseBaseListener.h +107 -0
  55. chase_cps-0.1.0/modules/DSL_tool/include/DSLParser/ChaseLexer.h +59 -0
  56. chase_cps-0.1.0/modules/DSL_tool/include/DSLParser/ChaseListener.h +100 -0
  57. chase_cps-0.1.0/modules/DSL_tool/include/DSLParser/ChaseParser.h +496 -0
  58. chase_cps-0.1.0/modules/DSL_tool/include/DSLProblem.hh +220 -0
  59. chase_cps-0.1.0/modules/DSL_tool/include/DSLProblemDefinitions.hh +241 -0
  60. chase_cps-0.1.0/modules/DSL_tool/include/DSLSpecsBuilder.hh +122 -0
  61. chase_cps-0.1.0/modules/DSL_tool/include/chase-DSL.hh +16 -0
  62. chase_cps-0.1.0/modules/DSL_tool/src/DSLDesignProblem_patterns.cc +755 -0
  63. chase_cps-0.1.0/modules/DSL_tool/src/DSLDesignProblem_support.cc +91 -0
  64. chase_cps-0.1.0/modules/DSL_tool/src/DSLParser/ChaseBaseListener.cpp +7 -0
  65. chase_cps-0.1.0/modules/DSL_tool/src/DSLParser/ChaseLexer.cpp +253 -0
  66. chase_cps-0.1.0/modules/DSL_tool/src/DSLParser/ChaseListener.cpp +7 -0
  67. chase_cps-0.1.0/modules/DSL_tool/src/DSLParser/ChaseParser.cpp +2174 -0
  68. chase_cps-0.1.0/modules/DSL_tool/src/DSLProblem.cc +537 -0
  69. chase_cps-0.1.0/modules/DSL_tool/src/DSLProblemDefinitions.cc +109 -0
  70. chase_cps-0.1.0/modules/DSL_tool/src/DSLSpecBuilder_support.cc +67 -0
  71. chase_cps-0.1.0/modules/DSL_tool/src/DSLSpecsBuilder.cc +417 -0
  72. chase_cps-0.1.0/modules/DSL_tool/src/bindings.cc +30 -0
  73. chase_cps-0.1.0/modules/DSL_tool/src/main.cc +170 -0
  74. chase_cps-0.1.0/modules/chase-backends/CMakeLists.txt +87 -0
  75. chase_cps-0.1.0/modules/chase-backends/LICENSE +29 -0
  76. chase_cps-0.1.0/modules/chase-backends/README.md +28 -0
  77. chase_cps-0.1.0/modules/chase-backends/include/GR1CPrinter.hh +67 -0
  78. chase_cps-0.1.0/modules/chase-backends/include/NuSMVPrinter.hh +75 -0
  79. chase_cps-0.1.0/modules/chase-backends/include/PySTLPrinter.hh +47 -0
  80. chase_cps-0.1.0/modules/chase-backends/include/SlugsPrinter.hh +78 -0
  81. chase_cps-0.1.0/modules/chase-backends/include/chase-backends.hh +21 -0
  82. chase_cps-0.1.0/modules/chase-backends/src/GR1CPrinter.cc +332 -0
  83. chase_cps-0.1.0/modules/chase-backends/src/GR1CPrinter_visit.cc +259 -0
  84. chase_cps-0.1.0/modules/chase-backends/src/NuSMVPrinter.cc +107 -0
  85. chase_cps-0.1.0/modules/chase-backends/src/NuSMVPrinter_visit.cc +174 -0
  86. chase_cps-0.1.0/modules/chase-backends/src/PySTLPrinter.cc +123 -0
  87. chase_cps-0.1.0/modules/chase-backends/src/SlugsPrinter.cc +320 -0
  88. chase_cps-0.1.0/modules/chase-backends/src/SlugsPrinter_visit.cc +233 -0
  89. chase_cps-0.1.0/modules/chase-backends/src/bindings.cc +131 -0
  90. chase_cps-0.1.0/modules/core-library/.dockerignore +5 -0
  91. chase_cps-0.1.0/modules/core-library/.gitignore +3 -0
  92. chase_cps-0.1.0/modules/core-library/.gitmodules +0 -0
  93. chase_cps-0.1.0/modules/core-library/.vscode/c_cpp_properties.json +19 -0
  94. chase_cps-0.1.0/modules/core-library/CMakeLists.txt +204 -0
  95. chase_cps-0.1.0/modules/core-library/Dockerfile +124 -0
  96. chase_cps-0.1.0/modules/core-library/LICENSE +30 -0
  97. chase_cps-0.1.0/modules/core-library/README.md +91 -0
  98. chase_cps-0.1.0/modules/core-library/chaseConfig.cmake.in +8 -0
  99. chase_cps-0.1.0/modules/core-library/doc/CMakeLists.txt +31 -0
  100. chase_cps-0.1.0/modules/core-library/doc/Doxyfile.in +2496 -0
  101. chase_cps-0.1.0/modules/core-library/doc/custom.css +338 -0
  102. chase_cps-0.1.0/modules/core-library/doc/custom_dark_theme.css +420 -0
  103. chase_cps-0.1.0/modules/core-library/doc/md/demo.md +27 -0
  104. chase_cps-0.1.0/modules/core-library/doc/md/installation.md +121 -0
  105. chase_cps-0.1.0/modules/core-library/doc/md/library.md +65 -0
  106. chase_cps-0.1.0/modules/core-library/doc/md/python.md +33 -0
  107. chase_cps-0.1.0/modules/core-library/doc/md/tools.md +78 -0
  108. chase_cps-0.1.0/modules/core-library/include/chase-core.hh +13 -0
  109. chase_cps-0.1.0/modules/core-library/include/representation/BinaryBooleanFormula.hh +74 -0
  110. chase_cps-0.1.0/modules/core-library/include/representation/BinaryTemporalFormula.hh +95 -0
  111. chase_cps-0.1.0/modules/core-library/include/representation/Boolean.hh +45 -0
  112. chase_cps-0.1.0/modules/core-library/include/representation/BooleanConstant.hh +47 -0
  113. chase_cps-0.1.0/modules/core-library/include/representation/BooleanValue.hh +60 -0
  114. chase_cps-0.1.0/modules/core-library/include/representation/ChaseObject.hh +123 -0
  115. chase_cps-0.1.0/modules/core-library/include/representation/Component.hh +60 -0
  116. chase_cps-0.1.0/modules/core-library/include/representation/ComponentDefinition.hh +60 -0
  117. chase_cps-0.1.0/modules/core-library/include/representation/Constant.hh +67 -0
  118. chase_cps-0.1.0/modules/core-library/include/representation/Constraint.hh +53 -0
  119. chase_cps-0.1.0/modules/core-library/include/representation/Contract.hh +289 -0
  120. chase_cps-0.1.0/modules/core-library/include/representation/CustomType.hh +64 -0
  121. chase_cps-0.1.0/modules/core-library/include/representation/DataDeclaration.hh +48 -0
  122. chase_cps-0.1.0/modules/core-library/include/representation/Declaration.hh +50 -0
  123. chase_cps-0.1.0/modules/core-library/include/representation/DesignProblem.hh +56 -0
  124. chase_cps-0.1.0/modules/core-library/include/representation/Distribution.hh +83 -0
  125. chase_cps-0.1.0/modules/core-library/include/representation/Enumeration.hh +61 -0
  126. chase_cps-0.1.0/modules/core-library/include/representation/Expression.hh +93 -0
  127. chase_cps-0.1.0/modules/core-library/include/representation/Function.hh +69 -0
  128. chase_cps-0.1.0/modules/core-library/include/representation/FunctionCall.hh +67 -0
  129. chase_cps-0.1.0/modules/core-library/include/representation/Graph.hh +266 -0
  130. chase_cps-0.1.0/modules/core-library/include/representation/Identifier.hh +77 -0
  131. chase_cps-0.1.0/modules/core-library/include/representation/Integer.hh +73 -0
  132. chase_cps-0.1.0/modules/core-library/include/representation/IntegerValue.hh +60 -0
  133. chase_cps-0.1.0/modules/core-library/include/representation/Interval.hh +79 -0
  134. chase_cps-0.1.0/modules/core-library/include/representation/LargeBooleanFormula.hh +65 -0
  135. chase_cps-0.1.0/modules/core-library/include/representation/Library.hh +50 -0
  136. chase_cps-0.1.0/modules/core-library/include/representation/LogicFormula.hh +33 -0
  137. chase_cps-0.1.0/modules/core-library/include/representation/Matrix.hh +88 -0
  138. chase_cps-0.1.0/modules/core-library/include/representation/ModalFormula.hh +61 -0
  139. chase_cps-0.1.0/modules/core-library/include/representation/Name.hh +65 -0
  140. chase_cps-0.1.0/modules/core-library/include/representation/NumericValue.hh +36 -0
  141. chase_cps-0.1.0/modules/core-library/include/representation/Operators.hh +86 -0
  142. chase_cps-0.1.0/modules/core-library/include/representation/Parameter.hh +30 -0
  143. chase_cps-0.1.0/modules/core-library/include/representation/ProbabilityFunction.hh +50 -0
  144. chase_cps-0.1.0/modules/core-library/include/representation/Proposition.hh +81 -0
  145. chase_cps-0.1.0/modules/core-library/include/representation/QuantifiedFormula.hh +87 -0
  146. chase_cps-0.1.0/modules/core-library/include/representation/Range.hh +81 -0
  147. chase_cps-0.1.0/modules/core-library/include/representation/Real.hh +65 -0
  148. chase_cps-0.1.0/modules/core-library/include/representation/RealValue.hh +63 -0
  149. chase_cps-0.1.0/modules/core-library/include/representation/Relation.hh +60 -0
  150. chase_cps-0.1.0/modules/core-library/include/representation/Scope.hh +37 -0
  151. chase_cps-0.1.0/modules/core-library/include/representation/SimpleType.hh +32 -0
  152. chase_cps-0.1.0/modules/core-library/include/representation/Specification.hh +41 -0
  153. chase_cps-0.1.0/modules/core-library/include/representation/String.hh +40 -0
  154. chase_cps-0.1.0/modules/core-library/include/representation/StringValue.hh +58 -0
  155. chase_cps-0.1.0/modules/core-library/include/representation/System.hh +78 -0
  156. chase_cps-0.1.0/modules/core-library/include/representation/TimingDefinitions.hh +64 -0
  157. chase_cps-0.1.0/modules/core-library/include/representation/Type.hh +63 -0
  158. chase_cps-0.1.0/modules/core-library/include/representation/UnaryBooleanFormula.hh +63 -0
  159. chase_cps-0.1.0/modules/core-library/include/representation/UnaryTemporalFormula.hh +83 -0
  160. chase_cps-0.1.0/modules/core-library/include/representation/Value.hh +45 -0
  161. chase_cps-0.1.0/modules/core-library/include/representation/Variable.hh +70 -0
  162. chase_cps-0.1.0/modules/core-library/include/representation/forwards.hh +61 -0
  163. chase_cps-0.1.0/modules/core-library/include/representation.hh +56 -0
  164. chase_cps-0.1.0/modules/core-library/include/utilities/BaseVisitor.hh +110 -0
  165. chase_cps-0.1.0/modules/core-library/include/utilities/ClonedDeclarationVisitor.hh +36 -0
  166. chase_cps-0.1.0/modules/core-library/include/utilities/Factory.hh +208 -0
  167. chase_cps-0.1.0/modules/core-library/include/utilities/GraphUtilities.hh +34 -0
  168. chase_cps-0.1.0/modules/core-library/include/utilities/GroupTemporalOperatorsVisitor.hh +35 -0
  169. chase_cps-0.1.0/modules/core-library/include/utilities/GuideVisitor.hh +182 -0
  170. chase_cps-0.1.0/modules/core-library/include/utilities/IOUtils.hh +76 -0
  171. chase_cps-0.1.0/modules/core-library/include/utilities/LogicIdentificationVisitor.hh +60 -0
  172. chase_cps-0.1.0/modules/core-library/include/utilities/LogicNotNormalizationVisitor.hh +38 -0
  173. chase_cps-0.1.0/modules/core-library/include/utilities/LogicSimplificationVisitor.hh +46 -0
  174. chase_cps-0.1.0/modules/core-library/include/utilities/UtilityFunctions.hh +43 -0
  175. chase_cps-0.1.0/modules/core-library/include/utilities/VarsCausalityVisitor.hh +57 -0
  176. chase_cps-0.1.0/modules/core-library/include/utilities/simplify.hh +45 -0
  177. chase_cps-0.1.0/modules/core-library/include/utilities.hh +15 -0
  178. chase_cps-0.1.0/modules/core-library/pychase/CMakeLists.txt +20 -0
  179. chase_cps-0.1.0/modules/core-library/pychase/bindings.cc +1367 -0
  180. chase_cps-0.1.0/modules/core-library/src/representation/BinaryBooleanFormula.cc +66 -0
  181. chase_cps-0.1.0/modules/core-library/src/representation/BinaryTemporalFormula.cc +93 -0
  182. chase_cps-0.1.0/modules/core-library/src/representation/Boolean.cc +41 -0
  183. chase_cps-0.1.0/modules/core-library/src/representation/BooleanConstant.cc +36 -0
  184. chase_cps-0.1.0/modules/core-library/src/representation/BooleanValue.cc +64 -0
  185. chase_cps-0.1.0/modules/core-library/src/representation/ChaseObject.cc +46 -0
  186. chase_cps-0.1.0/modules/core-library/src/representation/Component.cc +122 -0
  187. chase_cps-0.1.0/modules/core-library/src/representation/ComponentDefinition.cc +72 -0
  188. chase_cps-0.1.0/modules/core-library/src/representation/Constant.cc +79 -0
  189. chase_cps-0.1.0/modules/core-library/src/representation/Constraint.cc +45 -0
  190. chase_cps-0.1.0/modules/core-library/src/representation/Contract.cc +125 -0
  191. chase_cps-0.1.0/modules/core-library/src/representation/Contract_algebra.cc +734 -0
  192. chase_cps-0.1.0/modules/core-library/src/representation/CustomType.cc +55 -0
  193. chase_cps-0.1.0/modules/core-library/src/representation/DataDeclaration.cc +34 -0
  194. chase_cps-0.1.0/modules/core-library/src/representation/Declaration.cc +49 -0
  195. chase_cps-0.1.0/modules/core-library/src/representation/DesignProblem.cc +47 -0
  196. chase_cps-0.1.0/modules/core-library/src/representation/Distribution.cc +77 -0
  197. chase_cps-0.1.0/modules/core-library/src/representation/Enumeration.cc +80 -0
  198. chase_cps-0.1.0/modules/core-library/src/representation/Expression.cc +97 -0
  199. chase_cps-0.1.0/modules/core-library/src/representation/Function.cc +64 -0
  200. chase_cps-0.1.0/modules/core-library/src/representation/FunctionCall.cc +58 -0
  201. chase_cps-0.1.0/modules/core-library/src/representation/Graph.cc +195 -0
  202. chase_cps-0.1.0/modules/core-library/src/representation/GraphEdge.cc +103 -0
  203. chase_cps-0.1.0/modules/core-library/src/representation/GraphVertex.cc +51 -0
  204. chase_cps-0.1.0/modules/core-library/src/representation/Identifier.cc +83 -0
  205. chase_cps-0.1.0/modules/core-library/src/representation/Integer.cc +66 -0
  206. chase_cps-0.1.0/modules/core-library/src/representation/IntegerValue.cc +69 -0
  207. chase_cps-0.1.0/modules/core-library/src/representation/Interval.cc +96 -0
  208. chase_cps-0.1.0/modules/core-library/src/representation/LargeBooleanFormula.cc +125 -0
  209. chase_cps-0.1.0/modules/core-library/src/representation/Library.cc +47 -0
  210. chase_cps-0.1.0/modules/core-library/src/representation/Matrix.cc +127 -0
  211. chase_cps-0.1.0/modules/core-library/src/representation/ModalFormula.cc +61 -0
  212. chase_cps-0.1.0/modules/core-library/src/representation/Name.cc +57 -0
  213. chase_cps-0.1.0/modules/core-library/src/representation/NumericValue.cc +23 -0
  214. chase_cps-0.1.0/modules/core-library/src/representation/Operators.cc +141 -0
  215. chase_cps-0.1.0/modules/core-library/src/representation/Parameter.cc +37 -0
  216. chase_cps-0.1.0/modules/core-library/src/representation/ProbabilityFunction.cc +51 -0
  217. chase_cps-0.1.0/modules/core-library/src/representation/Proposition.cc +104 -0
  218. chase_cps-0.1.0/modules/core-library/src/representation/QuantifiedFormula.cc +70 -0
  219. chase_cps-0.1.0/modules/core-library/src/representation/Range.cc +92 -0
  220. chase_cps-0.1.0/modules/core-library/src/representation/Real.cc +59 -0
  221. chase_cps-0.1.0/modules/core-library/src/representation/RealValue.cc +71 -0
  222. chase_cps-0.1.0/modules/core-library/src/representation/Scope.cc +28 -0
  223. chase_cps-0.1.0/modules/core-library/src/representation/SimpleType.cc +25 -0
  224. chase_cps-0.1.0/modules/core-library/src/representation/Specification.cc +15 -0
  225. chase_cps-0.1.0/modules/core-library/src/representation/String.cc +30 -0
  226. chase_cps-0.1.0/modules/core-library/src/representation/StringValue.cc +51 -0
  227. chase_cps-0.1.0/modules/core-library/src/representation/System.cc +100 -0
  228. chase_cps-0.1.0/modules/core-library/src/representation/Type.cc +49 -0
  229. chase_cps-0.1.0/modules/core-library/src/representation/UnaryBooleanFormula.cc +56 -0
  230. chase_cps-0.1.0/modules/core-library/src/representation/UnaryTemporalFormula.cc +77 -0
  231. chase_cps-0.1.0/modules/core-library/src/representation/Value.cc +34 -0
  232. chase_cps-0.1.0/modules/core-library/src/representation/Variable.cc +65 -0
  233. chase_cps-0.1.0/modules/core-library/src/utilities/BaseVisitor.cc +83 -0
  234. chase_cps-0.1.0/modules/core-library/src/utilities/ClonedDeclarationVisitor.cc +27 -0
  235. chase_cps-0.1.0/modules/core-library/src/utilities/Factory_baseFunctions.cc +164 -0
  236. chase_cps-0.1.0/modules/core-library/src/utilities/GraphUtilities.cc +120 -0
  237. chase_cps-0.1.0/modules/core-library/src/utilities/GroupTemporalOperatorsVisitor.cc +95 -0
  238. chase_cps-0.1.0/modules/core-library/src/utilities/GuideVisitor.cc +474 -0
  239. chase_cps-0.1.0/modules/core-library/src/utilities/IOUtils.cc +77 -0
  240. chase_cps-0.1.0/modules/core-library/src/utilities/LogicIdentificationVisitor.cc +89 -0
  241. chase_cps-0.1.0/modules/core-library/src/utilities/LogicNotNormalizationVisitor.cc +173 -0
  242. chase_cps-0.1.0/modules/core-library/src/utilities/LogicSimplificationVisitor.cc +132 -0
  243. chase_cps-0.1.0/modules/core-library/src/utilities/UtilityFunctions.cc +60 -0
  244. chase_cps-0.1.0/modules/core-library/src/utilities/VarsCausalityVisitor.cc +94 -0
  245. chase_cps-0.1.0/modules/core-library/src/utilities/simplify.cc +38 -0
  246. chase_cps-0.1.0/modules/core-library/tests/AlgebraTest.cc +278 -0
  247. chase_cps-0.1.0/modules/core-library/tests/CMakeLists.txt +31 -0
  248. chase_cps-0.1.0/modules/core-library/tests/SystemTest.cc +33 -0
  249. chase_cps-0.1.0/modules/core-library/tests/main.cc +6 -0
  250. chase_cps-0.1.0/modules/logics_tool/.gitignore +3 -0
  251. chase_cps-0.1.0/modules/logics_tool/.idea/.gitignore +8 -0
  252. chase_cps-0.1.0/modules/logics_tool/.idea/misc.xml +4 -0
  253. chase_cps-0.1.0/modules/logics_tool/.idea/modules.xml +8 -0
  254. chase_cps-0.1.0/modules/logics_tool/.idea/repo.iml +2 -0
  255. chase_cps-0.1.0/modules/logics_tool/.idea/vcs.xml +6 -0
  256. chase_cps-0.1.0/modules/logics_tool/CMakeLists.txt +142 -0
  257. chase_cps-0.1.0/modules/logics_tool/LICENSE +29 -0
  258. chase_cps-0.1.0/modules/logics_tool/README.md +45 -0
  259. chase_cps-0.1.0/modules/logics_tool/grammar/LogicsContracts.g4 +193 -0
  260. chase_cps-0.1.0/modules/logics_tool/grammar/Parser/LogicsContracts.interp +160 -0
  261. chase_cps-0.1.0/modules/logics_tool/grammar/Parser/LogicsContracts.tokens +92 -0
  262. chase_cps-0.1.0/modules/logics_tool/grammar/Parser/LogicsContractsLexer.cpp +365 -0
  263. chase_cps-0.1.0/modules/logics_tool/grammar/Parser/LogicsContractsLexer.h +63 -0
  264. chase_cps-0.1.0/modules/logics_tool/grammar/Parser/LogicsContractsLexer.interp +170 -0
  265. chase_cps-0.1.0/modules/logics_tool/grammar/Parser/LogicsContractsLexer.tokens +92 -0
  266. chase_cps-0.1.0/modules/logics_tool/grammar/Parser/LogicsContractsParser.cpp +3359 -0
  267. chase_cps-0.1.0/modules/logics_tool/grammar/Parser/LogicsContractsParser.h +741 -0
  268. chase_cps-0.1.0/modules/logics_tool/include/Console.hh +147 -0
  269. chase_cps-0.1.0/modules/logics_tool/include/LogicsParser/LogicsContractsBaseVisitor.h +216 -0
  270. chase_cps-0.1.0/modules/logics_tool/include/LogicsParser/LogicsContractsLexer.h +63 -0
  271. chase_cps-0.1.0/modules/logics_tool/include/LogicsParser/LogicsContractsParser.h +839 -0
  272. chase_cps-0.1.0/modules/logics_tool/include/LogicsParser/LogicsContractsVisitor.h +122 -0
  273. chase_cps-0.1.0/modules/logics_tool/include/LogicsSpecsBuilder.hh +102 -0
  274. chase_cps-0.1.0/modules/logics_tool/include/chase-logicsLang.hh +17 -0
  275. chase_cps-0.1.0/modules/logics_tool/src/Console.cc +338 -0
  276. chase_cps-0.1.0/modules/logics_tool/src/Console_commands.cc +514 -0
  277. chase_cps-0.1.0/modules/logics_tool/src/LogicsParser/LogicsContractsBaseVisitor.cpp +7 -0
  278. chase_cps-0.1.0/modules/logics_tool/src/LogicsParser/LogicsContractsLexer.cpp +381 -0
  279. chase_cps-0.1.0/modules/logics_tool/src/LogicsParser/LogicsContractsParser.cpp +3716 -0
  280. chase_cps-0.1.0/modules/logics_tool/src/LogicsParser/LogicsContractsVisitor.cpp +7 -0
  281. chase_cps-0.1.0/modules/logics_tool/src/LogicsSpecsBuilder.cc +471 -0
  282. chase_cps-0.1.0/modules/logics_tool/src/bindings.cc +36 -0
  283. chase_cps-0.1.0/modules/logics_tool/src/main.cc +159 -0
  284. chase_cps-0.1.0/modules/third_party/CMakeLists.txt +22 -0
  285. chase_cps-0.1.0/modules/third_party/README.md +28 -0
  286. chase_cps-0.1.0/modules/third_party/antlr4/CMakeLists.txt +72 -0
  287. chase_cps-0.1.0/modules/third_party/antlr4/License.txt +28 -0
  288. chase_cps-0.1.0/modules/third_party/antlr4/README.md +59 -0
  289. chase_cps-0.1.0/modules/third_party/antlr4/VERSION +1 -0
  290. chase_cps-0.1.0/modules/third_party/antlr4/antlr-4.9-complete.jar +0 -0
  291. chase_cps-0.1.0/modules/third_party/antlr4/cmake/ExternalAntlr4Cpp.cmake +221 -0
  292. chase_cps-0.1.0/modules/third_party/antlr4/runtime/CMakeLists.txt +90 -0
  293. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ANTLRErrorListener.cpp +10 -0
  294. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ANTLRErrorListener.h +167 -0
  295. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ANTLRErrorStrategy.cpp +10 -0
  296. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ANTLRErrorStrategy.h +121 -0
  297. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ANTLRFileStream.cpp +34 -0
  298. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ANTLRFileStream.h +27 -0
  299. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ANTLRInputStream.cpp +155 -0
  300. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ANTLRInputStream.h +69 -0
  301. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/BailErrorStrategy.cpp +61 -0
  302. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/BailErrorStrategy.h +59 -0
  303. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/BaseErrorListener.cpp +25 -0
  304. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/BaseErrorListener.h +36 -0
  305. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/BufferedTokenStream.cpp +414 -0
  306. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/BufferedTokenStream.h +200 -0
  307. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/CharStream.cpp +11 -0
  308. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/CharStream.h +37 -0
  309. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/CommonToken.cpp +195 -0
  310. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/CommonToken.h +158 -0
  311. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/CommonTokenFactory.cpp +39 -0
  312. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/CommonTokenFactory.h +74 -0
  313. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/CommonTokenStream.cpp +78 -0
  314. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/CommonTokenStream.h +79 -0
  315. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ConsoleErrorListener.cpp +15 -0
  316. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ConsoleErrorListener.h +35 -0
  317. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/DefaultErrorStrategy.cpp +333 -0
  318. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/DefaultErrorStrategy.h +466 -0
  319. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/DiagnosticErrorListener.cpp +84 -0
  320. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/DiagnosticErrorListener.h +80 -0
  321. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/Exceptions.cpp +64 -0
  322. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/Exceptions.h +99 -0
  323. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/FailedPredicateException.cpp +51 -0
  324. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/FailedPredicateException.h +32 -0
  325. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/InputMismatchException.cpp +18 -0
  326. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/InputMismatchException.h +24 -0
  327. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/IntStream.cpp +12 -0
  328. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/IntStream.h +218 -0
  329. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/InterpreterRuleContext.cpp +19 -0
  330. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/InterpreterRuleContext.h +45 -0
  331. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/Lexer.cpp +295 -0
  332. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/Lexer.h +196 -0
  333. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/LexerInterpreter.cpp +75 -0
  334. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/LexerInterpreter.h +52 -0
  335. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/LexerNoViableAltException.cpp +36 -0
  336. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/LexerNoViableAltException.h +31 -0
  337. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ListTokenSource.cpp +92 -0
  338. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ListTokenSource.h +88 -0
  339. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/NoViableAltException.cpp +46 -0
  340. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/NoViableAltException.h +42 -0
  341. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/Parser.cpp +651 -0
  342. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/Parser.h +467 -0
  343. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ParserInterpreter.cpp +306 -0
  344. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ParserInterpreter.h +179 -0
  345. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ParserRuleContext.cpp +141 -0
  346. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ParserRuleContext.h +147 -0
  347. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ProxyErrorListener.cpp +53 -0
  348. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ProxyErrorListener.h +38 -0
  349. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/RecognitionException.cpp +66 -0
  350. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/RecognitionException.h +98 -0
  351. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/Recognizer.cpp +167 -0
  352. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/Recognizer.h +164 -0
  353. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/RuleContext.cpp +143 -0
  354. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/RuleContext.h +137 -0
  355. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/RuleContextWithAltNum.cpp +27 -0
  356. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/RuleContextWithAltNum.h +32 -0
  357. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/RuntimeMetaData.cpp +53 -0
  358. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/RuntimeMetaData.h +155 -0
  359. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/Token.cpp +9 -0
  360. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/Token.h +92 -0
  361. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/TokenFactory.h +30 -0
  362. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/TokenSource.cpp +9 -0
  363. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/TokenSource.h +85 -0
  364. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/TokenStream.cpp +11 -0
  365. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/TokenStream.h +137 -0
  366. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/TokenStreamRewriter.cpp +425 -0
  367. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/TokenStreamRewriter.h +293 -0
  368. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/UnbufferedCharStream.cpp +211 -0
  369. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/UnbufferedCharStream.h +123 -0
  370. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/UnbufferedTokenStream.cpp +270 -0
  371. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/UnbufferedTokenStream.h +115 -0
  372. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/Vocabulary.cpp +104 -0
  373. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/Vocabulary.h +193 -0
  374. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/WritableToken.cpp +9 -0
  375. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/WritableToken.h +23 -0
  376. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/antlr4-common.h +137 -0
  377. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/antlr4-runtime.h +167 -0
  378. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATN.cpp +209 -0
  379. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATN.h +112 -0
  380. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNConfig.cpp +113 -0
  381. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNConfig.h +148 -0
  382. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNConfigSet.cpp +228 -0
  383. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNConfigSet.h +110 -0
  384. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNDeserializationOptions.cpp +64 -0
  385. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNDeserializationOptions.h +50 -0
  386. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNDeserializer.cpp +758 -0
  387. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNDeserializer.h +85 -0
  388. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNSerializer.cpp +621 -0
  389. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNSerializer.h +61 -0
  390. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNSimulator.cpp +63 -0
  391. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNSimulator.h +87 -0
  392. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNState.cpp +72 -0
  393. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNState.h +133 -0
  394. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNType.h +20 -0
  395. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/AbstractPredicateTransition.cpp +14 -0
  396. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/AbstractPredicateTransition.h +24 -0
  397. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ActionTransition.cpp +33 -0
  398. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ActionTransition.h +33 -0
  399. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/AmbiguityInfo.cpp +16 -0
  400. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/AmbiguityInfo.h +68 -0
  401. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ArrayPredictionContext.cpp +82 -0
  402. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ArrayPredictionContext.h +43 -0
  403. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/AtomTransition.cpp +31 -0
  404. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/AtomTransition.h +30 -0
  405. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/BasicBlockStartState.cpp +12 -0
  406. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/BasicBlockStartState.h +22 -0
  407. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/BasicState.cpp +12 -0
  408. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/BasicState.h +21 -0
  409. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/BlockEndState.cpp +15 -0
  410. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/BlockEndState.h +24 -0
  411. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/BlockStartState.cpp +9 -0
  412. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/BlockStartState.h +21 -0
  413. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ContextSensitivityInfo.cpp +14 -0
  414. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ContextSensitivityInfo.h +47 -0
  415. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/DecisionEventInfo.cpp +14 -0
  416. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/DecisionEventInfo.h +70 -0
  417. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/DecisionInfo.cpp +25 -0
  418. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/DecisionInfo.h +227 -0
  419. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/DecisionState.cpp +17 -0
  420. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/DecisionState.h +30 -0
  421. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/EmptyPredictionContext.cpp +35 -0
  422. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/EmptyPredictionContext.h +27 -0
  423. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/EpsilonTransition.cpp +35 -0
  424. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/EpsilonTransition.h +39 -0
  425. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ErrorInfo.cpp +15 -0
  426. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ErrorInfo.h +43 -0
  427. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LL1Analyzer.cpp +158 -0
  428. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LL1Analyzer.h +109 -0
  429. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerATNConfig.cpp +84 -0
  430. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerATNConfig.h +44 -0
  431. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerATNSimulator.cpp +628 -0
  432. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerATNSimulator.h +210 -0
  433. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerAction.cpp +9 -0
  434. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerAction.h +66 -0
  435. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerActionExecutor.cpp +107 -0
  436. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerActionExecutor.h +115 -0
  437. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerActionType.h +55 -0
  438. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerChannelAction.cpp +55 -0
  439. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerChannelAction.h +63 -0
  440. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerCustomAction.cpp +62 -0
  441. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerCustomAction.h +87 -0
  442. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerIndexedCustomAction.cpp +63 -0
  443. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerIndexedCustomAction.h +82 -0
  444. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerModeAction.cpp +56 -0
  445. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerModeAction.h +61 -0
  446. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerMoreAction.cpp +47 -0
  447. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerMoreAction.h +57 -0
  448. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerPopModeAction.cpp +47 -0
  449. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerPopModeAction.h +57 -0
  450. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerPushModeAction.cpp +56 -0
  451. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerPushModeAction.h +61 -0
  452. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerSkipAction.cpp +47 -0
  453. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerSkipAction.h +55 -0
  454. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerTypeAction.cpp +56 -0
  455. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerTypeAction.h +55 -0
  456. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LookaheadEventInfo.cpp +16 -0
  457. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LookaheadEventInfo.h +42 -0
  458. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LoopEndState.cpp +12 -0
  459. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LoopEndState.h +22 -0
  460. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/Makefile +67 -0
  461. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/NotSetTransition.cpp +27 -0
  462. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/NotSetTransition.h +25 -0
  463. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/OrderedATNConfigSet.cpp +12 -0
  464. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/OrderedATNConfigSet.h +20 -0
  465. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ParseInfo.cpp +102 -0
  466. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ParseInfo.h +102 -0
  467. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ParserATNSimulator.cpp +1366 -0
  468. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ParserATNSimulator.h +904 -0
  469. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PlusBlockStartState.cpp +12 -0
  470. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PlusBlockStartState.h +25 -0
  471. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PlusLoopbackState.cpp +12 -0
  472. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PlusLoopbackState.h +22 -0
  473. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PrecedencePredicateTransition.cpp +32 -0
  474. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PrecedencePredicateTransition.h +29 -0
  475. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PredicateEvalInfo.cpp +17 -0
  476. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PredicateEvalInfo.h +62 -0
  477. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PredicateTransition.cpp +34 -0
  478. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PredicateTransition.h +39 -0
  479. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PredictionContext.cpp +662 -0
  480. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PredictionContext.h +254 -0
  481. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PredictionMode.cpp +201 -0
  482. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PredictionMode.h +436 -0
  483. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ProfilingATNSimulator.cpp +179 -0
  484. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ProfilingATNSimulator.h +60 -0
  485. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/RangeTransition.cpp +30 -0
  486. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/RangeTransition.h +29 -0
  487. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/RuleStartState.cpp +16 -0
  488. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/RuleStartState.h +25 -0
  489. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/RuleStopState.cpp +12 -0
  490. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/RuleStopState.h +25 -0
  491. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/RuleTransition.cpp +37 -0
  492. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/RuleTransition.h +40 -0
  493. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/SemanticContext.cpp +377 -0
  494. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/SemanticContext.h +222 -0
  495. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/SetTransition.cpp +32 -0
  496. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/SetTransition.h +30 -0
  497. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/SingletonPredictionContext.cpp +81 -0
  498. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/SingletonPredictionContext.h +36 -0
  499. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/StarBlockStartState.cpp +12 -0
  500. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/StarBlockStartState.h +21 -0
  501. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/StarLoopEntryState.cpp +15 -0
  502. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/StarLoopEntryState.h +35 -0
  503. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/StarLoopbackState.cpp +19 -0
  504. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/StarLoopbackState.h +21 -0
  505. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/TokensStartState.cpp +12 -0
  506. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/TokensStartState.h +21 -0
  507. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/Transition.cpp +44 -0
  508. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/Transition.h +76 -0
  509. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/WildcardTransition.cpp +25 -0
  510. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/WildcardTransition.h +25 -0
  511. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/dfa/DFA.cpp +127 -0
  512. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/dfa/DFA.h +91 -0
  513. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/dfa/DFASerializer.cpp +67 -0
  514. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/dfa/DFASerializer.h +32 -0
  515. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/dfa/DFAState.cpp +100 -0
  516. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/dfa/DFAState.h +144 -0
  517. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/dfa/LexerDFASerializer.cpp +20 -0
  518. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/dfa/LexerDFASerializer.h +23 -0
  519. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/misc/InterpreterDataReader.cpp +124 -0
  520. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/misc/InterpreterDataReader.h +31 -0
  521. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/misc/Interval.cpp +89 -0
  522. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/misc/Interval.h +84 -0
  523. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/misc/IntervalSet.cpp +521 -0
  524. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/misc/IntervalSet.h +198 -0
  525. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/misc/MurmurHash.cpp +134 -0
  526. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/misc/MurmurHash.h +76 -0
  527. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/misc/Predicate.cpp +4 -0
  528. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/misc/Predicate.h +21 -0
  529. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/support/Any.cpp +13 -0
  530. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/support/Any.h +170 -0
  531. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/support/Arrays.cpp +43 -0
  532. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/support/Arrays.h +110 -0
  533. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/support/BitSet.h +76 -0
  534. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/support/CPPUtils.cpp +248 -0
  535. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/support/CPPUtils.h +78 -0
  536. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/support/Declarations.h +163 -0
  537. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/support/StringUtils.cpp +36 -0
  538. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/support/StringUtils.h +54 -0
  539. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/support/guid.cpp +303 -0
  540. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/support/guid.h +112 -0
  541. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/AbstractParseTreeVisitor.h +128 -0
  542. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ErrorNode.cpp +9 -0
  543. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ErrorNode.h +19 -0
  544. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ErrorNodeImpl.cpp +23 -0
  545. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ErrorNodeImpl.h +33 -0
  546. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/IterativeParseTreeWalker.cpp +71 -0
  547. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/IterativeParseTreeWalker.h +53 -0
  548. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ParseTree.cpp +15 -0
  549. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ParseTree.h +102 -0
  550. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ParseTreeListener.cpp +9 -0
  551. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ParseTreeListener.h +39 -0
  552. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ParseTreeProperty.h +50 -0
  553. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ParseTreeVisitor.cpp +9 -0
  554. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ParseTreeVisitor.h +57 -0
  555. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ParseTreeWalker.cpp +49 -0
  556. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ParseTreeWalker.h +31 -0
  557. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/TerminalNode.cpp +9 -0
  558. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/TerminalNode.h +32 -0
  559. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/TerminalNodeImpl.cpp +57 -0
  560. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/TerminalNodeImpl.h +33 -0
  561. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/Trees.cpp +241 -0
  562. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/Trees.h +78 -0
  563. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/Chunk.cpp +9 -0
  564. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/Chunk.h +44 -0
  565. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/ParseTreeMatch.cpp +69 -0
  566. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/ParseTreeMatch.h +132 -0
  567. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/ParseTreePattern.cpp +64 -0
  568. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/ParseTreePattern.h +105 -0
  569. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/ParseTreePatternMatcher.cpp +371 -0
  570. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/ParseTreePatternMatcher.h +185 -0
  571. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/RuleTagToken.cpp +77 -0
  572. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/RuleTagToken.h +117 -0
  573. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/TagChunk.cpp +39 -0
  574. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/TagChunk.h +86 -0
  575. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/TextChunk.cpp +28 -0
  576. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/TextChunk.h +51 -0
  577. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/TokenTagToken.cpp +36 -0
  578. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/TokenTagToken.h +80 -0
  579. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPath.cpp +154 -0
  580. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPath.h +86 -0
  581. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathElement.cpp +31 -0
  582. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathElement.h +40 -0
  583. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathLexer.cpp +173 -0
  584. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathLexer.g4 +64 -0
  585. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathLexer.h +56 -0
  586. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathLexer.tokens +12 -0
  587. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathLexerErrorListener.cpp +13 -0
  588. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathLexerErrorListener.h +22 -0
  589. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathRuleAnywhereElement.cpp +20 -0
  590. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathRuleAnywhereElement.h +27 -0
  591. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathRuleElement.cpp +30 -0
  592. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathRuleElement.h +26 -0
  593. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathTokenAnywhereElement.cpp +20 -0
  594. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathTokenAnywhereElement.h +25 -0
  595. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathTokenElement.cpp +33 -0
  596. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathTokenElement.h +26 -0
  597. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathWildcardAnywhereElement.cpp +23 -0
  598. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathWildcardAnywhereElement.h +23 -0
  599. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathWildcardElement.cpp +24 -0
  600. chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathWildcardElement.h +23 -0
  601. chase_cps-0.1.0/pyproject.toml +48 -0
  602. chase_cps-0.1.0/python/README.md +95 -0
  603. chase_cps-0.1.0/python/chase_cps/__init__.py +33 -0
  604. chase_cps-0.1.0/python/chase_cps/__main__.py +5 -0
  605. chase_cps-0.1.0/python/chase_cps/_native.py +40 -0
  606. chase_cps-0.1.0/python/chase_cps/backends/__init__.py +79 -0
  607. chase_cps-0.1.0/python/chase_cps/backends/base.py +27 -0
  608. chase_cps-0.1.0/python/chase_cps/backends/nusmv.py +191 -0
  609. chase_cps-0.1.0/python/chase_cps/backends/slugs.py +109 -0
  610. chase_cps-0.1.0/python/chase_cps/checks.py +205 -0
  611. chase_cps-0.1.0/python/chase_cps/cli.py +254 -0
  612. chase_cps-0.1.0/python/chase_cps/contract.py +389 -0
  613. chase_cps-0.1.0/python/chase_cps/ltl.py +351 -0
  614. chase_cps-0.1.0/python/chase_cps/queries.py +116 -0
  615. chase_cps-0.1.0/python/chase_cps/tools.py +340 -0
  616. chase_cps-0.1.0/python/tests/test_chase_cps.py +461 -0
  617. chase_cps-0.1.0/tests/demo-suite.sh +20 -0
@@ -0,0 +1,11 @@
1
+ **/.git
2
+ **/.DS_Store
3
+ .github
4
+ .idea
5
+ .vscode
6
+ build
7
+ install
8
+ cmake-build-*
9
+ legacy
10
+ **/__pycache__
11
+ **/.pytest_cache
@@ -0,0 +1,23 @@
1
+ # Build and installation directories of the superbuild
2
+ /build/
3
+ /install/
4
+ cmake-build-*/
5
+ CMakeCache.txt
6
+ CMakeFiles/
7
+
8
+ # Editors and operating systems
9
+ .idea/
10
+ .vscode/
11
+ .DS_Store
12
+
13
+ # Python
14
+ venv/
15
+ __pycache__/
16
+
17
+ # Files generated by the legacy demos
18
+ legacy/demo/Timing/template_0_synthesizable.structuredslugs
19
+ output.smv
20
+ .pytest_cache/
21
+ *.egg-info/
22
+ /dist/
23
+ /wheelhouse/
@@ -0,0 +1,24 @@
1
+ [submodule "modules/third_party"]
2
+ path = modules/third_party
3
+ url = https://github.com/chase-cps/third_party.git
4
+ branch = main
5
+ [submodule "modules/core-library"]
6
+ path = modules/core-library
7
+ url = https://github.com/chase-cps/core-library.git
8
+ branch = main
9
+ [submodule "modules/chase-backends"]
10
+ path = modules/chase-backends
11
+ url = https://github.com/chase-cps/chase-backends.git
12
+ branch = main
13
+ [submodule "modules/DSL_tool"]
14
+ path = modules/DSL_tool
15
+ url = https://github.com/chase-cps/DSL_tool.git
16
+ branch = main
17
+ [submodule "modules/logics_tool"]
18
+ path = modules/logics_tool
19
+ url = https://github.com/chase-cps/logics_tool.git
20
+ branch = main
21
+ [submodule "demos"]
22
+ path = demos
23
+ url = https://github.com/chase-cps/demos.git
24
+ branch = main
@@ -0,0 +1,55 @@
1
+ # Changelog
2
+
3
+ ## 0.1.0 (2026-10-25)
4
+
5
+ First release of the CHASE Python package, `chase-cps`, and of this
6
+ repository as the entry point to CHASE.
7
+
8
+ ### Python package
9
+
10
+ - Contracts written in the standard LTL syntax (`Contract.from_strings`,
11
+ `Contract.from_dict`), or read from and written to the logics language of
12
+ CHASE (`load_spec`, `parse_spec`, `to_spec`).
13
+ - The contract algebra of the core library: composition, conjunction,
14
+ disjunction, merging, quotient, separation, and saturation.
15
+ - Checks with nuXmv (or NuSMV, where nuXmv cannot be used): implication,
16
+ satisfiability, refinement, consistency, compatibility, and containment of
17
+ an environment or an implementation. A failed check returns a counterexample trace.
18
+ `remove_redundant` drops the terms implied by the others, and
19
+ `Contract.simplify` rewrites the formulas as the simplify command of
20
+ logics_tool.
21
+ - GR(1) realizability (`is_realizable`) and synthesis (`synthesize`) with
22
+ slugs, with the controller or the counter-strategy of the environment.
23
+ - The operations are named with verbs, the same in Python, on the command
24
+ line, in the MCP server, and in the console of logics_tool: `compose`,
25
+ `conjoin`, `disjoin`, `merge`, `divide` (quotient), `separate`,
26
+ `saturate`, `simplify`, `refines`, `verify`, and `synthesize`.
27
+ - Command line: `chase-cps install` installs nuXmv, slugs, and NuSMV in
28
+ `~/.chase`, `chase-cps doctor` shows the tools found, and `chase-cps check`
29
+ checks the contracts of a specification and prints the counterexamples.
30
+ - Wheels for Python 3.10 to 3.15 on Linux (x86_64, aarch64) and macOS (arm64,
31
+ x86_64).
32
+
33
+ ### Core library and tools
34
+
35
+ - Separation of contracts, and Python bindings for disjunction and merging.
36
+ - The console of logics_tool has the commands `disjoin`, `merge`, and
37
+ `separate`; `conjunction`, `quotient`, and `refinement` are now `conjoin`,
38
+ `divide`, and `refines`, and the old names are still accepted. `show`
39
+ prints the temporal operators (it printed their codes).
40
+ - The quotient follows again the closed form of Incer et al. (MEMOCODE 2018):
41
+ the guarantees are (G1 & A2) | !(A1 & G2).
42
+ - Primed variables kept their prime when a formula was cloned, and the NuSMV
43
+ back end writes them as `next(x)`. Before, `x' = x + 1` became `x = x + 1`,
44
+ which made the refinement checks of the RoboticJoints demo hold vacuously.
45
+ - Errors in a specification raise an exception instead of ending the process.
46
+ - Missing return in the ANTLR runtime, which crashed the Release builds.
47
+ - C++17, CMake 3.18, Python found with FindPython, and relative run paths in
48
+ all the modules.
49
+
50
+ ### Repository
51
+
52
+ - The modules are collected as git submodules, built at once by `install.sh`
53
+ or CMake, and shipped in a Docker image.
54
+ - Continuous integration on Linux and macOS, with the demos and the Python
55
+ tests.
@@ -0,0 +1,33 @@
1
+ cff-version: 1.2.0
2
+ message: "If you use CHASE, please cite the paper below."
3
+ title: "CHASE: Contract-based Heterogeneous Analysis and Systems Exploration"
4
+ type: software
5
+ authors:
6
+ - family-names: Lora
7
+ given-names: Michele
8
+ - family-names: Xiao
9
+ given-names: Yifeng
10
+ affiliation: "University of California, Berkeley"
11
+ repository-code: "https://github.com/chase-cps/chase"
12
+ url: "https://chase-cps.github.io"
13
+ license: BSD-3-Clause
14
+ version: 0.1.0
15
+ date-released: 2026-10-25
16
+ preferred-citation:
17
+ type: conference-paper
18
+ title: "CHASE: Contract-based requirement engineering for cyber-physical system design"
19
+ authors:
20
+ - family-names: Nuzzo
21
+ given-names: Pierluigi
22
+ - family-names: Lora
23
+ given-names: Michele
24
+ - family-names: Feldman
25
+ given-names: Yishai A.
26
+ - family-names: Sangiovanni-Vincentelli
27
+ given-names: Alberto L.
28
+ collection-title: "Proceedings of the Design, Automation & Test in Europe Conference & Exhibition (DATE)"
29
+ publisher:
30
+ name: IEEE
31
+ year: 2018
32
+ start: 839
33
+ end: 844
@@ -0,0 +1,142 @@
1
+ ###############################################################################
2
+ # Superbuild of CHASE.
3
+ #
4
+ # Configures, builds, and installs the CHASE modules (git submodules in the
5
+ # modules/ directory) in the required order:
6
+ # third_party -> core-library -> chase-backends -> DSL_tool, logics_tool
7
+ #
8
+ # All the modules are installed in the same prefix, which is the value of
9
+ # CMAKE_INSTALL_PREFIX if given, or ${CMAKE_BINARY_DIR}/install otherwise.
10
+ # The installation is performed during the build, i.e., by:
11
+ # cmake -S . -B build [-DCMAKE_INSTALL_PREFIX=<prefix>]
12
+ # cmake --build build
13
+ ###############################################################################
14
+ cmake_minimum_required(VERSION 3.18)
15
+ project(CHASE_SUPERBUILD NONE)
16
+
17
+ include(ExternalProject)
18
+ include(ProcessorCount)
19
+
20
+ if(NOT CMAKE_BUILD_TYPE)
21
+ set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE)
22
+ endif()
23
+
24
+ option(CHASE_BUILD_TESTS "Build the tests of the CHASE core library" OFF)
25
+
26
+ # Installation prefix of the modules. When building the Python wheel
27
+ # (scikit-build-core sets SKBUILD), the modules are staged in the build
28
+ # directory and only the Python modules go into the wheel (see the end).
29
+ if(SKBUILD)
30
+ set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/stage CACHE PATH
31
+ "Installation prefix of the CHASE modules" FORCE)
32
+ elseif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
33
+ set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/install CACHE PATH
34
+ "Installation prefix of the CHASE modules" FORCE)
35
+ endif()
36
+ get_filename_component(CHASE_PREFIX "${CMAKE_INSTALL_PREFIX}" ABSOLUTE
37
+ BASE_DIR "${CMAKE_BINARY_DIR}")
38
+ message(STATUS "CHASE installation prefix: ${CHASE_PREFIX}")
39
+
40
+ ProcessorCount(_nproc)
41
+ if(_nproc EQUAL 0)
42
+ set(_nproc 1)
43
+ endif()
44
+ set(CHASE_BUILD_JOBS ${_nproc} CACHE STRING
45
+ "Number of parallel jobs used to build each module")
46
+
47
+ # Every module reads its installation prefix from the environment variable
48
+ # CHASE_INSTALL_DIR (it ignores -DCMAKE_INSTALL_PREFIX). The variable is also
49
+ # set for the build and install steps, since a module may re-run its own
50
+ # configuration during the build.
51
+ set(_env ${CMAKE_COMMAND} -E env CHASE_INSTALL_DIR=${CHASE_PREFIX})
52
+
53
+ # Python interpreter: Python_EXECUTABLE is used by FindPython, PYTHON_EXECUTABLE
54
+ # by the older FindPythonInterp/FindPythonLibs. Either one can be given, and
55
+ # both are forwarded to the modules.
56
+ if(PYTHON_EXECUTABLE AND NOT Python_EXECUTABLE)
57
+ set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
58
+ elseif(Python_EXECUTABLE AND NOT PYTHON_EXECUTABLE)
59
+ set(PYTHON_EXECUTABLE ${Python_EXECUTABLE})
60
+ endif()
61
+
62
+ # pybind11 installed with pip (e.g., in the isolated build of the wheel).
63
+ if(NOT pybind11_DIR AND Python_EXECUTABLE)
64
+ execute_process(COMMAND ${Python_EXECUTABLE} -m pybind11 --cmakedir
65
+ OUTPUT_VARIABLE _pybind11_dir OUTPUT_STRIP_TRAILING_WHITESPACE
66
+ RESULT_VARIABLE _pybind11_found ERROR_QUIET)
67
+ if(_pybind11_found EQUAL 0 AND EXISTS "${_pybind11_dir}")
68
+ set(pybind11_DIR ${_pybind11_dir})
69
+ endif()
70
+ endif()
71
+
72
+ # Options forwarded to every module. Lists are passed with '|' as separator.
73
+ set(_args -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE})
74
+ foreach(_var pybind11_DIR CMAKE_PREFIX_PATH Python_EXECUTABLE PYTHON_EXECUTABLE)
75
+ if(${_var})
76
+ string(REPLACE ";" "|" _value "${${_var}}")
77
+ list(APPEND _args "-D${_var}=${_value}")
78
+ endif()
79
+ endforeach()
80
+
81
+ set(_generator -G ${CMAKE_GENERATOR})
82
+ if(CMAKE_GENERATOR_PLATFORM)
83
+ list(APPEND _generator -A ${CMAKE_GENERATOR_PLATFORM})
84
+ endif()
85
+ if(CMAKE_GENERATOR_TOOLSET)
86
+ list(APPEND _generator -T ${CMAKE_GENERATOR_TOOLSET})
87
+ endif()
88
+
89
+ # chase_module(<name> [DEPENDS <targets>...] [ARGS <cmake args>...])
90
+ function(chase_module name)
91
+ cmake_parse_arguments(M "" "" "DEPENDS;ARGS" ${ARGN})
92
+ set(src ${PROJECT_SOURCE_DIR}/modules/${name})
93
+ if(NOT EXISTS ${src}/CMakeLists.txt)
94
+ message(FATAL_ERROR "Module ${name} not found in ${src}. "
95
+ "Run: git submodule update --init --recursive")
96
+ endif()
97
+ ExternalProject_Add(${name}
98
+ SOURCE_DIR ${src}
99
+ BINARY_DIR ${CMAKE_BINARY_DIR}/${name}
100
+ DEPENDS ${M_DEPENDS}
101
+ LIST_SEPARATOR |
102
+ CONFIGURE_COMMAND ${_env} ${CMAKE_COMMAND} ${_generator}
103
+ ${_args} ${M_ARGS} -S <SOURCE_DIR> -B <BINARY_DIR>
104
+ BUILD_COMMAND ${_env} ${CMAKE_COMMAND} --build <BINARY_DIR>
105
+ --config ${CMAKE_BUILD_TYPE} --parallel ${CHASE_BUILD_JOBS}
106
+ INSTALL_COMMAND ${_env} ${CMAKE_COMMAND} --install <BINARY_DIR>
107
+ --config ${CMAKE_BUILD_TYPE}
108
+ BUILD_ALWAYS ON
109
+ USES_TERMINAL_CONFIGURE ON
110
+ USES_TERMINAL_BUILD ON)
111
+ endfunction()
112
+
113
+ if(CHASE_BUILD_TESTS)
114
+ set(_tests ON)
115
+ else()
116
+ set(_tests OFF)
117
+ endif()
118
+
119
+ chase_module(third_party)
120
+ # INSTALL_GTEST=OFF keeps googletest (fetched by the tests) out of the prefix.
121
+ chase_module(core-library DEPENDS third_party
122
+ ARGS -DENABLE_TESTS=${_tests} -DINSTALL_GTEST=OFF)
123
+ chase_module(chase-backends DEPENDS core-library)
124
+ chase_module(DSL_tool DEPENDS chase-backends)
125
+ chase_module(logics_tool DEPENDS chase-backends)
126
+
127
+ # 'ctest' in the build directory runs the tests of the core library.
128
+ if(CHASE_BUILD_TESTS)
129
+ enable_testing()
130
+ add_test(NAME core-library
131
+ COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C ${CMAKE_BUILD_TYPE}
132
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/core-library)
133
+ endif()
134
+
135
+ # Python wheel: the compiled modules and the ANTLR runtime go into
136
+ # chase_cps/_lib, next to the Python package (python/chase_cps).
137
+ if(SKBUILD)
138
+ install(DIRECTORY ${CHASE_PREFIX}/chase/lib/ DESTINATION chase_cps/_lib
139
+ FILES_MATCHING PATTERN "pychase*")
140
+ install(DIRECTORY ${CHASE_PREFIX}/third_party/antlr4/lib/ DESTINATION chase_cps/_lib
141
+ FILES_MATCHING PATTERN "libantlr4-runtime*" PATTERN "*.a" EXCLUDE)
142
+ endif()
@@ -0,0 +1,102 @@
1
+ ###############################################################################
2
+ # Docker image with the complete CHASE toolchain:
3
+ # - CHASE core-library, chase-backends, DSL_tool, logics_tool (+ Python API)
4
+ # - external solvers used by the backends: gr1c, slugs, and nuXmv (x86_64
5
+ # only, when its license is accepted, see below)
6
+ #
7
+ # The CHASE modules are built from the git submodules of this repository,
8
+ # which must be initialized before building the image:
9
+ # git submodule update --init --recursive
10
+ # docker build -t chase .
11
+ #
12
+ # nuXmv may be used only for academic and non-commercial purposes
13
+ # (https://nuxmv.fbk.eu/license.html). It is downloaded into the image only
14
+ # when its license is accepted:
15
+ # docker build --build-arg ACCEPT_NUXMV_LICENSE=yes -t chase .
16
+ #
17
+ # Run the demos:
18
+ # docker run --rm -it chase
19
+ # docker run --rm chase /opt/chase/tests/demo-suite.sh
20
+ ###############################################################################
21
+
22
+ ARG UBUNTU_VERSION=24.04
23
+
24
+ FROM ubuntu:${UBUNTU_VERSION} AS base
25
+ ENV DEBIAN_FRONTEND=noninteractive
26
+ RUN apt-get update && apt-get install -y --no-install-recommends \
27
+ build-essential cmake git ca-certificates curl pkg-config \
28
+ python3 python3-dev python3-pytest pybind11-dev uuid-dev \
29
+ bison flex libboost-dev graphviz less libxml2 libedit2 xz-utils \
30
+ && rm -rf /var/lib/apt/lists/*
31
+
32
+ ###############################################################################
33
+ # External solvers.
34
+ ###############################################################################
35
+ FROM base AS solvers
36
+ ARG GR1C_REF=v0.13.3
37
+ ARG SLUGS_REF=ac09bf652d4ff47a7018d6a41627af73a67a049c
38
+ ARG TARGETARCH
39
+
40
+ # gr1c (GR(1) synthesis)
41
+ RUN git clone https://github.com/tulip-control/gr1c /tmp/gr1c \
42
+ && cd /tmp/gr1c && git checkout ${GR1C_REF} \
43
+ && ./get-deps.sh && ./build-deps.sh \
44
+ && make -j"$(nproc)" && make install prefix=/usr/local \
45
+ && rm -rf /tmp/gr1c
46
+
47
+ # slugs (GR(1) synthesis) and its structured-slugs compiler
48
+ RUN git clone https://github.com/VerifiableRobotics/slugs /opt/slugs \
49
+ && cd /opt/slugs && git checkout ${SLUGS_REF} \
50
+ && sed -i 's/#ifndef __x86_64/#if !defined(__x86_64) \&\& !defined(__aarch64__)/' \
51
+ src/BFAbstractionLibrary/compilerOptionGenerator.c \
52
+ && cd src && make -j"$(nproc)" \
53
+ && ln -s /opt/slugs/src/slugs /usr/local/bin/slugs
54
+
55
+ ###############################################################################
56
+ # CHASE.
57
+ ###############################################################################
58
+ FROM solvers AS chase
59
+ ARG BUILD_TYPE=Release
60
+
61
+ COPY CMakeLists.txt /src/chase/
62
+ COPY modules /src/chase/modules
63
+
64
+ RUN for m in third_party core-library chase-backends DSL_tool logics_tool; do \
65
+ test -f /src/chase/modules/$m/CMakeLists.txt || { \
66
+ echo "modules/$m is empty: run 'git submodule update --init --recursive'"; \
67
+ exit 1; }; \
68
+ done \
69
+ && cmake -S /src/chase -B /build \
70
+ -DCMAKE_INSTALL_PREFIX=/opt/chase \
71
+ -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
72
+ -Dpybind11_DIR=/usr/lib/cmake/pybind11 \
73
+ -DPython_EXECUTABLE=/usr/bin/python3 \
74
+ -DCHASE_BUILD_TESTS=ON \
75
+ && cmake --build /build \
76
+ && (cd /build && ctest --output-on-failure) \
77
+ && rm -rf /build /src
78
+
79
+ COPY demos /opt/chase/demos
80
+ COPY tests/demo-suite.sh /opt/chase/tests/demo-suite.sh
81
+ COPY python /opt/chase/python
82
+
83
+ ENV CHASE_INSTALL_DIR=/opt/chase \
84
+ CHASE_HOME=/opt/chase/tools \
85
+ PATH=/opt/chase/tools/bin:/opt/chase/chase/bin:${PATH} \
86
+ PYTHONPATH=/opt/chase/python:/opt/chase/chase/lib \
87
+ SLUGSCOMPILER=/opt/slugs/tools/StructuredSlugsParser/compiler.py
88
+
89
+ # nuXmv (model checking), installed by chase-cps when its license is
90
+ # accepted. FBK ships it for x86_64 Linux only.
91
+ ARG ACCEPT_NUXMV_LICENSE=no
92
+ RUN if [ "${ACCEPT_NUXMV_LICENSE}" = "yes" ] && [ "$(uname -m)" = "x86_64" ]; then \
93
+ python3 -m chase_cps install nuxmv --accept-license; \
94
+ elif [ "${ACCEPT_NUXMV_LICENSE}" = "yes" ]; then \
95
+ echo "nuXmv: no build for $(uname -m), not installed."; \
96
+ else \
97
+ echo "nuXmv: license not accepted, not installed" \
98
+ "(docker build --build-arg ACCEPT_NUXMV_LICENSE=yes)."; \
99
+ fi
100
+
101
+ WORKDIR /opt/chase/demos
102
+ CMD ["/bin/bash"]
@@ -0,0 +1,30 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2015 - 2022 by University of Southern California
4
+ Copyright (c) 2015 - 2022 by University of Verona
5
+ Copyright (c) 2026 by University of California, Berkeley
6
+
7
+ Redistribution and use in source and binary forms, with or without
8
+ modification, are permitted provided that the following conditions are met:
9
+
10
+ 1. Redistributions of source code must retain the above copyright notice, this
11
+ list of conditions and the following disclaimer.
12
+
13
+ 2. Redistributions in binary form must reproduce the above copyright notice,
14
+ this list of conditions and the following disclaimer in the documentation
15
+ and/or other materials provided with the distribution.
16
+
17
+ 3. Neither the name of the copyright holder nor the names of its
18
+ contributors may be used to endorse or promote products derived from
19
+ this software without specific prior written permission.
20
+
21
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
25
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
27
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,120 @@
1
+ Metadata-Version: 2.4
2
+ Name: chase-cps
3
+ Version: 0.1.0
4
+ Summary: CHASE: Contract-based Heterogeneous Analysis and Systems Exploration
5
+ Keywords: contracts,assume-guarantee,LTL,formal methods,cyber-physical systems,requirements,model checking
6
+ Author-Email: Yifeng Xiao <yifengx@berkeley.edu>
7
+ License-Expression: BSD-3-Clause
8
+ License-File: LICENSE
9
+ License-File: THIRD_PARTY_NOTICES
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: C++
12
+ Classifier: Operating System :: MacOS
13
+ Classifier: Operating System :: POSIX :: Linux
14
+ Classifier: Topic :: Scientific/Engineering
15
+ Classifier: Intended Audience :: Science/Research
16
+ Project-URL: Homepage, https://chase-cps.github.io
17
+ Project-URL: Documentation, https://chase-cps.github.io/api/
18
+ Project-URL: Repository, https://github.com/chase-cps/chase
19
+ Project-URL: Issues, https://github.com/chase-cps/chase/issues
20
+ Project-URL: Changelog, https://github.com/chase-cps/chase/blob/master/CHANGELOG.md
21
+ Requires-Python: >=3.10
22
+ Provides-Extra: test
23
+ Requires-Dist: pytest; extra == "test"
24
+ Description-Content-Type: text/markdown
25
+
26
+ # chase-cps
27
+
28
+ Python interface to [CHASE][WEB] (Contract-based Heterogeneous Analysis and
29
+ Systems Exploration), a framework for requirement capture, formalization, and
30
+ validation of cyber-physical systems with assume-guarantee contracts.
31
+
32
+ The package contains the CHASE core library (contract representation and
33
+ algebra) and a common interface to model checkers and synthesis tools.
34
+
35
+ ```python
36
+ from chase_cps import Contract, refinement
37
+
38
+ spec = Contract.from_strings(inputs=["req"], outputs=["grant"],
39
+ assumptions=["G F !req"],
40
+ guarantees=["G (req -> F grant)"], name="Spec")
41
+ impl = Contract.from_strings(inputs=["req"], outputs=["grant"],
42
+ guarantees=["G (req -> X grant)"], name="Impl")
43
+
44
+ result = refinement(impl, spec)
45
+ print(result.status) # valid, or invalid with a counterexample trace
46
+ ```
47
+
48
+ The operations have the names of the commands of `logics_tool`. A contract
49
+ `c` has the methods `compose`, `conjoin`, `disjoin`, `merge`, `divide`
50
+ (quotient), `separate`, `saturate`, and `simplify`, which return new
51
+ contracts. The checks on contracts are `refines`, `verify` (`is_compatible`
52
+ and `is_consistent`), `is_realizable`, `accepts`, and `implements`;
53
+ `synthesize` builds a controller. The checks on formulas are `implies` and
54
+ `is_satisfiable`. `remove_redundant` drops the terms implied by the others. `load_spec` and
55
+ `parse_spec` read the contracts of a specification written in the logics
56
+ language of CHASE, and `to_spec` writes one.
57
+
58
+ ## Installation
59
+
60
+ `$> pip install chase-cps`
61
+
62
+ Wheels are available for Python 3.10 to 3.15 on Linux (x86_64 and aarch64,
63
+ glibc 2.28 or later) and macOS 11 or later (arm64 and x86_64). Windows is not
64
+ supported: use WSL or the CHASE Docker image.
65
+
66
+ ## Requirements
67
+
68
+ The package contains the CHASE library. The checks call external tools,
69
+ which are not installed with the package:
70
+
71
+ - [nuXmv][NUXMV] for `refines`, `verify`, `implies`, `is_satisfiable`,
72
+ `remove_redundant`, `accepts`, and `implements`. nuXmv is free for academic and non-commercial
73
+ use.
74
+ - [slugs][SLUGS] for `is_realizable` and `synthesize`.
75
+
76
+ The command `chase-cps install` downloads nuXmv from its site, and builds
77
+ slugs from its sources, into `~/.chase`:
78
+
79
+ ````
80
+ $> chase-cps install nuxmv --accept-license # Linux x86_64, macOS arm64
81
+ $> chase-cps install slugs # needs a C++ compiler, make, and Boost
82
+ ````
83
+
84
+ On macOS, nuXmv needs the libraries of Homebrew (`brew install libxml2 gmp
85
+ libedit`). On Linux it needs `libxml2` and `libedit2`, and the C++ library of
86
+ GCC 13 or later (Ubuntu 24.04, Debian 13, Fedora 39, or newer);
87
+ `chase-cps install` says what is missing.
88
+ The tools can also be installed by hand: they are looked up in the `PATH`
89
+ and in `~/.chase/bin`, or given with the environment variables `CHASE_NUXMV`
90
+ and `CHASE_SLUGS`. The command
91
+
92
+ `$> chase-cps doctor`
93
+
94
+ shows the tools found and how to install the missing ones.
95
+
96
+ Where nuXmv cannot be used (e.g. for commercial purposes), the checks run
97
+ with [NuSMV][NUSMV] (LGPL) instead: `chase-cps install nusmv` installs it on
98
+ Linux x86_64, or set `CHASE_NUSMV`.
99
+
100
+ ## Command line
101
+
102
+ `chase-cps check` checks the contracts of a specification written in the
103
+ logics language of CHASE, or of a JSON file, and prints the counterexamples:
104
+
105
+ ````
106
+ $> chase-cps check specs.ltl # verify every contract
107
+ $> chase-cps check specs.ltl --refines Joint1+Joint2 Joints # composition refines Joints
108
+ $> chase-cps check specs.ltl --realizable Joint1 --json
109
+ ````
110
+
111
+ The exit status is 0 when every check passes, and 1 when a check fails.
112
+
113
+ The source code and the installation instructions are in the
114
+ [chase][REPO] repository.
115
+
116
+ [WEB]: https://chase-cps.github.io
117
+ [REPO]: https://github.com/chase-cps/chase
118
+ [NUXMV]: https://nuxmv.fbk.eu/
119
+ [NUSMV]: https://nusmv.fbk.eu/
120
+ [SLUGS]: https://github.com/VerifiableRobotics/slugs