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

Encoding symbolic and concrete in Kore #3406

Open
ana-pantilie opened this issue May 10, 2023 · 2 comments
Open

Encoding symbolic and concrete in Kore #3406

ana-pantilie opened this issue May 10, 2023 · 2 comments

Comments

@ana-pantilie
Copy link
Contributor

ana-pantilie commented May 10, 2023

K currently allows users to mark function definition rules as symbolic or concrete. Since function definitions have semantic value, the symbolic and concrete attribute need to have an encoding in Kore/ML. We need to figure out if our main semantics use this feature, and if they do, to figure out if such an encoding exists.

Note: this is for function definition rules not simplification rules

Related #3385

@ehildenb
Copy link
Member

ehildenb commented May 11, 2023

concrete is only used on some function rules in KEVM, and there we do actually use it. The one restriction that is (loosely) enforced is that all the rules for that production must be marked as concrete, which I think is sufficient to allow us to not make an ML encoding for it. So instead, I would suggest:

  • concrete and symbolic can only show up on simplification rules.
  • concrete can show up on function productions, and it means that all the equational axioms for the function symboll are concrete. This should allow us to avoid encoding concrete to ML, because we can either take all or none o the equational axioms based on the term we're inspecting.

These should be enforced by the frontend.

@ehildenb
Copy link
Member

Will have to update KEVM to do this.

Baltoli pushed a commit that referenced this issue Nov 1, 2023
…3085)

* haskell-backend/src/main/native/haskell-backend: b88c128f3 - Transfer not simplified claims to applyClaim (#3398)

* Sync flake inputs to submodules

* haskell-backend/src/main/native/haskell-backend: 8352c471b - Remove `UnifierT` from `NotSimplifier` (#3404)

* Sync flake inputs to submodules

* haskell-backend/src/main/native/haskell-backend: 324773459 - Remove keys faster (#3395)

* Sync flake inputs to submodules

* haskell-backend/src/main/native/haskell-backend: 275afe775 - Monomorphization of Simplifier, leg 4 (#3408)

* Sync flake inputs to submodules

* haskell-backend/src/main/native/haskell-backend: 5a3472be3 - Update dependency: deps/k_release (#3406)

* Sync flake inputs to submodules

Co-authored-by: rv-jenkins <devops@runtimeverification.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants