Source: https://guthlabs.ai/docs/instruments/radioactive-decay-chain-simulator/implementation/

instrument implementation / implementation-contract

# Radioactive Decay Chain Simulator implementation

A source-bound implementation contract for Radioactive Decay Chain Simulator; deployment and executable qualification remain separate.

Status: **VERIFIED_WITH_ERRATA**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-with-binding-errata

**Evidence ID**: t6-122

**Effect**: Computation or source lookup only

## Input and validation requirements

The distinct-rate Bateman expression is undefined when two consecutive half-lives are equal because its decay-rate denominator becomes zero; a repeated-rate limit branch is required. Unit omission also permits materially different results for the same bare time value.

## Required corrections

````
[
  {
    "vector": 2,
    "field": "activities.D",
    "wrong": 38.4375559722,
    "correct": 38.4329654152,
    "cause": "final multiplication slip: lambda_D*N_D = 0.693147*55.44705 = 38.43297 (her N_D is correct)"
  },
  {
    "vector": 3,
    "field": "quantities.D / activities.D",
    "wrong": "152.368927 / 0.878028",
    "correct": "609.475708 / 3.520470",
    "cause": "Bateman numerator uses the DAUGHTER's lambda instead of the parent's: N_D = N_P0*lambda_P/(lambda_D-lambda_P)*(...) — she used lambda_D, a wrong-factor-family error (factor lambda_D/lambda_P = 1/4)"
  },
  {
    "vector": 4,
    "field": "activities.P3",
    "wrong": 30.3406938386,
    "correct": 30.353111405,
    "cause": "final multiplication slip: (ln2/4)*175.161133 = 30.35311 (her three-term Bateman N_P3 is exactly right)"
  }
]
````

## Inspectable interface fixture

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

````
{
  "inputs": {
    "chain": [
      {
        "isotope": "P",
        "half_life": 10,
        "initial_quantity": 1000
      },
      {
        "isotope": "D",
        "half_life": 100,
        "initial_quantity": 0
      }
    ],
    "time": 0,
    "time_unit": "hours",
    "algorithm": "closed_form_Bateman",
    "step_size": "not applicable"
  },
  "expected_outputs": {
    "quantities": {
      "P": 1000,
      "D": 0
    },
    "activities": {
      "P": 69.3147180559945,
      "D": 0
    },
    "secular_equilibrium": "not defined from the specification"
  },
  "working": "lambda_P = ln(2)/10 = 0.0693147180559945 h^-1; lambda_D = ln(2)/100 = 0.00693147180559945 h^-1. At t=0, exp(-lambda_P t)=exp(0)=1 and exp(-lambda_D t)=1. P(0)=1000*1=1000. D(0)=1000*[0.0693147180559945/(0.00693147180559945-0.0693147180559945)]*(1-1)=0. Activities: A_P=lambda_P P=0.0693147180559945*1000=69.3147180559945; A_D=lambda_D D=0."
}
````

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/radioactive-decay-chain-simulator/>)[02**Mechanism**](<https://guthlabs.ai/docs/instruments/radioactive-decay-chain-simulator/mechanism/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/radioactive-decay-chain-simulator/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-tranche6/tranche6-results.json`

- `tranche errata record`
