- Boxes
- definitions
- Ellipses
- theorems and lemmas
- Blue border
- the statement of this result is ready to be formalized; all prerequisites are done
- Orange border
- the statement of this result is not ready to be formalized; the blueprint needs more work
- Blue background
- the proof of this result is ready to be formalized; all prerequisites are done
- Green border
- the statement of this result is formalized
- Green background
- the proof of this result is formalized
- Dark green background
- the proof of this result and all its ancestors are formalized
- Dark green border
- this is in Mathlib
Let \(V\) and \(V'\) be finite-dimensional real Hilbert spaces, let \(K\subseteq V\) be a closed pointed convex cone with nonempty interior, let \(T:V\to V'\) be linear, and fix \(c\in V\) and \(b\in V'\). As in [ Wol12 , Chapter 4, equations (4.1)–(4.2) ] , define the dual cone, the primal and dual feasible sets, and their values by
The values belong to the extended real line. The conventions are \(\inf \varnothing =+\infty \) and \(\sup \varnothing =-\infty \); an objective unbounded below has infimum \(-\infty \), and one unbounded above has supremum \(+\infty \). The nonempty-interior assumption is Wolf’s convention for a conic program; the definitions and weak duality do not require it.
Following [ Wol12 , Chapter 4, lines 72–78 ] , the primal problem is strictly feasible when there is an \(x\in \operatorname {int}K\) with \(T(x)=b\). The dual problem is strictly feasible when there is a \(y\in V'\) such that \(c-T^*(y)\in \operatorname {int}K^*\). A primal optimizer is an \(x^0\in \mathcal F_p\) satisfying \(\langle c|x^0\rangle \leq \langle c|x\rangle \) for every \(x\in \mathcal F_p\); a dual optimizer is a \(y^0\in \mathcal F_d\) satisfying \(\langle b|y\rangle \leq \langle b|y^0\rangle \) for every \(y\in \mathcal F_d\).
The Hermitian \(n\times n\) matrices form a finite-dimensional real Hilbert space for Wolf’s trace pairing \(\langle A|B\rangle =\operatorname {Re}\operatorname{tr}(AB)\). Its positive-semidefinite matrices form a closed proper cone \(K_{\mathrm{psd}}\) satisfying \(K_{\mathrm{psd}}^*=K_{\mathrm{psd}}\), and \(\operatorname {int}K_{\mathrm{psd}}=\{ A:A{\gt}0\} \). The last identity also covers the zero-dimensional matrix space, where positive definiteness is vacuous and the cone is the whole space.
- SemidefiniteProgram.matrixRealLinearEquiv
- SemidefiniteProgram.hermitianSubmodule
- SemidefiniteProgram.HermitianMatrix
- SemidefiniteProgram.HermitianMatrix.toMatrix
- SemidefiniteProgram.HermitianMatrix.toMatrix_isHermitian
- SemidefiniteProgram.HermitianMatrix.ofMatrix
- SemidefiniteProgram.HermitianMatrix.toMatrix_ofMatrix
- SemidefiniteProgram.HermitianMatrix.toMatrix_zero
- SemidefiniteProgram.HermitianMatrix.toMatrix_add
- SemidefiniteProgram.HermitianMatrix.toMatrix_sub
- SemidefiniteProgram.HermitianMatrix.toMatrix_smul
- SemidefiniteProgram.HermitianMatrix.inner_eq_re_trace_mul
- SemidefiniteProgram.HermitianMatrix.trace_mul_eq_ofReal_inner
- SemidefiniteProgram.HermitianMatrix.psdCone
- SemidefiniteProgram.HermitianMatrix.mem_psdCone_iff
- SemidefiniteProgram.HermitianMatrix.mem_innerDual_psdCone_iff
- SemidefiniteProgram.HermitianMatrix.innerDual_psdCone
- SemidefiniteProgram.HermitianMatrix.posDef_iff_forall_inner_pos
- SemidefiniteProgram.HermitianMatrix.interior_psdCone_eq_posDef
- SemidefiniteProgram.HermitianMatrix.mem_interior_psdCone_iff_posDef
For Hermitian data \(F_i\), the traces \(\operatorname{tr}(F_iX)\) are real; define \(T(X)_i=\operatorname{tr}(F_iX)\). Then \(T^*(y)=\sum _i y_iF_i\). Consequently the conic primal constraint is precisely \(X\geq 0\) and \(\operatorname{tr}(F_iX)=b_i\), while conic dual feasibility is precisely \(F_0-\sum _i y_iF_i\geq 0\). The two conic strict-feasibility predicates become, respectively, \(X{\gt}0\) with the trace constraints and \(F_0-\sum _i y_iF_i{\gt}0\), exactly as in [ Wol12 , Chapter 4, lines 85–105 ] .
- SemidefiniteProgram.traceAnalysisMap
- SemidefiniteProgram.traceAnalysisMap_apply
- SemidefiniteProgram.traceAnalysisMap_apply_eq_re_trace
- SemidefiniteProgram.traceAnalysisMap_apply_eq_trace
- SemidefiniteProgram.hermitianSum
- SemidefiniteProgram.toMatrix_hermitianSum
- SemidefiniteProgram.traceAnalysisMap_adjoint
- SemidefiniteProgram.mem_primalFeasible_iff
- SemidefiniteProgram.mem_dualFeasible_iff
- SemidefiniteProgram.isPrimalStrictlyFeasible_iff
- SemidefiniteProgram.isDualStrictlyFeasible_iff
The finiteness hypotheses below correct the attainment sentences printed at lines 72–78 of [ Wol12 , Chapter 4 ] ; the counterexamples to the unqualified statements are recorded in [ con26h ] . Suppose the primal problem is strictly feasible and \(C_p\in \mathbb R\). Then \(C_p=C_d\) and there is a dual optimizer \(y^0\in \mathcal F_d\) with \(\langle b|y^0\rangle =C_d\). Dually, if the dual problem is strictly feasible and \(C_d\in \mathbb R\), then \(C_p=C_d\) and there is a primal optimizer \(x^0\in \mathcal F_p\) with \(\langle c|x^0\rangle =C_p\).
- ConicProgram.exists_isDualOptimizer_of_isPrimalStrictlyFeasible_of_isGLB
- ConicProgram.values_eq_of_isPrimalStrictlyFeasible_of_isGLB
- ConicProgram.exists_isPrimalOptimizer_of_isDualStrictlyFeasible_of_isLUB
- ConicProgram.values_eq_of_isDualStrictlyFeasible_of_isLUB
- ConicProgram.exists_isDualOptimizer_of_isPrimalStrictlyFeasible_of_primalValue_eq_coe
- ConicProgram.values_eq_of_isPrimalStrictlyFeasible_of_primalValue_eq_coe
- ConicProgram.exists_isPrimalOptimizer_of_isDualStrictlyFeasible_of_dualValue_eq_coe
- ConicProgram.values_eq_of_isDualStrictlyFeasible_of_dualValue_eq_coe
If \(\mathcal F_p\) is nonempty and \(p\in \mathbb {R}\), then \(C_p=p\) in the extended real line if and only if \(p\) is the greatest lower bound of \(\{ \langle c|x\rangle :x\in \mathcal F_p\} \). If \(\mathcal F_d\) is nonempty, then \(C_d=p\) if and only if \(p\) is the least upper bound of \(\{ \langle b|y\rangle :y\in \mathcal F_d\} \).
If \(x\in \mathcal F_p\), \(y\in \mathcal F_d\), and \(\langle c|x\rangle =\langle b|y\rangle \), then \(x\) and \(y\) are primal and dual optimizers, respectively, and \(C_p=C_d=\langle c|x\rangle =\langle b|y\rangle \).
Let \(b\in \mathbb {R}^n\) and let \(F_0,F_1,\ldots ,F_n\) be Hermitian matrices. Suppose that \(X^0\geq 0\), \(\operatorname{tr}(F_iX^0)=b_i\) for every \(i\), \(F_0-\sum _i y_i^0F_i\geq 0\), and the two objective values are equal. Then, as in [ Wol12 , Chapter 4, equation (4.4) ] ,
Thus \(X^0\) and \(F_0-\sum _i y_i^0F_i\) have orthogonal supports. Under equality of the conic values and primal attainment, a dual vector \(y^0\) is optimal if and only if there is a primal-feasible \(X^0\geq 0\) satisfying this equation and the dual slack is positive semidefinite, as stated at lines 113–116.
- Matrix.PosSemidef.mul_eq_zero_of_trace_mul_eq_zero
- Matrix.PosSemidef.supportProj_mul_supportProj_eq_zero_of_mul_eq_zero
- SemidefiniteProgram.re_trace_slack_mul_eq_objective_sub
- SemidefiniteProgram.complementary_slackness
- SemidefiniteProgram.complementary_slackness_supports
- SemidefiniteProgram.isDualOptimizer_iff_exists_complementary
For every feasible \(X\) and \(y\),
Taking the supremum and infimum gives Wolf’s semidefinite weak-duality inequality, equation (4.3), with the extended-real conventions of Definition 5.1. If there is a strictly feasible \(X{\gt}0\) and the primal value is finite, equality holds and the dual optimum is attained. Dually, a strictly positive slack and a finite dual value give equality and primal attainment. These finiteness hypotheses are the correction required for the unqualified printed claim at lines 100–105.
- SemidefiniteProgram.weak_duality_pointwise
- SemidefiniteProgram.weak_duality
- SemidefiniteProgram.exists_dualOptimizer_of_primalStrict_of_primalValue_eq_coe
- SemidefiniteProgram.values_eq_of_primalStrict_of_primalValue_eq_coe
- SemidefiniteProgram.exists_primalOptimizer_of_dualStrict_of_dualValue_eq_coe
- SemidefiniteProgram.values_eq_of_dualStrict_of_dualValue_eq_coe