Documentation

DescriptiveComplexity.Block

Declaring a second-order block #

A DescriptiveComplexity.SigmaSODefinable witness guesses its certificate in a DescriptiveComplexity.SOBlock, and its kernel is a sentence over the base vocabulary summed with the block's. Setting that up means an index type with a Fintype instance, the block itself, one ⟨.i, rfl⟩ symbol per relation variable, the summed language, and – for every symbol of the base vocabulary as well – an abbreviation injecting it into the sum. None of that is guessable from the mathematics, and all of it is determined by the arities.

fo_block writes it:

/-- The existential block of Subgraph Isomorphism. -/
fo_block isoGuessBlock over Language.twoGraphs tg into subgraphSOLang with sg where
  /-- The guessed map from the pattern to the host. -/
  map : 2

reads the symbols of Language.twoGraphs out of the environment, and declares IsoGuessBlockIx (with DecidableEq and Fintype), isoGuessBlock, subgraphSOLang, the relation variable sgMapRel, and the symbols of the sum: sgPatVSym, sgHostVSym, sgPatESym, sgHostESym on the left and sgMapSym on the right. The base vocabulary is named with the prefix its symbols carry, so that the command can find tgPatV from the constructor patV; it must therefore have been declared by DescriptiveComplexity.fo_language, or by hand following the same convention.

The generated declarations are the hand-written ones. The index type is a named inductive rather than Unit or Fin k even for a single variable: a numeral does not elaborate at the ι field, and a named constructor is what the ⟨.i, rfl⟩ symbols and the assignment ρ read.

One relation variable of a block: map : 2.

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

    Declare a DescriptiveComplexity.SOBlock, the summed vocabulary and every symbol of the sum; see the module docstring.

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

      Elaborate fo_block.

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