compose
Combines two or more assume-guarantee contracts in parallel, links same-named variables, and can discharge implied assumptions to support refinement checks.
Instructions
Parallel composition of two or more contracts (the contract of the system made of the components). Variables with the same name are connected; no variable can be an output of two contracts.
By default the closed form ((A1 & A2) | !(G1 & G2), G1 & G2). With discharge, the result keeps the terms of the contracts: an assumption of a component implied by the component that drives its inputs is dropped, then the redundant terms; each test is one model-checking call. That result is an abstraction of the composition: a refinement proved on it holds for the composition, a failed one may not.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"contracts": "<contracts>"
},
"name": "compose"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| backend | No | auto | |
| timeout | No | ||
| contracts | Yes | ||
| discharge | No |