The fourier_motzkin library

The Fourier-Motzkin algorithm computes all nullifiers of an integer matrix. That is, all integer vectors v such that A '*' v is zero.

The implementation is an adaptation of Colom and Silva's algorithm from

'Convex geometry and semiflows in P/T nets. A comparative study of algorithms for computation of minimal P-semiflows.' (Advances in Petri Nets, 1990).

Synopsis

fourier_motzkin :: for_unit a, P!u: for_index P, Q: (a*P!u per Q!) -> List(Q!)

Functions

fourier_motzkin

:: for_unit a, P!u: for_index P, Q: (a*P!u per Q!) -> List(Q!)

All nullifiers of the matrix. That is, all integer vectors v such that matrix '*' v is zero.

The matrix must be an integer matrix.

The algorithm is exponential in the row dimension and in the column dimension.

Version v0.6.0, 2026-03-05T15:49:20.132913109+01:00[Europe/Amsterdam]