petri nets?
Opened this issue · 2 comments
ngsankha commented
Can we use petri nets for better computation of paths through types? Side effects help when there are assertions that test that side effect. But there is no way to reach a side effect path if there is no assertion for it. Petri nets could be helpful.
Example:
# type: () -> B
def my_method
a = A.new()
a.set_some_state(:foo)
B.lookup(a)
end
ngsankha commented
Petri net ideas are outlined here: Component-based synthesis for complex APIs
Read this paper multiple times, need to think if this approach would fit with how our synthesis works.