## 2 Methods
### Transformation to a System of Linear Inequalities
It is important that due to item (b) of Theorem 1, we do not need to assume that \(x_{n+1}\) is a discrete, 0-1, variable. For any 0-1 vector \(\vec{x}\), the system \(\mathbb{S}(\vec{x},x_{n+1})\) has the only solution \((\vec{x},\ x_{n+1})\), where \(x_{n+1}{=}f(\vec{x})\). In Refs. [9; 10; 11], one can find a description of one of the known algorithms to obtain the V-representation from an H-representation and vice versa. It is based on the pivoting method (similar to that used in the simplex method of linear programming) of polyhedron vertices/facets enumeration. There are a number of licensed and free software to handle polyhedra. The following two (free and open source) are rather popular: the CDD [12] and the LRS [13]. Both applications have similar functionality and are compatible in data formats (input and output ones). In particular, they can calculate V- and H-representations of convex hulls of a finite set of points in Euclidean spaces. It is significant that the irreducible H-representation is produced, i.e., all the redundant linear inequalities are eliminated. It decreases the complexity of the resulting MILP representation of discrete optimization problems with Boolean functions. The available experience of using the CDD and LRS suggests to choose the LRS application for practical usage of the approach. It is slightly newer and has parallel implementation of the reverse search algorithm (on which both above applications are based). Moreover, in the LRS, all the computations may be done without any loss of accuracy in the case of polyhedra with integral-valued vertices (as it is with \(\mathsf{U}[F]\)). All linear systems for basic Boolean bi-variant functions presented in Table 1 may be obtained by the approach outlined above. We take as an example the following Boolean function that is used as a round function in cryptographic algorithms  
\[J(x_{1},x_{2},x_{3})=(x_{1}{\wedge}x_{2})\vee(x_{1}{\wedge}x_{3})\vee(x_{2}{ \wedge}x_{3})=x_{4} \tag{18}\]  
to compare \"handmade\" and \"automatically generated\" systems of inequalities. As it was mentioned in the Introduction, any Boolean function given explicitly in the DNF or CNF form may be presented as a system of linear inequalities on the base of such representations for elementary bi-variant Boolean functions (see Table 1). Here, we need four ancillary continuous variables \(p_{j},q_{j},u_{j},v_{j}\). Let  
\[p_{j}=(x_{1}{\wedge}x_{2}),\ q_{j}=(x_{1}{\wedge}x_{3}),\ u_{j}=(p_{j}{\lor}q _{j}),\ v_{j}=(x_{2}{\wedge}x_{3}).\]  
Figure 1: Examples of polyhedrons for bi-variant Boolean functions. (**a**) XOR function. (**b**) AND function. So, we have \(x_{4}=u_{j}\lor v_{j}\). The systems for AND and OR functions from Table 1 let us obtain the following system equivalent to (18)  
\[ \begin{split}& p_{j}\leqslant x_{1},\ p_{j}\leqslant x_{2},\ p_{j}\geqslant x_{1}+x_{2}-1,\ p_{j}\geqslant 0,\\ & q_{j}\leqslant x_{1},\ q_{j}\leqslant x_{3},\ q_{j}\geqslant x_ {1}+x_{3}-1,\ q_{j}\geqslant 0,\\ & v_{j}\leqslant x_{2},\ v_{j}\leqslant x_{3},\ v_{j}\geqslant x _{2}+x_{3}-1,\ v_{j}\geqslant 0,\\ & p_{j}\leqslant u_{j},\ q_{j}\leqslant u_{j},\ u_{j}\leqslant p_{j }+q_{j},\ u_{j}\leqslant 1,\\ & u_{j}\leqslant x_{4},\ v_{j}\leqslant x_{4},\ x_{4}\leqslant u _{j}+v_{j},\ x_{4}\leqslant 1,\end{split}  \tag{19}\]  
and we do not need to require that \(x_{4},p_{j},q_{j},u_{j},v_{j}\) are binaries. Thus, the expression (18) with a 3-variant Boolean function was represented as linear system with 5 continuous ancillas and 20 inequalities. The LRS gives a more compact system with eight inequalities and only one continuous ancilla, \(x_{4}\). The reason is that instead of the successive construction of the final system from elementary bi-variant Boolean functions and intermediate (continuous) ancillary variables, the LRS application treats Boolean function as a whole, i.e., as the corresponding polyhedron \(\mathsf{U}[J]\) in \(\mathbb{R}^{4}\). \[\left[ \begin{array}{c}1\\ 1\\ 1\\ 0\\ 1\\ 0\\ 0\\ 0\end{array} \right]+\left[