Category Theory
Zulip Server
Archive

You're reading the public-facing archive of the Category Theory Zulip server.
To join the server you need an invite. Anybody can get an invite by contacting Matteo Capucci at name dot surname at gmail dot com.
For all things related to this archive refer to the same person.


Stream: learning: questions

Topic: If a trace corresponds to feedback, what is cotrace?


view this post on Zulip Adam Nemecek (May 07 2023 at 19:38):

Lately, I have been thinking about the concept of trace as feedback like in traced monoidal categories. The one thing that I'm somewhat confused by is what exactly is a cotrace? If a trace is a feedback, what is a cotrace?

view this post on Zulip JS PL (he/him) (May 07 2023 at 20:39):

The opposite category of a traced monoidal category is again a traced monoidal category. So from that perspective, the dual notion of a trace operator is still a trace operator. Thus cotrace is just trace.

view this post on Zulip JS PL (he/him) (May 07 2023 at 20:40):

What might be an alternative answer to your question may be considering the difference between a trace on a product vs trace on a coproduct!

view this post on Zulip JS PL (he/him) (May 07 2023 at 20:40):

Here are some reference notes: https://www.mscs.dal.ca/~selinger/papers/graphical.pdf

view this post on Zulip JS PL (he/him) (May 07 2023 at 20:42):

To give a trace operator on a product it is equivalent to give what's usually called a Conway Fixed Point Operator, which takes a map f:X×AXf: X \times A \to X and gives us back a map F(f):AXF(f): A \to X. The idea being this should be a fixed point relative to AA. So for products, trace corresponds to fixpoints.

view this post on Zulip JS PL (he/him) (May 07 2023 at 20:44):

On the other hand, to give a trace operator on a coproduct it is equivalent to give what's called an Iteration Operator, which takes a map f:XXAf: X \to X \oplus A and gives us back a map I(f):XAI(f): X \to A. The idea being we are iterating ff here and then feeding back into the input until it stops. This is what the trace for partial functions is. So for coproducts, trace corresponds to iteration/feedback.

view this post on Zulip John Baez (May 07 2023 at 20:46):

I'm confused because for me a trace operator takes a morphism f:XAYBf: X \otimes A \to Y \otimes B and gives a morphism ABA \to B.

view this post on Zulip JS PL (he/him) (May 07 2023 at 20:46):

John Baez said:

I'm confused because for me a trace operator takes a morphism f:XAYBf: X \otimes A \to Y \otimes B and gives a morphism ABA \to B.

Right! Excellent point, let me explain some more.

view this post on Zulip JS PL (he/him) (May 07 2023 at 20:47):

So for products, a map f:X×AX×Bf: X \times A \to X \times B is actually a pair of maps f1:X×AXf_1: X \times A \to X and f2:X×ABf_2: X \times A \to B, so f=f1,f2f = \langle f_1, f_2 \rangle

view this post on Zulip JS PL (he/him) (May 07 2023 at 20:50):

If you take the trace of ff, which gives Tr(f):ABTr(f): A \to B, you'll see that the axioms of the trace tell you that computing Tr(f)Tr(f) reduces to computing the trace of f1,f1:X×AX×X\langle f_1, f_1 \rangle: X \times A \to X \times X. Specifically, we get that:
Tr(f)=πBf2Tr(f1,f1),1ATr(f) = \pi_B \circ f_2 \circ \langle Tr(\langle f_1, f_1 \rangle), 1_A \rangle.

Drawing this out using string diagrams makes this much clearer (fun little exercise)

view this post on Zulip JS PL (he/him) (May 07 2023 at 20:58):

Note that Tr(f1,f1:XATr(\langle f_1, f_1 \rangle: X \to A, and this is called Conway fix point of f1f_1, so F(f1)=Tr(f1,f1F(f_1) = Tr(\langle f_1, f_1 \rangle.

view this post on Zulip JS PL (he/him) (May 07 2023 at 20:59):

Thus to give a trace operator on a product, is equivalent to giving a Conway fix point.

view this post on Zulip JS PL (he/him) (May 07 2023 at 21:02):

And similarly for coproducts (and biproducts).

view this post on Zulip Adam Nemecek (May 07 2023 at 21:06):

If trace is an iteration operation, then cotrace is a stream of sorts. That makes sense.

view this post on Zulip Adam Nemecek (May 07 2023 at 21:06):

I think my question was also like does a cotrace have a physical manifestation in say circuits the same way trace is feedback?

view this post on Zulip JS PL (he/him) (May 07 2023 at 21:09):

What is the definition/notion of "cotrace" that you have in mind?

view this post on Zulip Adam Nemecek (May 07 2023 at 21:14):

something like a traced monoidal category that has a trace and a cotrace

view this post on Zulip Adam Nemecek (May 07 2023 at 21:14):

if trace == feedback, then cotrace == ?

view this post on Zulip Adam Nemecek (May 07 2023 at 21:14):

feedback in the other direction?

view this post on Zulip JS PL (he/him) (May 07 2023 at 21:18):

Adam Nemecek said:

something like a traced monoidal category that has a trace and a cotrace

Sure but I guess to me "cotrace" is just a trace operator by the dual argument I gave above. So having a trace and a cotrace would, to me, just be giving two different trace operators. With each giving a different kind of feedback

view this post on Zulip JS PL (he/him) (May 07 2023 at 21:29):

Adam Nemecek said:

if trace == feedback, then cotrace == ?

Going off trace for products and coproducts. Maybe fixed point?

view this post on Zulip Adam Nemecek (May 07 2023 at 21:37):

are you familiar with hopf algebras?

view this post on Zulip JS PL (he/him) (May 07 2023 at 22:02):

Adam Nemecek said:

are you familiar with hopf algebras?

Yup: love Hopf algebras!

view this post on Zulip Adam Nemecek (May 07 2023 at 22:08):

so the cotrace in hopf algebra

view this post on Zulip JS PL (he/him) (May 07 2023 at 22:26):

Sorry I don't follow

view this post on Zulip Mike Shulman (May 08 2023 at 04:35):

One place where both traces and cotraces exist and are distinct is the bicategory Prof of categories and profunctors. An endo-profunctor H:Cop×CSetH:C^{op}\times C \to Set has both a trace cCH(c,c)\int^{c\in C} H(c,c) (a coend) and a cotrace cCH(c,c)\int_{c\in C} H(c,c) (an end).

view this post on Zulip John Baez (May 08 2023 at 16:22):

This concept of cotrace may be fundamentally different than the "cotrace in a Hopf algebra", which turns out to be what Adam Nemecek was talking about. Or maybe not! I don't know. I could only find one paper that mentions cotraces for Hopf algebras, and I couldn't figure out what they were.

view this post on Zulip JS PL (he/him) (May 08 2023 at 20:10):

Yes I guess I'm still uncertain as to what a "cotrace" is. For me the natural thing was to consider taking the dual of a traced monoidal category -- but that's still a traced monoidal category. So cotrace = trace. But it seems that's not the approach taken in other areas.

view this post on Zulip Cole Comfort (May 08 2023 at 20:14):

JS PL (he/him) said:

I guess my question is still what s the definition of cotrace we are considering here?

@Simon Willerton has some slides in which he defines 2 different notions of trace in monoidal bicategories: in the case of prof, one of the traces is the coend and the other is the end.
http://www.simonwillerton.staff.shef.ac.uk/ftp/TwoTracesBeamerTalk.pdf

view this post on Zulip JS PL (he/him) (May 08 2023 at 20:16):

Amazing: thanks @Cole Comfort

view this post on Zulip JS PL (he/him) (May 08 2023 at 20:16):

But still, these are both "trace operators" in the usual sense no?

view this post on Zulip JS PL (he/him) (May 08 2023 at 20:17):

I guess my question is maybe "cotrace" is a name but still a trace operator.

view this post on Zulip Mike Shulman (May 08 2023 at 20:19):

I don't think the profunctory cotrace satisfies the same laws as a trace. For instance, a trace operator satisfies tr(fg)=tr(f)tr(g)tr(f\otimes g) = tr(f) \otimes tr(g), but I don't think that's true for the cotrace, since ends are limits and aren't preserved by the tensor product the way colimits are.

view this post on Zulip JS PL (he/him) (May 08 2023 at 20:21):

I see. But still, why call it cotrace?

view this post on Zulip Mike Shulman (May 08 2023 at 20:21):

Because it's a dual of the trace, in the same way that a colimit is a dual of a limit.

view this post on Zulip JS PL (he/him) (May 08 2023 at 20:25):

So if a bicategory has notion of duality, this "round trace" (which is the trace) will always the dual of this "diagonal trace" (which is the cotrace).

view this post on Zulip JS PL (he/him) (May 08 2023 at 20:26):

Neat! Something I had not consider as I usually stay in the 1-cat world for traces.

view this post on Zulip Cole Comfort (May 08 2023 at 20:30):

I think that the cotrace can be regarded as some sort of "trace in the natural transformation direction."

Consider profunctors enriched over a girard quantale. Then this is a closed linear bicategory: https://arxiv.org/pdf/2209.05693.pdf
And I think that in this setting then the linear duals are given by the end!

What is an interesting question to me is that you can define a traced monoidal category as a monoidal category equipped with the coherent natural transformation λY,Z.Xhom(XY,XZ)hom(Y,Z) \lambda Y,Z.\int^X {\sf hom} (X \otimes Y, X \otimes Z) \Rightarrow {\sf hom} (Y,Z) . Can one say the same thing about the cotrace operation as a coherent natural transformation λY,Z.Xhom(XY,XZ)hom(Y,Z) \lambda Y,Z.\int_X {\sf hom} (X \otimes Y, X \otimes Z) \Rightarrow {\sf hom} (Y,Z) ? What is the coherence data needed (if it even makes sense)? Maybe the natural transformation is not even going the right direction?

view this post on Zulip JS PL (he/him) (May 08 2023 at 20:32):

JS PL (he/him) said:

Neat! Something I had not consider as I usually stay in the 1-cat world for traces.

Also seems like this diagonal trace/cotrace can be defined without a monoidal product. is strange to me.

view this post on Zulip JS PL (he/him) (May 08 2023 at 20:32):

Cole Comfort said:

I think that the cotrace can be regarded as some sort of "trace in the natural transformation direction."

yes that's what I'm trying to wrap my head around.

view this post on Zulip JS PL (he/him) (May 08 2023 at 20:35):

Possibly a naive question, but can you take the diagonal trace/cotrace and get a traced monoidal category out of it?

view this post on Zulip Cole Comfort (May 08 2023 at 21:34):

JS PL (he/him) said:

Possibly a naive question, but can you take the diagonal trace/cotrace and get a traced monoidal category out of it?

In a monoidal bicategory with trace and trivial 2-cells one should obtain a traced monoidal category.
In a monoidal bicategory with trace and only one 0-cell, maybe this would also give you a traced monoidal category?

view this post on Zulip Mike Shulman (May 09 2023 at 02:11):

I think the profunctorial cotrace has the same type as the trace, it just doesn't satisfy the same axioms.

view this post on Zulip Simon Willerton (May 09 2023 at 11:01):

Cole Comfort said:

Simon Willerton has some slides in which he defines 2 different notions of trace in monoidal bicategories: in the case of prof, one of the traces is the coend and the other is the end.
http://www.simonwillerton.staff.shef.ac.uk/ftp/TwoTracesBeamerTalk.pdf

With regard to this I should say that my student @Callum Reader has just written a splendid thesis involving these two 2-traces in an enriched context. The thesis should be available soon, but the current national Marking and Assessment Boycott is holding up its appearance on the web. I am also hopeful of a paper on these traces in the near future.

view this post on Zulip Cole Comfort (May 09 2023 at 12:57):

Simon Willerton said:

Cole Comfort said:

Simon Willerton has some slides in which he defines 2 different notions of trace in monoidal bicategories: in the case of prof, one of the traces is the coend and the other is the end.
http://www.simonwillerton.staff.shef.ac.uk/ftp/TwoTracesBeamerTalk.pdf

With regard to this I should say that my student Callum Reader has just written a splendid thesis involving these two 2-traces in an enriched context. The thesis should be available soon, but the current national Marking and Assessment Boycott is holding up its appearance on the web. I am also hopeful of a paper on these traces in the near future.

Oh wow! I am excited. I was sadly mistaken into believing that you had put that project aside!