Documentation

Complexity.Foundations.Data.BitString.AffineSubspace

Affine maps and affine subspaces over ๐”ฝโ‚‚ #

For maps between ๐”ฝโ‚‚-vector spaces, preserving sums of three points (Cslib.BitString.IsAffine) is the usual notion of affinity (Cslib.BitString.isAffine_iff_exists_affineMap): g is a Mathlib affine map over Bool with linear part x โ†ฆ g x + g 0 (Cslib.BitString.IsAffine.linearMap, Cslib.BitString.IsAffine.toAffineMap). The image of an injective affine map from V is an affine subspace whose direction has the dimension of V (Cslib.BitString.IsAffine.finrank_direction_map_top).

Main definitions #

Main results #

References #

def Cslib.BitString.IsAffine.linearMap {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module Bool V] [AddCommGroup W] [Module Bool W] {g : V โ†’ W} (hg : IsAffine g) :

The linear part x โ†ฆ g x + g 0 of a map g that is affine over ๐”ฝโ‚‚.

Instances For
    @[simp]
    theorem Cslib.BitString.IsAffine.linearMap_apply {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module Bool V] [AddCommGroup W] [Module Bool W] {g : V โ†’ W} (hg : IsAffine g) (x : V) :
    hg.linearMap x = g x + g 0

    The linear part of g sends x to g x + g 0.

    theorem Cslib.BitString.IsAffine.linearMap_injective {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module Bool V] [AddCommGroup W] [Module Bool W] {g : V โ†’ W} (hg : IsAffine g) (hinj : Function.Injective g) :

    The linear part of an injective map that is affine over ๐”ฝโ‚‚ is injective.

    def Cslib.BitString.IsAffine.toAffineMap {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module Bool V] [AddCommGroup W] [Module Bool W] {g : V โ†’ W} (hg : IsAffine g) :

    A map that is affine over ๐”ฝโ‚‚ (IsAffine) as a Mathlib affine map over Bool, with linear part x โ†ฆ g x + g 0.

    Instances For
      @[simp]
      theorem Cslib.BitString.IsAffine.coe_toAffineMap {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module Bool V] [AddCommGroup W] [Module Bool W] {g : V โ†’ W} (hg : IsAffine g) :
      โ‡‘hg.toAffineMap = g

      As a function, the Mathlib affine map of g is g itself.

      theorem Cslib.BitString.isAffine_iff_exists_affineMap {V : Type u_1} {W : Type u_2} [AddCommGroup V] [Module Bool V] [AddCommGroup W] [Module Bool W] {g : V โ†’ W} :
      IsAffine g โ†” โˆƒ (f : V โ†’แตƒ[Bool] W), โ‡‘f = g

      A map between ๐”ฝโ‚‚-vector spaces is affine (IsAffine) if and only if it is a Mathlib affine map over Bool.

      The image of an injective map from V that is affine over ๐”ฝโ‚‚ is an affine subspace whose direction has the dimension of V.