Documentation

Mathlib.Algebra.WithConv

Type synonym for linear map convolutive ring and intrinsic star #

This files provides the type synonym WithConv which we will use in later files to put the convolutive product on linear maps instance and the intrinsic star instance. This is to ensure that we only have one multiplication, one unit, and one star.

This is given for any type A so that we can have WithConv (A →ₗ[R] B), WithConv (A →L[R] B), WithConv (Matrix m n R), etc.

structure WithConv (A : Sort u_1) :
Sort (max 1 u_1)

A type synonym for the convolutive product of linear maps and intrinsic star.

The instances for the convolutive product and intrinsic star are only available with this type.

Use WithConv.linearEquiv to coerce into this type.

  • toConv :: (
    • ofConv : A

      Converts an element of WithConv A back to A.

  • )
Instances For

    This prevents toConv x being printed as { ofConv := x } by delabStructureInstance.

    Equations
    Instances For
      theorem WithConv.ofConv_toConv {A : Type u_2} (x : A) :
      @[simp]
      theorem WithConv.toConv_ofConv {A : Type u_2} (x : WithConv A) :
      instance WithConv.instCoeFunForall {A : Type u_2} {B : Type u_3} {C : Type u_4} [CoeFun A fun (x : A) => BC] :
      CoeFun (WithConv A) fun (x : WithConv A) => BC
      Equations
      theorem WithConv.ext {A : Type u_2} {x y : WithConv A} (h : x.ofConv = y.ofConv) :
      x = y
      theorem WithConv.ext_iff {A : Type u_2} {x y : WithConv A} :
      x = y x.ofConv = y.ofConv
      def WithConv.equiv (A : Type u_2) :

      WithConv.ofConv and WithConv.toConv as an equivalence.

      Equations
      Instances For
        @[simp]
        theorem WithConv.equiv_apply {A : Type u_2} (x : WithConv A) :
        @[simp]
        theorem WithConv.symm_equiv_apply {A : Type u_2} (x : A) :
        instance WithConv.instMulAction {R : Type u_1} {A : Type u_2} [Monoid R] [MulAction R A] :
        Equations
        instance WithConv.instAddAction {R : Type u_1} {A : Type u_2} [AddMonoid R] [AddAction R A] :
        Equations
        Equations
        instance WithConv.instModule {R : Type u_1} {A : Type u_2} [Semiring R] [AddCommMonoid A] [Module R A] :
        Equations
        @[simp]
        theorem WithConv.toConv_sub {A : Type u_2} [AddGroup A] (x y : A) :
        toConv (x - y) = toConv x - toConv y
        @[simp]
        theorem WithConv.ofConv_sub {A : Type u_2} [AddGroup A] (x y : WithConv A) :
        (x - y).ofConv = x.ofConv - y.ofConv
        @[simp]
        theorem WithConv.ofConv_neg {A : Type u_2} [AddGroup A] (x : WithConv A) :
        @[simp]
        theorem WithConv.toConv_neg {A : Type u_2} [AddGroup A] (x : A) :
        @[simp]
        theorem WithConv.ofConv_smul {R : Type u_1} {A : Type u_2} [Monoid R] [MulAction R A] (c : R) (x : WithConv A) :
        (c x).ofConv = c x.ofConv
        @[simp]
        theorem WithConv.toConv_smul {R : Type u_1} {A : Type u_2} [Monoid R] [MulAction R A] (c : R) (x : A) :
        toConv (c x) = c toConv x
        @[simp]
        theorem WithConv.ofConv_zero {A : Type u_2} [AddMonoid A] :
        ofConv 0 = 0
        @[simp]
        theorem WithConv.toConv_zero {A : Type u_2} [AddMonoid A] :
        toConv 0 = 0
        @[simp]
        theorem WithConv.ofConv_add {A : Type u_2} [AddMonoid A] (x y : WithConv A) :
        (x + y).ofConv = x.ofConv + y.ofConv
        @[simp]
        theorem WithConv.toConv_add {A : Type u_2} [AddMonoid A] (x y : A) :
        toConv (x + y) = toConv x + toConv y
        @[simp]
        theorem WithConv.ofConv_eq_zero {A : Type u_2} [AddMonoid A] {x : WithConv A} :
        x.ofConv = 0 x = 0
        @[simp]
        theorem WithConv.toConv_eq_zero {A : Type u_2} [AddMonoid A] {x : A} :
        toConv x = 0 x = 0

        The additive equivalence between WithConv A and A.

        Equations
        Instances For
          @[simp]
          theorem WithConv.addEquiv_apply (A : Type u_2) [AddMonoid A] (self : WithConv A) :
          (WithConv.addEquiv A) self = self.ofConv
          @[simp]
          theorem WithConv.addEquiv_symm_apply_ofConv (A : Type u_2) [AddMonoid A] (ofConv : A) :
          ((WithConv.addEquiv A).symm ofConv).ofConv = ofConv
          def WithConv.linearEquiv (R : Type u_1) (A : Type u_2) [AddCommMonoid A] [Semiring R] [Module R A] :

          The linear equivalence between WithConv A and A.

          Equations
          Instances For
            @[simp]
            theorem WithConv.linearEquiv_apply {R : Type u_1} {A : Type u_2} [AddCommMonoid A] [Semiring R] [Module R A] (a : WithConv A) :
            @[simp]
            theorem WithConv.symm_linearEquiv_apply {R : Type u_1} {A : Type u_2} [AddCommMonoid A] [Semiring R] [Module R A] (a : A) :
            @[simp]
            theorem WithConv.ofConv_sum {A : Type u_2} [AddCommMonoid A] {ι : Type u_5} (s : Finset ι) (f : ιWithConv A) :
            (∑ is, f i).ofConv = is, (f i).ofConv
            @[simp]
            theorem WithConv.toConv_sum {A : Type u_2} [AddCommMonoid A] {ι : Type u_5} (s : Finset ι) (f : ιA) :
            toConv (∑ is, f i) = is, toConv (f i)
            @[simp]
            @[simp]