The grammar keeps candidates valid. The semantic target still stalls structured search. A bounded solver can then take over and either finish the witness or report that no witness exists inside the grammar's range.
The grammar fixes syntax, but it does not automatically solve the remaining value constraint. The hybrid lane becomes useful only after structured search has already kept the candidate inside the language. This lab deliberately uses a smaller grammar than Tutorial 36 so the handoff stays easy to see.
Run target 42 first. Then switch to 97. The first target has a witness inside the grammar range, while the second does not. That contrast shows what a bounded solver can and cannot honestly claim.
Raw bytes: any 3 printable chars Grammar G: Expr ::= Digit Op Digit Digit ::= 1 | 2 | ... | 9 Op ::= + | * | /
Bad(x) holds if: 1. x parses as Digit Op Digit 2. x reaches semantic evaluation 3. op = * 4. a * b = target
not run yet
not run yet
not run yet