The problem
To integrate complex systems safely you have to account for all of their possible interactions. Doing that by hand does not scale.
How it works
Encoding an interface in IPL is what makes the rest possible: one precise model, analysed by Imandra, becomes a map, tests, simulators and proofs.
Write the interface as an infinite state machine
An IPL model keeps the structure of a state machine but lets state, messages and actions range over rich data.
- State: a global record for the session, with as many fields as the protocol needs and explicit initial values.
- Inbound messages: what a client may send, with validity statements on fields alone and in combination.
- Actions and outbound messages: internal events such as fills or time changes, and the replies they emit.
Tools
From the editor to the cloud: the same model in every tool, from writing it to testing against it.
An IDE for precise specifications
Domain-specific hints on hover, context-aware autocompletion, and detailed validation errors and warnings. Once a document validates, it is ready for analysis by Imandra.
Download the VS Code plugin
The language
IPL is strongly typed and editor-aware, so mistakes surface while you write the model rather than during analysis.
Model your interfaces with IPL
See IPL on your own specifications, or read how Imandra Connectivity puts it to work.