refines
Checks whether one assume-guarantee contract can replace another by verifying assumption and guarantee implications, returning valid, invalid with a counterexample trace, or unknown.
Instructions
Does refined refine abstract (can it replace it)? Checks that the
assumptions of abstract imply those of refined, and that the
guarantees of refined imply those of abstract. status is valid,
invalid (with failed and a counterexample trace), or unknown.
context: formulas that every behavior satisfies (e.g. an axiom of an
encoding, a physical law); the behaviors that violate them are left out.
Continuous time: when a step is a sample taken every period seconds and
each variable changes at most lipschitz per second (one number, or
{variable: number}), the refinement is checked between the samples too:
what refined assumes and abstract guarantees is made stricter, what
is known is made weaker (chase_cps.sampled). Intervals may then be
written with times: G[0s,2s], F[0ms,500ms]. The margins are a sufficient
condition: valid shows it in continuous time; otherwise the status is
unknown (not shown), never invalid; check without lipschitz to see
whether it fails at the samples.
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": {
"refined": "<refined>",
"abstract": "<abstract>"
},
"name": "refines"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | ||
| backend | No | auto | |
| context | No | ||
| refined | Yes | ||
| timeout | No | ||
| abstract | Yes | ||
| lipschitz | No |