pacti-org / pacti

A package for compositional system analysis and design
https://www.pacti.org
BSD 3-Clause "New" or "Revised" License
19 stars 5 forks source link

[Feature request] Provide explanations for all contract-level operations. #339

Open NicolasRouquette opened 11 months ago

NicolasRouquette commented 11 months ago

Is your feature request related to a problem? Please describe.

composition, quotient, and merging are binary contract operations that produce a new contract. refinement is a binary boolean operation.

Describe the solution you'd like

In all 4 cases, we need information explaining the result.

For the 3 binary contract operations, an explanation involves:

For the refinement operation, an explanation involves showing the individual constraint checks.

In all 4 cases, we need to provide explanations for both operation success and failure.

Success and failure explanations are important to assess whether there are any superfluous variables/constraints in the contracts and which tactics were involved in producing the result. This could be useful for developing specialized tactics and for identifying the need for new tactics.

Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.

Additional context Add any other context or screenshots about the feature request here.