ethereum / act

Smart contract specification language

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Further Refine AST

d-xo opened this issue · comments

commented

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

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

commented

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

for act

commented

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

commented

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.