Copy path to clipboardSource
let kCat = ../Category/Cat/semigroupal
let vObject = Type
let v =
../Category/Monoidal/Cartesian/extractMonoidal
kCat
Type
vObject
../Category/Set/monoidal/cartesian
let base = ../Category/Monoidal/extractCategory kCat vObject
in λ(cObject : Kind) →
λ(c : ../Category/Monoidal/Kind kCat vObject cObject) →
λ(semigroupoid : ../Semigroupoid/Type cObject v (base cObject c) c.arrow) →
let Day = ./Type cObject v c
in λ(f : kCat.arrow cObject vObject) →
λ(g : kCat.arrow cObject vObject) →
{ map =
λ(a : cObject) →
λ(b : cObject) →
λ(fn : c.arrow { _1 = a, _2 = b }) →
λ(day : Day { _1 = f, _2 = g } a) →
day
(Day { _1 = f, _2 = g } b)
( λ(d : { _1 : cObject, _2 : cObject }) →
λ(fn2 : c.arrow { _1 = c.product d, _2 = a }) →
λ(e : v.product { _1 = f d._1, _2 = g d._2 }) →
λ(r0 : vObject) →
λ(day0 : ./convolution cObject v c f g b r0) →
day0
d
( semigroupoid.product
{ _1 = c.product d, _2 = b }
( λ(r : Type) →
λ ( arrowsOut
: ∀(z : cObject) →
c.arrow { _1 = z, _2 = b } →
c.arrow { _1 = c.product d, _2 = z } →
r
) →
arrowsOut a fn fn2
)
)
e
)
}
: ../Functor/Type
vObject
cObject
vObject
(base vObject v)
(base cObject c)
(base vObject v)
(Day { _1 = f, _2 = g })