Protocol-independent connectivity specs
IPL expresses how systems connect and behave — starting with FIX, extensible to other protocols.
IPL was designed as a protocol-independent language for system connectivity specifications. Today's libraries focus on FIX; the framework generalizes to other protocols.
Markets depend on interconnected systems understanding each other safely. IPL provides a rigorous way to specify and verify trading behaviour — making machine-reasonable regulations actionable.

Read the full introduction here.
A formal digital twin of your FIX gateway
An IPL model is more than documentation — it can be co-simulated against your production environment so spec and implementation stay in lock-step.

Unlike a PDF of a FIX spec or “rules of engagement,” an IPL model is a program. Imandra FIX Wizard, audit tooling, and onboarding flows all read from the same model, and the model itself can be exercised against the live endpoint.
Every team works from the same source of truth, and divergence between what you document and what you run becomes observable rather than something customers report.
Co-simulated against production
One source of truth
Drift is detectable
IPL digitizes specifications
The same field that takes a paragraph of prose in a FIX PDF becomes a few lines of typed, machine-checked IPL — easy to encode, hard to introduce errors.

A field tag, its allowed values, and the cross-field rule (“required if OrdType = Pegged”) are all expressed directly in IPL — and the type checker catches mistakes before the spec ever reaches a counterparty.
Infinite state machines, not just FSMs
IPL models a system interface as an infinite state machine — expressive enough to capture real protocols, while still amenable to automated reasoning.
Finite state machines run out of room as soon as state carries quantities, prices, or identifiers. IPL keeps the structure of an FSM but lets state, messages, and actions range over rich data — so you can specify behaviour without flattening it.
State
Read in docs
Inbound messages
Read in docs
Actions
Read in docs
Outbound messages
Read in docs
What IPL gives you
Strong typing, protocol libraries, and reasoning-ready models for connectivity.
Machine-reasonable
Protocol libraries
State management
Validity checking
IDE integration
Read the full types and expressions guide here.
From model to test cases, automatically
One of the most-requested IPL features: symbolic decomposition of the model state space, turned into runnable tests that exercise every distinct path through your protocol.
ImandraX analyses each symbolic trace through the model, then generates source code that drives your implementation into the same state transitions and checks the result against expectation.
The output is more than test data — it is a certification artefact that ties a piece of the spec to a concrete, runnable check.

Decompose the state space
Generate concrete inputs
Drive your implementation

Use IPL directly in your editor
Install the Imandra Protocol Language extension to get language-aware editing and documentation generation in VS Code.
Start with the Visual Studio Marketplace listing, then use the GitHub repository for source code, issues, and release details.