Types for DCP #
This file gives names to the main structures used by the DCP procedure for better readability.
Tree with all the atom data stored in the library. The leaves are just (affine or constant) expressions.
Instances For
This is the type of an argument.
Equations
Instances For
An atom may have several arguments.
Equations
Instances For
Tree of the arguments of every atom unfolded (expressions at the nodes).
Instances For
Curvatures in the atom tree.
Instances For
A background condition is just an expression of type Prop
.
Equations
Instances For
An atom may have several background conditions.
Equations
Instances For
Background conditions of every atom in the atom tree.
Instances For
Four trees: atom data tree, arguments tree, curvature tree, and background condition tree.
Equations
Instances For
New variables introduced by every atom, as local declarations at the nodes.
Equations
Instances For
Variables for the new constraints introduced by every atom, as local declarations at the nodes.
Instances For
All the new constraints introduced by each atom, as expressions at the node.
Equations
Instances For
In general a variable condition can either match a constraint exactly or it can be inferred from the other constraints, we represent that as a sum type. If a number is given, then it is interpreted as the index of the constraint that corresponds to the vcondition.
Equations
Instances For
Equations
Instances For
Instances For
This is different from PreVCond
and instead holds proofs of variable conditions. Still, it
could either be a variable corresponding to a constraint, or an expression involving several
constraints, in case it is inferred.
Equations
Instances For
Several proofs of vconditions.
Equations
Instances For
All the vcondition proofs for the atom.
Instances For
It is useful to only consider the vconditions that need to be eliminated because they match a constraint exactly. This represents the index of such constraint.
Equations
Instances For
All the indices of all the vconditions marked for elimination.
Instances For
A solution is just an expression (involving the atom arguments).
Equations
Instances For
If an atom has several implementation variables, we need a solution for each of them.
Instances For
A canonized expression.
Equations
Instances For
A tree of canonized expressions.
Instances For
Canonized expression and solution put together.
- canonExpr : CvxLean.DCP.CanonExpr
- solution : CvxLean.DCP.Solution
Instances For
Equations
- CvxLean.DCP.instInhabitedCanonExprWithSolution = { default := { canonExpr := default, solution := default } }
Tree of canonized expression and solution for each atom.
Equations
Instances For
A proof of solution-equals-atom for an atom.
Equations
Instances For
Tree of all the solution-equals-atom proofs in the atom tree.
Equations
Instances For
A feasibility proof.
Equations
Instances For
An atom may have several feasibility proofs, one per implementation constraint.
Instances For
Tree of all the feasibility proofs in the atom tree.
Instances For
Optimality proof. There is only one per atom.
Equations
Instances For
Tree of all the optimality proofs in the atom tree.
Equations
Instances For
A proof of vcondtion elimination.
Equations
Instances For
An atom may have several vconditions. Each needs a vcondition elimination proof.
Instances For
Optimality and vcondition elimination proofs together.
Equations
Instances For
Tree of all the optimality and vcondition elimination proofs in the atom tree.
Equations
Instances For
Vcondition elimination map, from constraint index to the constraint expression.
Equations
Instances For
This structure holds all the necessary information to build a canonized problem and a proof of
equivalence. In CvxLean/Tactic/DCP/DCPMakers.lean
, we define the procedure that takes an
optimization problem, builds an atom tree and "processes" it to make a processed atom tree.
- originalVarsDecls : Array Lean.LocalDecl
- originalConstrVars : Array Lean.LocalDecl
- newVarDecls : List Lean.LocalDecl
- newConstrVarsArray : Array Lean.LocalDecl
- vcondElimMap : CvxLean.DCP.VCondElimMap
- solEqAtom : CvxLean.OC CvxLean.DCP.SolEqAtomProofsTree
- feasibility : CvxLean.OC CvxLean.DCP.FeasibilityProofsTree
- canonExprs : CvxLean.OC CvxLean.DCP.CanonExprsTree
- optimality : CvxLean.OC CvxLean.DCP.OptimalityProofsTree
Instances For
Equations
- One or more equations did not get rendered due to their size.