Documentation

DescriptiveComplexity.Problems.Wide.DrawDefKind

What a parameter pack owes, and one atom kind's machinery #

The machineries above the combinators take their parameters in a pack (DescriptiveComplexity.Draw.StageArgs, TagArgs, ElemArgs), so what they owe the interpretation is stated pack by pack. A pack's fields split in two: the static ones – which slot a trip walks, which block it names, where the coordinate loop lives – must not depend on the instance at all (DescriptiveComplexity.Draw.UConst), since they are what the emitted formula is built from; the dynamic ones are guards and control updates, and owe the usual three obligations.

With the three pack statements, an atom kind's machinery (DescriptiveComplexity.Draw.Data.kindRule) is definable one constructor at a time: the stage atom's by DescriptiveComplexity.Draw.Data.uRulesDefinable_stageRule, an expansion atom's by the tag-branched statement, an equality's and an order atom's by the element loop's.

A field that does not depend on the instance: what a static parameter of a pack owes, the emitted formula being built from it.

Equations
Instances For
    Dependency graph

    An element loop's pack #

    structure DescriptiveComplexity.Draw.UElemArgsDef {L : FirstOrder.Language} {Q W : Type} [Fintype Q] [Fintype W] {nr : ℕ} (args : (e : Env L) → ElemArgs e.α Q W nr) :

    What an element loop's pack owes.

    Instances For
      Dependency graph

      A tag-branched machinery's pack #

      structure DescriptiveComplexity.Draw.UTagArgsDef {L : FirstOrder.Language} {Q W : Type} [Fintype Q] [Fintype W] {m : ℕ} {T : Type} {nrOf : T → ℕ} (args : (e : Env L) → TagArgs e.α Q W m T nrOf) :

      What a tag-branched machinery's pack owes.

      Instances For
        Dependency graph

        A stage atom's pack, and an atom kind's machinery #

        structure DescriptiveComplexity.Draw.Data.UStageArgsDef {L : FirstOrder.Language} {Q : Type} [Fintype Q] {dt : Data L} [Fintype dt.SlotIx] {k : ℕ} (args : (e : Env L) → StageArgs e.α Q dt.SlotIx (Fin dt.ko ⊕ Fin dt.ki) dt.dd0 k) :

        What a stage atom's pack owes.

        Instances For
          Dependency graph
          Dependency graph