Documentation

LeanPool.HadwigerNelsonBounds.PartsGadgetCertificate

A sound checker for the second-stage Parts gadget #

The finite constraint system has unit-edge inequalities and non-monochromatic sqrt-three triples. Unary stretches of its coloring trees are stored as forced stems, exactly as in the first-stage Parts certificate.

A vertex-color assignment in the 73-vertex second-stage gadget.

  • vertex : Fin 73

    Assigned gadget 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.

      • Unary forced assignments preceding the branch.

      • vertex : Fin 73

        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 normalized root coloring and its compressed contradiction tree.

          Instances For

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

            Equations
            Instances For

              Properness on every listed unit edge.

              Equations
              Instances For

                Every listed sqrt-three triangle is non-monochromatic.

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

                  The two constraints used by the second-stage checker.

                  Equations
                  Instances For

                    A coloring agrees with every assignment on a certificate path.

                    Equations
                    Instances For

                      The path already assigns a given color to a vertex.

                      Equations
                      Instances For

                        A path blocks a color through an edge or a monochromatic triple.

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

                          The four colors, as executable data.

                          Equations
                          Instances For

                            Executable path-color lookup.

                            Equations
                            Instances For
                              theorem HadwigerNelsonBounds.partsGadgetHasColorB_eq_true {path : List PartsGadgetAssignment} {vertex : Fin 73} {color : Fin 4} :
                              PartsGadgetHasColorB path vertex color = true PartsGadgetHasColor path vertex color

                              Executable counterpart of PartsGadgetBlocks.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                theorem HadwigerNelsonBounds.partsGadgetBlocksB_eq_true {path : List PartsGadgetAssignment} {vertex : Fin 73} {color : Fin 4} :
                                PartsGadgetBlocksB path vertex color = true PartsGadgetBlocks path vertex color

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

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

                                  Execute a sequence of forced assignments.

                                  Equations
                                  Instances For

                                    Executable checker for a compressed contradiction tree.

                                    Equations
                                    Instances For

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

                                      Equations
                                      Instances For
                                        theorem HadwigerNelsonBounds.not_partsGadgetBlocks_of_valid {coloring : Fin 73Fin 4} (hvalid : PartsGadgetValid coloring) (path : List PartsGadgetAssignment) (hextends : PartsGadgetExtends coloring path) (vertex : Fin 73) :
                                        ¬PartsGadgetBlocks path vertex (coloring vertex)
                                        theorem HadwigerNelsonBounds.partsGadgetForcedB_sound {coloring : Fin 73Fin 4} (hvalid : PartsGadgetValid coloring) {path : List PartsGadgetAssignment} (hextends : PartsGadgetExtends coloring path) {assignment : PartsGadgetAssignment} (hforced : PartsGadgetForcedB path assignment = true) :
                                        coloring assignment.vertex = assignment.color
                                        theorem HadwigerNelsonBounds.partsGadgetRunStemB_sound {coloring : Fin 73Fin 4} (hvalid : PartsGadgetValid coloring) {stem path extended : List PartsGadgetAssignment} :
                                        PartsGadgetRunStemB stem path = some extendedPartsGadgetExtends coloring pathPartsGadgetExtends coloring extended
                                        theorem HadwigerNelsonBounds.partsGadgetVerifiesNodeB_unsat {nodes : Array (Array PartsGadgetTreeNode)} {coloring : Fin 73Fin 4} (hvalid : PartsGadgetValid coloring) {fuel : } {path : List PartsGadgetAssignment} {index : } :
                                        PartsGadgetVerifiesNodeB nodes fuel path index = truePartsGadgetExtends coloring pathFalse
                                        theorem HadwigerNelsonBounds.PartsGadgetCertificate.not_colorable (certificate : PartsGadgetCertificate) (hverify : certificate.Verifies) {coloring : Fin 73Fin 4} (hvalid : PartsGadgetValid coloring) (hroots : PartsGadgetExtends coloring certificate.roots) :

                                        A verified coloring tree rules out every valid coloring extending its roots.