prove_equivalence
Prove two combinational circuits equivalent or produce a counterexample input, with a receipt any third party can re-check for small gate-level designs.
Instructions
Prove two small combinational circuits equivalent, or return a counterexample input. Circuits are given as gate lists over named signals. Returns a receipt any third party can re-check. Small instances only — this is a demonstration prover, not a production one.
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": {
"inputs": "<inputs>",
"circuit_a": "<circuit_a>",
"circuit_b": "<circuit_b>"
},
"name": "prove_equivalence"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | Yes | Primary input names, e.g. ["a","b"]. | |
| out_path | No | Optional path to write the receipt. | |
| circuit_a | Yes | Gates: {op: AND|OR|NOT|XOR, out: name, args: [names]}. | |
| circuit_b | Yes |