  We present a Julia package, DisjunctiveProgramming.jl, that extends the
functionality in JuMP.jl to allow modeling problems via logical propositions
and disjunctive constraints. Such models can then be reformulated into
Mixed-Integer Programs (MIPs) that can be solved with the various MIP solvers
supported by JuMP. To do so, logical propositions are converted to Conjunctive
Normal Form (CNF) and reformulated into equivalent algebraic constraints.
Disjunctions are reformulated into mixed-integer constraints via the
reformulation technique specified by the user (Big-M or Hull reformulations).
The package supports reformulations for disjunctions containing linear,
quadratic, and nonlinear constraints.
