title: LP / MILP If-Then Statements
body: <p>I have the following statements for a MILP:</p>
  <p>Variables: <br> <code>c</code> (can be 1 or 0), <code>αj</code> (real numbers with <code>0 &lt;= αj &lt;= 1</code>)</p>
  <p>I have a linear inequality system for <code>aj</code>:
  <br> ∑vj * αj = 0 (with vj = constants)
  <br> ∑αj = c</p>
  <p>and I have the following logic:
  <br> If there exists a solution for <code>c = 1</code>, the formulation should be infeasible
  <br> If there exists the <strong>only one</strong> solution <code>c = 0</code> (each αj must be 0) the formulation should be feasible</p>
  <p>I need some more equations or changes so that the logic above holds.</p>
  <p><strong>First idea:</strong>
  <br>  When I use an additional constraint <code>c = 1</code> the MILP finds a solution for <code>c = 1</code> und no solution for <code>c = 0</code>. This helps to identify if <code>c</code>  can be <code>1</code> but this flips the feasible solution space since the solver breaks when <code>c = 0</code> which should be the feasible one. Adding  the constraint <code>c = 0</code> will not help, since it is not enough that <code>c = 0</code> is one potential solution, it must be the only one valid solution.</p>
  <p><strong>Second idea:</strong>
  <br>  When I use the objective function <code>max(c)</code> i can conclude that
  <br> <code>IF max(c) = 1 THEN not feasible</code>  (or <code>IF max(c) = 0 THEN feasible</code>)
  <br> However I don't want to use <code>c</code> in the objective function.</p>
  <p>Is there any other possibility to change the formulation so that the logic above holds?</p>