Homogeneous projections of the slice models #
These lemmas calculate only the degree-three, degree-two, and degree-one parts used by the manuscript. The fixed coordinate checks concern the two explicit complementary quadratics; there is no search over circuits or Boolean functions.
theorem
UnrestrictedBooleanMul.N4.eval_linearANF_supportAssignment
(ell : LinearForm)
(t : Finset (Fin 8))
:
The first finite difference at zero in one coordinate direction.
Equations
Instances For
Extract the coefficient of one linear monomial.
Equations
- UnrestrictedBooleanMul.N4.singleCoeffMap i = { toFun := fun (p : UnrestrictedBooleanMul.ANF 8) => p.coeff { vars := {i} }, map_add' := ⋯, map_smul' := ⋯ }
Instances For
theorem
UnrestrictedBooleanMul.N4.anfLinearProjection_affine_mul_affine
(a b : F₂)
(ell m : LinearForm)
:
anfLinearProjection (affineANF a ell * affineANF b m) = a • m + b • ell + pointwiseLinearProduct ell m
theorem
UnrestrictedBooleanMul.N4.anfThreeProjection_linear_mul_quadratic
(ell m n : LinearForm)
:
anfThreeProjection (linearANF ell * (linearANF m * linearANF n)) = vectorWedgeTwo ell (vectorWedge m n)
theorem
UnrestrictedBooleanMul.N4.anfTwoProjection_linear_mul_quadratic
(ell m n : LinearForm)
(hdisjoint : pointwiseLinearProduct m n = 0)
:
anfTwoProjection (linearANF ell * (linearANF m * linearANF n)) = booleanContraction ell (vectorWedge m n)
theorem
UnrestrictedBooleanMul.N4.anfLinearProjection_linear_mul_quadratic
(ell m n : LinearForm)
(hdisjoint : pointwiseLinearProduct m n = 0)
:
theorem
UnrestrictedBooleanMul.N4.anfTwoProjection_affine_mul_sliceQuadraticA
(a : F₂)
(ell : LinearForm)
:
theorem
UnrestrictedBooleanMul.N4.anfLinearProjection_affine_mul_sliceQuadraticA
(a : F₂)
(ell : LinearForm)
:
theorem
UnrestrictedBooleanMul.N4.anfLinearProjection_affine_mul_sliceInfinityQuadratic
(a : F₂)
(ell : LinearForm)
:
theorem
UnrestrictedBooleanMul.N4.anfThreeProjection_affine_mul_sliceQuadraticA
(a : F₂)
(ell : LinearForm)
:
theorem
UnrestrictedBooleanMul.N4.anfTwoProjection_affine_mul_sliceQuadraticB
(a : F₂)
(ell : LinearForm)
:
theorem
UnrestrictedBooleanMul.N4.anfLinearProjection_affine_mul_sliceQuadraticB
(a : F₂)
(ell : LinearForm)
:
theorem
UnrestrictedBooleanMul.N4.anfThreeProjection_affine_mul_sliceQuadraticB
(a : F₂)
(ell : LinearForm)
:
@[simp]
theorem
UnrestrictedBooleanMul.N4.anfThreeProjection_sliceCorrectionModel
(a : F₂)
(ell : LinearForm)
(alpha : Fin 3 → F₂)
(x y : F₂)
:
@[simp]
theorem
UnrestrictedBooleanMul.N4.anfTwoProjection_sliceCorrectionModel
(a : F₂)
(ell : LinearForm)
(alpha : Fin 3 → F₂)
(x y : F₂)
:
anfTwoProjection (sliceCorrectionModel a ell alpha x y) = alpha 1 • sliceQuadraticA + alpha 2 • sliceInfinityQuadratic
@[simp]
theorem
UnrestrictedBooleanMul.N4.anfLinearProjection_sliceCorrectionModel
(a : F₂)
(ell : LinearForm)
(alpha : Fin 3 → F₂)
(x y : F₂)
:
anfLinearProjection (sliceCorrectionModel a ell alpha x y) = sliceComplementLinear ell + alpha 1 • sliceVaryingLinear x y
@[simp]
theorem
UnrestrictedBooleanMul.N4.anfThreeProjection_sliceTangentModel
(a : F₂)
(ell : LinearForm)
(eps x y : F₂)
:
@[simp]
theorem
UnrestrictedBooleanMul.N4.anfTwoProjection_sliceTangentModel
(a : F₂)
(ell : LinearForm)
(eps x y : F₂)
:
@[simp]
theorem
UnrestrictedBooleanMul.N4.anfLinearProjection_sliceTangentModel
(a : F₂)
(ell : LinearForm)
(eps x y : F₂)
:
anfLinearProjection (sliceTangentModel a ell eps x y) = sliceComplementLinear ell + y • sliceU + x • sliceV
The Boolean degree-lowering contraction on the type-A support plane.
theorem
UnrestrictedBooleanMul.N4.booleanContraction_sliceInfinity_sliceInfinityQuadratic
(p q : F₂)
:
booleanContraction (p • placeA 2 + q • placeB 2) sliceInfinityQuadratic = (p + q) • sliceInfinityQuadratic
noncomputable def
UnrestrictedBooleanMul.N4.sliceTypeAFullModel
(leftConst : F₂)
(leftLinear : LinearForm)
(rightConst : F₂)
(rightLinear : LinearForm)
(correctionConst : F₂)
(correctionLinear : LinearForm)
(correctionCoeff : Fin 3 → F₂)
(x y : F₂)
:
ANF 8
The full sliced type-A product, including its affine and rational-target correction.
Equations
- One or more equations did not get rendered due to their size.
Instances For
noncomputable def
UnrestrictedBooleanMul.N4.sliceTypeBFullModel
(leftConst : F₂)
(leftLinear : LinearForm)
(rightConst : F₂)
(rightLinear : LinearForm)
(correctionConst : F₂)
(correctionLinear : LinearForm)
(correctionCoeff : Fin 3 → F₂)
(x y : F₂)
:
ANF 8
The full sliced type-B product, including its affine and rational-target correction.
Equations
- One or more equations did not get rendered due to their size.
Instances For
noncomputable def
UnrestrictedBooleanMul.N4.sliceTypeInfinityFullModel
(leftConst : F₂)
(leftLinear : LinearForm)
(rightConst : F₂)
(rightLinear : LinearForm)
(correctionConst : F₂)
(correctionLinear : LinearForm)
(correctionCoeff : Fin 3 → F₂)
(x y : F₂)
:
ANF 8
The full sliced infinity-type product, including its affine and rational-target correction.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
UnrestrictedBooleanMul.N4.anchorsIndependent_sliceTypeAFullModel
(leftConst : F₂)
(leftLinear : LinearForm)
(rightConst : F₂)
(rightLinear : LinearForm)
(correctionConst : F₂)
(correctionLinear : LinearForm)
(correctionCoeff : Fin 3 → F₂)
(x y : F₂)
:
AnchorsIndependent
(sliceTypeAFullModel leftConst leftLinear rightConst rightLinear correctionConst correctionLinear correctionCoeff x y)
theorem
UnrestrictedBooleanMul.N4.anchorsIndependent_sliceTypeBFullModel
(leftConst : F₂)
(leftLinear : LinearForm)
(rightConst : F₂)
(rightLinear : LinearForm)
(correctionConst : F₂)
(correctionLinear : LinearForm)
(correctionCoeff : Fin 3 → F₂)
(x y : F₂)
:
AnchorsIndependent
(sliceTypeBFullModel leftConst leftLinear rightConst rightLinear correctionConst correctionLinear correctionCoeff x y)
theorem
UnrestrictedBooleanMul.N4.anchorsIndependent_sliceTypeInfinityFullModel
(leftConst : F₂)
(leftLinear : LinearForm)
(rightConst : F₂)
(rightLinear : LinearForm)
(correctionConst : F₂)
(correctionLinear : LinearForm)
(correctionCoeff : Fin 3 → F₂)
(x y : F₂)
:
AnchorsIndependent
(sliceTypeInfinityFullModel leftConst leftLinear rightConst rightLinear correctionConst correctionLinear
correctionCoeff x y)
@[simp]
theorem
UnrestrictedBooleanMul.N4.anfThreeProjection_sliceTypeAFullModel
(leftConst : F₂)
(leftLinear : LinearForm)
(rightConst : F₂)
(rightLinear : LinearForm)
(correctionConst : F₂)
(correctionLinear : LinearForm)
(correctionCoeff : Fin 3 → F₂)
(x y : F₂)
:
anfThreeProjection
(sliceTypeAFullModel leftConst leftLinear rightConst rightLinear correctionConst correctionLinear correctionCoeff x
y) = vectorWedgeTwo (sliceComplementLinear leftLinear) sliceQuadraticA
@[simp]
theorem
UnrestrictedBooleanMul.N4.anfThreeProjection_sliceTypeBFullModel
(leftConst : F₂)
(leftLinear : LinearForm)
(rightConst : F₂)
(rightLinear : LinearForm)
(correctionConst : F₂)
(correctionLinear : LinearForm)
(correctionCoeff : Fin 3 → F₂)
(x y : F₂)
:
anfThreeProjection
(sliceTypeBFullModel leftConst leftLinear rightConst rightLinear correctionConst correctionLinear correctionCoeff x
y) = vectorWedgeTwo (sliceComplementLinear leftLinear) sliceQuadraticB
@[simp]
theorem
UnrestrictedBooleanMul.N4.anfThreeProjection_sliceTypeInfinityFullModel
(leftConst : F₂)
(leftLinear : LinearForm)
(rightConst : F₂)
(rightLinear : LinearForm)
(correctionConst : F₂)
(correctionLinear : LinearForm)
(correctionCoeff : Fin 3 → F₂)
(x y : F₂)
:
anfThreeProjection
(sliceTypeInfinityFullModel leftConst leftLinear rightConst rightLinear correctionConst correctionLinear
correctionCoeff x y) = vectorWedgeTwo (sliceComplementLinear leftLinear) sliceInfinityQuadratic
theorem
UnrestrictedBooleanMul.N4.anfTwoProjection_sliceTypeAFullModel
(leftConst : F₂)
(leftLinear : LinearForm)
(rightConst : F₂)
(rightLinear : LinearForm)
(correctionConst : F₂)
(correctionLinear : LinearForm)
(correctionCoeff : Fin 3 → F₂)
(x y : F₂)
:
anfTwoProjection
(sliceTypeAFullModel leftConst leftLinear rightConst rightLinear correctionConst correctionLinear correctionCoeff x
y) = (leftConst + sliceAnchorValue leftLinear x y + x * y) • sliceQuadraticA + vectorWedge (sliceComplementLinear leftLinear) (sliceComplementLinear rightLinear + sliceVaryingLinear x y) + booleanContraction (sliceComplementLinear leftLinear) sliceQuadraticA + correctionCoeff 1 • sliceQuadraticA + correctionCoeff 2 • sliceInfinityQuadratic
theorem
UnrestrictedBooleanMul.N4.anfTwoProjection_sliceTypeBFullModel
(leftConst : F₂)
(leftLinear : LinearForm)
(rightConst : F₂)
(rightLinear : LinearForm)
(correctionConst : F₂)
(correctionLinear : LinearForm)
(correctionCoeff : Fin 3 → F₂)
(x y : F₂)
:
anfTwoProjection
(sliceTypeBFullModel leftConst leftLinear rightConst rightLinear correctionConst correctionLinear correctionCoeff x
y) = (leftConst + sliceAnchorValue leftLinear x y + x * y) • sliceQuadraticB + vectorWedge (sliceComplementLinear leftLinear) (sliceComplementLinear rightLinear + sliceVaryingLinear x y) + booleanContraction (sliceComplementLinear leftLinear) sliceQuadraticB + correctionCoeff 1 • sliceQuadraticA + correctionCoeff 2 • sliceInfinityQuadratic
theorem
UnrestrictedBooleanMul.N4.anfTwoProjection_sliceTypeInfinityFullModel
(leftConst : F₂)
(leftLinear : LinearForm)
(rightConst : F₂)
(rightLinear : LinearForm)
(correctionConst : F₂)
(correctionLinear : LinearForm)
(correctionCoeff : Fin 3 → F₂)
(x y : F₂)
:
anfTwoProjection
(sliceTypeInfinityFullModel leftConst leftLinear rightConst rightLinear correctionConst correctionLinear
correctionCoeff x y) = (leftConst + sliceAnchorValue leftLinear x y + x * y) • sliceInfinityQuadratic + vectorWedge (sliceComplementLinear leftLinear) (sliceComplementLinear rightLinear) + booleanContraction (sliceComplementLinear leftLinear) sliceInfinityQuadratic + correctionCoeff 1 • sliceQuadraticA + correctionCoeff 2 • sliceInfinityQuadratic
theorem
UnrestrictedBooleanMul.N4.anfLinearProjection_sliceTypeAFullModel
(leftConst : F₂)
(leftLinear : LinearForm)
(rightConst : F₂)
(rightLinear : LinearForm)
(correctionConst : F₂)
(correctionLinear : LinearForm)
(correctionCoeff : Fin 3 → F₂)
(x y : F₂)
:
anfLinearProjection
(sliceTypeAFullModel leftConst leftLinear rightConst rightLinear correctionConst correctionLinear correctionCoeff x
y) = sliceProductLinear (leftConst + sliceAnchorValue leftLinear x y + x * y)
(rightConst + sliceAnchorValue rightLinear x y + x * y) (sliceComplementLinear leftLinear)
(sliceComplementLinear rightLinear + sliceVaryingLinear x y) (sliceComplementLinear correctionLinear)
(correctionCoeff 1) x y
theorem
UnrestrictedBooleanMul.N4.anfLinearProjection_sliceTypeBFullModel
(leftConst : F₂)
(leftLinear : LinearForm)
(rightConst : F₂)
(rightLinear : LinearForm)
(correctionConst : F₂)
(correctionLinear : LinearForm)
(correctionCoeff : Fin 3 → F₂)
(x y : F₂)
:
anfLinearProjection
(sliceTypeBFullModel leftConst leftLinear rightConst rightLinear correctionConst correctionLinear correctionCoeff x
y) = sliceProductLinear (leftConst + sliceAnchorValue leftLinear x y + x * y)
(rightConst + sliceAnchorValue rightLinear x y + x * y) (sliceComplementLinear leftLinear)
(sliceComplementLinear rightLinear + sliceVaryingLinear x y) (sliceComplementLinear correctionLinear)
(correctionCoeff 1) x y
theorem
UnrestrictedBooleanMul.N4.anfLinearProjection_sliceTypeInfinityFullModel
(leftConst : F₂)
(leftLinear : LinearForm)
(rightConst : F₂)
(rightLinear : LinearForm)
(correctionConst : F₂)
(correctionLinear : LinearForm)
(correctionCoeff : Fin 3 → F₂)
(x y : F₂)
:
anfLinearProjection
(sliceTypeInfinityFullModel leftConst leftLinear rightConst rightLinear correctionConst correctionLinear
correctionCoeff x y) = sliceProductLinear (leftConst + sliceAnchorValue leftLinear x y + x * y)
(rightConst + sliceAnchorValue rightLinear x y) (sliceComplementLinear leftLinear)
(sliceComplementLinear rightLinear) (sliceComplementLinear correctionLinear) (correctionCoeff 1) x y