Documentation

CslibFrontier.Foundations.Data.BitString.DeltaMatroid.Basic

Relational delta-matroids on Boolean tuples #

IsDeltaMatroid R is the nonempty, one-sided symmetric exchange axiom of Kazda, Kolmogorov and Rolínek, Definition 5, p. 4 (arXiv:1602.03124v6). Coordinates are arbitrary types; Fin n gives the usual tuples. The set {i, j} is a singleton when i = j, allowing a one-coordinate exchange. No simultaneous exchange at both feasible tuples is assumed.

IsEvenDeltaMatroid R additionally requires common parity, of either value, over a finite coordinate type. Empty relations are excluded, including on the empty coordinate type.

Main definitions #

Main results #

structure Cslib.BitString.IsDeltaMatroid {ι : Type u_1} [DecidableEq ι] (R : Set (ι → Bool)) :

A nonempty Boolean relation satisfying one-sided symmetric exchange. This is Definition 5 of [KKR18], with set flips as in Definition 4.

Instances For
    structure Cslib.BitString.IsEvenDeltaMatroid {ι : Type u_1} [DecidableEq ι] [Fintype ι] (R : Set (ι → Bool)) :

    A delta-matroid whose feasible tuples have common parity (possibly odd). This is the evenness condition in Definition 5 of [KKR18].

    Instances For
      @[simp]

      Empty relations are not delta-matroids under the nonempty convention.

      A singleton relation is a delta-matroid.

      The full Boolean cube is a delta-matroid, using a single-coordinate exchange.

      A singleton relation is even, including a singleton of odd parity.

      Flipping one coordinate negates total parity.

      theorem Cslib.BitString.parityOn_univ_flipOn_pair {ι : Type u_1} [DecidableEq ι] [Fintype ι] (x : ι → Bool) {i j : ι} (hij : i ≠ j) :

      Flipping two distinct coordinates preserves total parity.

      theorem Cslib.BitString.IsEvenDeltaMatroid.not_mem_flipOn_singleton {ι : Type u_1} [DecidableEq ι] {R : Set (ι → Bool)} {x : ι → Bool} [Fintype ι] (hR : IsEvenDeltaMatroid R) (hx : x ∈ R) (i : ι) :
      flipOn {i} x ∉ R

      Evenness rules out feasible one-coordinate flips.

      theorem Cslib.BitString.IsEvenDeltaMatroid.exchange {ι : Type u_1} [DecidableEq ι] {R : Set (ι → Bool)} {x y : ι → Bool} [Fintype ι] (hR : IsEvenDeltaMatroid R) (hx : x ∈ R) (hy : y ∈ R) {i : ι} (hi : x i ≠ y i) :
      ∃ (j : ι), j ≠ i ∧ x j ≠ y j ∧ flipOn {i, j} x ∈ R

      In an even delta-matroid, exchange flips two distinct coordinates on which the tuples differ.

      theorem Cslib.BitString.exists_ne_disagree_of_parity_eq {ι : Type u_1} {x y : ι → Bool} [Fintype ι] (h : parityOn Finset.univ x = parityOn Finset.univ y) {i : ι} (hi : x i ≠ y i) :
      ∃ (j : ι), j ≠ i ∧ x j ≠ y j

      Tuples of equal parity cannot disagree at just one coordinate.

      Every nonempty total-parity fiber is an even delta-matroid. The witness is necessary: the odd fiber on the empty coordinate type is empty.