Documentation

CslibFrontier.Algorithms.Lean.EdgeCSP.Blossom.Reference

Positional transport of the contracted reference labeling #

Surviving old ports retain their labels. The old-constraint end of every fresh connector is zero, and the new central end is the actual one-hot reference from Section 5.3 of [KKR18], arXiv:1602.03124v6, printed p. 12. All port constructors search finite actual position lists and use binary names only as data.

theorem Cslib.Logic.PL.CSP.Blossom.mem_outsidePositions (vs scope : List ℕ) (j : ℕ) :
j ∈ Table.outsidePositions scope.length (positions vs scope) ↔ j < scope.length ∧ scope.getD j 0 ∉ vs

An original argument position survives exactly when its variable is outside the blossom.

Every surviving port has a valid index in the actual old-constraint output scope.

Map a surviving original occurrence to its new scope position. Its original constraint index is preserved, and its new argument index is found in the actual finite outside list.

Instances For
    theorem Cslib.Logic.PL.CSP.Blossom.oldPort_var {F : CSP Table ℕ} (f : F.OccurrenceLabeling Bool) (vs : List ℕ) (o : F.Occurrence) (ho : o.var ∉ vs) :
    (oldPort f vs o ho).var = o.var

    Surviving occurrence transport preserves the original binary variable name.

    The old reference buffer is the ordered outside projection, followed by a zero precisely at touched constraints. Untouched constraints need no extra connector bit.

    theorem Cslib.Logic.PL.CSP.Blossom.reference_oldPort {F : CSP Table ℕ} (f : F.OccurrenceLabeling Bool) (vs : List ℕ) (o : F.Occurrence) (ho : o.var ∉ vs) :
    reference f vs (oldPort f vs o ho) = f o

    The explicit finite contracted reference retains every old outside occurrence value.

    theorem Cslib.Logic.PL.CSP.Blossom.scope_constraint_touched {F : CSP Table ℕ} (f : F.OccurrenceLabeling Bool) (vs : List ℕ) {i : Fin (List.length F)} (hi : i ∈ touched F vs) :
    (constraint f vs i).2 = List.map (fun (j : ℕ) => F[↑i].2.getD j 0) (Table.outsidePositions F[↑i].2.length (positions vs F[↑i].2)) ++ [connector F i]

    The gathered outside list followed by the fresh port is the actual touched scope.

    The new terminal port of a touched original constraint.

    Instances For

      The central port at an actual connector-scope position.

      Instances For
        @[simp]

        The touched-constraint end of every connector is honestly zero in the reference.

        @[simp]

        The central end of exactly the first connector is one.

        Every old outside variable retains its exact defect status under reference transport.

        The connector at central scope position k is defective exactly when k = 0.

        The first connector is the unique new defect of the honest contracted reference.

        Instances For

          Exact reference-defect transport: old outside defects survive and the single central one-hot entry contributes exactly one fresh connector defect.

          The finite reference defect count deletes all old internal defects and inserts one. A blossom supplies exactly one old internal defect, yielding count preservation.

          Observation 26's exact defect-count relation for the actual prepared blossom reference.