-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Try encoding a Petri net and a history as a CQL instance #72
Comments
Also see the |
Just to see if I get it. Imagine a net with only one place and one transition. Place is transition's input and output. Is this correct?
I just want to make sure I understand how to use this stuff. If I got it correctly each time a place is connected to a transition as its input (output) then a witness of type Input (resp Output) has to be provided, and suitably mapped by the edge functions. Is this correct? |
I’m pretty sure this is correct, the example is ‘unitary’ net. One way to build an instance is as you suggest, specifying an explicit witness for all the ‘connections’, and that’s what you’d do to build such a DB in say SQL. Another way is to say the instance is the initial algebra of the equations, so that you don’t have to explicitly witness everything, you can just present the instance.
… On Oct 26, 2018, at 10:44 AM, Fabrizio Romano Genovese ***@***.***> wrote:
Just to see if I get it. Imagine a net with only one place and one transition. Place is transition's input and output. Is this correct?
schema S = literal : empty {
entities
Input Output Place Trans
foreign_keys
f1 : Input -> Trans
f2 : Input -> Place
g1 : Output -> Place
g2 : Output -> Trans
}
//Petri net goes here
instance I = literal : S {
generators
i:Input, o:Output, p:Place, t:Transition
equations
f1(i) = t,
f2(i) = p,
g1(o) = t,
g2(o) = p
}
schema IntI = elements I
instance history = literal : IntI {
...
}
I just want to make sure I understand how to use this stuff. If I got it correctly each time a place is connected to a transition as its input (output) then a witness of type Input (resp Output) has to be provided, and suitably mapped by the edge functions. Is this correct?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
@wisnesky, this is interesting. I think I get this from the categorical point of view, but could you provide an example of how to do it in practice? For instance, take the simple net I sketched above. How would you present the same net as an initial algebra? |
Here's the same net (Net instance) given as a presentation of an initial algebra:
The difference is that the places and transitions are now implicitly defined (e.g., referred to as i.f1 rather than p). Presenting an instance rather than giving it explicitly does require automated theorem proving, which impacts scalability. |
Example:
|
For each example, write the corresponding instance on the 4 table AQL schema below. Then, give the example to Ryan who will compute the grothendieck construction. Then, pick a few execution histories, and write each history as an instance on the grothendieck construction schema.
The text was updated successfully, but these errors were encountered: