Skip to content
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

considered behavioral types a la SLMC? #201

Open
dckc opened this issue Jan 10, 2022 · 3 comments
Open

considered behavioral types a la SLMC? #201

dckc opened this issue Jan 10, 2022 · 3 comments

Comments

@dckc
Copy link

dckc commented Jan 10, 2022

Have you considered behavioral types a la SLMC?

  • Luís Caires, Behavioral and Spatial Observations in a Logic for the Pi-Calculus, FoSSaCS 2004, ETAPS 2004, Barcelona, 2004.

I have done a little work toward porting it to scala: https://github.com/rchain-community/behavr

Would you please help me find your current code for type analysis?

I hope you don't mind my use of your issues list for half-baked ideas...

@jhnaldo
Copy link
Contributor

jhnaldo commented Jan 11, 2022

Hi, @dckc. Thanks for the good suggestion related to the behavioral types. Unfortunately, I'm not familiar with this concept. If you give us more information we can discuss it deeper. For the type analysis, we have another repository: https://github.com/kaist-plrg/jstar. We recommend you look around this repo.

@dckc
Copy link
Author

dckc commented Jan 11, 2022

http://ctp.di.fct.unl.pt/SLMC/ has papers, code, examples, and such. Most everything I know about it came from there, so I can't think of a way to give you more information, unless perhaps our groups meet again soonish and we can discuss it.

I will definitely check out JSTAR... ooh! refinement types! excellent...

@dckc
Copy link
Author

dckc commented Jan 13, 2022

JSTAR is even more fantastic on close examination... refinement types and abstract interpretation. wonderful!

The two features of SLMC that I don't see are:

  1. temporal / modal reasoning: eventually / always as in TLA+
  2. the new construct, i.e. freshness, composed with the parallel operator in pi-calculus, which allows reasoning such as:
defprop everybody_knows(secret) = everywhere(@secret);

defprop everybody_gets_to_know = 
    hidden secret.eventually everybody_knows(secret);

-- http://ctp.di.fct.unl.pt/SLMC/examples/gossip.html , http://ctp.di.fct.unl.pt/SLMC/examples/gossip_info.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants