Skip to content

Add rand example to Semantics of K document #406

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

Closed
wants to merge 6 commits into from
Closed

Add rand example to Semantics of K document #406

wants to merge 6 commits into from

Conversation

xc93
Copy link

@xc93 xc93 commented Jan 13, 2019

The rand example in Section 4.5 illustrates how to correctly define the semantics of rand using matching logic axioms.
Related Slack message:
https://runtimeverification.slack.com/archives/CC360GUTG/p1546707583193800

Reviewer checklist
  • Test coverage: stack test --coverage
  • Public API documentation: stack haddock
  • Style conformance: stylish-haskell

@xc93 xc93 requested review from traiansf and bmmoore January 13, 2019 15:01
@xc93 xc93 changed the title Add the rand example to Semantics of K document Add rand example to Semantics of K document Jan 13, 2019
Copy link
Contributor

@traiansf traiansf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me! Thanks for adding it.

and \prule{Axiom D} is needed in there.



Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of the below, which is essentially the same as you have already written in more details above, could you put a link to the #kore conversation? I'm not sure whether that is accessible by all, but if it's in a comment, it won't be printed and still be accessible by us.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You mean adding a link of this document to #kore, adding the link to #kore discussion to the document?

@traiansf
Copy link
Contributor

@Hreada Would it be too much to ask for a PR adding to the semantics of K translations of K rules and all-path/one-path reachability rules with requires/ensures to KORE?

of ``one-path next'' $\snext$, called ``all-path next''.
The axiom says that \emph{for all next states} of $\rand$,
it must be some positive number.
\prule{Axiom A} and \prule{Axiom D} captures the intended semantics
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you mean to include "Axiom A" here? The reminder of the sentence seems to imply a single axiom (e.g. "captures" instead of "capture")

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's a typo. Thanks for pointing out. It should be "capture".

@xc93
Copy link
Author

xc93 commented Jan 15, 2019

@Hreada Would it be too much to ask for a PR adding to the semantics of K translations of K rules and all-path/one-path reachability rules with requires/ensures to KORE?

@traiansf One-path RL is fully covered in a tech report that Grigore and I have finished. I can add what we have agreed on about ensure/requires to the document, but maybe in another PR. This PR also contains an important fix that removes some strange UTF-8 chars to make the TeX file compilable, so I want this PR to merge asap.

@traiansf
Copy link
Contributor

I've reopened this as #414

@traiansf traiansf closed this Jan 15, 2019
jberthold pushed a commit that referenced this pull request Apr 10, 2024
Closes #406 

* Make result indeterminate when trying to bind an already bound
variable with a different expression. This was returning a failing
result before, causing a soundness bug, because in some cases rules with
duplicate variables in LHS would not be applied.
* Make result indeterminate when unifying an injection with a variable.
This allows us to get a clear remainder instead of a weird swapped
substitution item
* Only report violating substitution items
jberthold pushed a commit that referenced this pull request Apr 10, 2024
Closes #406 

* Make result indeterminate when trying to bind an already bound
variable with a different expression. This was returning a failing
result before, causing a soundness bug, because in some cases rules with
duplicate variables in LHS would not be applied.
* Make result indeterminate when unifying an injection with a variable.
This allows us to get a clear remainder instead of a weird swapped
substitution item
* Only report violating substitution items
jberthold pushed a commit that referenced this pull request Apr 10, 2024
Closes #406 

* Make result indeterminate when trying to bind an already bound
variable with a different expression. This was returning a failing
result before, causing a soundness bug, because in some cases rules with
duplicate variables in LHS would not be applied.
* Make result indeterminate when unifying an injection with a variable.
This allows us to get a clear remainder instead of a weird swapped
substitution item
* Only report violating substitution items
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

Successfully merging this pull request may close these issues.

3 participants