Elementary affine-flat operations #
Restrictions preserve affineness and constants. Every nonconstant affine Boolean function has two equally large fibers, and each fiber is again an affine flat.
The full Boolean cube is an affine flat.
Equations
- Algebraic.Aggregate.Geometry.AffineFlat.full n = { carrier := Finset.univ, nonempty := ⋯, closed := ⋯ }
Instances For
theorem
Algebraic.Aggregate.Geometry.ConstantOn.mono
{n : ℕ}
{S T : AffineFlat n}
{f : (Fin n → Bool) → Bool}
(h : ConstantOn S f)
(sub : T.carrier ⊆ S.carrier)
:
ConstantOn T f
A function made constant remains constant on every later restriction.
theorem
Algebraic.Aggregate.Geometry.ConstantOn.affine
{n : ℕ}
{S : AffineFlat n}
{f : (Fin n → Bool) → Bool}
(h : ConstantOn S f)
:
AffineOn S f
Every constant function preserves ternary XOR.
Constant Boolean functions are affine on every flat.
Each original input coordinate is an affine function.
theorem
Algebraic.Aggregate.Geometry.exists_mem_eq_of_not_constant
{n : ℕ}
{S : AffineFlat n}
{f : (Fin n → Bool) → Bool}
(h : ¬ConstantOn S f)
(b : Bool)
:
A nonconstant Boolean function takes both values on a nonempty flat.
theorem
Algebraic.Aggregate.Geometry.AffineOn.exists_half
{n : ℕ}
{S : AffineFlat n}
{f : (Fin n → Bool) → Bool}
(affine : AffineOn S f)
(nonconstant : ¬ConstantOn S f)
(b : Bool)
:
Each fiber of a nonconstant affine Boolean function is a half-sized affine flat.