More properties about lenses between polynomial functors #
Heterogeneous extensionality for lenses: equal position maps and heterogeneously equal direction maps identify two lenses. Useful when the direction families are equal only after rewriting along the position map.
The identity lens
Instances For
Composition of lenses
Instances For
Apply a polynomial lens to an element of the source polynomial's extension. The position is sent forward and the payload is pulled back along the lens's direction map.
Instances For
Two lenses are equal when they act equally on every source position
equipped with its identity direction labelling. This packages the dependent
position equality and direction-map transport needed by Lens.ext.
An equivalence between two polynomial functors P and Q, using lenses.
This corresponds to an isomorphism in the category PFunctor with Lens morphisms.
- toLens : P.Lens Q
The forward lens of the equivalence, from
PtoQ. - invLens : Q.Lens P
The backward lens of the equivalence, from
QtoP.
Instances For
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
The identity equivalence on P, built from the identity lens in both directions.
Instances For
The inverse equivalence, swapping the forward and backward lenses of e.
Instances For
The composite equivalence P ≃ₗ R obtained by chaining e₁ : P ≃ₗ Q and e₂ : Q ≃ₗ R.
Instances For
Cancel postcomposition with the forward lens of a lens equivalence.
The (unique) initial lens from the zero functor to any functor P.
Instances For
The (unique) terminal lens from any functor P to the unit functor 1.
Instances For
Alias of PFunctor.Lens.initial.
The (unique) initial lens from the zero functor to any functor P.
Instances For
Alias of PFunctor.Lens.terminal.
The (unique) terminal lens from any functor P to the unit functor 1.
Instances For
Construct a lens from the variable polynomial by selecting a position. The
backward map is uniquely determined by the unit direction of y.
Instances For
Alias of PFunctor.Lens.fromY.
Construct a lens from the variable polynomial by selecting a position. The
backward map is uniquely determined by the unit direction of y.
Instances For
Alias of PFunctor.Lens.fromY_toFunA.
Alias of PFunctor.Lens.fromY_toFunB.
Construct a lens into a constant polynomial from its position map. The backward map is uniquely determined by the empty direction type.
Instances For
Construct a lens into a linear polynomial from a position map and a choice of source direction over every position.
Instances For
Left injection lens inl : P → P + Q
Instances For
Right injection lens inr : Q → P + Q
Instances For
Copairing of lenses [l₁, l₂]ₗ : P + Q → R
Instances For
Parallel application of lenses for coproduct l₁ ⊎ l₂ : P + Q → R + W
Instances For
Dependent copairing of lenses over sigma: Σ i, F i → R.
Instances For
Pointwise mapping of lenses over sigma.
Instances For
Projection lens fst : P * Q → P
Instances For
Projection lens snd : P * Q → Q
Instances For
Pairing of lenses ⟨l₁, l₂⟩ₗ : P → Q * R
Instances For
Parallel application of lenses for product l₁ ×ₗ l₂ : P * Q → R * W
Instances For
Dependent pairing of lenses into a pi: P → ∀ i, F i.
Instances For
Pointwise mapping of lenses over pi.
Instances For
Apply lenses to both sides of a composition: l₁ ◃ₗ l₂ : (P ◃ Q ⇆ R ◃ W)
Instances For
Apply lenses to both sides of a tensor / parallel product: l₁ ⊗ₗ l₂ : (P ⊗ Q ⇆ R ⊗ W)
Instances For
Lens to introduce y on the right: P → P ◃ y
Instances For
Lens to introduce y on the left: P → y ◃ P
Instances For
Lens from P ◃ y to P
Instances For
Lens from y ◃ P to P
Instances For
Apply lenses to both sides of a composition: l₁ ◃ₗ l₂ : (P ◃ Q ⇆ R ◃ W)
Instances For
Parallel application of lenses for product l₁ ×ₗ l₂ : P * Q → R * W
Instances For
Parallel application of lenses for coproduct l₁ ⊎ l₂ : P + Q → R + W
Instances For
Apply lenses to both sides of a tensor / parallel product: l₁ ⊗ₗ l₂ : (P ⊗ Q ⇆ R ⊗ W)
Instances For
Notation for the copairing sumPair l₁ l₂ of two lenses out of a sum.
Instances For
Notation for the pairing prodPair l₁ l₂ of two lenses into a product.
Instances For
The type of lenses from a polynomial functor P to y
Instances For
The transition lens δ : Sy^S ⇆ Sy^S ◃ Sy^S on the self-monomial state
polynomial (Spivak–Niu Example 6.44): δ = (id, tgt, run) remembers the start
state, relabels each direction by the state it targets, and composes two hops
into one. It is the comultiplication of the state comonoid stateComonoid S, and
the helper behind speedup.
Instances For
The speedup lens operation: Lens (S y^S) P → Lens (S y^S) (P ◃ P)
Instances For
Commutativity of coproduct
Instances For
Associativity of coproduct
Instances For
Coproduct with 0 is identity (right)
Instances For
Coproduct with 0 is identity (left)
Instances For
Commutativity of product
Instances For
Associativity of product
Instances For
Product with 1 is identity (right)
Instances For
Product with 1 is identity (left)
Instances For
Product with 0 is zero (right)
Instances For
Product with 0 is zero (left)
Instances For
Left distributive law for product over coproduct
Instances For
Right distributive law for coproduct over product
Instances For
Associativity of composition
Instances For
Composition with y is identity (right)
Instances For
Composition with y is identity (left)
Instances For
Alias of PFunctor.Lens.Equiv.compY.
Composition with y is identity (right)
Instances For
Alias of PFunctor.Lens.Equiv.yComp.
Composition with y is identity (left)
Instances For
Distributivity of composition over coproduct on the right
Instances For
Commutativity of tensor product
Instances For
Associativity of tensor product
Instances For
Tensor product with y is identity (right)
Instances For
Tensor product with y is identity (left)
Instances For
Alias of PFunctor.Lens.Equiv.tensorY.
Tensor product with y is identity (right)
Instances For
Alias of PFunctor.Lens.Equiv.yTensor.
Tensor product with y is identity (left)
Instances For
Tensor product with 0 is zero (left)
Instances For
Tensor product with 0 is zero (right)
Instances For
Left distributivity of tensor product over coproduct
Instances For
Right distributivity of tensor product over coproduct
Instances For
The unique comparison between two possibly differently instantiated
copies of the common tensor/composition unit y.
Instances For
Naturality of the left tensor unitor. The unit component is the canonical
comparison between the independently instantiated source and target copies of
y.
Naturality of the right tensor unitor. The unit component is the canonical
comparison between the independently instantiated source and target copies of
y.
Alias of PFunctor.Lens.yTensor_natural.
Naturality of the left tensor unitor. The unit component is the canonical
comparison between the independently instantiated source and target copies of
y.
Alias of PFunctor.Lens.tensorY_natural.
Naturality of the right tensor unitor. The unit component is the canonical
comparison between the independently instantiated source and target copies of
y.
Naturality of the tensor associator across lenses whose source and target polynomials may occupy six independent universe pairs.
Convert an equivalence between two polynomial functors P and Q to a lens.
Instances For
Sigma of an empty family is the zero functor.
Instances For
Sigma of a PUnit-indexed family is equivalent to the functor itself (up to ulift).
Instances For
Sigma of a unique-indexed family is equivalent to the default fiber (up to ulift).
Instances For
Left distributivity of product over sigma.
Instances For
Right distributivity of product over sigma.
Instances For
Left distributivity of tensor product over sigma.
Instances For
Right distributivity of tensor product over sigma.
Instances For
Right distributivity of composition over sigma.
Instances For
Pi over a PUnit-indexed family is equivalent to the functor itself.
Instances For
Pi of a family of zero functors over an inhabited type is the zero functor.
Instances For
ULift equivalence for lenses