-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add haskell backend target * Rename * Add module level SorobanDefinitionInfo instances * Rename * Make Kasmer.deploy_test unconditionally use the llvm definition * Draft of 'ksoroban prove' * Set Version: 0.1.16 * Lemmas * prove view command * More lemmas. test_adder now passes! * Rename * Set Version: 0.1.17 * Fix the lemmas. I scuffed them somehow when doing some reformatting before a commit. * Makefile: Build every soroban-semantics target * Adjust how prove/fuzz gets selected * Add the adder proof to the tests * Set Version: 0.1.18 * Set Version: 0.1.18 * Set Version: 0.1.20 --------- Co-authored-by: devops <[email protected]> Co-authored-by: Burak Bilge Yalçınkaya <[email protected]>
- Loading branch information
1 parent
96a1afa
commit 2ef6bf9
Showing
13 changed files
with
289 additions
and
34 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 |
---|---|---|
@@ -1 +1 @@ | ||
0.1.19 | ||
0.1.20 |
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 |
---|---|---|
|
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" | |
|
||
[tool.poetry] | ||
name = "ksoroban" | ||
version = "0.1.19" | ||
version = "0.1.20" | ||
description = "K tooling for the Soroban platform" | ||
authors = [ | ||
"Runtime Verification, Inc. <[email protected]>", | ||
|
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
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,47 @@ | ||
```k | ||
requires "wasm-semantics/kwasm-lemmas.md" | ||
requires "data.md" | ||
module KSOROBAN-LEMMAS [symbolic] | ||
imports KWASM-LEMMAS | ||
imports INT-BITWISE-LEMMAS | ||
imports HOST-OBJECT-LEMMAS | ||
endmodule | ||
module INT-BITWISE-LEMMAS [symbolic] | ||
imports INT | ||
imports BOOL | ||
rule C |Int S => S |Int C [simplification, concrete(C), symbolic(S)] | ||
rule X |Int 0 => X [simplification] | ||
rule A &Int B => B &Int A [simplification, concrete(A), symbolic(B)] | ||
rule (A &Int B) &Int C => A &Int (B &Int C) [simplification, concrete(B, C)] | ||
rule A &Int (B &Int C) => (A &Int B) &Int C [simplification, symbolic(A, B)] | ||
syntax Bool ::= isPowerOf2(Int) [function, total] | ||
rule isPowerOf2(I:Int) => I ==Int 1 <<Int log2Int(I) requires 0 <Int I | ||
rule isPowerOf2(I:Int) => false requires I <=Int 0 | ||
syntax Bool ::= isFullMask(Int) [function, total] | ||
rule isFullMask(I:Int) => I ==Int fullMask(log2Int(I) +Int 1) requires 0 <Int I | ||
rule isFullMask(I:Int) => false requires I <=Int 0 | ||
syntax Int ::= fullMask(Int) [function, total] | ||
rule fullMask(I:Int) => (1 <<Int I) -Int 1 requires 0 <Int I | ||
rule fullMask(I:Int) => 0 requires I <=Int 0 | ||
rule I modInt M => I &Int (M -Int 1) requires isPowerOf2(M) [simplification, concrete(M)] | ||
endmodule | ||
module HOST-OBJECT-LEMMAS [symbolic] | ||
imports HOST-OBJECT | ||
imports INT-BITWISE-LEMMAS | ||
rule (_I <<Int SHIFT |Int T) &Int MASK => T &Int MASK | ||
requires isFullMask(MASK) andBool SHIFT >=Int log2Int(MASK +Int 1) | ||
[simplification, concrete(SHIFT, MASK)] | ||
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
Oops, something went wrong.