Documentation

Mathlib.Algebra.Module.Congruence.Defs

Congruence relations respecting scalar multiplication #

structure VAddCon (S : Type u_2) (M : Type u_3) [VAdd S M] extends Setoid M :
Type u_3

A congruence relation that preserves additive action.

Instances For
    structure SMulCon (S : Type u_2) (M : Type u_3) [SMul S M] extends Setoid M :
    Type u_3

    A congruence relation that preserves scalar multiplication.

    • r : M โ†’ M โ†’ Prop
    • iseqv : Equivalence โ‡‘self.toSetoid
    • smul (s : S) {x y : M} : self.toSetoid x y โ†’ self.toSetoid (s โ€ข x) (s โ€ข y)

      A SMulCon is closed under scalar multiplication.

    Instances For
      structure ModuleCon (S : Type u_2) (M : Type u_3) [Add M] [SMul S M] extends AddCon M, SMulCon S M :
      Type u_3

      A congruence relation that preserves addition and scalar multiplication. The quotient by a ModuleCon inherits DistribSMul, DistribMulAction, and Module instances.

      Instances For
        def SMulCon.Quotient {S : Type u_2} (M : Type u_3) [SMul S M] (c : SMulCon S M) :
        Type u_3

        The quotient by a congruence relation preserving scalar multiplication.

        Instances For
          def VAddCon.Quotient {S : Type u_2} (M : Type u_3) [VAdd S M] (c : VAddCon S M) :
          Type u_3

          The quotient by a congruence relation preserving additive action.

          Instances For
            @[implicit_reducible]
            instance SMulCon.instSMulQuotient {S : Type u_2} (M : Type u_3) [SMul S M] (c : SMulCon S M) :
            SMul S (SMulCon.Quotient M c)
            @[implicit_reducible]
            instance VAddCon.instVAddQuotient {S : Type u_2} (M : Type u_3) [VAdd S M] (c : VAddCon S M) :
            @[implicit_reducible]
            instance SMulCon.instZeroQuotient {S : Type u_2} (M : Type u_3) [SMul S M] [Zero M] (c : SMulCon S M) :
            Zero (SMulCon.Quotient M c)
            @[implicit_reducible]
            instance SMulCon.instSMulZeroClassQuotient {S : Type u_2} (M : Type u_3) [Zero M] [SMulZeroClass S M] (c : SMulCon S M) :
            @[implicit_reducible]
            instance SMulCon.instSMulWithZeroQuotient {S : Type u_2} (M : Type u_3) [Zero S] [Zero M] [SMulWithZero S M] (c : SMulCon S M) :
            @[implicit_reducible]
            instance SMulCon.instMulActionQuotient {S : Type u_2} (M : Type u_3) [Monoid S] [MulAction S M] (c : SMulCon S M) :
            @[implicit_reducible]
            instance VAddCon.instAddActionQuotient {S : Type u_2} (M : Type u_3) [AddMonoid S] [AddAction S M] (c : VAddCon S M) :
            def SMulCon.addConGen' {S : Type u_2} {M : Type u_3} [AddZeroClass M] [DistribSMul S M] (r : M โ†’ M โ†’ Prop) (hr : โˆ€ (s : S) {m m' : M}, r m m' โ†’ r (s โ€ข m) (s โ€ข m')) :

            The AddCon generated by a relation respecting scalar multiplication is a ModuleCon.

            Instances For
              @[reducible, inline]
              abbrev SMulCon.addConGen {S : Type u_2} {M : Type u_3} [AddZeroClass M] [DistribSMul S M] (c : SMulCon S M) :

              The AddCon generated by a SMulCon is a ModuleCon.

              Instances For
                def ModuleCon.Quotient {S : Type u_2} (M : Type u_3) [Add M] [SMul S M] (c : ModuleCon S M) :
                Type u_3

                The quotient by a congruence relation preserving addition and scalar multiplication.

                Instances For
                  @[implicit_reducible]
                  instance ModuleCon.instSMulQuotient {S : Type u_2} (M : Type u_3) [SMul S M] [Add M] (c : ModuleCon S M) :
                  SMul S (ModuleCon.Quotient M c)
                  @[implicit_reducible]
                  instance ModuleCon.instZeroQuotient {S : Type u_2} (M : Type u_3) [SMul S M] [Zero M] [Add M] (c : ModuleCon S M) :
                  @[implicit_reducible]
                  instance ModuleCon.instAddQuotient {S : Type u_2} (M : Type u_3) [SMul S M] [Add M] (c : ModuleCon S M) :
                  @[implicit_reducible]
                  instance ModuleCon.instAddZeroClassQuotient {S : Type u_2} (M : Type u_3) [SMul S M] [AddZeroClass M] (c : ModuleCon S M) :
                  @[implicit_reducible]
                  instance ModuleCon.instAddCommMagmaQuotient {S : Type u_2} (M : Type u_3) [SMul S M] [AddCommMagma M] (c : ModuleCon S M) :
                  @[implicit_reducible]
                  instance ModuleCon.instAddSemigroupQuotient {S : Type u_2} (M : Type u_3) [SMul S M] [AddSemigroup M] (c : ModuleCon S M) :
                  @[implicit_reducible]
                  @[implicit_reducible]
                  instance ModuleCon.instAddMonoidQuotient {S : Type u_2} (M : Type u_3) [SMul S M] [AddMonoid M] (c : ModuleCon S M) :
                  @[implicit_reducible]
                  instance ModuleCon.instAddCommMonoidQuotient {S : Type u_2} (M : Type u_3) [SMul S M] [AddCommMonoid M] (c : ModuleCon S M) :
                  @[implicit_reducible]
                  instance ModuleCon.instAddGroupQuotient {S : Type u_2} (M : Type u_3) [SMul S M] [AddGroup M] (c : ModuleCon S M) :
                  @[implicit_reducible]
                  instance ModuleCon.instAddCommGroupQuotient {S : Type u_2} (M : Type u_3) [SMul S M] [AddCommGroup M] (c : ModuleCon S M) :
                  @[implicit_reducible]
                  instance ModuleCon.instSMulZeroClassQuotient {S : Type u_2} (M : Type u_3) [Zero M] [Add M] [SMulZeroClass S M] (c : ModuleCon S M) :
                  @[implicit_reducible]
                  instance ModuleCon.instSMulWithZeroQuotient {S : Type u_2} (M : Type u_3) [Zero S] [Zero M] [Add M] [SMulWithZero S M] (c : ModuleCon S M) :
                  @[implicit_reducible]
                  instance ModuleCon.instMulActionQuotient {S : Type u_2} (M : Type u_3) [Monoid S] [Add M] [MulAction S M] (c : ModuleCon S M) :
                  @[implicit_reducible]
                  @[implicit_reducible]
                  instance ModuleCon.instModuleQuotient {S : Type u_2} (M : Type u_3) [Semiring S] [AddCommMonoid M] [Module S M] (c : ModuleCon S M) :
                  def SMulCon.ker {R : Type u_1} {S : Type u_2} {M : Type u_3} {N : Type u_4} [SMul R M] [SMul S N] {ฯ† : R โ†’ S} (f : M โ†’โ‚‘[ฯ†] N) :

                  The kernel of a MulActionHom as a congruence relation.

                  Instances For
                    def VAddCon.ker {R : Type u_1} {S : Type u_2} {M : Type u_3} {N : Type u_4} [VAdd R M] [VAdd S N] {ฯ† : R โ†’ S} (f : M โ†’โ‚‘[ฯ†] N) :

                    The kernel of an AddActionHom as a congruence relation.

                    Instances For
                      def ModuleCon.ker {R : Type u_1} {S : Type u_2} {M : Type u_3} {N : Type u_4} [Monoid R] [Monoid S] [AddMonoid M] [AddMonoid N] [DistribMulAction R M] [DistribMulAction S N] {ฯ† : R โ†’* S} (f : M โ†’โ‚‘+[ฯ†] N) :

                      The kernel of a DistribMulActionHom as a congruence relation.

                      Instances For
                        noncomputable def ModuleCon.quotientKerEquivOfSurjective {S : Type u_2} {M : Type u_3} {N : Type u_4} [Semiring S] [AddCommMonoid M] [AddCommMonoid N] [Module S M] [Module S N] (f : M โ†’โ‚—[S] N) (hf : Function.Surjective โ‡‘f) :

                        The first isomorphism theorem for semimodules in the case of a surjective homomorphism.

                        Instances For