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.
Hey! I have only a little bit of experience giving talks, and I could use some advice and/or feedback on how to structure mine. It's on separation logic, optics as specialized to (0, 1)-category theory, and the application of the latter to the former, but I figure I can't expect the audience of this seminar to have much of a background in program verification or separation logic. Since this is probably a ubiquitous issue when giving talks in this kind of setting, does anyone have some experience / thought on how to deal with this kind of thing?
My main advice is: don't talk about what's really exciting to you now; explain the basics really clearly, so that people may be interested enough to learn more later. This always requires a painful act of renunciation.
Less is more.
Right now my main thoughts as to what my options are include things like
aww :)
Explaining what the heck "separation logic" is would be really helpful. I've seen you define it once, I think, but I still don't get it. I'm probably kind of typical.
yeah, i figured
If you're presenting a paper, you should treat the talk like an advertisement to go read the actual paper.
i don't have a paper! (yet)
i'd like to write one eventually, but
Like John said, don't try to cram all the info in the paper into the talk.
So, to get the idea of "separation logic" across you probably need to say it twice, in two different simple ways, omitting everything scary or technical.
i do have some notes i wrote up, but they're not super well structured and they're rather incomplete
Well, then you can treat your talk as a preview of a paper that will appear someday.
ehh, i dunno, whatever paper i eventually write will most likely be aimed at people who are familiar with separation logic and maybe not category theory... :)
perhaps that's a misunderstanding of what you mean
I almost always talk about stuff I've written up, so people can go get the details somewhere. That frees me up to explain the basics, handwaving whenever that's the best approach.
I didn't mean that the talk is for the same audience as the paper.
I mean the paper contains the results in the talk, plus perhaps tons more.
But anyway, the main thing is to make the talk clear and enjoyable to lots of kinds of people, not to pack it with detail.
hmm, well
to be concrete, the stuff i have that id be putting into my paper is roughly...
"there's this set of related techniques/concepts used in separation logic, and if you squint, you'll find that they actually all unify and drop out of the notion of optics if you instantiate it with the right parameters. plus, here's a contribution or two to that set of techniques that i got by working in this paradigm"
it's also very much applied category theory, since it's a framework built on general categorical definitions that lets you plug in all kinds of general categorical facts to get useful tools
i got sooooooooo much mileage out of
:+1:
but im not sure this is what i want my talk to be, given that i doubt most of the listeners will have any reason to care about unifying these techniques they've never heard of in this system they don't know about :sweat_smile:
If your talk is good, by the end of it they will care about this. But they won't at first.
sure!
the problem is that i have a rather limited amount of time
one the things is that the problem which separation logic solves is i think rather obscure if you don't already have a background in imperative programming
or, well, maybe it's not, but i need to figure out how to communicate that—which is exactly why i made this topic
An hour! That's a huge amount of time for a talk. Pity the people who give 20-minute talks at AMS meetings.
:scream:
Of course you still need to make every minute count, and ruthlessly strip down the information you present - only what's absolutely crucial to making the talk understandable and fun.
If you do a good job you'll get a bunch of fans who will want to ask you more questions here after your talk (and also live, on Zoom).
:flushed:
god maybe accepting this was a bad idea i have so much other shit to do this month :sob:
You can also give a bad talk if you want - it takes less work, and that's what most people do. :upside_down:
will consider it :triumph:
the really important thing for separation logic is the notion of aliasing
and unfortunately, ppl who have only a passing knowledge of programming are often the ones who get tripped up by that exact point
e.g., saying in python
list1 = [1, 2, 3, 4] list2 = list1 list1[2] = 5 print(list2)
and getting confused
well, as long as you're working with forests and trees, separation logic is great
it's cyclic graphs that become a problem
;)
no, separation logic is a tool for reasoning about the behavior of programs in languages that can involve aliasing
my work is maybe not about what you're expecting!
although i've wondered if it might be possible to develop in the kind of direction you may be thinking of
hold on, what's your existing familiarity with separation logic, then?
so you haven't worked with it or anything?
kk
well, you may or may not be right, but regardless, aliasing is the problem that motivates separation logic
right, ok :thinking:
i think maybe i'd put the birds eye view to someone who knows some category theory as like
"if we make things monoidal instead of cartesian, we can capture issues of 'ownership' and 'resources', and this allows us to make formal the kind of reasoning we do very naturally that would otherwise be plagued by pathological edge cases"
most people tend to kind of implicitly take for granted that things don't alias
then they get caught by surprise when their code gets run with aliased arguments and they realize their reasoning was wrong
oof
how so?
hmm
well, how about the next two lines i wrote? :)
thats not what i mean, tho
i mean aliasing in the sense of "multiple pointers to the same thing going by different names"
except that even then the concept is more general, since languages like python dont have "pointers" per se but they certainly have aliasing
:thumbs_up:
it will look like a cospan 🤯
(i doubt there's any deeper significance lol)
i saw his talk ;p
most discrete spaces arent :)
classically, anyway
it only comes into play insofar as separating conjunction (the aforementioned "monoidal instead of cartesian") is a case of day convolution
but that's largely irrelevant
optics come in like
well, i start with a very general categorical formulation of optics
then if you specialize it to (0, 1)-categories, it becomes a bit degenerate
you now have preordered sets where you used to have full categories, and optics used to be elements of the hom-sets of those categories
but now you can just ask "does this inequality hold in the optic preorder"
this corresponds to being able to take certain kinds of steps when making a deduction
which indeed feel a lot like "focusing in"
the most basic case of all of this, which corresponds roughly to the notion of "linear lenses" in 1-categories, ends up reproducing the kind of "focusing-in" proof steps described in one source as "ramification"
you're right! i'm being unhelpfully fancy with my wording
a (0, 1)-category is just a thin category / preordered set
but calling it that is suggestive of how you're going to use it
i made this point elsewhere in this chat—if i talk about "a presheaf on this thin category C", i presumably mean a functor to Set, but if i talk about "a presheaf on this (0, 1)-category C", i presumably mean a monotone function to Ω (classically, 2)
not mine! :)
one sec
here's a nice source on them categorical_update.pdf
but i can give a summary of the idea
kk
is that the grothendieck construction one?
yeah that one got my wheels turning
i have on the backburner some thoughts about 2-optics
which i really need to make my work a bit more applicable
that probably sounds funny, but
the issue is basically that right now, some of my definitions are too monomorphic for some actual use cases i have
and having a bicategory instead of a monoidal category would fix that
hey, john had a double category in his talk...
Another perhaps useful suggestion is: Don't be afraid to make jokes. A talk is 50% interesting topics and 50% entertainment. Even if your contents are great you need more than that to keep people awake. Engage the public!
I don't know how well this can work in virtual talks, but I've always found very useful to ask questions to the public. E.g. "Let's start with a survey! How many of you know have experience programming? Cool! How many of you have experience with functional programming? Great audience I see! How many of you have experience with theorem proving? Well, so now we know who are the unlucky ones!"
This kind of thing gives you information about the average level of the people you talk to, while keeping them engaged. At that point it doesn't feel anymore like passively consuming some content, but like being actively part of a dynamic process
sarahzrf said:
i made this point elsewhere in this chat—if i talk about "a presheaf on this thin category C", i presumably mean a functor to Set, but if i talk about "a presheaf on this (0, 1)-category C", i presumably mean a monotone function to Ω (classically, 2)
You could just say monotone function to , then. I wouldn't necessarily trust people to pick up on your sense if you say "presheaf on this (0, 1)-category" -- that's a bit jargon-y.
My own advice echoes what John was saying earlier: start off really simply. Don't worry about how sophisticated your audience might be and that they might be bored by basics. (Yes, they probably are sophisticated in their own ways, but maybe not in your way.)
I don't want to say too much more, but just to say that many (most?) of us are into category theory because it simplifies mathematics, as opposed to making it look really sophisticated, which is maybe what the typical mathematician in the street thinks we're trying to prove by being category theorists. So, make it seem as simple as you can!
Yeah, the whole idea of taking stuff from category theory and redoing it for posets will be new to a bunch of people... like how presheaves turn into mere downsets, and so on. (Most people probably won't know what a "downset" is, either.)
man, i need to write an abstract x_x
It's fun to hear someone starting to grapple with life as an academic.
<.<
Question to anyone w/ an opinion: Do you think it'd be a good idea to duplicate any definitions or concepts i throw up, like maybe into a top half & a bottom half, one showing "if you like categorical generality and you've thought about posets this way, here's what the concept is" and one showing "if you wanna know what it looks like in practice, here's what you get when you expand it for this case"
or is that liable to split attention
That's a tough call. It sounds helpful but it might get tiresome if you do it more than 5 times.
tiresome for me, or for the audience?
One other possibility: an "analogy chart" that has two columns, one for concepts in category theory and one for their corresponding concepts in poset theory. This is mainly good if both concepts have names and you want to spend some time making people think about the big picture.
Tiresome for the audience, I meant. Creating a talk is supposed to be tiresome for the person who creates it. :upside_down:
You suffer so the audience suffers less.
im a martyr
That's the right attitude!
John Baez said:
One other possibility: an "analogy chart" that has two columns, one for concepts in category theory and one for their corresponding concepts in poset theory. This is mainly good if both concepts have names and you want to spend some time making people think about the big picture.
These "analogy charts" are my fav thing
I love 'em, and I think that's why people like my Rosetta Stone paper... it's all about analogy charts.
okay so i'm thinking that maybe some amount of
Broaden the focus from "the application of optics to separation logic" to "manifestations of optics in (0, 1)-category theory"
might be a good idea
A (0,1)-category is just a preorder, right? - or maybe a poset? If so, it might be good to call 'em that, so people instantly know what you're talking about. While there are advantages to thinking of them as (0,1)-categories, I'm not sure it helps to say "(0,1)-categories" over and over.
I know this suggestion will be annoying....
ze ro one ca te go ry = 7 syllables
pro set = 2 syllables
we have a winner
any tips on the right balance between being comprehensible to ppl whose background is not in my area vs. not using more of people's time than necessary on standard material?
For me being comprehensible >> wasting people time.
i am inclined to think so
and i do still enjoy explaining standard material, especially when it's cool
Like, by several orders of magnitude. If people feel some material is standard they can do something else in the meantime (esp. considering that talks are now virtual) or skip/watch 2x on Youtube. The opposite doesn't hold, if you don't understand some "standard" material you are cursed for the rest of the talk
So if you ask me being boring is waaaaay better than being obscure. :slight_smile:
on the other hand, i havent written this paper yet, so if someone who does have the background is watching and wants to know the details and feels that their time is wasted, i can't just go "ok well just read the paper" :sob:
guess i could just dump 3.6k lines of uncommented coq on them instead :upside_down:
yknow maybe it would fit the seminar better to try to make the talk more about (0, 1)-optics more generally and less about what ive done with them in separation logic...
You could just move the convo on zulip afterwards
And then the amount of detail providable is limitless :D
I wouldn't expect talking about the CT without your original motivation would be good.
Selfishly, I could say that a goal you could have is to be able to say what your work says about separation logic in a way that I, a category theorist with very little logic background, could understand. Dually, I guess you could also aim to say it in a way where a logician with less CT background could understand why the CT was helpful. These goals are somewhat idealistic though.
(for the record, separation logic is less a topic in "logic" than a topic in "program verification")
(at least in terms of what you'll see when you look up work on it)
(hmm, out of character moment for me...)
yes, if/when this all goes down on paper i'd want to go for the latter
Right, it felt weird when I said logician, but maybe that indicates exactly how unfamiliar this info is to me.
but right now my audience is not mostly people who already use separation logic