Documentation

LeanPool.HadwigerNelsonBounds.PartsCertificate

A sound checker for Parts coloring trees #

Unary stretches of a coloring tree are stored as forced-color stems. A tree node therefore ends at either a genuine branch or an uncolorable leaf. This is the same certificate as the source coloring diagram, but avoids artificial recursion depth from long chains of forced assignments.

A vertex-color assignment on the finite Parts graph.

  • vertex : Fin 481

    Assigned graph vertex.

  • color : Fin 4

    Assigned color.

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

      A compressed coloring-tree node: a forced stem followed by a branch/leaf.

      • Unary forced assignments preceding the branch.

      • vertex : Fin 481

        Vertex branched on after the forced stem.

      • children : Fin 4

        Encoded child index for each color, with zero meaning absent.

      Instances For

        Decode zero as no child and n + 1 as child index n.

        Equations
        Instances For

          A root coloring together with its compressed contradiction tree.

          Instances For

            Constant-depth lookup in a tree stored as 64-node chunks.

            Equations
            Instances For
              def HadwigerNelsonBounds.PartsBlocks (path : List PartsAssignment) (vertex : Fin 481) (color : Fin 4) :

              A path assignment blocks color at vertex through a unit edge.

              Equations
              Instances For
                def HadwigerNelsonBounds.PartsExtends (coloring : Fin 481Fin 4) (path : List PartsAssignment) :

                A coloring agrees with every assignment on a certificate path.

                Equations
                Instances For
                  def HadwigerNelsonBounds.PartsProper (coloring : Fin 481Fin 4) :

                  Properness for the exact unit edges recognized by the certificate.

                  Equations
                  Instances For

                    The four colors, as data for the executable checker.

                    Equations
                    Instances For
                      def HadwigerNelsonBounds.PartsBlocksB (path : List PartsAssignment) (vertex : Fin 481) (color : Fin 4) :

                      Executable counterpart of PartsBlocks.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        theorem HadwigerNelsonBounds.partsBlocksB_eq_true {path : List PartsAssignment} {vertex : Fin 481} {color : Fin 4} :
                        PartsBlocksB path vertex color = true PartsBlocks path vertex color

                        A forced assignment is the only color not blocked by the current path.

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

                          Execute a sequence of forced assignments, returning the extended path.

                          Equations
                          Instances For

                            Executable checker for a compressed coloring tree.

                            Equations
                            Instances For

                              Check a certificate from node zero with enough fuel for an acyclic tree.

                              Equations
                              Instances For
                                theorem HadwigerNelsonBounds.not_partsBlocks_of_proper {coloring : Fin 481Fin 4} (hproper : PartsProper coloring) (path : List PartsAssignment) (hextends : PartsExtends coloring path) (vertex : Fin 481) :
                                ¬PartsBlocks path vertex (coloring vertex)
                                theorem HadwigerNelsonBounds.partsForcedB_sound {coloring : Fin 481Fin 4} (hproper : PartsProper coloring) {path : List PartsAssignment} (hextends : PartsExtends coloring path) {assignment : PartsAssignment} (hforced : PartsForcedB path assignment = true) :
                                coloring assignment.vertex = assignment.color
                                theorem HadwigerNelsonBounds.partsRunStemB_sound {coloring : Fin 481Fin 4} (hproper : PartsProper coloring) {stem path extended : List PartsAssignment} :
                                PartsRunStemB stem path = some extendedPartsExtends coloring pathPartsExtends coloring extended
                                theorem HadwigerNelsonBounds.partsVerifiesNodeB_unsat {nodes : Array (Array PartsTreeNode)} {coloring : Fin 481Fin 4} (hproper : PartsProper coloring) {fuel : } {path : List PartsAssignment} {index : } :
                                PartsVerifiesNodeB nodes fuel path index = truePartsExtends coloring pathFalse
                                theorem HadwigerNelsonBounds.PartsCertificate.not_colorable (certificate : PartsCertificate) (hverify : certificate.Verifies) {coloring : Fin 481Fin 4} (hproper : PartsProper coloring) (hroots : PartsExtends coloring certificate.roots) :

                                Soundness of a checked Parts coloring tree.