Documentation

CvxLean.Tactic.DCP.DCPTypes

Types for DCP #

This file gives names to the main structures used by the DCP procedure for better readability.

@[reducible, inline]

Tree with all the atom data stored in the library. The leaves are just (affine or constant) expressions.

Equations
Instances For
    @[reducible, inline]

    This is the type of an argument.

    Equations
    Instances For
      @[reducible, inline]

      An atom may have several arguments.

      Equations
      Instances For
        @[reducible, inline]

        Tree of the arguments of every atom unfolded (expressions at the nodes).

        Equations
        Instances For
          @[reducible, inline]

          Curvatures in the atom tree.

          Equations
          Instances For
            @[reducible, inline]

            A background condition is just an expression of type Prop.

            Equations
            Instances For
              @[reducible, inline]

              An atom may have several background conditions.

              Equations
              Instances For
                @[reducible, inline]

                Background conditions of every atom in the atom tree.

                Equations
                Instances For
                  @[reducible, inline]

                  Four trees: atom data tree, arguments tree, curvature tree, and background condition tree.

                  Equations
                  Instances For
                    @[reducible, inline]

                    New variables introduced by every atom, as local declarations at the nodes.

                    Equations
                    Instances For
                      @[reducible, inline]

                      Variables for the new constraints introduced by every atom, as local declarations at the nodes.

                      Equations
                      Instances For
                        @[reducible, inline]

                        All the new constraints introduced by each atom, as expressions at the node.

                        Equations
                        Instances For
                          @[reducible, inline]

                          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
                            @[reducible, inline]
                            Equations
                            Instances For
                              @[reducible, inline]

                              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
                                @[reducible, inline]

                                Several proofs of vconditions.

                                Equations
                                Instances For
                                  @[reducible, inline]

                                  All the vcondition proofs for the atom.

                                  Equations
                                  Instances For
                                    @[reducible, inline]

                                    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
                                      @[reducible, inline]

                                      Several VCondIdxs.

                                      Equations
                                      Instances For
                                        @[reducible, inline]

                                        All the indices of all the vconditions marked for elimination.

                                        Equations
                                        Instances For
                                          @[reducible, inline]

                                          A solution is just an expression (involving the atom arguments).

                                          Equations
                                          Instances For
                                            @[reducible, inline]

                                            If an atom has several implementation variables, we need a solution for each of them.

                                            Equations
                                            Instances For
                                              @[reducible, inline]

                                              A canonized expression.

                                              Equations
                                              Instances For
                                                @[reducible, inline]

                                                A tree of canonized expressions.

                                                Equations
                                                Instances For

                                                  Canonized expression and solution put together.

                                                  Instances For
                                                    @[reducible, inline]

                                                    Tree of canonized expression and solution for each atom.

                                                    Equations
                                                    Instances For
                                                      @[reducible, inline]

                                                      A proof of solution-equals-atom for an atom.

                                                      Equations
                                                      Instances For
                                                        @[reducible, inline]

                                                        Tree of all the solution-equals-atom proofs in the atom tree.

                                                        Equations
                                                        Instances For
                                                          @[reducible, inline]

                                                          A feasibility proof.

                                                          Equations
                                                          Instances For
                                                            @[reducible, inline]

                                                            An atom may have several feasibility proofs, one per implementation constraint.

                                                            Equations
                                                            Instances For
                                                              @[reducible, inline]

                                                              Tree of all the feasibility proofs in the atom tree.

                                                              Equations
                                                              Instances For
                                                                @[reducible, inline]

                                                                Optimality proof. There is only one per atom.

                                                                Equations
                                                                Instances For
                                                                  @[reducible, inline]

                                                                  Tree of all the optimality proofs in the atom tree.

                                                                  Equations
                                                                  Instances For
                                                                    @[reducible, inline]

                                                                    A proof of vcondtion elimination.

                                                                    Equations
                                                                    Instances For
                                                                      @[reducible, inline]

                                                                      An atom may have several vconditions. Each needs a vcondition elimination proof.

                                                                      Equations
                                                                      Instances For
                                                                        @[reducible, inline]

                                                                        Optimality and vcondition elimination proofs together.

                                                                        Equations
                                                                        Instances For
                                                                          @[reducible, inline]

                                                                          Tree of all the optimality and vcondition elimination proofs in the atom tree.

                                                                          Equations
                                                                          Instances For
                                                                            @[reducible, inline]

                                                                            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.

                                                                              Instances For
                                                                                Equations
                                                                                • One or more equations did not get rendered due to their size.