From the rate equation, we can see that, for any column vector \({u} \in \mathrm {Ker}[S^{T}]\) , the quantity \({u}^{T}{x}(t)\)  is conserved [1]}.
Let \(\lbrace {u}_{i}\rbrace _{i\in [1,\cdots ,\ell ]}\)  be a basis of \(\mathrm {Ker}[S^{T}]\)  and \(\ell \)  be the dimension of \(\mathrm {Ker}[S^{T}]\) .
Note that \(\lbrace {u}_{i}\rbrace \)  is generally a non-orthogonal (oblique) basis We also emphasize that we do not assume any metric at this point..
We define \(U:=\left({u}_{1},\cdots ,{u}_{\ell } \right)^{T}\) .
From this definition, \(S^{T}U^{T}=0\)  and \(US=0\)  hold.
Then, a vector \({\eta }=U{x}_{0}\)  specifies the values of all stoichiometically conserved quantities for the initial state \({x}_{0}\)The system can have additional (nonlinear) conserved quantities that are determined by the particular structure of \({j}({x})\) ..
The trajectory \({x}(t)\)  of Eq.  starting from \({x}_{0} \in \mathcal {X}\)  at \(t=0\)  satisfies \(U{x}(t)=U{x}_{0}\) .
Thus, we define the stoichiometric polytope (stoichiometric compatibility class) as (Fig. REF  a)

PX():={x|Ux=Ux0=}. 

To ensure that \({x}>0\) , we determine the domain of \({\eta }\)  appropriately, cf. Eq. REF .
