Replies: 1 comment
-
| 
         moved to #7965  | 
  
Beta Was this translation helpful? Give feedback.
                  
                    0 replies
                  
                
            
  
    Sign up for free
    to join this conversation on GitHub.
    Already have an account?
    Sign in to comment
  
        
    
Uh oh!
There was an error while loading. Please reload this page.
-
I've encountered unexpected behavior when using the incremental solver (push/pop) on a set of assertions that were parsed from an SMT-LIB2 string.
A problem that is clearly satisfiable returns unsat (or unknown) when solver.check() is called within a push/pop block. However, if the push() and pop() calls are removed, the solver correctly returns sat. This suggests a potential issue with how parsed assertions interact with the incremental solving context.
The following self-contained Python script demonstrates the issue. The SMT logic defines a function that should be satisfiable for the input arg1 == 2.
Expected Behavior:
The script should successfully find a model where arg1 = 2. The expected output is:
--- Performing check within push/pop block ---
✅ SAT: Solver found a solution as expected.
Actual Behavior:
The script reports that a solution could not be found. The actual output is:
--- Performing check within push/pop block ---
❌ UNSAT/UNKNOWN: Solver failed to find a solution.
The core issue is that the problem is satisfiable, but solver.check() fails only when used incrementally on the parsed assertions.
Could you please clarify if this is intended behavior or if this might be a bug?
Beta Was this translation helpful? Give feedback.
All reactions