Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
038d31a
proof of concept of of div-encoding
gustavo-grieco Jan 30, 2026
536e063
axioms
gustavo-grieco Jan 31, 2026
0513779
avoid unsoundness
gustavo-grieco Jan 31, 2026
b687ca8
fixes and tests
gustavo-grieco Jan 31, 2026
113a25a
fixes
gustavo-grieco Jan 31, 2026
f3e103e
Update src/EVM/SMT/DivEncoding.hs
msooseth Feb 2, 2026
3d995ed
fixes
gustavo-grieco Feb 2, 2026
21cd753
Remove warning
msooseth Feb 9, 2026
e73af5a
Cleanup
msooseth Feb 9, 2026
45b71c5
Cleanup
msooseth Feb 9, 2026
8716a51
Rename, lineup
msooseth Feb 9, 2026
f4d7fdf
Fix code repetition
msooseth Feb 9, 2026
e60173a
Cleanup
msooseth Feb 9, 2026
df399c6
Waaay cleaner setup
msooseth Feb 9, 2026
81d2690
Update cabal
msooseth Feb 9, 2026
e03cd05
Less obvious comments
msooseth Feb 10, 2026
1c48980
Cleanup
msooseth Feb 10, 2026
1dad96c
Cleanup
msooseth Feb 10, 2026
c3112cd
Cleaner
msooseth Feb 10, 2026
40bd88c
Cleanup
msooseth Feb 10, 2026
d9c5089
Cleanup
msooseth Feb 10, 2026
d1f5333
Cleanup
msooseth Feb 10, 2026
d24dfdd
Cleanup
msooseth Feb 10, 2026
7554795
Cleanup
msooseth Feb 10, 2026
ce537e1
Update
msooseth Feb 10, 2026
d20beeb
Cleanup
msooseth Feb 11, 2026
b07ee28
Fixing
msooseth Feb 11, 2026
de82732
assertProps is now abst+axioms+refine
msooseth Feb 11, 2026
3ad2715
Update
msooseth Feb 12, 2026
6816fc9
Proper 2-phase
msooseth Feb 12, 2026
1f654ec
Cleanup
msooseth Feb 12, 2026
b20e92d
OK, now doing assertProps on its own as well
msooseth Feb 12, 2026
51e93d1
Better comments
msooseth Feb 12, 2026
e65f984
No more exprToSMT
msooseth Feb 12, 2026
6a55da8
Fixing testing
msooseth Feb 12, 2026
c7e543f
Cleanup
msooseth Feb 12, 2026
a9a86c8
Cleanup
msooseth Feb 12, 2026
ae8fb7f
Fixing
msooseth Feb 12, 2026
0e6403b
Cleanup
msooseth Feb 12, 2026
38eec42
Less code
msooseth Feb 12, 2026
8901ba6
I think this is better
msooseth Feb 12, 2026
327fe28
Fixing
msooseth Feb 12, 2026
560dce3
Update
msooseth Feb 12, 2026
36b9b05
Cleanup
msooseth Feb 12, 2026
fd796b0
Cleanup
msooseth Feb 12, 2026
4ef42ae
Flush output buffer via traceM
msooseth Feb 12, 2026
d6ed757
Making more progress
msooseth Feb 16, 2026
ce1bd7a
Rename
msooseth Feb 16, 2026
2d72720
Cleaner code
msooseth Feb 16, 2026
0e25ff9
OK, let's try this?
msooseth Feb 16, 2026
de03abf
Remove nonsense comment
msooseth Feb 16, 2026
7a42090
Moving code lower
msooseth Feb 16, 2026
96e0980
Cleanup
msooseth Feb 16, 2026
cb15623
None of this 1-K stuff, also correct Cex handing on 3rd phase
msooseth Feb 16, 2026
3cb47e0
Maybe cleaner
msooseth Feb 16, 2026
a2bf7f1
Rename
msooseth Feb 16, 2026
52edee6
Better naming
msooseth Feb 16, 2026
cd5333f
More cleanup
msooseth Feb 16, 2026
d9ac366
More cleanup
msooseth Feb 16, 2026
0b0d161
Cleanup
msooseth Feb 16, 2026
e0abb57
Better printing
msooseth Feb 16, 2026
bf5e111
Cleaner
msooseth Feb 16, 2026
c38dcbf
Cleanup
msooseth Feb 16, 2026
ca534eb
Cleaning up comments
msooseth Feb 16, 2026
ec81d15
Cleaner
msooseth Feb 16, 2026
bb54f86
Fix spacing
msooseth Feb 16, 2026
4c82008
Even cleaner
msooseth Feb 16, 2026
15038e8
Update
msooseth Feb 16, 2026
29acc17
Cleanup
msooseth Feb 16, 2026
c68cd6e
Moving functions, sorry!
msooseth Feb 17, 2026
5fbf561
Cleanupo
msooseth Feb 17, 2026
114b4ce
Better naming
msooseth Feb 17, 2026
1f350e5
Better naming
msooseth Feb 17, 2026
e73cfc6
Adding div/mod bounds
msooseth Feb 17, 2026
7b54eb4
More
msooseth Feb 17, 2026
3b180b9
Cleanup
msooseth Feb 17, 2026
73c1d9a
Better comments
msooseth Feb 17, 2026
7c093e4
Update
msooseth Feb 17, 2026
7c88e62
Cleanup
msooseth Feb 17, 2026
d057c91
Cleanup
msooseth Feb 17, 2026
6072b47
Cleanup
msooseth Feb 17, 2026
85dc0b4
Cleanup
msooseth Feb 17, 2026
c1ac1ce
Fixing
msooseth Feb 17, 2026
7447f0d
Update
msooseth Feb 17, 2026
66f14aa
Cleanup
msooseth Feb 17, 2026
4d775f3
Now without divmod
msooseth Feb 17, 2026
b40f875
Even less
msooseth Feb 17, 2026
94d98a8
Cleanup
msooseth Feb 17, 2026
2d4d344
Cleanup
msooseth Feb 17, 2026
9476412
Cleanup
msooseth Feb 17, 2026
d0ef06b
Update
msooseth Feb 17, 2026
b2b8b4f
Better
msooseth Feb 17, 2026
359f5dc
Better printing
msooseth Feb 17, 2026
4de3a17
Move
msooseth Feb 17, 2026
d5d2659
Update
msooseth Feb 17, 2026
05198eb
Update tests
msooseth Feb 17, 2026
0002c69
Cleanup
msooseth Feb 17, 2026
d7bdb55
Adding tests
msooseth Feb 17, 2026
36221ec
Cleanup
msooseth Feb 17, 2026
0aebdfb
Fix dumping
msooseth Feb 17, 2026
936280b
Fix dumping
msooseth Feb 17, 2026
8bef599
Better
msooseth Feb 18, 2026
706952e
Update
msooseth Feb 18, 2026
a0baa04
Better
msooseth Feb 18, 2026
ba22aac
Update
msooseth Feb 18, 2026
81c766a
Update naming
msooseth Feb 18, 2026
48bc777
Cleanup
msooseth Feb 18, 2026
2426e88
Cleanup
msooseth Feb 18, 2026
bf156b3
Fixing warning
msooseth Feb 18, 2026
2763078
Rename
msooseth Feb 18, 2026
49296dd
Fix name of file
msooseth Feb 18, 2026
503d110
Fixing cabal
msooseth Feb 18, 2026
251aef0
No need for this
msooseth Feb 18, 2026
c95d5f8
Fixing up cli test
msooseth Feb 18, 2026
0fb590c
No need for these printings
msooseth Feb 18, 2026
a4ef47e
Fixing this test
msooseth Feb 18, 2026
92df580
Rename
msooseth Feb 18, 2026
13ad8de
Fixing val
msooseth Feb 18, 2026
898fca9
Named correctly
msooseth Feb 18, 2026
1d63c63
Fixing naming
msooseth Feb 18, 2026
4e06446
Renaming
msooseth Feb 18, 2026
f3213dd
Update name
msooseth Feb 18, 2026
f087d98
Update
msooseth Feb 18, 2026
0ab6fb4
Adding test, ifxing import, fixing printing
msooseth Feb 18, 2026
1304d32
Adding the tests
msooseth Feb 18, 2026
fcb8645
Cleaner
msooseth Feb 18, 2026
1838ea7
Cleanup
msooseth Feb 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions cli/cli.hs
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ data CommonOptions = CommonOptions
, cacheDir ::Maybe String
, earlyAbort ::Bool
, mergeMaxBudget :: Int
, abstractArith ::Bool
}

commonOptions :: Parser CommonOptions
Expand Down Expand Up @@ -133,6 +134,7 @@ commonOptions = CommonOptions
<*> (optional $ strOption $ long "cache-dir" <> help "Directory to save and load RPC cache")
<*> (switch $ long "early-abort" <> help "Stop exploration immediately upon finding the first counterexample")
<*> (option auto $ long "merge-max-budget" <> showDefault <> value 100 <> help "Max instructions for speculative merge exploration during path merging")
<*> (switch $ long "abstract-arith" <> help "Use uninterpreted functions for div/mod in SMT queries (Halmos-style two-phase solving)")

data CommonExecOptions = CommonExecOptions
{ address ::Maybe Addr
Expand Down Expand Up @@ -377,6 +379,7 @@ main = do
, onlyDeployed = cOpts.onlyDeployed
, earlyAbort = cOpts.earlyAbort
, mergeMaxBudget = cOpts.mergeMaxBudget
, abstractArith = cOpts.abstractArith
} }


Expand Down
3 changes: 2 additions & 1 deletion hevm.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ library
EVM.Dapp,
EVM.Expr,
EVM.SMT,
EVM.SMT.DivModEncoding,
EVM.Solvers,
EVM.Exec,
EVM.Format,
Expand Down Expand Up @@ -270,7 +271,6 @@ common test-common
ghc-options: -threaded -with-rtsopts=-N
build-depends:
test-utils,
vector,
other-modules:
EVM.Test.Utils
EVM.Test.BlockchainTests
Expand Down Expand Up @@ -303,6 +303,7 @@ test-suite test
quickcheck-instances,
regex,
tasty-quickcheck,
vector,

-- these tests require network access so we split them into a separate test
-- suite to make it easy to skip them when running nix-build
Expand Down
2 changes: 2 additions & 0 deletions src/EVM/Effects.hs
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ data Config = Config
, onlyDeployed :: Bool
, earlyAbort :: Bool
, mergeMaxBudget :: Int -- ^ Max instructions for speculative merge exploration
, abstractArith :: Bool
}
deriving (Show, Eq)

Expand All @@ -69,6 +70,7 @@ defaultConfig = Config
, onlyDeployed = False
, earlyAbort = False
, mergeMaxBudget = 100
, abstractArith = False
}

-- Write to the console
Expand Down
Loading
Loading