# OpenNash methodology note

Release: 1.1
Solver: 2.5.0
Published: 2026-08-21
Status: illustrative method release

## Intended use

OpenNash tests a conditional game-theory claim:

> Given a published payoff matrix and a published set of payoff transforms, which strategy profiles satisfy the stated equilibrium conditions?

OpenNash does not forecast state behavior. OpenNash does not recommend a policy. Do not use one run as a stand-alone basis for a decision.

## Model class

Release 1.1 uses one model class:

- two actors;
- two strategies for each actor;
- simultaneous choice;
- one-shot interaction;
- complete information;
- normal-form payoffs.

Release 1.1 does not model repeated enforcement, detection probability, sequential commitment, hidden types, firms, allies, or changing capability stocks. Those concepts need separate model classes and separate evidence.

## Published scenario

The source of truth is:

`/opennash/scenarios/ai-pact-v1.1.json`

The scenario file contains:

- actor and strategy definitions;
- two worldview panels;
- all four payoff cells for each panel;
- a point, low value, high value, provenance grade, basis, and source ID for every actor payoff;
- instrument limits and the intervention-envelope formula;
- plain-language rationales;
- source notes.

All payoff values and ranges in release 1.1 have provenance grade C. Grade C means that an editor supplied the value as an illustrative assumption. The values are not calibrated estimates and do not come from structured expert elicitation.

## Worldview panels

OpenNash publishes two authorial panels:

1. Growth and interdependence.
2. Security first.

The panels do not represent survey results or named expert groups. They expose two different payoff judgments. OpenNash applies the same policy package to both panels and reports the intersection of their pure-strategy equilibria.

## Policy transforms

Each instrument changes the selected payoff entries directly. The instrument values use increments of 0.5. Each value is from 0 to 4.

### Capacity investment

If actor `i` chooses its cooperative strategy:

`u_i'(s) = u_i(s) + capacityInvestment`

### Market-access condition

If actor `i` chooses its adversarial strategy:

`u_i'(s) = u_i(s) - marketAccessCondition`

This value is a direct reduced-form payoff effect. It is not a detection probability and it is not a repeated-game monitoring model.

### Transition transfer

In the mutual-cooperation cell only:

`u_recipient'(s) = u_recipient(s) + transitionTransfer`

`u_payer'(s) = u_payer(s) - transitionTransfer`

The transform is zero-sum within that cell.

### Intervention envelope

`capacityInvestment + marketAccessCondition + transitionTransfer <= 8`

The envelope uses model units. It is not a fiscal estimate or a cost-benefit calculation.

Every run records each payoff edit. Each edit contains the instrument, profile, actor, prior value, delta, and resulting value.

## Pure-strategy equilibrium

For each profile and actor, OpenNash calculates the incentive slack:

`slack_i(s) = payoff_i(s) - payoff_i(unilateral deviation from s)`

A profile is a pure-strategy Nash equilibrium if every actor has a slack of zero or more, within the solver tolerance.

- A strict equilibrium has positive slack for every actor.
- A weak equilibrium has at least one tie.
- A non-equilibrium profile has at least one profitable unilateral deviation.

OpenNash reports every pure equilibrium.

## Mixed-strategy equilibrium

For a nondegenerate 2x2 game, OpenNash solves the two linear indifference conditions. The solver reports an interior mixed equilibrium only if both strategy probabilities are strictly between zero and one.

Payoff ties can create a line or an area of equilibria. The solver checks endpoint ties and complete indifference. It labels a detected line or area as a continuum. OpenNash does not replace a missing pure equilibrium with the highest-joint-payoff pure profile.

If the complete equilibrium set contains more than one equilibrium, OpenNash reports the complete set. OpenNash does not elevate a pure equilibrium over an interior mixed equilibrium or an equilibrium continuum without an external selection assumption.

## Stag-hunt coordination lens

OpenNash applies the stag-hunt lens to the submitted transformed matrix. The lens uses the cooperative strategy declarations in the published scenario.

OpenNash classifies a matrix as a stag hunt only when all three conditions are true:

1. Mutual cooperation is a strict Nash equilibrium.
2. Mutual defense is a strict Nash equilibrium.
3. Mutual cooperation gives both actors a strictly higher payoff than mutual defense.

If a condition fails, OpenNash reports which actor can gain or tie by leaving the named profile. OpenNash does not label the matrix as a stag hunt only because mutual cooperation has the largest payoff sum.

For a classified stag hunt, OpenNash labels mutual cooperation as payoff-dominant. OpenNash compares risk dominance with the product of each actor's unilateral-deviation loss at the two strict equilibria.

`cooperation loss product = loss_US(mutual cooperation) * loss_China(mutual cooperation)`

`defense loss product = loss_US(mutual defense) * loss_China(mutual defense)`

The equilibrium with the larger loss product is risk-dominant. Equal products produce a tie. The risk-dominance label describes the submitted payoff matrix. The label does not forecast behavior.

For each actor, OpenNash also reports the minimum belief that the other actor will cooperate. The threshold makes the actor indifferent between cooperation and defense:

`threshold_i = defensive deviation loss_i / (cooperative deviation loss_i + defensive deviation loss_i)`

The threshold applies only when both deviation losses are positive. Above the threshold, the actor prefers cooperation. At the threshold, the actor is indifferent. The model does not estimate the actor's actual belief.

## Incentive margins and the nearest pure boundary

OpenNash reports a local incentive margin for each pure equilibrium. OpenNash also reports the nearest global boundary in the pure-equilibrium classification. The definitions are not interchangeable.

### Single-entry incentive margin

The single-entry incentive margin is the smallest actor slack at a pure equilibrium. An equal change to one payoff entry creates indifference. A larger change makes the named deviation profitable. This margin applies to the named equilibrium only. It does not measure the nearest change elsewhere in the equilibrium set.

### Per-equilibrium joint L-infinity tie radius

The per-equilibrium joint L-infinity tie radius is half the binding slack. This measure assumes that an adversary can lower the equilibrium payoff and raise the deviation payoff by the same maximum amount.

Every margin names the binding actor, equilibrium profile, and deviation profile.

### Nearest pure-equilibrium classification boundary

The global boundary checks all four pure profiles. For a strict equilibrium, the radius is half its smallest positive slack. For a non-equilibrium profile, the radius is half its largest profitable-deviation gain. A weak equilibrium has a radius of zero.

The reported value is the smallest radius across the four profiles. The metric uses the payoff-entry L-infinity norm. It is the exact distance to a strict, weak, or non-equilibrium classification boundary for a pure profile. It is not a distance to behavioral truth. It does not measure changes in mixed-strategy probabilities.

## Payoff uncertainty

Release 1.1 uses a deterministic Monte Carlo screen.

1. The solver reads each published low and high payoff value.
2. Each draw samples all eight payoff inputs independently from uniform distributions across those ranges.
3. The solver applies the submitted policy transforms.
4. The solver recomputes the complete pure-equilibrium structure.
5. The run counts profile survival and equilibrium-structure frequency.

The public workbench and durable receipt use 2,000 draws. The run records the integer seed and sample count. The pseudorandom generator is Mulberry32. Identical canonical inputs produce identical robustness output.

OpenNash ranks payoff inputs with the absolute Pearson correlation between each jointly sampled payoff and the sample-level survival metric. This calculation is a global screening statistic because all payoff inputs vary together. It is not a Saltelli or Sobol variance decomposition. Do not interpret the correlation as a causal effect.

If the sample-level metric does not vary, the correlation is not estimable. OpenNash reports that state instead of ranking zero-valued correlations.

The display rounds survival rates to the nearest five percentage points because the payoff ranges are authorial.

## Cross-panel survival

OpenNash applies the same normalized policy to each published worldview panel. It solves each panel separately. It then reports the pure-equilibrium profile keys that appear in every panel.

Cross-panel survival tests a narrow form of assumption sensitivity. It does not validate either panel.

## Durable run receipt

A user can create a citable run after the local analysis is current. The server accepts only the panel ID and normalized policy fields. The server recomputes the result. It does not accept client-computed outputs.

The receipt contains:

- receipt schema version;
- scenario version, intervention envelope, narrative map, and complete snapshots of both worldview panels;
- solver version;
- normalized policy;
- transformed payoff matrix and edit ledger;
- all equilibrium results and margins;
- deterministic robustness results;
- cross-panel report;
- payoff provenance and source notes.

The server serializes the receipt core with canonical key ordering and calculates a SHA-256 digest. The creation time is outside the hashed core. Identical runs resolve to the same stored receipt.

## Verification state

Release 1.1 includes executable tests for:

- Prisoner's Dilemma;
- Stag Hunt;
- Matching Pennies;
- weak equilibria and degenerate ties;
- positive affine payoff transformations;
- policy transforms;
- local incentive margins and the global pure-equilibrium boundary;
- deterministic uncertainty output;
- scenario provenance;
- receipt input validation and content addressing.

The release has not published Gambit or Nashpy cross-validation in continuous integration. The release has not completed named external methodology review, structured expert elicitation, or historical postdiction.

## Conflict-of-interest statement

Social Protocol Labs operates MashupAbility//OpenSource and supports open-weight AI. The scenario includes open-weight diffusion. Treat the scenario framing, payoff values, payoff ranges, and rationales as authorial assumptions that can reflect that position.

## Method references

- [The AQuA Book, 2025](https://www.gov.uk/guidance/the-aqua-book). This guidance informs the emphasis on documentation, uncertainty, proportional assurance, and explicit roles. OpenNash does not claim compliance or certification.
- [OMB Circular A-4, 2023 archive](https://bidenwhitehouse.archives.gov/wp-content/uploads/2023/11/CircularA-4.pdf). OpenNash uses the archived 2023 uncertainty discussion as a voluntary reference. [OMB Memorandum M-25-15](https://www.whitehouse.gov/wp-content/uploads/2025/03/M-25-15-Recission-and-Reinstatement-of-Circular-A-4.pdf) revoked the 2023 circular and reinstated the 2003 circular on February 12, 2025.
- [Goeree, Holt, and Palfrey, QRE primer](https://www.its.caltech.edu/~trp/QRE%20Primer.pdf). Quantal response equilibrium is a possible later behavioral model. It does not validate this scenario.
- [GAO-23-105351](https://www.gao.gov/products/gao-23-105351). The report documents common analytic-wargame quality principles and gaps in provider assessment, data sharing, and standard education.
- [NATO Wargaming Handbook archive record](https://archives.nato.int/publication-of-the-nato-wargaming-handbook). The record confirms the 2023 handbook. OpenNash links to the record and does not redistribute the handbook.
- [Saltelli et al., sensitivity auditing](https://arxiv.org/abs/1211.2668). This paper informs the decision to publish assumptions and sensitivity limits. Release 1.1 does not claim a Saltelli implementation.
- [Gambit documentation](https://gambitproject.readthedocs.io/en/latest/pygambit.api.html) and [Nashpy support enumeration](https://nashpy.readthedocs.io/en/latest/text-book/support-enumeration.html). These are named future cross-validation targets.

## Source notice

The published TypeScript solver source is available at:

`/opennash/source/game-engine-v2.5.0.ts.txt`

Release 1.1 does not state a separate code license. Source publication permits inspection, but it is not an open-source license grant.
