Documentation

CvxLean.Tactic.PreDCP.Egg.EggTypes

The main types user around the egg interface.

An intermediate structure to represent problems as trees of strings.

Equations
Instances For

    A more refined EggTree, split by its objective function and components.

    Equations
    Instances For

      Helper structure to keep track of the arguments, some of which may be pre-determined, when translating from atom trees to trees with constructors in the egg language.

      Instances For

        Once EggTree is flattened into S-expressions, it can be turned into an EggMinimization. This is what will by JSONified and sent to egg. It is split into objective functions and constraints, with their tag. Note that egg builds one problem term from this. However, it is useful to keep track of the names of the components so that when egg comes back with a sequence of rewrites it can easily indicate the location of the rewrite.

        Instances For

          This encodes an interval, used for e-class analysis. For example ⟨"0", "1", "-inf", "8"⟩ is how the interval (-∞, 8] would be encoded.

          Instances For

            Every EggDomain is infered from a constraint named constraintName, and it corresponds to a variable or parameter named varOrParamName. This structure keeps track of that.

            Instances For

              A request consists of an EggMinimization and a list of domains per variable (or parameter).

              Instances For

                Recall that, in egg, rewrites can be forward or backward (in the response).

                Instances For

                  A rewrite returned by egg.

                  • rewriteName : String

                    This is the name of the lemma used for rewriting.

                  • Forward or backward.

                  • location : String

                    The name of the constraint or "objFun".

                  • subexprFrom : String

                    Source sub-expression.

                  • subexprTo : String

                    Target sub-expression.

                  • expectedTerm : String

                    The context expression with a "?" in place of the sub-expression. For example, if we are rewriting x + (y + z) into x + (z + y), the expected term would be x + ?, with subexprFrom set to y + z and subexprTo set to z + y.

                  Instances For