Currently, a weave clause requires one of the morphisms to be an interface_of morphism. For full support of the theory, we should allow both to be full morphisms.
[x] Adjust validation to allow such weave clauses
[x] Clean up composer code separating inner classes into their own proper top level classes to simplify readability.
[x] Add a test case
[x] Adapt composition algorithm so that it can support such weave clauses
[x] Introduce an explicit notion of a Span between EObjects that can explicitly denote a set of arrows from one object in the kernel GTS to the left and right GTS elements, respectively.
[x] Use the set of Span objects instead of the current inverted index to drive the merging of elements.
[x] Use three values for originKeys: LEFT, KERNEL, and RIGHT.
[x] Keep two sets of unmapped elements, from left and right mapping, respectively.
[x] Update naming strategies
[x] Make sure all composer tests run again
[x] Create explicit mappings from interface_of specifications
Will fix #12 .
Currently, a
weave
clause requires one of the morphisms to be aninterface_of
morphism. For full support of the theory, we should allow both to be full morphisms.weave
clausesweave
clausesSpan
betweenEObject
s that can explicitly denote a set of arrows from one object in the kernel GTS to the left and right GTS elements, respectively.Span
objects instead of the current inverted index to drive the merging of elements.originKey
s:LEFT
,KERNEL
, andRIGHT
.interface_of
specifications