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.
- chase_cps-0.1.0/.dockerignore +11 -0
- chase_cps-0.1.0/.gitignore +23 -0
- chase_cps-0.1.0/.gitmodules +24 -0
- chase_cps-0.1.0/CHANGELOG.md +55 -0
- chase_cps-0.1.0/CITATION.cff +33 -0
- chase_cps-0.1.0/CMakeLists.txt +142 -0
- chase_cps-0.1.0/Dockerfile +102 -0
- chase_cps-0.1.0/LICENSE +30 -0
- chase_cps-0.1.0/PKG-INFO +120 -0
- chase_cps-0.1.0/README.md +235 -0
- chase_cps-0.1.0/THIRD_PARTY_NOTICES +73 -0
- chase_cps-0.1.0/_config.yml +1 -0
- chase_cps-0.1.0/demos/CPSWeek22/compositional_demo.sh +59 -0
- chase_cps-0.1.0/demos/CPSWeek22/script.chase +8 -0
- chase_cps-0.1.0/demos/CPSWeek22/single_model.ltl +85 -0
- chase_cps-0.1.0/demos/CPSWeek22/single_model_demo.sh +31 -0
- chase_cps-0.1.0/demos/CPSWeek22/singlemodel.chase +2 -0
- chase_cps-0.1.0/demos/CPSWeek22/specs.ltl +191 -0
- chase_cps-0.1.0/demos/CPSWeek22/synthesis.chase +3 -0
- chase_cps-0.1.0/demos/CPSWeek22/verification.chase +7 -0
- chase_cps-0.1.0/demos/DATE18/requirements.txt +16 -0
- chase_cps-0.1.0/demos/DATE18/solution.sh +52 -0
- chase_cps-0.1.0/demos/DATE18/template_0_realizable.txt +81 -0
- chase_cps-0.1.0/demos/DATE18/template_0_unrealizable.txt +81 -0
- chase_cps-0.1.0/demos/DATE21/DATE21.md +157 -0
- chase_cps-0.1.0/demos/DATE21/solution.script +10 -0
- chase_cps-0.1.0/demos/DATE21/specs/requirements_1.txt +16 -0
- chase_cps-0.1.0/demos/DATE21/specs/robotic_arm.ltl +176 -0
- chase_cps-0.1.0/demos/DATE21/specs/template_0_synthesizable.txt +81 -0
- chase_cps-0.1.0/demos/DATE21/specs/template_0_unrealizable.txt +81 -0
- chase_cps-0.1.0/demos/FDL2024/dsl_factory_realizable.txt +86 -0
- chase_cps-0.1.0/demos/LICENSE +29 -0
- chase_cps-0.1.0/demos/README.md +23 -0
- chase_cps-0.1.0/demos/RoboticJoints/compositional_demo.sh +68 -0
- chase_cps-0.1.0/demos/RoboticJoints/refinement.smv +323 -0
- chase_cps-0.1.0/demos/RoboticJoints/scaling.py +136 -0
- chase_cps-0.1.0/demos/RoboticJoints/script.chase +8 -0
- chase_cps-0.1.0/demos/RoboticJoints/single_model.ltl +85 -0
- chase_cps-0.1.0/demos/RoboticJoints/singlemodel.chase +2 -0
- chase_cps-0.1.0/demos/RoboticJoints/singlemodel_demo.sh +38 -0
- chase_cps-0.1.0/demos/RoboticJoints/specs.ltl +191 -0
- chase_cps-0.1.0/demos/RoboticJoints/synthesis.chase +3 -0
- chase_cps-0.1.0/demos/RoboticJoints/verification.chase +7 -0
- chase_cps-0.1.0/docs/api.sh +11 -0
- chase_cps-0.1.0/docs/chase-framework.png +0 -0
- chase_cps-0.1.0/docs/pacti-comparison.md +39 -0
- chase_cps-0.1.0/docs/usage.md +151 -0
- chase_cps-0.1.0/install.sh +81 -0
- chase_cps-0.1.0/modules/DSL_tool/.gitignore +11 -0
- chase_cps-0.1.0/modules/DSL_tool/CMakeLists.txt +141 -0
- chase_cps-0.1.0/modules/DSL_tool/LICENSE +29 -0
- chase_cps-0.1.0/modules/DSL_tool/README.md +45 -0
- chase_cps-0.1.0/modules/DSL_tool/grammar/Chase.g4 +70 -0
- chase_cps-0.1.0/modules/DSL_tool/include/DSLParser/ChaseBaseListener.h +107 -0
- chase_cps-0.1.0/modules/DSL_tool/include/DSLParser/ChaseLexer.h +59 -0
- chase_cps-0.1.0/modules/DSL_tool/include/DSLParser/ChaseListener.h +100 -0
- chase_cps-0.1.0/modules/DSL_tool/include/DSLParser/ChaseParser.h +496 -0
- chase_cps-0.1.0/modules/DSL_tool/include/DSLProblem.hh +220 -0
- chase_cps-0.1.0/modules/DSL_tool/include/DSLProblemDefinitions.hh +241 -0
- chase_cps-0.1.0/modules/DSL_tool/include/DSLSpecsBuilder.hh +122 -0
- chase_cps-0.1.0/modules/DSL_tool/include/chase-DSL.hh +16 -0
- chase_cps-0.1.0/modules/DSL_tool/src/DSLDesignProblem_patterns.cc +755 -0
- chase_cps-0.1.0/modules/DSL_tool/src/DSLDesignProblem_support.cc +91 -0
- chase_cps-0.1.0/modules/DSL_tool/src/DSLParser/ChaseBaseListener.cpp +7 -0
- chase_cps-0.1.0/modules/DSL_tool/src/DSLParser/ChaseLexer.cpp +253 -0
- chase_cps-0.1.0/modules/DSL_tool/src/DSLParser/ChaseListener.cpp +7 -0
- chase_cps-0.1.0/modules/DSL_tool/src/DSLParser/ChaseParser.cpp +2174 -0
- chase_cps-0.1.0/modules/DSL_tool/src/DSLProblem.cc +537 -0
- chase_cps-0.1.0/modules/DSL_tool/src/DSLProblemDefinitions.cc +109 -0
- chase_cps-0.1.0/modules/DSL_tool/src/DSLSpecBuilder_support.cc +67 -0
- chase_cps-0.1.0/modules/DSL_tool/src/DSLSpecsBuilder.cc +417 -0
- chase_cps-0.1.0/modules/DSL_tool/src/bindings.cc +30 -0
- chase_cps-0.1.0/modules/DSL_tool/src/main.cc +170 -0
- chase_cps-0.1.0/modules/chase-backends/CMakeLists.txt +87 -0
- chase_cps-0.1.0/modules/chase-backends/LICENSE +29 -0
- chase_cps-0.1.0/modules/chase-backends/README.md +28 -0
- chase_cps-0.1.0/modules/chase-backends/include/GR1CPrinter.hh +67 -0
- chase_cps-0.1.0/modules/chase-backends/include/NuSMVPrinter.hh +75 -0
- chase_cps-0.1.0/modules/chase-backends/include/PySTLPrinter.hh +47 -0
- chase_cps-0.1.0/modules/chase-backends/include/SlugsPrinter.hh +78 -0
- chase_cps-0.1.0/modules/chase-backends/include/chase-backends.hh +21 -0
- chase_cps-0.1.0/modules/chase-backends/src/GR1CPrinter.cc +332 -0
- chase_cps-0.1.0/modules/chase-backends/src/GR1CPrinter_visit.cc +259 -0
- chase_cps-0.1.0/modules/chase-backends/src/NuSMVPrinter.cc +107 -0
- chase_cps-0.1.0/modules/chase-backends/src/NuSMVPrinter_visit.cc +174 -0
- chase_cps-0.1.0/modules/chase-backends/src/PySTLPrinter.cc +123 -0
- chase_cps-0.1.0/modules/chase-backends/src/SlugsPrinter.cc +320 -0
- chase_cps-0.1.0/modules/chase-backends/src/SlugsPrinter_visit.cc +233 -0
- chase_cps-0.1.0/modules/chase-backends/src/bindings.cc +131 -0
- chase_cps-0.1.0/modules/core-library/.dockerignore +5 -0
- chase_cps-0.1.0/modules/core-library/.gitignore +3 -0
- chase_cps-0.1.0/modules/core-library/.gitmodules +0 -0
- chase_cps-0.1.0/modules/core-library/.vscode/c_cpp_properties.json +19 -0
- chase_cps-0.1.0/modules/core-library/CMakeLists.txt +204 -0
- chase_cps-0.1.0/modules/core-library/Dockerfile +124 -0
- chase_cps-0.1.0/modules/core-library/LICENSE +30 -0
- chase_cps-0.1.0/modules/core-library/README.md +91 -0
- chase_cps-0.1.0/modules/core-library/chaseConfig.cmake.in +8 -0
- chase_cps-0.1.0/modules/core-library/doc/CMakeLists.txt +31 -0
- chase_cps-0.1.0/modules/core-library/doc/Doxyfile.in +2496 -0
- chase_cps-0.1.0/modules/core-library/doc/custom.css +338 -0
- chase_cps-0.1.0/modules/core-library/doc/custom_dark_theme.css +420 -0
- chase_cps-0.1.0/modules/core-library/doc/md/demo.md +27 -0
- chase_cps-0.1.0/modules/core-library/doc/md/installation.md +121 -0
- chase_cps-0.1.0/modules/core-library/doc/md/library.md +65 -0
- chase_cps-0.1.0/modules/core-library/doc/md/python.md +33 -0
- chase_cps-0.1.0/modules/core-library/doc/md/tools.md +78 -0
- chase_cps-0.1.0/modules/core-library/include/chase-core.hh +13 -0
- chase_cps-0.1.0/modules/core-library/include/representation/BinaryBooleanFormula.hh +74 -0
- chase_cps-0.1.0/modules/core-library/include/representation/BinaryTemporalFormula.hh +95 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Boolean.hh +45 -0
- chase_cps-0.1.0/modules/core-library/include/representation/BooleanConstant.hh +47 -0
- chase_cps-0.1.0/modules/core-library/include/representation/BooleanValue.hh +60 -0
- chase_cps-0.1.0/modules/core-library/include/representation/ChaseObject.hh +123 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Component.hh +60 -0
- chase_cps-0.1.0/modules/core-library/include/representation/ComponentDefinition.hh +60 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Constant.hh +67 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Constraint.hh +53 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Contract.hh +289 -0
- chase_cps-0.1.0/modules/core-library/include/representation/CustomType.hh +64 -0
- chase_cps-0.1.0/modules/core-library/include/representation/DataDeclaration.hh +48 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Declaration.hh +50 -0
- chase_cps-0.1.0/modules/core-library/include/representation/DesignProblem.hh +56 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Distribution.hh +83 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Enumeration.hh +61 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Expression.hh +93 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Function.hh +69 -0
- chase_cps-0.1.0/modules/core-library/include/representation/FunctionCall.hh +67 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Graph.hh +266 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Identifier.hh +77 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Integer.hh +73 -0
- chase_cps-0.1.0/modules/core-library/include/representation/IntegerValue.hh +60 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Interval.hh +79 -0
- chase_cps-0.1.0/modules/core-library/include/representation/LargeBooleanFormula.hh +65 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Library.hh +50 -0
- chase_cps-0.1.0/modules/core-library/include/representation/LogicFormula.hh +33 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Matrix.hh +88 -0
- chase_cps-0.1.0/modules/core-library/include/representation/ModalFormula.hh +61 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Name.hh +65 -0
- chase_cps-0.1.0/modules/core-library/include/representation/NumericValue.hh +36 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Operators.hh +86 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Parameter.hh +30 -0
- chase_cps-0.1.0/modules/core-library/include/representation/ProbabilityFunction.hh +50 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Proposition.hh +81 -0
- chase_cps-0.1.0/modules/core-library/include/representation/QuantifiedFormula.hh +87 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Range.hh +81 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Real.hh +65 -0
- chase_cps-0.1.0/modules/core-library/include/representation/RealValue.hh +63 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Relation.hh +60 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Scope.hh +37 -0
- chase_cps-0.1.0/modules/core-library/include/representation/SimpleType.hh +32 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Specification.hh +41 -0
- chase_cps-0.1.0/modules/core-library/include/representation/String.hh +40 -0
- chase_cps-0.1.0/modules/core-library/include/representation/StringValue.hh +58 -0
- chase_cps-0.1.0/modules/core-library/include/representation/System.hh +78 -0
- chase_cps-0.1.0/modules/core-library/include/representation/TimingDefinitions.hh +64 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Type.hh +63 -0
- chase_cps-0.1.0/modules/core-library/include/representation/UnaryBooleanFormula.hh +63 -0
- chase_cps-0.1.0/modules/core-library/include/representation/UnaryTemporalFormula.hh +83 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Value.hh +45 -0
- chase_cps-0.1.0/modules/core-library/include/representation/Variable.hh +70 -0
- chase_cps-0.1.0/modules/core-library/include/representation/forwards.hh +61 -0
- chase_cps-0.1.0/modules/core-library/include/representation.hh +56 -0
- chase_cps-0.1.0/modules/core-library/include/utilities/BaseVisitor.hh +110 -0
- chase_cps-0.1.0/modules/core-library/include/utilities/ClonedDeclarationVisitor.hh +36 -0
- chase_cps-0.1.0/modules/core-library/include/utilities/Factory.hh +208 -0
- chase_cps-0.1.0/modules/core-library/include/utilities/GraphUtilities.hh +34 -0
- chase_cps-0.1.0/modules/core-library/include/utilities/GroupTemporalOperatorsVisitor.hh +35 -0
- chase_cps-0.1.0/modules/core-library/include/utilities/GuideVisitor.hh +182 -0
- chase_cps-0.1.0/modules/core-library/include/utilities/IOUtils.hh +76 -0
- chase_cps-0.1.0/modules/core-library/include/utilities/LogicIdentificationVisitor.hh +60 -0
- chase_cps-0.1.0/modules/core-library/include/utilities/LogicNotNormalizationVisitor.hh +38 -0
- chase_cps-0.1.0/modules/core-library/include/utilities/LogicSimplificationVisitor.hh +46 -0
- chase_cps-0.1.0/modules/core-library/include/utilities/UtilityFunctions.hh +43 -0
- chase_cps-0.1.0/modules/core-library/include/utilities/VarsCausalityVisitor.hh +57 -0
- chase_cps-0.1.0/modules/core-library/include/utilities/simplify.hh +45 -0
- chase_cps-0.1.0/modules/core-library/include/utilities.hh +15 -0
- chase_cps-0.1.0/modules/core-library/pychase/CMakeLists.txt +20 -0
- chase_cps-0.1.0/modules/core-library/pychase/bindings.cc +1367 -0
- chase_cps-0.1.0/modules/core-library/src/representation/BinaryBooleanFormula.cc +66 -0
- chase_cps-0.1.0/modules/core-library/src/representation/BinaryTemporalFormula.cc +93 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Boolean.cc +41 -0
- chase_cps-0.1.0/modules/core-library/src/representation/BooleanConstant.cc +36 -0
- chase_cps-0.1.0/modules/core-library/src/representation/BooleanValue.cc +64 -0
- chase_cps-0.1.0/modules/core-library/src/representation/ChaseObject.cc +46 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Component.cc +122 -0
- chase_cps-0.1.0/modules/core-library/src/representation/ComponentDefinition.cc +72 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Constant.cc +79 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Constraint.cc +45 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Contract.cc +125 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Contract_algebra.cc +734 -0
- chase_cps-0.1.0/modules/core-library/src/representation/CustomType.cc +55 -0
- chase_cps-0.1.0/modules/core-library/src/representation/DataDeclaration.cc +34 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Declaration.cc +49 -0
- chase_cps-0.1.0/modules/core-library/src/representation/DesignProblem.cc +47 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Distribution.cc +77 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Enumeration.cc +80 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Expression.cc +97 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Function.cc +64 -0
- chase_cps-0.1.0/modules/core-library/src/representation/FunctionCall.cc +58 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Graph.cc +195 -0
- chase_cps-0.1.0/modules/core-library/src/representation/GraphEdge.cc +103 -0
- chase_cps-0.1.0/modules/core-library/src/representation/GraphVertex.cc +51 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Identifier.cc +83 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Integer.cc +66 -0
- chase_cps-0.1.0/modules/core-library/src/representation/IntegerValue.cc +69 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Interval.cc +96 -0
- chase_cps-0.1.0/modules/core-library/src/representation/LargeBooleanFormula.cc +125 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Library.cc +47 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Matrix.cc +127 -0
- chase_cps-0.1.0/modules/core-library/src/representation/ModalFormula.cc +61 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Name.cc +57 -0
- chase_cps-0.1.0/modules/core-library/src/representation/NumericValue.cc +23 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Operators.cc +141 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Parameter.cc +37 -0
- chase_cps-0.1.0/modules/core-library/src/representation/ProbabilityFunction.cc +51 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Proposition.cc +104 -0
- chase_cps-0.1.0/modules/core-library/src/representation/QuantifiedFormula.cc +70 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Range.cc +92 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Real.cc +59 -0
- chase_cps-0.1.0/modules/core-library/src/representation/RealValue.cc +71 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Scope.cc +28 -0
- chase_cps-0.1.0/modules/core-library/src/representation/SimpleType.cc +25 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Specification.cc +15 -0
- chase_cps-0.1.0/modules/core-library/src/representation/String.cc +30 -0
- chase_cps-0.1.0/modules/core-library/src/representation/StringValue.cc +51 -0
- chase_cps-0.1.0/modules/core-library/src/representation/System.cc +100 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Type.cc +49 -0
- chase_cps-0.1.0/modules/core-library/src/representation/UnaryBooleanFormula.cc +56 -0
- chase_cps-0.1.0/modules/core-library/src/representation/UnaryTemporalFormula.cc +77 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Value.cc +34 -0
- chase_cps-0.1.0/modules/core-library/src/representation/Variable.cc +65 -0
- chase_cps-0.1.0/modules/core-library/src/utilities/BaseVisitor.cc +83 -0
- chase_cps-0.1.0/modules/core-library/src/utilities/ClonedDeclarationVisitor.cc +27 -0
- chase_cps-0.1.0/modules/core-library/src/utilities/Factory_baseFunctions.cc +164 -0
- chase_cps-0.1.0/modules/core-library/src/utilities/GraphUtilities.cc +120 -0
- chase_cps-0.1.0/modules/core-library/src/utilities/GroupTemporalOperatorsVisitor.cc +95 -0
- chase_cps-0.1.0/modules/core-library/src/utilities/GuideVisitor.cc +474 -0
- chase_cps-0.1.0/modules/core-library/src/utilities/IOUtils.cc +77 -0
- chase_cps-0.1.0/modules/core-library/src/utilities/LogicIdentificationVisitor.cc +89 -0
- chase_cps-0.1.0/modules/core-library/src/utilities/LogicNotNormalizationVisitor.cc +173 -0
- chase_cps-0.1.0/modules/core-library/src/utilities/LogicSimplificationVisitor.cc +132 -0
- chase_cps-0.1.0/modules/core-library/src/utilities/UtilityFunctions.cc +60 -0
- chase_cps-0.1.0/modules/core-library/src/utilities/VarsCausalityVisitor.cc +94 -0
- chase_cps-0.1.0/modules/core-library/src/utilities/simplify.cc +38 -0
- chase_cps-0.1.0/modules/core-library/tests/AlgebraTest.cc +278 -0
- chase_cps-0.1.0/modules/core-library/tests/CMakeLists.txt +31 -0
- chase_cps-0.1.0/modules/core-library/tests/SystemTest.cc +33 -0
- chase_cps-0.1.0/modules/core-library/tests/main.cc +6 -0
- chase_cps-0.1.0/modules/logics_tool/.gitignore +3 -0
- chase_cps-0.1.0/modules/logics_tool/.idea/.gitignore +8 -0
- chase_cps-0.1.0/modules/logics_tool/.idea/misc.xml +4 -0
- chase_cps-0.1.0/modules/logics_tool/.idea/modules.xml +8 -0
- chase_cps-0.1.0/modules/logics_tool/.idea/repo.iml +2 -0
- chase_cps-0.1.0/modules/logics_tool/.idea/vcs.xml +6 -0
- chase_cps-0.1.0/modules/logics_tool/CMakeLists.txt +142 -0
- chase_cps-0.1.0/modules/logics_tool/LICENSE +29 -0
- chase_cps-0.1.0/modules/logics_tool/README.md +45 -0
- chase_cps-0.1.0/modules/logics_tool/grammar/LogicsContracts.g4 +193 -0
- chase_cps-0.1.0/modules/logics_tool/grammar/Parser/LogicsContracts.interp +160 -0
- chase_cps-0.1.0/modules/logics_tool/grammar/Parser/LogicsContracts.tokens +92 -0
- chase_cps-0.1.0/modules/logics_tool/grammar/Parser/LogicsContractsLexer.cpp +365 -0
- chase_cps-0.1.0/modules/logics_tool/grammar/Parser/LogicsContractsLexer.h +63 -0
- chase_cps-0.1.0/modules/logics_tool/grammar/Parser/LogicsContractsLexer.interp +170 -0
- chase_cps-0.1.0/modules/logics_tool/grammar/Parser/LogicsContractsLexer.tokens +92 -0
- chase_cps-0.1.0/modules/logics_tool/grammar/Parser/LogicsContractsParser.cpp +3359 -0
- chase_cps-0.1.0/modules/logics_tool/grammar/Parser/LogicsContractsParser.h +741 -0
- chase_cps-0.1.0/modules/logics_tool/include/Console.hh +147 -0
- chase_cps-0.1.0/modules/logics_tool/include/LogicsParser/LogicsContractsBaseVisitor.h +216 -0
- chase_cps-0.1.0/modules/logics_tool/include/LogicsParser/LogicsContractsLexer.h +63 -0
- chase_cps-0.1.0/modules/logics_tool/include/LogicsParser/LogicsContractsParser.h +839 -0
- chase_cps-0.1.0/modules/logics_tool/include/LogicsParser/LogicsContractsVisitor.h +122 -0
- chase_cps-0.1.0/modules/logics_tool/include/LogicsSpecsBuilder.hh +102 -0
- chase_cps-0.1.0/modules/logics_tool/include/chase-logicsLang.hh +17 -0
- chase_cps-0.1.0/modules/logics_tool/src/Console.cc +338 -0
- chase_cps-0.1.0/modules/logics_tool/src/Console_commands.cc +514 -0
- chase_cps-0.1.0/modules/logics_tool/src/LogicsParser/LogicsContractsBaseVisitor.cpp +7 -0
- chase_cps-0.1.0/modules/logics_tool/src/LogicsParser/LogicsContractsLexer.cpp +381 -0
- chase_cps-0.1.0/modules/logics_tool/src/LogicsParser/LogicsContractsParser.cpp +3716 -0
- chase_cps-0.1.0/modules/logics_tool/src/LogicsParser/LogicsContractsVisitor.cpp +7 -0
- chase_cps-0.1.0/modules/logics_tool/src/LogicsSpecsBuilder.cc +471 -0
- chase_cps-0.1.0/modules/logics_tool/src/bindings.cc +36 -0
- chase_cps-0.1.0/modules/logics_tool/src/main.cc +159 -0
- chase_cps-0.1.0/modules/third_party/CMakeLists.txt +22 -0
- chase_cps-0.1.0/modules/third_party/README.md +28 -0
- chase_cps-0.1.0/modules/third_party/antlr4/CMakeLists.txt +72 -0
- chase_cps-0.1.0/modules/third_party/antlr4/License.txt +28 -0
- chase_cps-0.1.0/modules/third_party/antlr4/README.md +59 -0
- chase_cps-0.1.0/modules/third_party/antlr4/VERSION +1 -0
- chase_cps-0.1.0/modules/third_party/antlr4/antlr-4.9-complete.jar +0 -0
- chase_cps-0.1.0/modules/third_party/antlr4/cmake/ExternalAntlr4Cpp.cmake +221 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/CMakeLists.txt +90 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ANTLRErrorListener.cpp +10 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ANTLRErrorListener.h +167 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ANTLRErrorStrategy.cpp +10 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ANTLRErrorStrategy.h +121 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ANTLRFileStream.cpp +34 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ANTLRFileStream.h +27 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ANTLRInputStream.cpp +155 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ANTLRInputStream.h +69 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/BailErrorStrategy.cpp +61 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/BailErrorStrategy.h +59 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/BaseErrorListener.cpp +25 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/BaseErrorListener.h +36 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/BufferedTokenStream.cpp +414 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/BufferedTokenStream.h +200 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/CharStream.cpp +11 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/CharStream.h +37 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/CommonToken.cpp +195 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/CommonToken.h +158 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/CommonTokenFactory.cpp +39 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/CommonTokenFactory.h +74 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/CommonTokenStream.cpp +78 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/CommonTokenStream.h +79 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ConsoleErrorListener.cpp +15 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ConsoleErrorListener.h +35 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/DefaultErrorStrategy.cpp +333 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/DefaultErrorStrategy.h +466 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/DiagnosticErrorListener.cpp +84 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/DiagnosticErrorListener.h +80 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/Exceptions.cpp +64 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/Exceptions.h +99 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/FailedPredicateException.cpp +51 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/FailedPredicateException.h +32 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/InputMismatchException.cpp +18 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/InputMismatchException.h +24 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/IntStream.cpp +12 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/IntStream.h +218 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/InterpreterRuleContext.cpp +19 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/InterpreterRuleContext.h +45 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/Lexer.cpp +295 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/Lexer.h +196 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/LexerInterpreter.cpp +75 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/LexerInterpreter.h +52 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/LexerNoViableAltException.cpp +36 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/LexerNoViableAltException.h +31 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ListTokenSource.cpp +92 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ListTokenSource.h +88 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/NoViableAltException.cpp +46 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/NoViableAltException.h +42 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/Parser.cpp +651 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/Parser.h +467 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ParserInterpreter.cpp +306 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ParserInterpreter.h +179 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ParserRuleContext.cpp +141 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ParserRuleContext.h +147 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ProxyErrorListener.cpp +53 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/ProxyErrorListener.h +38 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/RecognitionException.cpp +66 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/RecognitionException.h +98 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/Recognizer.cpp +167 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/Recognizer.h +164 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/RuleContext.cpp +143 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/RuleContext.h +137 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/RuleContextWithAltNum.cpp +27 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/RuleContextWithAltNum.h +32 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/RuntimeMetaData.cpp +53 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/RuntimeMetaData.h +155 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/Token.cpp +9 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/Token.h +92 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/TokenFactory.h +30 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/TokenSource.cpp +9 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/TokenSource.h +85 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/TokenStream.cpp +11 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/TokenStream.h +137 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/TokenStreamRewriter.cpp +425 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/TokenStreamRewriter.h +293 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/UnbufferedCharStream.cpp +211 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/UnbufferedCharStream.h +123 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/UnbufferedTokenStream.cpp +270 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/UnbufferedTokenStream.h +115 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/Vocabulary.cpp +104 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/Vocabulary.h +193 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/WritableToken.cpp +9 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/WritableToken.h +23 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/antlr4-common.h +137 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/antlr4-runtime.h +167 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATN.cpp +209 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATN.h +112 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNConfig.cpp +113 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNConfig.h +148 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNConfigSet.cpp +228 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNConfigSet.h +110 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNDeserializationOptions.cpp +64 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNDeserializationOptions.h +50 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNDeserializer.cpp +758 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNDeserializer.h +85 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNSerializer.cpp +621 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNSerializer.h +61 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNSimulator.cpp +63 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNSimulator.h +87 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNState.cpp +72 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNState.h +133 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ATNType.h +20 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/AbstractPredicateTransition.cpp +14 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/AbstractPredicateTransition.h +24 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ActionTransition.cpp +33 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ActionTransition.h +33 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/AmbiguityInfo.cpp +16 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/AmbiguityInfo.h +68 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ArrayPredictionContext.cpp +82 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ArrayPredictionContext.h +43 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/AtomTransition.cpp +31 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/AtomTransition.h +30 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/BasicBlockStartState.cpp +12 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/BasicBlockStartState.h +22 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/BasicState.cpp +12 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/BasicState.h +21 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/BlockEndState.cpp +15 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/BlockEndState.h +24 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/BlockStartState.cpp +9 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/BlockStartState.h +21 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ContextSensitivityInfo.cpp +14 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ContextSensitivityInfo.h +47 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/DecisionEventInfo.cpp +14 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/DecisionEventInfo.h +70 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/DecisionInfo.cpp +25 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/DecisionInfo.h +227 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/DecisionState.cpp +17 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/DecisionState.h +30 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/EmptyPredictionContext.cpp +35 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/EmptyPredictionContext.h +27 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/EpsilonTransition.cpp +35 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/EpsilonTransition.h +39 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ErrorInfo.cpp +15 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ErrorInfo.h +43 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LL1Analyzer.cpp +158 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LL1Analyzer.h +109 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerATNConfig.cpp +84 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerATNConfig.h +44 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerATNSimulator.cpp +628 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerATNSimulator.h +210 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerAction.cpp +9 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerAction.h +66 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerActionExecutor.cpp +107 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerActionExecutor.h +115 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerActionType.h +55 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerChannelAction.cpp +55 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerChannelAction.h +63 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerCustomAction.cpp +62 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerCustomAction.h +87 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerIndexedCustomAction.cpp +63 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerIndexedCustomAction.h +82 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerModeAction.cpp +56 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerModeAction.h +61 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerMoreAction.cpp +47 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerMoreAction.h +57 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerPopModeAction.cpp +47 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerPopModeAction.h +57 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerPushModeAction.cpp +56 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerPushModeAction.h +61 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerSkipAction.cpp +47 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerSkipAction.h +55 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerTypeAction.cpp +56 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LexerTypeAction.h +55 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LookaheadEventInfo.cpp +16 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LookaheadEventInfo.h +42 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LoopEndState.cpp +12 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/LoopEndState.h +22 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/Makefile +67 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/NotSetTransition.cpp +27 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/NotSetTransition.h +25 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/OrderedATNConfigSet.cpp +12 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/OrderedATNConfigSet.h +20 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ParseInfo.cpp +102 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ParseInfo.h +102 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ParserATNSimulator.cpp +1366 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ParserATNSimulator.h +904 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PlusBlockStartState.cpp +12 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PlusBlockStartState.h +25 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PlusLoopbackState.cpp +12 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PlusLoopbackState.h +22 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PrecedencePredicateTransition.cpp +32 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PrecedencePredicateTransition.h +29 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PredicateEvalInfo.cpp +17 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PredicateEvalInfo.h +62 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PredicateTransition.cpp +34 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PredicateTransition.h +39 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PredictionContext.cpp +662 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PredictionContext.h +254 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PredictionMode.cpp +201 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/PredictionMode.h +436 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ProfilingATNSimulator.cpp +179 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/ProfilingATNSimulator.h +60 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/RangeTransition.cpp +30 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/RangeTransition.h +29 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/RuleStartState.cpp +16 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/RuleStartState.h +25 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/RuleStopState.cpp +12 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/RuleStopState.h +25 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/RuleTransition.cpp +37 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/RuleTransition.h +40 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/SemanticContext.cpp +377 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/SemanticContext.h +222 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/SetTransition.cpp +32 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/SetTransition.h +30 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/SingletonPredictionContext.cpp +81 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/SingletonPredictionContext.h +36 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/StarBlockStartState.cpp +12 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/StarBlockStartState.h +21 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/StarLoopEntryState.cpp +15 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/StarLoopEntryState.h +35 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/StarLoopbackState.cpp +19 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/StarLoopbackState.h +21 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/TokensStartState.cpp +12 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/TokensStartState.h +21 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/Transition.cpp +44 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/Transition.h +76 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/WildcardTransition.cpp +25 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/atn/WildcardTransition.h +25 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/dfa/DFA.cpp +127 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/dfa/DFA.h +91 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/dfa/DFASerializer.cpp +67 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/dfa/DFASerializer.h +32 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/dfa/DFAState.cpp +100 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/dfa/DFAState.h +144 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/dfa/LexerDFASerializer.cpp +20 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/dfa/LexerDFASerializer.h +23 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/misc/InterpreterDataReader.cpp +124 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/misc/InterpreterDataReader.h +31 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/misc/Interval.cpp +89 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/misc/Interval.h +84 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/misc/IntervalSet.cpp +521 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/misc/IntervalSet.h +198 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/misc/MurmurHash.cpp +134 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/misc/MurmurHash.h +76 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/misc/Predicate.cpp +4 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/misc/Predicate.h +21 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/support/Any.cpp +13 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/support/Any.h +170 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/support/Arrays.cpp +43 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/support/Arrays.h +110 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/support/BitSet.h +76 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/support/CPPUtils.cpp +248 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/support/CPPUtils.h +78 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/support/Declarations.h +163 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/support/StringUtils.cpp +36 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/support/StringUtils.h +54 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/support/guid.cpp +303 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/support/guid.h +112 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/AbstractParseTreeVisitor.h +128 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ErrorNode.cpp +9 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ErrorNode.h +19 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ErrorNodeImpl.cpp +23 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ErrorNodeImpl.h +33 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/IterativeParseTreeWalker.cpp +71 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/IterativeParseTreeWalker.h +53 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ParseTree.cpp +15 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ParseTree.h +102 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ParseTreeListener.cpp +9 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ParseTreeListener.h +39 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ParseTreeProperty.h +50 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ParseTreeVisitor.cpp +9 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ParseTreeVisitor.h +57 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ParseTreeWalker.cpp +49 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/ParseTreeWalker.h +31 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/TerminalNode.cpp +9 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/TerminalNode.h +32 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/TerminalNodeImpl.cpp +57 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/TerminalNodeImpl.h +33 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/Trees.cpp +241 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/Trees.h +78 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/Chunk.cpp +9 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/Chunk.h +44 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/ParseTreeMatch.cpp +69 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/ParseTreeMatch.h +132 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/ParseTreePattern.cpp +64 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/ParseTreePattern.h +105 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/ParseTreePatternMatcher.cpp +371 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/ParseTreePatternMatcher.h +185 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/RuleTagToken.cpp +77 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/RuleTagToken.h +117 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/TagChunk.cpp +39 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/TagChunk.h +86 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/TextChunk.cpp +28 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/TextChunk.h +51 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/TokenTagToken.cpp +36 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/pattern/TokenTagToken.h +80 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPath.cpp +154 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPath.h +86 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathElement.cpp +31 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathElement.h +40 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathLexer.cpp +173 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathLexer.g4 +64 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathLexer.h +56 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathLexer.tokens +12 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathLexerErrorListener.cpp +13 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathLexerErrorListener.h +22 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathRuleAnywhereElement.cpp +20 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathRuleAnywhereElement.h +27 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathRuleElement.cpp +30 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathRuleElement.h +26 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathTokenAnywhereElement.cpp +20 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathTokenAnywhereElement.h +25 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathTokenElement.cpp +33 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathTokenElement.h +26 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathWildcardAnywhereElement.cpp +23 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathWildcardAnywhereElement.h +23 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathWildcardElement.cpp +24 -0
- chase_cps-0.1.0/modules/third_party/antlr4/runtime/src/tree/xpath/XPathWildcardElement.h +23 -0
- chase_cps-0.1.0/pyproject.toml +48 -0
- chase_cps-0.1.0/python/README.md +95 -0
- chase_cps-0.1.0/python/chase_cps/__init__.py +33 -0
- chase_cps-0.1.0/python/chase_cps/__main__.py +5 -0
- chase_cps-0.1.0/python/chase_cps/_native.py +40 -0
- chase_cps-0.1.0/python/chase_cps/backends/__init__.py +79 -0
- chase_cps-0.1.0/python/chase_cps/backends/base.py +27 -0
- chase_cps-0.1.0/python/chase_cps/backends/nusmv.py +191 -0
- chase_cps-0.1.0/python/chase_cps/backends/slugs.py +109 -0
- chase_cps-0.1.0/python/chase_cps/checks.py +205 -0
- chase_cps-0.1.0/python/chase_cps/cli.py +254 -0
- chase_cps-0.1.0/python/chase_cps/contract.py +389 -0
- chase_cps-0.1.0/python/chase_cps/ltl.py +351 -0
- chase_cps-0.1.0/python/chase_cps/queries.py +116 -0
- chase_cps-0.1.0/python/chase_cps/tools.py +340 -0
- chase_cps-0.1.0/python/tests/test_chase_cps.py +461 -0
- chase_cps-0.1.0/tests/demo-suite.sh +20 -0
|
@@ -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"]
|
chase_cps-0.1.0/LICENSE
ADDED
|
@@ -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.
|
chase_cps-0.1.0/PKG-INFO
ADDED
|
@@ -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
|