Documentation

LeanPool.BooleanIsoperimetry.ConwayGuyCoherentGap

Conway--Guy coherent-gap data #

This file instantiates the triangular correction pattern used by the Conway--Guy distinct-subset-sum sequence. The recurrence and notation follow Section 2 of Tom Bohman's 1996 paper on the Conway--Guy sequence.

theorem BooleanIsoperimetry.CoherentGap.guideWitness (dimension : ) :
∃ (width : ), dimension - 1 triangular width
noncomputable def BooleanIsoperimetry.CoherentGap.guide (dimension : ) :

The least triangular block containing dimension - 1.

Equations
Instances For
    theorem BooleanIsoperimetry.CoherentGap.guide_upper (dimension : ) :
    dimension - 1 triangular (guide dimension)
    theorem BooleanIsoperimetry.CoherentGap.guide_pos {dimension : } (hdimension : 2 dimension) :
    0 < guide dimension
    theorem BooleanIsoperimetry.CoherentGap.guide_lower {dimension : } (hdimension : 2 dimension) :
    triangular (guide dimension - 1) + 2 dimension
    theorem BooleanIsoperimetry.CoherentGap.guide_le_dimension {dimension : } (hdimension : 2 dimension) :
    guide dimension dimension
    theorem BooleanIsoperimetry.CoherentGap.correction_deep_bound {dimension index : } (hdimension : 2 dimension) (hindex : index < guide dimension - 1) :
    triangular index + index + 3 dimension
    theorem BooleanIsoperimetry.CoherentGap.negative_index_ge_guide {dimension index : } (hdimension : 2 dimension) (hindex : index < guide dimension - 1) :
    guide dimension dimension - triangular index - 1
    noncomputable def BooleanIsoperimetry.CoherentGap.positiveIndex (offset : ) (index : Fin (guide (offset + 2))) :
    Fin (offset + 2)

    The positive support of the Conway--Guy principal relation.

    Equations
    Instances For
      noncomputable def BooleanIsoperimetry.CoherentGap.negativeIndex (offset : ) (index : Fin (guide (offset + 2) - 1)) :
      Fin (offset + 2)

      The triangular negative support of the Conway--Guy principal relation.

      Equations
      Instances For
        noncomputable def BooleanIsoperimetry.CoherentGap.correctionFor (offset : ) (index : Fin (guide (offset + 2) - 1)) :
        Correction (offset + 2)

        The smaller-dimensional certificate lift cancelling one negative support coordinate of the principal relation.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          noncomputable def BooleanIsoperimetry.CoherentGap.corrections (offset : ) :
          List (Correction (offset + 2))

          The complete correction list in dimension offset + 2.

          Equations
          Instances For
            noncomputable def BooleanIsoperimetry.CoherentGap.principal (offset : ) :
            Relation (offset + 2)

            The Conway--Guy triangular-block principal relation.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              theorem BooleanIsoperimetry.CoherentGap.coordinateSum_finset_sum {n : } {α : Type} (set : Finset α) (relations : αRelation n) :
              coordinateSum (∑ indexset, relations index) = indexset, coordinateSum (relations index)
              @[simp]
              theorem BooleanIsoperimetry.CoherentGap.coordinateSum_basis {n : } (coordinate : Fin n) :
              coordinateSum (basis coordinate) = 1
              theorem BooleanIsoperimetry.CoherentGap.positiveIndex_ne_negativeIndex (offset : ) (positive : Fin (guide (offset + 2))) (negative : Fin (guide (offset + 2) - 1)) :
              positiveIndex offset positive negativeIndex offset negative
              theorem BooleanIsoperimetry.CoherentGap.relation_finset_sum_apply {n : } {α : Type} (set : Finset α) (relations : αRelation n) (coordinate : Fin n) :
              (∑ indexset, relations index) coordinate = indexset, relations index coordinate
              theorem BooleanIsoperimetry.CoherentGap.sum_basis_apply {sourceDimension targetDimension : } (embedding : Fin sourceDimensionFin targetDimension) (hinjective : Function.Injective embedding) (coordinate : Fin targetDimension) :
              (∑ index : Fin sourceDimension, basis (embedding index)) coordinate = if coordinate Finset.image embedding Finset.univ then 1 else 0
              theorem BooleanIsoperimetry.CoherentGap.principal_entry (offset : ) (coordinate : Fin (offset + 2)) :
              principal offset coordinate = -1 principal offset coordinate = 0 principal offset coordinate = 1
              theorem BooleanIsoperimetry.CoherentGap.lift_sub {n : } (first second : Relation n) :
              lift (first - second) = lift first - lift second
              theorem BooleanIsoperimetry.CoherentGap.iteratedLift_basis_eq {n : } (coordinate : Fin n) {steps : } (hsteps : 0 < steps) :
              iteratedLift (basis coordinate) steps = basis coordinate + steps, - basis steps - 1,
              @[simp]
              theorem BooleanIsoperimetry.CoherentGap.castRelation_apply {firstDimension secondDimension : } (hdimension : firstDimension = secondDimension) (relation : Relation firstDimension) (coordinate : Fin secondDimension) :
              castRelation hdimension relation coordinate = relation (Fin.cast coordinate)
              theorem BooleanIsoperimetry.CoherentGap.castRelation_sub {firstDimension secondDimension : } (hdimension : firstDimension = secondDimension) (first second : Relation firstDimension) :
              castRelation hdimension (first - second) = castRelation hdimension first - castRelation hdimension second
              theorem BooleanIsoperimetry.CoherentGap.castRelation_basis {firstDimension secondDimension : } (hdimension : firstDimension = secondDimension) (coordinate : Fin firstDimension) :
              castRelation hdimension (basis coordinate) = basis (Fin.cast hdimension coordinate)
              theorem BooleanIsoperimetry.CoherentGap.correctionFor_target (offset : ) (index : Fin (guide (offset + 2) - 1)) :
              (correctionFor offset index).target = basis (negativeIndex offset index) - basis index + 1,
              theorem BooleanIsoperimetry.CoherentGap.corrections_target_sum (offset : ) :
              (List.map Correction.target (corrections offset)).sum = index : Fin (guide (offset + 2) - 1), (basis (negativeIndex offset index) - basis index + 1, )
              @[irreducible]

              The one-indexed Conway--Guy recurrence, stored with zero-based indices.

              Equations
              Instances For

                The Conway--Guy difference sequence using the triangular block guide.

                Equations
                Instances For

                  The cumulative Conway--Guy heights.

                  Equations
                  Instances For

                    Arithmetic data from which the coherent-gap weight tower is built.

                    • guide :

                      Block guide for the recurrence.

                    • height :

                      Cumulative heights of the recurrence.

                    • height_zero : self.height 0 = 0

                      The zero-dimensional height.

                    Instances For

                      The arithmetic data of the actual Conway--Guy sequence.

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

                        The increasing Conway--Guy-style row obtained from cumulative heights.

                        Equations
                        Instances For

                          The coordinate adjoined at the front when the dimension increases.

                          Equations
                          Instances For
                            theorem BooleanIsoperimetry.CoherentGap.ConwayGuyArithmetic.weights_step (data : ConwayGuyArithmetic) (dimension : ) :
                            data.weights (dimension + 1) = extendWeights (data.head dimension) (data.weights dimension)

                            The exact Conway--Guy-style dimension-lift tower.

                            Equations
                            Instances For
                              theorem BooleanIsoperimetry.CoherentGap.dot_sub {n : } (first second weights : Relation n) :
                              dot (first - second) weights = dot first weights - dot second weights
                              theorem BooleanIsoperimetry.CoherentGap.dot_finset_sum {n : } {α : Type} (set : Finset α) (relations : αRelation n) (weights : Relation n) :
                              dot (∑ indexset, relations index) weights = indexset, dot (relations index) weights
                              theorem BooleanIsoperimetry.CoherentGap.principal_dot (offset : ) (hblock : conwayGuyHeight (offset + 2) - index : Fin (guide (offset + 2)), conwayGuyHeight (offset + 2 - index - 1) + index : Fin (guide (offset + 2) - 1), conwayGuyHeight (triangular index) = 1) :
                              dot (principal offset) (conwayGuyArithmetic.weights (offset + 2)) = 1