Skip to content

Conversation

@georgerennie
Copy link
Contributor

@georgerennie georgerennie commented Nov 29, 2025

Fixes #1906. This adds Valaig as a dependency and replaces the debugDumpAiger config option with solveRIC3. There are many sorries still on this code path and certificates aren't checked yet, but this should at least allow getting some performance numbers. I'm not particularly convinced yet that there aren't bugs here, so please let me know if you see weird behaviour!

This assumes you have rIC3 installed an on your path, and defaults to solving with the single threaded ic3 engine currently.

@georgerennie georgerennie changed the title feat: Add Valaig package for Aiger solving in Blase feat: add Valaig package for Aiger solving in Blase Nov 29, 2025
@bollu
Copy link
Collaborator

bollu commented Dec 1, 2025

I asked for two changes. Overall, this is fantastic! I want to use if-then-else instead of early returns to make control flow super duper obvious, and secondly, I want to not use sorry, and instead just use axioms.

* This adds Valaig as a dependency and replaces the debugDumpAiger with
  externalSolver/externalSolverConfig

* This backend is not yet verified
@georgerennie
Copy link
Contributor Author

I've pushed a new version that uses a load of changes to Valaig, the main differences being:

  • There are now no sorries in the lowering to Aiger! This is just proofs of structural properties of the Aig however, the semantic preservation is still to come
  • The conversion from Blase's representation to Valaig's is simpler, using a new fromStd method in Valaig that just requires Blase to provide information about which atoms are inputs/latches
  • The config option has changed to externalSolver to enable an external solver, and externalSolverConfig to set the config. This currently defaults to rIC3's ic3 engine with a 5s timeout and requires rIC3 to be installed on the machine. externalSolver defaults to false so must be set to true to enable this

@bollu
Copy link
Collaborator

bollu commented Dec 18, 2025

Awesome! @georgerennie, hit merge :)

@georgerennie georgerennie enabled auto-merge (squash) December 18, 2025 14:51
@georgerennie georgerennie merged commit 402675a into main Dec 18, 2025
21 checks passed
@georgerennie georgerennie deleted the george/valaig branch December 18, 2025 15:18
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.

blase/cav26: Allow invoking an AIGER solver (e.g. rIC3 from within Lean)

3 participants