feat/blase: Existential quantifier elimination for bitvector literals#1725
feat/blase: Existential quantifier elimination for bitvector literals#1725
Conversation
|
bv_decide solved 0 theorems. |
|
After working on this more, I come to the conclusion that I need to be able to manipulate a different encoding of automata, where the next state is not necessarily a function of the next state, but a mere relation. So, instead of encoding structure FSM (arity : Type) : Type 1 where
...
nextStateCirc : α → Circuit (α ⊕ arity) -- External part in lean, internal part in CircuitWe should instead have: structure FSM (arity : Type) : Type 1 where
...
nextStatesCirc : Circuit (α ⊕ arity ⊕ α) -- This is now fully in Circuit.This will me us to build an automata for nondeterministic state transition. But the key is that there is no longer anything at the Lean-level, but rather, the entire next state computation lives as a single circuit. |
|
bv_decide solved 0 theorems. |
This PR adds existential variable quantifier elimination. The idea is to convert to a NFA, which is then determinised to a DFA. This gives us quantifier elimination, with the expected exponential blowup at the NFA -> DFA conversion