jpfairbanks / SemanticModels.jl

A julia package for representing and manipulating model semantics
MIT License
77 stars 17 forks source link

[WIP]: Decorated cospans #213

Closed jpfairbanks closed 4 years ago

jpfairbanks commented 5 years ago

This is my initial experimentation with interfaces for decorated copans. Currently it implements FinSet and FinGraph morphisms including pushouts to compute the new decoration. The next step is to attach the input and output morphims to make FinSet cospans decorated by FinGraph.

jpfairbanks commented 5 years ago

This should probably go in a new folder like /src/category/cateogy.jl if it keeps growing we could do

/src/category/category.jl
/src/category/span.jl
/src/category/cospan.jl
/src/category/decorated.jl

It is probably overkill to use 4 files for this right now, but that should be on the roadmap as the amount of CT code we write grows.

jpfairbanks commented 4 years ago

Changes:

  1. Create abstract SemanticModels.ModelTools.OpenModel
    • Interface: dom, codom, model
  2. Move Petri.OpenModel to SemanticModel.ModelTools.Petri.OpenPetri <: OpenModel
  3. Implement otimes and compose for OpenPetri in terms of this implementation of \squarecup and pushout.
jpfairbanks commented 4 years ago

Also write an explainer for this in the docs. Like a blog post with worked out examples as a tutorial for how define a new type of OpenModel.

mehalter commented 4 years ago

This has been taken care of with PR #226, and when we merge documentation to master, these changes will follow.