Want to take part in these discussions? Sign in if you have an account, or apply for one below
Vanilla 1.1.10 is a product of Lussumo. More Information: Documentation, Community Support.
1 to 10 of 10
In programming, legal contract drafting, making jokes and filling in madlibs, students cheating on essays, and large scale substitution in math, (even closure operations?), aren’t all these things are instances of applying template, but how does templating work from an n-POV?
My instincts tell me it’s an Operad of some sort, given how composition of templates ought to behave. Is there a Linguistic Operad of sorts that handles instances of templating?
Edit: In linguistics language, I’m asking about ’phrasal templating’ and it’s categorical semantics.
Going out on a limb, it might relate to Spivak’s ologs.
Start with a - the action of a set on a set - act: .
For a fixed set of property names these form the category with the obvious preserving concrete morphisms (whose structure may be uninteresting).
Enhance a setAct with a distinguished point of its objects called giving the structure , and say that has the property of being rooted if every object is accessible from the root using a path from the free monoid .
Rooted setActs form the category which is the quotient object lattice of the free rooted setAction of - an infinite tree with edges labeled from . is the one object “rose” with arcs - its free category is just the one object free monoid .
This category contains some objects that can be displayed as similar to simple JavaScript objects, e.g. in
The join in this lattice can give such as:
(The join here might be more specifically called rootJoin because it equates the roots of its arguments. An “atomic” object such as actually corresponds to a coAtom of the lattice and the lattice has an infinite number of them. In JavaScript trying to access a property that is not present returns the distinguished value . In this variation unknown properties correspond to )
For an object (act) in both and , is the set of all paths from to . This set can be empty or encoded as a regular expression / Kleene algebra. is biRooted containing both the root and a coRoot . A biRooted act will be displayed as ,
The set of all homs internal to the objects, , is obviously a Heyting lattice (biHeyting?, Boolean?) which enriches every variety of setAct.
By adding biRoot structure to any setAct we can form the category where the objects are restricted to being rooted. This is at least a Heyting lattice that contains as a sub lattice.
has an additional monoid? structure: the operator called conJoin (with unit the empty path ) which vaguely behaves as:
This conJoining essentially gives A with its coRoot joined to B’s root and its coRoot changed to correspond to B’s.
For a JavaScript like example we have
where the * in an object is used to indicate its coRoot.
I believe I have this all worked out for when setActions are restricted to being quasi-finite which means that an act has a finite number of objects not isomorpic to . In particular in an act contains all objects found on paths from to - those off any such path are become s. A has the property that all of its non- objects drain to via some path. General biRooted objects don’t have this property.
In the above discussion I am somewhat conflating an act which is an edge labeled quiver with its free category in which the morphisms are paths. A more precise discussion would distinguish these.
Scrap what I said above. The thing I was looking for is called a “Generic Zipper”, it’s a sort of “derivative” of data-types.
Keith, if you set the formatting to Markdown+Itex, then you can create a link like so: Scrap Your Zippers. See the Source for the syntax.
A zipper appears to be a data structure implementing some of the rooted bi-pointed acts I discussed above.
The Wikipedia article talks about a path to a hole. Above I talked about all paths to a hole which turns out to be a bi-rooted act itself (and a regular expression / Kleene algebra). I’m not familiar enough with zippers to know if they can handle my potentially cyclic data structures or if anybody has given them lattice ordering.
Complementary to conJoin defined above there is the conMeet “” monoidial operator with as its unit. Replacing the coPoint in an act requires two steps: “removing” it by conMeeting with followed by conJoining in the replacement value .
And just for another example here is appending linked lists analogous to the use of difference lists in Prolog.
Is there a notion of -acts, for an arbitrary topos , or is this confined to just bi-heyting topoi?
you should ignore what I said about the category Kleene(P) (as what enriches various act categories) as being obviously Heyting - I was getting levels confused.
There are several different ways to define Kleene algebras. I haven’t worked out which one I’m talking about.
I came across this paper a while back: Pippenger - Regular languages and Stone Duality, where he says:
it is well known that the regular languages over a fixed alphabet form a Boolean algebra and that the “implicit operations” with a fixed number of operands form a Stone space.
I should work on understanding this paper or the work derived from it.
1 to 10 of 10