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

Further Refine AST #64

Open
d-xo opened this issue Dec 15, 2020 · 5 comments
Open

Further Refine AST #64

d-xo opened this issue Dec 15, 2020 · 5 comments
Labels
enhancement New feature or request

Comments

@d-xo
Copy link
Collaborator

d-xo commented Dec 15, 2020

The following changes to the AST would proabaly be nice:

  • Add a Contract type that bundles all constructors / methods / invariants / storage declarations for a particular contract. It would be nice if this had some constraints on the constructors (e.g. only one passing constructor).
  • Add a System type that is a collection of related contracts. In the future this could perhaps contain system level invariants
@d-xo d-xo added the enhancement New feature or request label Dec 15, 2020
@d-xo d-xo added this to the v0.1 milestone Dec 15, 2020
@MrChico
Copy link
Member

MrChico commented Dec 15, 2020

This opens some questions about modules and imports that I think requires a bit of thought

@d-xo
Copy link
Collaborator Author

d-xo commented Dec 16, 2020

modules and imports at the haskell level or for the act language itself?

@MrChico
Copy link
Member

MrChico commented Dec 16, 2020

for act

@d-xo
Copy link
Collaborator Author

d-xo commented Dec 16, 2020

ah, yes that is quite of an interesting rabbit hole...

@d-xo
Copy link
Collaborator Author

d-xo commented Dec 16, 2020

Did you have some ideas in this area?

I've been having some vague thoughts around being able to export only invariants, and pre/post conditions from contracts for use in proving system level properties.

@d-xo d-xo removed this from the v0.1 milestone Jan 13, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants