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

The semantics represented by Fixpoint function #6

Open
channgo2203 opened this issue Oct 11, 2016 · 4 comments
Open

The semantics represented by Fixpoint function #6

channgo2203 opened this issue Oct 11, 2016 · 4 comments

Comments

@channgo2203
Copy link

The semantics represented by Fixpoint function decreases on the number of step is not good. Since if a bytecode program uses jump instructions that loop, you cannot predict statically how many steps to evaluate. As my implementation (using fixpoint is "big-step" semantics style), it is decreases on the availabe gas.

@pirapira
Copy link
Owner

This is not a problem because whenever we use the fixpoint function, we can say "for any number of steps, the fixpoint function does not do this." Or, "there exists a number of steps after which the fixpoint function does this".

@pirapira
Copy link
Owner

@channgo2203 My usage of Fixpoint function with steps comes from here. Eventually I will replace the steps with gas.

@channgo2203
Copy link
Author

An other ways that is more flexible is to express the step evaluation as a relation instead of fixpoin function (you can look at some information at Software Foundations https://www.cis.upenn.edu/~bcpierce/sf/current/Smallstep.html https://www.cis.upenn.edu/~bcpierce/sf/current/Smallstep.html).

On Oct 12, 2016, at 5:57 AM, Yoichi Hirai notifications@github.com wrote:

This is not a problem because whenever we use the fixpoint function, we can say "for any number of steps, the fixpoint function does not do this." Or, "there exists a number of steps after which the fixpoint function does this".


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub #6 (comment), or mute the thread https://github.com/notifications/unsubscribe-auth/ABsJyanH3WT_CShhKPl5ojNasL6YG7XRks5qzK71gaJpZM4KUKGP.

@pirapira
Copy link
Owner

@channgo2203 Yes. That allows nondeterminism. Actually we need nondeterminism for CALL instruction because the result of CALL is out of control of the contract under verification. By default I'm going to wrap the currently existing Fixpoint function as a relation.

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