Source: https://guthlabs.ai/docs/instruments/relative-velocity-composition-classical/

instrument / verified-clean

# Relative Velocity Composition (classical)

The current ledger marks this instrument verified clean within the source-bound verification corpus.

Status: **VERIFIED_CLEAN**Lifecycle: **verified-clean**

## Inspectable records

[01**Overview**Purpose and lifecycle](<https://guthlabs.ai/docs/instruments/relative-velocity-composition-classical/>)[02**Mechanism**Method and assumptions](<https://guthlabs.ai/docs/instruments/relative-velocity-composition-classical/mechanism/>)[03**Implementation**Binding and validation](<https://guthlabs.ai/docs/instruments/relative-velocity-composition-classical/implementation/>)[04**Qualification**Evidence and errata](<https://guthlabs.ai/docs/instruments/relative-velocity-composition-classical/qualification/>)

## Ledger state

The current ledger marks this instrument verified clean within the source-bound verification corpus.

**Area**: Physics

**Tranche**: tranche-2

**Evidence ID**: t2-047

**Ledger rows**: 1

No ledger note is attached.

## Review findings

The classical vector-addition formula itself is correct under the stated velocity-frame convention, and the honest non-relativistic label is appropriate. The specification needs an explicit vector-angle convention and must either rename the heading output to 'resultant heading' or add the target vector and frame information needed to compute a heading required to reach that target.

### Formula and scope findings

- The formula v_AC = v_AB + v_BC is standard only when v_XY explicitly means the velocity of X relative to Y; that notation convention is not stated.

- The claimed output 'heading needed to reach target' is not computable from only two velocity vectors unless a target velocity/vector, target frame, and desired heading definition are also provided. The resultant heading is not necessarily the heading required to reach a target.

### Unit assumptions

- Both input velocities must use the same units before addition; components cannot be added directly across mixed units.

- Directions are assumed to be bearings measured counterclockwise from the positive east/x axis, with vector components computed as x = v cos(theta) and y = v sin(theta). A compass UI must explicitly document its bearing convention.

- The reported resultant magnitude has the same velocity unit as the inputs.

- The formula is Galilean/non-relativistic and is appropriate when relativistic effects are negligible.

## Boundary hardening

**BREAK_CLAIMED** · SELF_FLAGGED

The extreme-magnitude vector pair overflows JavaScript Number arithmetic to Infinity, so the instrument must reject or explicitly report a non-finite result. The specification also leaves angular sign and heading-wrap conventions unspecified, producing reflected or differently represented headings.

## Errata and corrections

No applied erratum is attached to this unique-name record.

## Inspectable example

4 review vectors are recorded. One source-bound sample is shown below.

````
{
  "inputs": {
    "v_AB": {
      "magnitude": 8,
      "unit": "m/s",
      "direction_deg_from_east_ccw": 0
    },
    "v_BC": {
      "magnitude": 3,
      "unit": "m/s",
      "direction_deg_from_east_ccw": 90
    }
  },
  "expected_outputs": {
    "resultant_x": 8,
    "resultant_y": 3,
    "resultant_magnitude_m_per_s": 8.544004,
    "resultant_heading_deg_from_east_ccw": 20.556045
  },
  "working": "v_AB = (8 cos 0°, 8 sin 0°) = (8, 0) m/s. v_BC = (3 cos 90°, 3 sin 90°) = (0, 3) m/s. Sum = (8 + 0, 0 + 3) = (8, 3) m/s. Magnitude = sqrt(8^2 + 3^2) = sqrt(64 + 9) = sqrt(73) = 8.544004 m/s. Heading = atan2(3, 8) = 20.556045°."
}
````

## Related workflows

[Kinematics & Collisions Tutorframes](<https://guthlabs.ai/docs/instrument-workflows/kinematics-tutor/>)

## Sources and evidence

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

- `VERIFIED_LEDGER.json · VERIFIED_CLEAN`

- `evidence-tranche2/tranche2-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
