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

Modular definition of small-step semantics (sInsn) #7

Open
jeehoonkang opened this issue Sep 15, 2014 · 2 comments
Open

Modular definition of small-step semantics (sInsn) #7

jeehoonkang opened this issue Sep 15, 2014 · 2 comments

Comments

@jeehoonkang
Copy link
Contributor

  • Currently sInsn (in /src/Vellvm/opsem.v) comprises some 20 cases.
  • In my experience, many proofs are common to many of 20 cases. for many cases memory is intact, and it is the only property that is required for those cases.
  • In that case I had to prove a trivial lemma that [sInsn means memory intact or 5 more cases], or [inverse sInsn and have 20 cases, which means slow interpretation of proof terms].
  • I would like sInsn to be organised in such a way that not too much cases arise in proof. For example:

Inductive arithmetic_step : ...
| bop | fbop | ...

Inductive intact_stack_step : ...
| arithmetic_step | load | ... | branch

Inductive step : ... // sInsn
intact_stack_step | call | return | ...

It would require a complete adjustment of metatheories, so I would like to discuss in detail.

@dgarbuzov
Copy link
Contributor

I think this is clearly a good idea, but it's hard to estimate how much effort it would require. Personally, before undertaking a change this size, I would prefer to

  1. Complete Remove all obvious dead code and unused lemmas #5 so that we don't waste time updating dead code
  2. Have a parser and test suite that works with current versions of LLVM, so we know we aren't introducing additional bugs

@jeehoonkang
Copy link
Contributor Author

@dmitrig totally agree with you :-)

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