Skip to content

fix(kmir): preserve symbolic parallel proving server selection#980

Draft
Stevengre wants to merge 6 commits intomasterfrom
jh/pr853-rebase-master
Draft

fix(kmir): preserve symbolic parallel proving server selection#980
Stevengre wants to merge 6 commits intomasterfrom
jh/pr853-rebase-master

Conversation

@Stevengre
Copy link
Contributor

@Stevengre Stevengre commented Mar 9, 2026

Summary

  • keep symbolic prove-rs on the Haskell-only path (KompiledSymbolic.llvm_lib_dir=None) while preserving parallel exploration by selecting KoreServer when no LLVM library is available
  • keep booster execution for LLVM-backed runs and pass KMIR_HS_ONLY_SYMBOLS through --hs-only-symbol flags when booster is used
  • add unit coverage for the no-LLVM parallel path (test_prove_parallel_uses_kore_server_without_llvm_library)
  • remove unused kompile.py symbols/locals that were failing flake8 in CI

Context

This branch rebases the PR853 experiment onto master and focuses on the symbolic-proof server selection mismatch on the rebased head.

Implementation Notes

  • _prove_parallel() now builds common server args once, then chooses BoosterServer only when llvm_library_dir exists, otherwise KoreServer.
  • HS-only booster command wiring remains limited to the booster path.
  • Type hints/casts were added in _prove.py and the new unit test so mypy passes under make check.

Testing

Automated checks run:

  • make check (passed)
  • uv run pytest -q src/tests/unit (passed, 42 passed)

Manual/targeted checks:

  • uv run pytest -q src/tests/integration/test_cli.py::test_cli_prove_rs_add_module (not passed locally: missing /Users/steven/.cache/kdist-21d0fbc/mir-semantics/haskell fixture directory)

Known Limitations / Follow-ups

  • Local integration execution in this worktree remains unsure until required kdist artifacts are available; rely on CI integration jobs for full integration validation.

jberthold and others added 4 commits March 9, 2026 12:18
Use the Haskell-only symbolic path without advertising a mismatched LLVM
library, and fall back to KoreServer for parallel proof exploration when
no proof-specific LLVM library exists.

This removes the PR853 empty-response crash on symbolic proofs without
reintroducing symbolic llvm-kompile.
@Stevengre
Copy link
Contributor Author

Added TDD-structured follow-up commits for HS-only booster wiring:\n\n- test(kmir): add hs-only symbol env wiring unit tests\n- feat(kmir): pass KMIR_HS_ONLY_SYMBOLS to kore-rpc-booster\n\nRed/green evidence:\n- Red: -> 3 AttributeError failures before wiring\n- Green: same command -> 3 passed after wiring

@Stevengre
Copy link
Contributor Author

Correction with exact refs:\n\nAdded TDD-structured follow-up commits for HS-only booster wiring:\n- 0f208ed: test(kmir): add hs-only symbol env wiring unit tests\n- 6ef9fc9: feat(kmir): pass KMIR_HS_ONLY_SYMBOLS to kore-rpc-booster\n\nRed/green evidence command:\nuv --project kmir run -- pytest kmir/src/tests/unit/test_kmir_hs_only_symbols.py -q\n- red (before wiring): 3 AttributeError failures\n- green (after wiring): 3 passed

@Stevengre Stevengre changed the title fix(kmir): avoid booster for symbolic proof definitions fix(kmir): preserve symbolic parallel proving server selection Mar 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants