Rem_3: Binary Vector Notation #
Statement #
Throughout this work, we abuse notation by identifying a subset of vertices, edges, or cycles with its characteristic binary vector over $\mathbb{Z}_2 = \mathbb{F}_2$. For a set $S$ of vertices/edges/cycles, the corresponding binary vector has a 1 in position $i$ if and only if element $i$ belongs to $S$. Addition of binary vectors corresponds to symmetric difference of sets. This identification allows us to use linear algebra over $\mathbb{Z}_2$ to reason about graph-theoretic properties.
Main Definitions #
BinaryVector: The type of binary vectors over a finite index set, i.e., functionsα → ZMod 2characteristicVector: Maps a subsetSto its characteristic binary vectorfromBinaryVector: Maps a binary vector back to the corresponding subset
Key Properties #
characteristicVector_mem_iff: Position i is 1 iff element i belongs to ScharacteristicVector_add: Addition corresponds to symmetric differencecharacteristicVector_injective: The identification is injective (subsets uniquely determine vectors)characteristicVector_bijective: The identification is a bijection
Corollaries #
Binary Vectors over ZMod 2 #
A binary vector over an index set α is a function to ZMod 2. This is the type of characteristic vectors.
Equations
- BinaryVector α = (α → ZMod 2)
Instances For
Addition of binary vectors (componentwise in ZMod 2)
Instances For
Equations
- BinaryVector.instZero = { zero := BinaryVector.zero }
Equations
- BinaryVector.instAdd = { add := BinaryVector.add }
Binary vectors form an additive group (every element is its own inverse in ZMod 2)
Binary vectors form a ZMod 2 module (i.e., a vector space over F_2)
Equations
- BinaryVector.instModuleZModOfNatNat = Pi.module α (fun (x : α) => ZMod 2) (ZMod 2)
Characteristic Vector of a Set #
The characteristic vector of a finset S: position i has value 1 iff i ∈ S.
Instances For
Alternative definition using Set.indicator
Equations
- characteristicVector' S = (↑S).indicator fun (x : α) => 1
Instances For
Key characterization: position i is 1 iff element i belongs to S
The characteristic vector of the empty set is zero
The characteristic vector of the bottom element (used for symmDiff_self)
The characteristic vector of a singleton
Symmetric Difference and Vector Addition #
Key theorem: Addition of characteristic vectors corresponds to symmetric difference. This is the fundamental property that allows linear algebra over Z_2 to encode set operations.
Symmetric difference is encoded as addition
Self-symmetric difference is empty (S Δ S = ∅)
In ZMod 2, every element is its own additive inverse
Inverse Map: From Binary Vector to Finset #
Convert a binary vector back to a finset (the support of the vector)
Equations
- fromBinaryVector v = {i : α | v i = 1}
Instances For
Round-trip: characteristic vector then back to finset gives the original finset
Round-trip: finset to vector then back gives the original vector (for vectors that only take values 0 and 1, which is automatic in ZMod 2)
The characteristic vector map is injective
The characteristic vector map is surjective
The characteristic vector map is a bijection
The characteristic vector map as an equivalence
Equations
- characteristicVectorEquiv = { toFun := characteristicVector, invFun := fromBinaryVector, left_inv := ⋯, right_inv := ⋯ }
Instances For
Algebraic Structure: Finsets as a Vector Space over ZMod 2 #
Zero element is the empty set
Equations
- finsetZero = { zero := ∅ }
Finsets form an additive commutative group with symmetric difference as addition
Equations
- One or more equations did not get rendered due to their size.
Finsets form a module (vector space) over ZMod 2
Equations
- finsetModule = { toSMul := finsetSMul, mul_smul := ⋯, one_smul := ⋯, smul_zero := ⋯, smul_add := ⋯, add_smul := ⋯, zero_smul := ⋯ }
The characteristic vector map is a linear map
The characteristic vector map preserves scalar multiplication
The characteristic vector map is a linear equivalence
Equations
- characteristicVectorLinearEquiv = { toFun := characteristicVector, map_add' := ⋯, map_smul' := ⋯, invFun := fromBinaryVector, left_inv := ⋯, right_inv := ⋯ }
Instances For
Properties Useful for Graph Theory Applications #
The union of disjoint sets corresponds to addition (which is XOR/symmetric difference)
Intersection can be expressed in terms of the algebraic structure
Complement relative to the universe
The cardinality of a set can be recovered from its characteristic vector
Two sets are equal iff their characteristic vectors are equal
Summary #
The binary vector notation convention establishes:
Identification: A finset S ⊆ α corresponds to its characteristic vector χ_S : α → ZMod 2 where χ_S(i) = 1 iff i ∈ S
Addition = Symmetric Difference: χ_{S Δ T} = χ_S + χ_T (componentwise in ZMod 2)
Bijectivity: This identification is a bijection, so sets and vectors can be used interchangeably
Linear Structure: Under this identification, Finset α becomes a ZMod 2-vector space where addition is symmetric difference
Application: This allows linear algebra techniques over F_2 to be applied to graph-theoretic problems involving sets of vertices, edges, or cycles.
The key insight is that XOR (symmetric difference) becomes ordinary addition in ZMod 2, making linear algebraic techniques available for reasoning about graph properties.