-
Notifications
You must be signed in to change notification settings - Fork 151
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This fixes an issue where AddSortInjections would not pick the right sort parameters for parametric productions of sort MInt. We do this by: 1. Changing the z3 inferencer to annotate parametric productions involving parametric sorts with casts. 2. Fixing a bug in the sort graph provided to the disambiguation pipeline 3. Fixing a bug in AddSortInjections.lub --------- Co-authored-by: rv-jenkins <[email protected]>
- Loading branch information
1 parent
4da0743
commit 7e2efdd
Showing
6 changed files
with
60 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
DEF=test | ||
EXT=test | ||
TESTDIR=. | ||
KOMPILE_BACKEND=llvm | ||
KOMPILE_FLAGS=--syntax-module TEST | ||
|
||
include ../../../include/kframework/ktest.mak |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
module TEST | ||
imports BOOL | ||
imports MINT | ||
|
||
syntax MInt{64} | ||
syntax MInt{32} | ||
|
||
syntax KItem ::= foo(MInt{64}) | ||
|
||
syntax MInt{64} ::= m64() [function] | ||
rule m64() => 0p64 | ||
syntax MInt{32} ::= m32() [function] | ||
rule m32() => 0p32 | ||
|
||
rule foo(X) => .K | ||
requires (X +MInt m64()) <=uMInt (roundMInt(m32()) <<MInt 0p64) | ||
|
||
rule true => foo(0p64) | ||
endmodule |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters