-
Notifications
You must be signed in to change notification settings - Fork 12
Skip calling kompile
when doing kontrol build
#977
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
Labels
enhancement
New feature or request
Comments
This was referenced Mar 7, 2025
This was referenced Mar 14, 2025
automergerpr-permission-manager bot
pushed a commit
to runtimeverification/k
that referenced
this issue
Mar 14, 2025
This PR factors out the ability to add KAST level modules to the RPC server via `CTermSymbolic`, so that the user doesn't need to manually do the conversions needed for adding such modules. The `APRProver` is refactored to use this new `CTermSymbolic.add_module` as well. This is part of runtimeverification/kontrol#977, and blocking runtimeverification/kontrol#979.
This was referenced Mar 24, 2025
automergerpr-permission-manager bot
pushed a commit
to runtimeverification/k
that referenced
this issue
Mar 24, 2025
Part of: runtimeverification/kontrol#977 Currently, `kprove` does not allow including new semantic rules in the definition that is being proven, only claims and `simplification` rules. This change allows the user to set a flag `--allow-new-rules` which disables this check. The intention is for it to be used with `--dry-run`, so that `kprove ...` can be used just to parse some modules basically. In pyk, we add `--allow-new-rules` to `KProve.parse_module(...)` invocation, so that it can parse new modules that introduce semantic rules. This enables us to use those new rules in the haskell backend booster when doing proofs with Kontrol, which is key to loading loop invariants dynamically to support runtimeverification/kontrol#977.
This was referenced Mar 25, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Currently, when working with a Kontorl project, every change to the Soldiity code results in having to call
kompile
again. This is because we generate K code representing sugar for that specific contract and use that sugar in the proofs. In general, this isn't really necessary, we only are doing this to introduce macros for prettier syntax, and it slows down development of Kontrol proofs quite a bit.We should:
--no-aux-lemmas
and--keccak-lemmas
), so they don't need to be included atkontrol build ...
time. Prebuild optimized definition #1002kontrol prove ...
, and extending it to be included in all commands which use the RPC server. Also minor cleanups inkontrol build ...
options parsing: Update/generalize option to include lemmas at prove time #979.--requires ... --module-imports ...
we could also have fasterkontrol build ...
time by just using one of the prebuilt base modules directly?deadcode src/
gen_bin_runtime
,bin_runtime
,solc_to_k
, etc... are used for anything except testing at this point. So they can probably be removed and then the repo updated/simplified quite a bit without them. Removekontrol solc-to-k ...
and related deadcode #1005kontrol prove ... --lemmas LEMMAS-FILE:LEMMAS-MODULE
(renamed from--extra-module
).The text was updated successfully, but these errors were encountered: