Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[Bug] Id created by String2Id contains quotation marks #2315

Closed
david-k opened this issue Nov 9, 2021 · 7 comments · Fixed by #2968
Closed

[Bug] Id created by String2Id contains quotation marks #2315

david-k opened this issue Nov 9, 2021 · 7 comments · Fixed by #2968
Assignees
Labels

Comments

@david-k
Copy link

david-k commented Nov 9, 2021

K Version

K version:    v5.1.250-0-g07918e142
Build date:   Sat Nov 06 22:18:15 CET 2021

Description

The Id created by String2Id("x") is "x", i.e., the Id includes the quotation marks of the string, which seems wrong. This behavior is demonstrated by the following example:

module STRING2ID
  imports ID
  imports BOOL
  imports K-EQUAL
  imports STRING

  syntax Bool ::= "test" [function]
  
  // Evaluates to true
  rule test => String2Id("x") ==K #token("\"x\"", "Id")
endmodule
@david-k david-k added the bug label Nov 9, 2021
@Baltoli
Copy link
Contributor

Baltoli commented Nov 9, 2021

Both the Haskell and LLVM backends produce the same behaviour on this example, FWIW.

@dwightguth
Copy link
Collaborator

FYI, this is not actually a bug in the String2Id hook. If you look at the output of krun -cPGM='String2Id("x")', you will see that String2Id actually behaves correctly. So I can only assume the problem involves the translation of the #token

@david-k
Copy link
Author

david-k commented Nov 9, 2021

@dwightguth That's strange, because rule test => String2Id("x") results in the Id "x", i.e., including the quotation marks. So it seems to depend on whether String2Id is part of a program or part of a rule.

@dwightguth
Copy link
Collaborator

Interesting. That's quite surprising since the parser used by -cPGM and by the rule parser is generally pretty similar. Thanks for the info though. We'll definitely make sure to triage this when we meet on Thursday.

@radumereuta
Copy link
Contributor

Most likely something in the front-end. Needs more investigation.
Should be simple to figure out what is going on.

@ehildenb
Copy link
Member

ehildenb commented Oct 6, 2022

I have confirmed that this si still hapenning on K version 5.4.30:

Inptu file test.k:

module TEST 
  imports ID
  imports BOOL
  imports K-EQUAL
  imports STRING

  syntax Bool ::= "test" [function]

  // Evaluates to true
  rule test => String2Id("x") ==K #token("\"x\"", "Id")
endmodule

Input file in.test:

test

Reproduction:

% kompile test.k
[Warning] Compiler: Could not find main syntax module with name TEST-SYNTAX in
definition.  Use --syntax-module to specify one. Using TEST as default.

% krun in.test
<k>
  true ~> .
</k>

It should be outputting false.

@Baltoli Baltoli self-assigned this Oct 10, 2022
@radumereuta
Copy link
Contributor

@Baltoli is this safe to close?
I don't know why GH didn't close it automatically.

@Baltoli Baltoli closed this as completed Oct 13, 2022
h0nzZik pushed a commit to h0nzZik/k that referenced this issue Nov 24, 2022
* haskell-backend/src/main/native/haskell-backend: c4278195 - Keep table of term replacements in SideCondition, use in term simplifier (runtimeverification#2315)

* haskell-backend/src/main/native/haskell-backend: 51607104 - Update dependency: deps/k_release

* haskell-backend/src/main/native/haskell-backend: 44423faa - Remove build date from version info and add dirty flag (runtimeverification#2370)

* haskell-backend/src/main/native/haskell-backend: d0412b76 - Update dependency: deps/k_release

* haskell-backend/src/main/native/haskell-backend: e87dac75 - Fix uninterpreted functions in keys of Maps and Sets (runtimeverification#2323)

* haskell-backend/src/main/native/haskell-backend: deaf0af1 - Keep set of defined terms in SideCondition (runtimeverification#2354)

* haskell-backend/src/main/native/haskell-backend: 266597e9 - Revert runtimeverification#2315 (runtimeverification#2385)

* haskell-backend/src/main/native/haskell-backend: d18be998 - kore-0.39.0.0 (runtimeverification#2388)
h0nzZik pushed a commit to h0nzZik/k that referenced this issue Nov 24, 2022
…untimeverification#1830)

* haskell-backend/src/main/native/haskell-backend: 79703e11 - Update dependency: deps/k_release

* haskell-backend/src/main/native/haskell-backend: 8428df45 - LTS Haskell 17.4

* haskell-backend/src/main/native/haskell-backend: 2e714c56 - Add an EquationVariableName to RewritingVariableName

* haskell-backend/src/main/native/haskell-backend: c5cc46be - Update dependency: deps/k_release

* haskell-backend/src/main/native/haskell-backend: 0c4ad203 - Update dependency: deps/k_release

* haskell-backend/src/main/native/haskell-backend: a182994f - Update dependency: deps/k_release

* haskell-backend/src/main/native/haskell-backend: 9460590a - Simplify side conditions (runtimeverification#2393)

* haskell-backend/src/main/native/haskell-backend: 4fb83523 - Fix `variable` to `RewritingVariableName` in `Kore.Equation.Application` (runtimeverification#2325)

* haskell-backend/src/main/native/haskell-backend: f41cba23 - Revert "Revert runtimeverification#2315 (runtimeverification#2385)" (runtimeverification#2389)

* haskell-backend/src/main/native/haskell-backend: 44eed8d7 - Run Test workflow on macOS (runtimeverification#2420)

* haskell-backend/src/main/native/haskell-backend: 904f5322 - kore-repl: Print human-readable error messages (runtimeverification#2441)

* haskell-backend/src/main/native/haskell-backend: b49fdd3c - Make Conditional's term a strict field (runtimeverification#2442)

* haskell-backend/src/main/native/haskell-backend: 01f0402d - adding match for And (runtimeverification#2435)

* haskell-backend/src/main/native/haskell-backend: 3243d1e5 - kore-0.41.0.0 (runtimeverification#2444)

* haskell-backend/src/main/native/haskell-backend: 28913344 - Update dependency: deps/k_release

* haskell-backend/src/main/native/haskell-backend: abf0292b - Use unit and element symbol attributes

* haskell-backend/src/main/native/haskell-backend: 7d3ee1bc - Inefficient Equation renaming (runtimeverification#2438)

* haskell-backend/src/main/native/haskell-backend: 95b6c107 - Stop simplifying the left-hand side of equations (runtimeverification#2392)

* haskell-backend/src/main/native/haskell-backend: 21959d95 - Add instructions for running one test in Docker (runtimeverification#2456)

* haskell-backend/src/main/native/haskell-backend: 4195d948 - Removes sort checks for Map and Set during internalization (runtimeverification#2440)

* Predicates in the condition are now simplified

* haskell-backend/src/main/native/haskell-backend: c35bfa56 - Remove defined marker (runtimeverification#2380)

* haskell-backend/src/main/native/haskell-backend: 57ad3292 - Remove cabal.project.freeze (runtimeverification#2450)

* haskell-backend/src/main/native/haskell-backend: 66158c67 - Support the --bug-report and --no-bug-report options in kore-repl (#2462)

* haskell-backend/src/main/native/haskell-backend: f0d93ac5 - Use stderr for errors (runtimeverification#2458)

* haskell-backend/src/main/native/haskell-backend: 0427fae7 - Distinguish \bottom from stuck states (runtimeverification#2451)

* haskell-backend/src/main/native/haskell-backend: d136446e - Fix Strict performance (runtimeverification#2447)

* haskell-backend/src/main/native/haskell-backend: a4e55b2a - Remove IMP fragment tests (runtimeverification#2467)

* haskell-backend/src/main/native/haskell-backend: 1f61e5a6 - Revert PRs related to InternalAc, Unit, Element & Concat symbols changes (runtimeverification#2463)

* haskell-backend/src/main/native/haskell-backend: fcfc2d52 - Remove the EvaluatedF marker from TermLike (runtimeverification#2469)

* haskell-backend/src/main/native/haskell-backend: fb56d719 - Revert PR runtimeverification#2334 (runtimeverification#2473)

* haskell-backend/src/main/native/haskell-backend: bb258f14 - Add ref = "main"; to default.nix (runtimeverification#2475)

* haskell-backend/src/main/native/haskell-backend: 964e64e7 - Update dependency: deps/k_release (runtimeverification#2464)

* haskell-backend/src/main/native/haskell-backend: abf14770 - Emit a warning when kore-exec exceeds the depth limit (runtimeverification#2461)

* haskell-backend/src/main/native/haskell-backend: 003a8424 - Update dependency: deps/k_release (runtimeverification#2478)

* haskell-backend/src/main/native/haskell-backend: 485bd89a - kore-0.42.0.0 (runtimeverification#2477)

* Add definedness to lookup rules, regenerate tests

* haskell-backend/src/main/native/haskell-backend: 78515d10 - Update dependency: deps/k_release (runtimeverification#2486)

* Revert changes to domains.md and test output

* haskell-backend/src/main/native/haskell-backend: 4f3a751c - Format code with fourmolu (runtimeverification#2382)

* haskell-backend/src/main/native/haskell-backend: de80594b - Update dependency: deps/k_release (runtimeverification#2490)

* Update map symbolic Haskell tests

* haskell-backend/src/main/native/haskell-backend: 9c9ef914 - Update dependency: deps/k_release (runtimeverification#2495)

Co-authored-by: ana-pantilie <ana.pantilie95@gmail.com>
Co-authored-by: Thomas Tuegel <thomas.tuegel@runtimeverification.com>
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants