-
Notifications
You must be signed in to change notification settings - Fork 44
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
kore-rpc - Return branch rule id and condition #3716
Conversation
Will add changes to the RPC serever doc, once I confirm with @ehildenb and @tothtamas28 if the format above works. |
So if I understand correctly, in all the design alternatives,
Question 1 Is Question 2 Doing the substitution is fine I think, as reproducing the unapplied term is possible on the client side based on the |
@tothtamas28 I went with option 1, i.e. |
Sounds good. Note however that "yes/no to (1)" and "yes/no to (2)" are independent design choices, so (2) still needs to be addressed somehow. I personally do not have a strong opinion at this point, but don't have perfect understanding either (see the question above regarding
Can we do the renaming and the structural change in a subsequent PR? So basically, split the change into a non breaking and a breaking part. |
Hmm there is maybe some misunderstanding on my part what exactly |
Sure, I won't introduce the format change and can keep |
Besides parsing the field into a pattern object nothing meaningful I think. |
Great, I will revert the filed name for now |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
I ran the kevm test suite with no real differences. The kontrol tests still seem broken:
|
|
Related: * runtimeverification/haskell-backend#3716 Blocked on: * ~runtimeverification/hs-backend-booster#536~ --------- Co-authored-by: devops <[email protected]> Co-authored-by: Petar Maksimović <[email protected]>
Related: * runtimeverification/haskell-backend#3716 Blocked on: * ~runtimeverification/hs-backend-booster#536~ --------- Co-authored-by: devops <[email protected]> Co-authored-by: Petar Maksimović <[email protected]>
…imeverification/pyk#942) Related: * runtimeverification/haskell-backend#3716 Blocked on: * ~runtimeverification/hs-backend-booster#536~ --------- Co-authored-by: devops <[email protected]> Co-authored-by: Petar Maksimović <[email protected]>
…imeverification/pyk#942) Related: * runtimeverification/haskell-backend#3716 Blocked on: * ~runtimeverification/hs-backend-booster#536~ --------- Co-authored-by: devops <[email protected]> Co-authored-by: Petar Maksimović <[email protected]>
…imeverification/pyk#942) Related: * runtimeverification/haskell-backend#3716 Blocked on: * ~runtimeverification/hs-backend-booster#536~ --------- Co-authored-by: devops <[email protected]> Co-authored-by: Petar Maksimović <[email protected]>
…imeverification/pyk#942) Related: * runtimeverification/haskell-backend#3716 Blocked on: * ~runtimeverification/hs-backend-booster#536~ --------- Co-authored-by: devops <[email protected]> Co-authored-by: Petar Maksimović <[email protected]>
This PR adds new fields to the
next-states
objects, namely:rule-id
andrule-predicate
fieldsubstitution
torule-substitution
(should not break anything because thesubstitution
field is optional and most likely always empty)The
rule-predicate
term is a subterm ofpredicate
and signals the requires clause predicate that was undecidable and thus caused branching. Note that variables insiderule-predicate
may not always be present in the configuration. E.g. consider the following two rulesWith
<T><k> a ~> . </k> <val> X </val></T>
sent to the server. The response will be the following:Notice that the backend eagerly applies substitutions, so on the branch where
X ==Int 0
holds, the backend simply substitutesX
for0
.