Skip to main content
Glama

scan_counterexample

Read-onlyIdempotent

Bounded deterministic float64 scan of a scalar <= or >= claim over a declared grid of 1–6 variables. Reports numerical witnesses, undefined and uncertain evaluations, and the exact stop reason. A propagated screening guard rejects near-boundary candidates; it is not a certified interval or formal proof. An inconclusive outcome preserves unresolved sampled cells; absence of a witness does not establish the claim over the continuous box.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
boundYes
relationYes
toleranceNo
variablesYes
expressionYes
max_evaluationsNo
max_counterexamplesNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
boundYes
notesYes
engineYes
limitsYes
methodYes
verdictYes
completeYes
relationYes
evaluatedYes
statementYes
toleranceYes
elapsed_msYes
expressionYes
grid_totalYes
provenanceYes
work_unitsYes
assumptionsYes
stop_reasonYes
stopped_earlyYes
counterexamplesYes
contract_versionYes
finite_evaluationsYes
first_counterexampleYes
uncertain_evaluationsYes
undefined_evaluationsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed13 schema fields changed
    • changedOutput schema / properties / contract_version / const
      Previous value: -"0.1.0"New value: +"0.2.0"
    • addedOutput schema / properties / counterexamples / items / properties / comparison_guard
      Added value: +{
      +  "maximum": 1.7976931348623157e+308,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • changedOutput schema / properties / counterexamples / items / properties / expression_value / maximum
      Previous value: -1e+308New value: +1.7976931348623157e+308
    • changedOutput schema / properties / counterexamples / items / properties / expression_value / minimum
      Previous value: --1e+308New value: +-1.7976931348623157e+308
    • changedOutput schema / properties / counterexamples / items / properties / margin / maximum
      Previous value: -1e+308New value: +1.7976931348623157e+308
    • changedOutput schema / properties / counterexamples / items / required
      Previous value: -[
      -  "expression_value",
      -  "margin",
      -  "values"
      -]New value: +[
      +  "comparison_guard",
      +  "expression_value",
      +  "margin",
      +  "values"
      +]
    • addedOutput schema / properties / finite_evaluations
      Added value: +{
      +  "maximum": 200000,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • changedOutput schema / properties / first_counterexample / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "expression_value": {
      -        "maximum": 1e+308,
      -        "minimum": -1e+308,
      -        "type": "number"
      -      },
      -      "margin": {
      -        "maximum": 1e+308,
      -        "minimum": 0,
      -        "type": "number"
      -      },
      -      "values": {
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "name": {
      -              "maxLength": 32,
      -              "minLength": 1,
      -              "type": "string"
      -            },
      -            "value": {
      -              "maximum": 1000000,
      -              "minimum": -1000000,
      -              "type": "number"
      -            }
      -          },
      -          "required": [
      -            "name",
      -            "value"
      -          ],
      -          "type": "object"
      -        },
      -        "maxItems": 6,
      -        "minItems": 1,
      -        "type": "array"
      -      }
      -    },
      -    "required": [
      -      "expression_value",
      -      "margin",
      -      "values"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "comparison_guard": {
      +        "maximum": 1.7976931348623157e+308,
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "expression_value": {
      +        "maximum": 1.7976931348623157e+308,
      +        "minimum": -1.7976931348623157e+308,
      +        "type": "number"
      +      },
      +      "margin": {
      +        "maximum": 1.7976931348623157e+308,
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "values": {
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "name": {
      +              "maxLength": 32,
      +              "minLength": 1,
      +              "type": "string"
      +            },
      +            "value": {
      +              "maximum": 1000000,
      +              "minimum": -1000000,
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "name",
      +            "value"
      +          ],
      +          "type": "object"
      +        },
      +        "maxItems": 6,
      +        "minItems": 1,
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "comparison_guard",
      +      "expression_value",
      +      "margin",
      +      "values"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / stop_reason
      Added value: +{
      +  "anyOf": [
      +    {
      +      "const": "grid_complete",
      +      "type": "string"
      +    },
      +    {
      +      "const": "evaluation_budget",
      +      "type": "string"
      +    },
      +    {
      +      "const": "counterexample_limit",
      +      "type": "string"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / uncertain_evaluations
      Added value: +{
      +  "maximum": 200000,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / undefined_evaluations
      Added value: +{
      +  "maximum": 200000,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • changedOutput schema / properties / verdict / anyOf
      Previous value: -[
      -  {
      -    "const": "counterexamples_found",
      -    "type": "string"
      -  },
      -  {
      -    "const": "no_counterexample_in_scanned_box",
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "const": "counterexamples_found",
      +    "type": "string"
      +  },
      +  {
      +    "const": "no_counterexample_in_scanned_box",
      +    "type": "string"
      +  },
      +  {
      +    "const": "inconclusive",
      +    "type": "string"
      +  }
      +]
    • changedOutput schema / required
      Previous value: -[
      -  "assumptions",
      -  "bound",
      -  "complete",
      -  "contract_version",
      -  "counterexamples",
      -  "elapsed_ms",
      -  "engine",
      -  "evaluated",
      -  "expression",
      -  "first_counterexample",
      -  "grid_total",
      -  "limits",
      -  "method",
      -  "notes",
      -  "relation",
      -  "statement",
      -  "stopped_early",
      -  "tolerance",
      -  "verdict",
      -  "work_units",
      -  "provenance"
      -]New value: +[
      +  "assumptions",
      +  "bound",
      +  "complete",
      +  "contract_version",
      +  "counterexamples",
      +  "elapsed_ms",
      +  "engine",
      +  "evaluated",
      +  "expression",
      +  "finite_evaluations",
      +  "first_counterexample",
      +  "grid_total",
      +  "limits",
      +  "method",
      +  "notes",
      +  "relation",
      +  "statement",
      +  "stop_reason",
      +  "stopped_early",
      +  "tolerance",
      +  "uncertain_evaluations",
      +  "undefined_evaluations",
      +  "verdict",
      +  "work_units",
      +  "provenance"
      +]
  2. Added

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds substantial behavioral context beyond them: it is bounded and deterministic, reports undefined and uncertain evaluations plus the exact stop reason, uses a propagated screening guard that rejects near-boundary candidates, and preserves unresolved sampled cells on inconclusive outcomes. This is unusually rich disclosure of what the tool actually does and does not guarantee.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four dense sentences, front-loaded with the core operation and followed by limitations. Every sentence carries distinct information with no padding or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values needn't be explained, yet the description adds the useful conceptual result model (witnesses, undefined/uncertain evaluations, stop reason). Given the 0% parameter coverage, minor gaps remain on tolerance and evaluation-limit parameters, but the conceptual picture is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it only partly does. It clarifies the variable grid (1-6 variables), the scalar relation (<= or >=), and the bound concept, but leaves tolerance, max_evaluations, and max_counterexamples entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb+resource+scope: a bounded deterministic float64 scan of a scalar <= or >= claim over a declared grid of 1-6 variables. The domain (float64 grid, not continuous proof) is sharply defined, but no sibling tool (e.g. verify_claim) is named for explicit differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied rather than stated: the description notes it is 'not a certified interval or formal proof' and that absence of a witness does not establish the continuous claim, which signals when not to rely on it. However, it never says when to choose this over alternatives like verify_claim or check_arithmetic.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources