Documentation

ToMathlib.PFunctor.Basic

Polynomial Functors, Lens, and Charts #

This file defines polynomial functors, lenses, and charts. The goal is to provide basic definitions, with their properties and categories defined in later files.

Lift a polynomial functor to a larger universe.

Equations
Instances For

    The zero polynomial functor

    Equations
    Instances For

      The unit polynomial functor

      Equations
      Instances For

        The variable y polynomial functor. This is the unit for composition.

        Equations
        Instances For

          The monomial functor P(y) = A y^B

          Equations
          • A y^B = { A := A, B := fun (x : A) => B }
          Instances For

            The monomial functor P(y) = A y^B

            Equations
            Instances For

              The constant functor P(y) = A

              Equations
              Instances For

                The linear functor P(y) = A y

                Equations
                Instances For

                  The self monomial functor P(y) = S y^S

                  Equations
                  Instances For

                    The pure power functor P(y) = y^B

                    Equations
                    Instances For

                      A polynomial functor is representable if it is equivalent to y^A for some type A.

                      Equations
                      Instances For

                        Coprod (sum) of polynomial functors P + Q

                        Equations
                        Instances For

                          Alias of PFunctor.zero.


                          The zero polynomial functor

                          Equations
                          Instances For

                            Generalized coproduct (sigma type) of an indexed family of polynomial functors

                            Equations
                            Instances For

                              Product of polynomial functors P * Q

                              Equations
                              Instances For

                                Alias of PFunctor.one.


                                The unit polynomial functor

                                Equations
                                Instances For

                                  Generalized product (pi type) of an indexed family of polynomial functors

                                  Equations
                                  • PFunctor.pi F = { A := (i : I) → (F i).A, B := fun (f : (i : I) → (F i).A) => (i : I) × (F i).B (f i) }
                                  Instances For

                                    The unit for composition Y

                                    Equations
                                    Instances For

                                      Repeated composition P ◂ P ◂ ... ◂ P (n times).

                                      Equations
                                      Instances For

                                        Exponential of polynomial functors P ^ Q

                                        Equations
                                        Instances For

                                          Tensor or parallel product of polynomial functors

                                          Equations
                                          Instances For

                                            Infix notation for tensor product P ⊗ₚ Q

                                            Equations
                                            Instances For

                                              The unit for the tensor product Y

                                              Equations
                                              Instances For

                                                A polynomial functor is finitely branching if each of its branches is a finite type.

                                                Instances
                                                  Equations
                                                  structure PFunctor.Lens (P Q : PFunctor.{u}) :

                                                  A lens between two polynomial functors P and Q is a pair of a function:

                                                  • mapPos : P.A → Q.A
                                                  • mapDir : ∀ a, Q.B (mapPos a) → P.B a
                                                  • mapPos : P.AQ.A
                                                  • mapDir (a : P.A) : Q.B (self.mapPos a)P.B a
                                                  Instances For

                                                    Infix notation for constructing a lens mapPosmapDir

                                                    Equations
                                                    Instances For

                                                      The identity lens

                                                      Equations
                                                      Instances For
                                                        def PFunctor.Lens.comp {P Q R : PFunctor.{u}} (l : Q.Lens R) (l' : P.Lens Q) :
                                                        P.Lens R

                                                        Composition of lenses

                                                        Equations
                                                        Instances For

                                                          Composition of lenses

                                                          Equations
                                                          Instances For
                                                            @[simp]
                                                            theorem PFunctor.Lens.id_comp {P Q : PFunctor.{u}} (f : P.Lens Q) :
                                                            @[simp]
                                                            theorem PFunctor.Lens.comp_id {P Q : PFunctor.{u}} (f : P.Lens Q) :
                                                            theorem PFunctor.Lens.comp_assoc {P Q R S : PFunctor.{u}} (l : R.Lens S) (l' : Q.Lens R) (l'' : P.Lens Q) :
                                                            l ∘ₗ l' ∘ₗ l'' = l ∘ₗ (l' ∘ₗ l'')

                                                            An equivalence between two polynomial functors P and Q, using lenses. This corresponds to an isomorphism in the category PFunctor with Lens morphisms.

                                                            Instances For
                                                              theorem PFunctor.Lens.Equiv.ext {P Q : PFunctor.{u}} {x y : P ≃ₗ Q} (toLens : x.toLens = y.toLens) (invLens : x.invLens = y.invLens) :
                                                              x = y

                                                              An equivalence between two polynomial functors P and Q, using lenses. This corresponds to an isomorphism in the category PFunctor with Lens morphisms.

                                                              Equations
                                                              Instances For
                                                                Equations
                                                                Instances For
                                                                  Equations
                                                                  Instances For
                                                                    def PFunctor.Lens.Equiv.trans {P Q R : PFunctor.{u}} (e₁ : P ≃ₗ Q) (e₂ : Q ≃ₗ R) :
                                                                    P ≃ₗ R
                                                                    Equations
                                                                    Instances For

                                                                      The (unique) initial lens from the zero functor to any functor P.

                                                                      Equations
                                                                      Instances For

                                                                        The (unique) terminal lens from any functor P to the unit functor 1.

                                                                        Equations
                                                                        Instances For

                                                                          Alias of PFunctor.Lens.initial.


                                                                          The (unique) initial lens from the zero functor to any functor P.

                                                                          Equations
                                                                          Instances For

                                                                            Alias of PFunctor.Lens.terminal.


                                                                            The (unique) terminal lens from any functor P to the unit functor 1.

                                                                            Equations
                                                                            Instances For
                                                                              def PFunctor.Lens.inl {P Q : PFunctor.{u}} :
                                                                              P.Lens (P + Q)

                                                                              Left injection lens inl : P → P + Q

                                                                              Equations
                                                                              Instances For
                                                                                def PFunctor.Lens.inr {P Q : PFunctor.{u}} :
                                                                                Q.Lens (P + Q)

                                                                                Right injection lens inr : Q → P + Q

                                                                                Equations
                                                                                Instances For
                                                                                  def PFunctor.Lens.coprodPair {P Q R : PFunctor.{u}} (l₁ : P.Lens R) (l₂ : Q.Lens R) :
                                                                                  (P + Q).Lens R

                                                                                  Copairing of lenses [l₁, l₂]ₗ : P + Q → R

                                                                                  Equations
                                                                                  • One or more equations did not get rendered due to their size.
                                                                                  Instances For
                                                                                    def PFunctor.Lens.coprodMap {P Q R W : PFunctor.{u}} (l₁ : P.Lens R) (l₂ : Q.Lens W) :
                                                                                    (P + Q).Lens (R + W)

                                                                                    Parallel application of lenses for coproduct l₁ ⊎ l₂ : P + Q → R + W

                                                                                    Equations
                                                                                    • One or more equations did not get rendered due to their size.
                                                                                    Instances For
                                                                                      def PFunctor.Lens.fst {P Q : PFunctor.{u}} :
                                                                                      (P * Q).Lens P

                                                                                      Projection lens fst : P * Q → P

                                                                                      Equations
                                                                                      Instances For
                                                                                        def PFunctor.Lens.snd {P Q : PFunctor.{u}} :
                                                                                        (P * Q).Lens Q

                                                                                        Projection lens snd : P * Q → Q

                                                                                        Equations
                                                                                        Instances For
                                                                                          def PFunctor.Lens.prodPair {P Q R : PFunctor.{u}} (l₁ : P.Lens Q) (l₂ : P.Lens R) :
                                                                                          P.Lens (Q * R)

                                                                                          Pairing of lenses ⟨l₁, l₂⟩ₗ : P → Q * R

                                                                                          Equations
                                                                                          Instances For
                                                                                            def PFunctor.Lens.prodMap {P Q R W : PFunctor.{u}} (l₁ : P.Lens R) (l₂ : Q.Lens W) :
                                                                                            (P * Q).Lens (R * W)

                                                                                            Parallel application of lenses for product l₁ ×ₗ l₂ : P * Q → R * W

                                                                                            Equations
                                                                                            Instances For
                                                                                              def PFunctor.Lens.compMap {P Q R W : PFunctor.{u}} (l₁ : P.Lens R) (l₂ : Q.Lens W) :
                                                                                              (P Q).Lens (R W)

                                                                                              Apply lenses to both sides of a composition: l₁ ◂ₗ l₂ : (P ◂ Q ⇆ R ◂ W)

                                                                                              Equations
                                                                                              • One or more equations did not get rendered due to their size.
                                                                                              Instances For
                                                                                                def PFunctor.Lens.tensorMap {P Q R W : PFunctor.{u}} (l₁ : P.Lens R) (l₂ : Q.Lens W) :
                                                                                                (P ⊗ₚ Q).Lens (R ⊗ₚ W)

                                                                                                Apply lenses to both sides of a tensor / parallel product: l₁ ⊗ₗ l₂ : (P ⊗ₚ Q ⇆ R ⊗ₚ W)

                                                                                                Equations
                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                Instances For

                                                                                                  Lens to introduce y on the right: P → P ◂ y

                                                                                                  Equations
                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                  Instances For

                                                                                                    Lens to introduce y on the left: P → y ◂ P

                                                                                                    Equations
                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                    Instances For

                                                                                                      Lens from P ◂ y to P

                                                                                                      Equations
                                                                                                      Instances For

                                                                                                        Lens from y ◂ P to P

                                                                                                        Equations
                                                                                                        • One or more equations did not get rendered due to their size.
                                                                                                        Instances For

                                                                                                          Apply lenses to both sides of a composition: l₁ ◂ₗ l₂ : (P ◂ Q ⇆ R ◂ W)

                                                                                                          Equations
                                                                                                          Instances For

                                                                                                            Parallel application of lenses for product l₁ ×ₗ l₂ : P * Q → R * W

                                                                                                            Equations
                                                                                                            Instances For

                                                                                                              Parallel application of lenses for coproduct l₁ ⊎ l₂ : P + Q → R + W

                                                                                                              Equations
                                                                                                              Instances For

                                                                                                                Apply lenses to both sides of a tensor / parallel product: l₁ ⊗ₗ l₂ : (P ⊗ₚ Q ⇆ R ⊗ₚ W)

                                                                                                                Equations
                                                                                                                Instances For
                                                                                                                  Equations
                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                  Instances For
                                                                                                                    Equations
                                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                                    Instances For

                                                                                                                      The type of lenses from a polynomial functor P to y

                                                                                                                      Equations
                                                                                                                      Instances For

                                                                                                                        Helper lens for speedup

                                                                                                                        Equations
                                                                                                                        • One or more equations did not get rendered due to their size.
                                                                                                                        Instances For
                                                                                                                          def PFunctor.Lens.speedup {S : Type u} {P : PFunctor.{u}} (l : (selfMonomial S).Lens P) :

                                                                                                                          The speedup lens operation: Lens (S y^S) P → Lens (S y^S) (P ◂ P)

                                                                                                                          Equations
                                                                                                                          Instances For
                                                                                                                            structure PFunctor.Chart (P Q : PFunctor.{u}) :

                                                                                                                            A chart between two polynomial functors P and Q is a pair of a function:

                                                                                                                            • mapPos : P.A → Q.A
                                                                                                                            • mapDir : ∀ a, P.B a → Q.B (mapPos a)
                                                                                                                            • mapPos : P.AQ.A
                                                                                                                            • mapDir (a : P.A) : P.B aQ.B (self.mapPos a)
                                                                                                                            Instances For

                                                                                                                              Infix notation for constructing a chart mapPosmapDir

                                                                                                                              Equations
                                                                                                                              Instances For

                                                                                                                                The identity chart

                                                                                                                                Equations
                                                                                                                                Instances For
                                                                                                                                  def PFunctor.Chart.comp {P Q R : PFunctor.{u}} (c' : Q.Chart R) (c : P.Chart Q) :
                                                                                                                                  P.Chart R

                                                                                                                                  Composition of charts

                                                                                                                                  Equations
                                                                                                                                  Instances For

                                                                                                                                    Infix notation for chart composition c' ∘c c

                                                                                                                                    Equations
                                                                                                                                    Instances For
                                                                                                                                      @[simp]
                                                                                                                                      theorem PFunctor.Chart.id_comp {P Q : PFunctor.{u}} (f : P.Chart Q) :
                                                                                                                                      @[simp]
                                                                                                                                      theorem PFunctor.Chart.comp_id {P Q : PFunctor.{u}} (f : P.Chart Q) :
                                                                                                                                      theorem PFunctor.Chart.comp_assoc {P Q R S : PFunctor.{u}} (c : R.Chart S) (c' : Q.Chart R) (c'' : P.Chart Q) :
                                                                                                                                      c ∘c c' ∘c c'' = c ∘c (c' ∘c c'')

                                                                                                                                      An equivalence between two polynomial functors P and Q, using charts. This corresponds to an isomorphism in the category PFunctor with Chart morphisms.

                                                                                                                                      Instances For
                                                                                                                                        theorem PFunctor.Chart.Equiv.ext {P Q : PFunctor.{u}} {x y : P ≃c Q} (toChart : x.toChart = y.toChart) (invChart : x.invChart = y.invChart) :
                                                                                                                                        x = y

                                                                                                                                        Infix notation for chart equivalence P ≃c Q

                                                                                                                                        Equations
                                                                                                                                        Instances For
                                                                                                                                          Equations
                                                                                                                                          Instances For
                                                                                                                                            def PFunctor.Chart.Equiv.symm {P Q : PFunctor.{u}} (e : P ≃c Q) :
                                                                                                                                            Q ≃c P
                                                                                                                                            Equations
                                                                                                                                            Instances For
                                                                                                                                              def PFunctor.Chart.Equiv.trans {P Q R : PFunctor.{u}} (e₁ : P ≃c Q) (e₂ : Q ≃c R) :
                                                                                                                                              P ≃c R
                                                                                                                                              Equations
                                                                                                                                              Instances For

                                                                                                                                                The (unique) initial chart from the zero functor to any functor P.

                                                                                                                                                Equations
                                                                                                                                                Instances For

                                                                                                                                                  The (unique) terminal chart from any functor P to the functor Y.

                                                                                                                                                  Equations
                                                                                                                                                  Instances For

                                                                                                                                                    Alias of PFunctor.Chart.initial.


                                                                                                                                                    The (unique) initial chart from the zero functor to any functor P.

                                                                                                                                                    Equations
                                                                                                                                                    Instances For

                                                                                                                                                      Alias of PFunctor.Chart.terminal.


                                                                                                                                                      The (unique) terminal chart from any functor P to the functor Y.

                                                                                                                                                      Equations
                                                                                                                                                      Instances For
                                                                                                                                                        theorem PFunctor.ext {P Q : PFunctor.{u}} (h : P.A = Q.A) (h' : ∀ (a : P.A), P.B a = Q.B (h a)) :
                                                                                                                                                        P = Q
                                                                                                                                                        theorem PFunctor.Lens.ext {P Q : PFunctor.{u}} (l₁ l₂ : P.Lens Q) (h₁ : ∀ (a : P.A), l₁.mapPos a = l₂.mapPos a) (h₂ : ∀ (a : P.A), l₁.mapDir a = Eq.rec (motive := fun (x : Q.A) (h : l₂.mapPos a = x) => Q.B xP.B a) (l₂.mapDir a) ) :
                                                                                                                                                        l₁ = l₂
                                                                                                                                                        theorem PFunctor.Chart.ext {P Q : PFunctor.{u}} (c₁ c₂ : P.Chart Q) (h₁ : ∀ (a : P.A), c₁.mapPos a = c₂.mapPos a) (h₂ : ∀ (a : P.A), c₁.mapDir a = Eq.rec (motive := fun (x : Q.A) (h : c₂.mapPos a = x) => P.B aQ.B x) (c₂.mapDir a) ) :
                                                                                                                                                        c₁ = c₂
                                                                                                                                                        @[simp]
                                                                                                                                                        @[simp]
                                                                                                                                                        theorem PFunctor.y_B (a : y.A) :
                                                                                                                                                        @[simp]
                                                                                                                                                        theorem PFunctor.C_A (A : Type u) :
                                                                                                                                                        (C A).A = A
                                                                                                                                                        @[simp]
                                                                                                                                                        theorem PFunctor.C_B (A : Type u) (a : (C A).A) :
                                                                                                                                                        @[simp]
                                                                                                                                                        theorem PFunctor.linear_A (A : Type u) :
                                                                                                                                                        (linear A).A = A
                                                                                                                                                        @[simp]
                                                                                                                                                        theorem PFunctor.linear_B (A : Type u) (a : (linear A).A) :
                                                                                                                                                        @[simp]
                                                                                                                                                        theorem PFunctor.purePower_B (B : Type u) (a : (purePower B).A) :
                                                                                                                                                        (purePower B).B a = B
                                                                                                                                                        @[simp]
                                                                                                                                                        theorem PFunctor.ulift_B {P : PFunctor.{u}} {a : P.A} :
                                                                                                                                                        P.ulift.B { down := a } = ULift.{u_1, u} (P.B a)
                                                                                                                                                        Equations
                                                                                                                                                        • One or more equations did not get rendered due to their size.
                                                                                                                                                        Instances For
                                                                                                                                                          @[simp]
                                                                                                                                                          theorem PFunctor.Lens.coprodMap_comp_inl {P Q R W : PFunctor.{u}} (l₁ : P.Lens R) (l₂ : Q.Lens W) :
                                                                                                                                                          l₁ ⊎ₗ l₂ ∘ₗ inl = inl ∘ₗ l₁
                                                                                                                                                          @[simp]
                                                                                                                                                          theorem PFunctor.Lens.coprodMap_comp_inr {P Q R W : PFunctor.{u}} (l₁ : P.Lens R) (l₂ : Q.Lens W) :
                                                                                                                                                          l₁ ⊎ₗ l₂ ∘ₗ inr = inr ∘ₗ l₂
                                                                                                                                                          theorem PFunctor.Lens.coprodPair_comp_coprodMap {P Q R W X : PFunctor.{u}} (l₁ : P.Lens R) (l₂ : Q.Lens W) (f : R.Lens X) (g : W.Lens X) :
                                                                                                                                                          [f,g]ₗ ∘ₗ (l₁ ⊎ₗ l₂) = [f ∘ₗ l₁,g ∘ₗ l₂]ₗ
                                                                                                                                                          @[simp]
                                                                                                                                                          theorem PFunctor.Lens.coprodPair_comp_inl {P Q R : PFunctor.{u}} (f : P.Lens R) (g : Q.Lens R) :
                                                                                                                                                          @[simp]
                                                                                                                                                          theorem PFunctor.Lens.coprodPair_comp_inr {P Q R : PFunctor.{u}} (f : P.Lens R) (g : Q.Lens R) :

                                                                                                                                                          Commutativity of coproduct

                                                                                                                                                          Equations
                                                                                                                                                          Instances For

                                                                                                                                                            Associativity of coproduct

                                                                                                                                                            Equations
                                                                                                                                                            • One or more equations did not get rendered due to their size.
                                                                                                                                                            Instances For

                                                                                                                                                              Coproduct with 0 is identity (right)

                                                                                                                                                              Equations
                                                                                                                                                              Instances For

                                                                                                                                                                Coproduct with 0 is identity (left)

                                                                                                                                                                Equations
                                                                                                                                                                Instances For
                                                                                                                                                                  @[simp]
                                                                                                                                                                  theorem PFunctor.Lens.fst_comp_prodMap {P Q R W : PFunctor.{u}} (l₁ : P.Lens R) (l₂ : Q.Lens W) :
                                                                                                                                                                  fst ∘ₗ (l₁ ×ₗ l₂) = l₁ ∘ₗ fst
                                                                                                                                                                  @[simp]
                                                                                                                                                                  theorem PFunctor.Lens.snd_comp_prodMap {P Q R W : PFunctor.{u}} (l₁ : P.Lens R) (l₂ : Q.Lens W) :
                                                                                                                                                                  snd ∘ₗ (l₁ ×ₗ l₂) = l₂ ∘ₗ snd
                                                                                                                                                                  theorem PFunctor.Lens.prodMap_comp_prodPair {P Q R W X : PFunctor.{u}} (l₁ : Q.Lens W) (l₂ : R.Lens X) (f : P.Lens Q) (g : P.Lens R) :
                                                                                                                                                                  l₁ ×ₗ l₂ ∘ₗ f,g⟩ₗ = l₁ ∘ₗ f,l₂ ∘ₗ g⟩ₗ
                                                                                                                                                                  @[simp]
                                                                                                                                                                  theorem PFunctor.Lens.fst_comp_prodPair {P Q R : PFunctor.{u}} (f : P.Lens Q) (g : P.Lens R) :
                                                                                                                                                                  @[simp]
                                                                                                                                                                  theorem PFunctor.Lens.snd_comp_prodPair {P Q R : PFunctor.{u}} (f : P.Lens Q) (g : P.Lens R) :

                                                                                                                                                                  Commutativity of product

                                                                                                                                                                  Equations
                                                                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                                                                  Instances For
                                                                                                                                                                    def PFunctor.Lens.Equiv.prodAssoc {P Q R : PFunctor.{u}} :
                                                                                                                                                                    P * Q * R ≃ₗ P * (Q * R)

                                                                                                                                                                    Associativity of product

                                                                                                                                                                    Equations
                                                                                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                                                                                    Instances For

                                                                                                                                                                      Product with 1 is identity (right)

                                                                                                                                                                      Equations
                                                                                                                                                                      • One or more equations did not get rendered due to their size.
                                                                                                                                                                      Instances For

                                                                                                                                                                        Product with 1 is identity (left)

                                                                                                                                                                        Equations
                                                                                                                                                                        • One or more equations did not get rendered due to their size.
                                                                                                                                                                        Instances For

                                                                                                                                                                          Product with 0 is zero (right)

                                                                                                                                                                          Equations
                                                                                                                                                                          • One or more equations did not get rendered due to their size.
                                                                                                                                                                          Instances For

                                                                                                                                                                            Product with 0 is zero (left)

                                                                                                                                                                            Equations
                                                                                                                                                                            • One or more equations did not get rendered due to their size.
                                                                                                                                                                            Instances For

                                                                                                                                                                              Left distributive law for product over coproduct

                                                                                                                                                                              Equations
                                                                                                                                                                              • One or more equations did not get rendered due to their size.
                                                                                                                                                                              Instances For

                                                                                                                                                                                Right distributive law for coproduct over product

                                                                                                                                                                                Equations
                                                                                                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                                                                                                Instances For
                                                                                                                                                                                  theorem PFunctor.Lens.compMap_comp {P Q R P' Q' R' : PFunctor.{u}} (l₁ : P.Lens P') (l₂ : Q.Lens Q') (l₁' : P'.Lens R) (l₂' : Q'.Lens R') :
                                                                                                                                                                                  l₁' ∘ₗ l₁ ◂ₗ (l₂' ∘ₗ l₂) = l₁' ◂ₗ l₂' ∘ₗ (l₁ ◂ₗ l₂)

                                                                                                                                                                                  Associativity of composition

                                                                                                                                                                                  Equations
                                                                                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                                                                                  Instances For

                                                                                                                                                                                    Composition with y is identity (right)

                                                                                                                                                                                    Equations
                                                                                                                                                                                    Instances For

                                                                                                                                                                                      Composition with y is identity (left)

                                                                                                                                                                                      Equations
                                                                                                                                                                                      Instances For

                                                                                                                                                                                        Distributivity of composition over coproduct on the right

                                                                                                                                                                                        Equations
                                                                                                                                                                                        • One or more equations did not get rendered due to their size.
                                                                                                                                                                                        Instances For
                                                                                                                                                                                          theorem PFunctor.Lens.tensorMap_comp {P Q R P' Q' R' : PFunctor.{u}} (l₁ : P.Lens P') (l₂ : Q.Lens Q') (l₁' : P'.Lens R) (l₂' : Q'.Lens R') :
                                                                                                                                                                                          l₁' ∘ₗ l₁ ⊗ₗ (l₂' ∘ₗ l₂) = l₁' ⊗ₗ l₂' ∘ₗ (l₁ ⊗ₗ l₂)

                                                                                                                                                                                          Commutativity of tensor product

                                                                                                                                                                                          Equations
                                                                                                                                                                                          Instances For

                                                                                                                                                                                            Associativity of tensor product

                                                                                                                                                                                            Equations
                                                                                                                                                                                            • One or more equations did not get rendered due to their size.
                                                                                                                                                                                            Instances For

                                                                                                                                                                                              Tensor product with y is identity (right)

                                                                                                                                                                                              Equations
                                                                                                                                                                                              • One or more equations did not get rendered due to their size.
                                                                                                                                                                                              Instances For

                                                                                                                                                                                                Tensor product with y is identity (left)

                                                                                                                                                                                                Equations
                                                                                                                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                Instances For

                                                                                                                                                                                                  Tensor product with 0 is zero (left)

                                                                                                                                                                                                  Equations
                                                                                                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                  Instances For

                                                                                                                                                                                                    Tensor product with 0 is zero (right)

                                                                                                                                                                                                    Equations
                                                                                                                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                    Instances For

                                                                                                                                                                                                      Left distributivity of tensor product over coproduct

                                                                                                                                                                                                      Equations
                                                                                                                                                                                                      • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                      Instances For

                                                                                                                                                                                                        Right distributivity of tensor product over coproduct

                                                                                                                                                                                                        Equations
                                                                                                                                                                                                        • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                        Instances For
                                                                                                                                                                                                          instance PFunctor.Lens.instIsEmptyBSigma {I : Type v} [IsEmpty I] {F : IPFunctor.{u}} {a : (sigma F).A} :
                                                                                                                                                                                                          IsEmpty ((sigma F).B a)

                                                                                                                                                                                                          Sigma of an empty family is the zero functor.

                                                                                                                                                                                                          Equations
                                                                                                                                                                                                          • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                          Instances For

                                                                                                                                                                                                            Sigma of a PUnit-indexed family is equivalent to the functor itself.

                                                                                                                                                                                                            Equations
                                                                                                                                                                                                            • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                            Instances For

                                                                                                                                                                                                              Sigma of an I-indexed family, where I is unique, is equivalent to the functor itself.

                                                                                                                                                                                                              Equations
                                                                                                                                                                                                              • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                              Instances For
                                                                                                                                                                                                                def PFunctor.Lens.prodSigmaDistrib {P : PFunctor.{u}} {I : Type u} {F : IPFunctor.{u}} :
                                                                                                                                                                                                                P * sigma F ≃ₗ sigma fun (i : I) => P * F i

                                                                                                                                                                                                                Left distributivity of product over sigma.

                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                Instances For
                                                                                                                                                                                                                  def PFunctor.Lens.sigmaProdDistrib {P : PFunctor.{u}} {I : Type u} {F : IPFunctor.{u}} :
                                                                                                                                                                                                                  sigma F * P ≃ₗ sigma fun (i : I) => F i * P

                                                                                                                                                                                                                  Right distributivity of product over sigma.

                                                                                                                                                                                                                  Equations
                                                                                                                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                  Instances For
                                                                                                                                                                                                                    def PFunctor.Lens.tensorSigmaDistrib {P : PFunctor.{u}} {I : Type u} {F : IPFunctor.{u}} :
                                                                                                                                                                                                                    P ⊗ₚ sigma F ≃ₗ sigma fun (i : I) => P ⊗ₚ F i

                                                                                                                                                                                                                    Left distributivity of tensor product over sigma.

                                                                                                                                                                                                                    Equations
                                                                                                                                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                    Instances For
                                                                                                                                                                                                                      def PFunctor.Lens.sigmaTensorDistrib {P : PFunctor.{u}} {I : Type u} {F : IPFunctor.{u}} :
                                                                                                                                                                                                                      sigma F ⊗ₚ P ≃ₗ sigma fun (i : I) => F i ⊗ₚ P

                                                                                                                                                                                                                      Right distributivity of tensor product over sigma.

                                                                                                                                                                                                                      Equations
                                                                                                                                                                                                                      • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                      Instances For

                                                                                                                                                                                                                        Pi over a PUnit-indexed family is equivalent to the functor itself.

                                                                                                                                                                                                                        Equations
                                                                                                                                                                                                                        • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                        Instances For