typedefs / pm

project management

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

F-Algebras on nominal sets may solve aliasing

FabrizioRomanoGenovese opened this issue · comments

Context

So, I was reading about nominal sets since they were used by Dan Ghica to do stuff irrelevant for Typedefs.
My grasp on nominal sets is still very very limited, but they should be, at least in principle, a flavor of set theory that allows for name binding.

Incidentally, it turns out that nominal sets are a boolean topos, that is, a category with incredibly amazing properties (complete, cocomplete, etc).

Importance

Up to now, in using F-algebras, we always considered endofunctors F:Set -> Set. For instance, when we say that Nat is the initial F-algebra of the endofunctor FX := 1 + X we are implicitly assuming that X ranges over sets, and same happens for all the endofunctors we considered so far.

It may be, then, that by considering endofunctors F: NomSet -> NomSet we get automagically the very same inductive types but with a name-binding construction embedded in the theory.

Adámek's Theorem should carry over

Some things make everything very promising. Consider, for instance, the following fact:
Given an endofunctor F:C --> C, where C is any category, it is not obvious that its initial F-algebra exists. The way we used up to now to ensure that this was indeed the case was by using Adámek's theorem. This theorem says that if C is "nice enough" and F is "nice enough", then such initial F-algebra exists, and can be easily constructed.

Now, algebraic functors are clearly "nice enough", such as the category of sets and functions is, and this is why this thing was useful for us. My conjecture (that should be indeed trivial to prove, I just have to dig into the Borceaux and find some shit about colimits in toposes, or even better just ask Samson) is that being NomSet a topos it is "nice enough" too, so we can be ensured that initial F-algebras always exist for algebraic endofunctors in NomSet.

Todo

Before suggesting anyone to dig into this bottomless pit, I have to make sure that:

  • I understand nominal sets, and nominal sets do what we want them to do, i.e. internalize the notion of data type aliasing.
  • If this is the case, I should do some stupid calculations to check that initial F-algebras will indeed give us inductive data types with names

This will take a bit of time, but I though worth mentioning that, from the theoretical side, we are surely getting somewhere.
cc. @wires @epost @fredrikNordvallForsberg