Source: https://guthlabs.ai/docs/instruments/function-composition-inverse-finder/implementation/

instrument implementation / implementation-contract

# Function Composition & Inverse Finder implementation

A source-bound implementation contract for Function Composition & Inverse Finder; deployment and executable qualification remain separate.

Status: **VERIFIED_CLEAN**Lifecycle: **implementation-contract**

## Binding contract

This record describes what an executable surface must bind and validate. It does not claim that a public calculator, package, or production route is deployed.

**Record owner**: Guth Instruments

**Lifecycle**: verified-clean

**Evidence ID**: t8-036

**Effect**: Computation or source lookup only

## Input and validation requirements

The division-by-zero vector produces an undefined composition and an undefined inverse value at y = 0. The instrument must explicitly reject these cases; returning a finite expression or numeric value would be a correctness break. The branch and convention probes also require preserving piecewise domains and unary-sign semantics.

## Required corrections

No binding erratum is attached to this unique-name record. Implementers must still preserve the declared units, domain, and failure behavior.

## Inspectable interface fixture

The sample below is evidence for interface and validation tests, not a production implementation.

````
{
  "inputs": {
    "f(x)": "2*x-3",
    "g(x)": "x^2+1",
    "f_domain": "all real x",
    "g_domain": "all real x"
  },
  "expected_outputs": {
    "composition": "2*x^2-1",
    "inverse_of_f": "(y+3)/2",
    "inverse_domain": "all real y",
    "inverse_range": "all real x",
    "spot_checks": [
      {
        "at": -2,
        "input_side": 7,
        "answer_side": 7
      },
      {
        "at": 0.5,
        "input_side": -0.5,
        "answer_side": -0.5
      }
    ],
    "inverse_checks": [
      {
        "at": 7,
        "inverse_value": 5,
        "f_of_inverse": 7,
        "target": 7,
        "residual": 0
      },
      {
        "at": -0.5,
        "inverse_value": 1.25,
        "f_of_inverse": -0.5,
        "target": -0.5,
        "residual": 0
      }
    ]
  },
  "reference_data": {
    "composition_identity": "(f∘g)(x)=f(g(x))",
    "inverse_equation": "y=2*x-3 => y+3=2*x => x=(y+3)/2"
  },
  "working": "Composition: g(x)=x^2+1. Then f(g(x))=2*(x^2+1)-3=2*x^2+2-3=2*x^2-1. At x=-2: g(-2)=(-2)^2+1=4+1=5; f(5)=2*5-3=10-3=7. The composed expression gives 2*(-2)^2-1=8-1=7. At x=0.5: g(0.5)=0.25+1=1.25; f(1.25)=2.5-3=-0.5. The composed expression gives 2*0.25-1=0.5-1=-0.5. Inverse: y=2*x-3; add 3 to obtain y+3=2*x; divide by 2 to obtain x=(y+3)/2. At y=7: inverse=(7+3)/2=5; f(5)=10-3=7, residual 7-7=0. At y=-0.5: inverse=(-0.5+3)/2=2.5/2=1.25; f(1.25)=2.5-3=-0.5, residual -0.5-(-0.5)=0."
}
````

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/function-composition-inverse-finder/>)[02**Mechanism**](<https://guthlabs.ai/docs/instruments/function-composition-inverse-finder/mechanism/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/function-composition-inverse-finder/qualification/>)

## Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

- `VERIFIED_LEDGER.json`

- `evidence-tranche8/tranche8-results.json`
