Copilot 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								eb7fd9efaa 
								
							 
						 
						
							
							
								
								Add virtual translate method to solver_factory class ( #7780 )  
							
							... 
							
							
							
							* Initial plan
* Add virtual translate method to solver_factory base class and all implementations
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Add documentation for the translate method in solver_factory
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com> 
							
						 
						
							2025-08-14 11:54:34 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								b33f444545 
								
							 
						 
						
							
							
								
								add an option to register callback on quantifier instantiation  
							
							... 
							
							
							
							Suppose a user propagator encodes axioms using quantifiers and uses E-matching for instantiation. If it wants to implement a custom priority scheme or drop some instances based on internal checks it can register a callback with quantifier instantiation 
							
						 
						
							2025-08-06 21:11:55 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								fd5455422e 
								
							 
						 
						
							
							
								
								fix   #7725  - proofs are only possible if context was created with proofs enabled  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2025-07-12 09:14:23 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								35b1d09425 
								
							 
						 
						
							
							
								
								working on ho-matcher  
							
							
							
						 
						
							2025-07-08 04:50:43 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								0c5b0c3724 
								
							 
						 
						
							
							
								
								turn on ho-matcher for completion  
							
							
							
						 
						
							2025-07-07 14:08:51 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								e018b024c5 
								
							 
						 
						
							
							
								
								adding proofs to euf-completion  
							
							
							
						 
						
							2025-06-12 11:31:55 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								e1661759db 
								
							 
						 
						
							
							
								
								update version to 4.15.2  
							
							
							
						 
						
							2025-06-10 15:55:54 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								9d35a8c702 
								
							 
						 
						
							
							
								
								updates to euf-completion to  
							
							
							
						 
						
							2025-06-07 15:39:31 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								2897661bb3 
								
							 
						 
						
							
							
								
								register completion with solver  
							
							
							
						 
						
							2025-06-06 20:45:54 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								7566f088f9 
								
							 
						 
						
							
							
								
								vtable  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2025-06-06 15:02:34 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								08c4f73e32 
								
							 
						 
						
							
							
								
								add dependencies to fix build  
							
							
							
						 
						
							2025-06-06 13:02:48 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								564830ab31 
								
							 
						 
						
							
							
								
								enable conditional euf-completion with (optional) solver  
							
							... 
							
							
							
							This allows using z3 for limited E-saturation simplification.
The tactic rewrites all assertions using the E-graph induced by the equalities and instantiated equality axioms.
It does allow solving with conditionals, although this is a first inefficient cut.
The following is a sample use case that rewrites to false.
```
(declare-fun prime () Int)
(declare-fun add (Int Int) Int)
(declare-fun mul (Int Int) Int)
(declare-fun ^ (Int Int) Int)
(declare-fun sub (Int Int) Int)
(declare-fun i () Int)
(declare-fun j () Int)
(declare-fun base () Int)
(declare-fun S () (Seq Int))
(declare-fun hash ((Seq Int) Int Int Int Int) Int)
(assert (let ((a!1 (mul (seq.nth S i) (^ base (sub (sub j i) 1)))))
(let ((a!2 (mod (add (hash S base prime (add i 1) j) a!1) prime)))
  (not (= (hash S base prime i j) a!2)))))
(assert (forall ((x Int))
  (! (= (mod (mod x prime) prime) (mod x prime))
     :pattern ((mod (mod x prime) prime)))))
(assert (forall ((x Int) (y Int))
  (! (= (mod (mul x y) prime) (mod (mul (mod x prime) y) prime))
     :pattern ((mod (mul x y) prime))
     :pattern ((mod (mul (mod x prime) y) prime)))))
(assert (forall ((x Int) (y Int))
  (! (= (mod (mul x y) prime) (mod (mul x (mod y prime)) prime))
     :pattern ((mod (mul x y) prime))
     :pattern ((mod (mul x (mod y prime)) prime)))))
(assert (forall ((x Int) (y Int))
  (! (= (mod (add x y) prime) (mod (add x (mod y prime)) prime))
     :pattern ((mod (add x y) prime))
     :pattern ((mod (add x (mod y prime)) prime)))))
(assert (forall ((x Int) (y Int))
  (! (= (mod (add x y) prime) (mod (add (mod x prime) y) prime))
     :pattern ((mod (add x y) prime))
     :pattern ((mod (add (mod x prime) y) prime)))))
(assert (forall ((x Int) (y Int))
  (! (= (mul x (^ x y)) (^ x (add y 1))) :pattern ((mul x (^ x y))))))
(assert (forall ((x Int) (y Int)) (! (= (mul x y) (mul y x)) :pattern ((mul x y)))))
(assert (forall ((x Int) (y Int)) (! (= (add x y) (add y x)) :pattern ((add x y)))))
(assert (forall ((x Int) (y Int)) (! (= (mul x y) (mul y x)) :pattern ((mul x y)))))
(assert (forall ((x Int) (y Int) (z Int))
  (! (= (add x (add y z)) (add (add x y) z))
     :pattern ((add x (add y z)))
     :pattern ((add (add x y) z)))))
(assert (forall ((x Int) (y Int) (z Int))
  (! (= (mul x (mul y z)) (mul (mul x y) z))
     :pattern ((mul x (mul y z)))
     :pattern ((mul (mul x y) z)))))
(assert (forall ((x Int) (y Int) (z Int))
  (! (= (sub (sub x y) z) (sub (sub x z) y)) :pattern ((sub (sub x y) z)))))
(assert (forall ((x Int) (y Int) (z Int))
  (! (= (mul x (add y z)) (add (mul x y) (mul x z)))
     :pattern ((mul x (add y z))))))
(assert (forall ((x Int)) (! (= (sub (add x 1) 1) x) :pattern ((add x 1)))))
(assert (forall ((x Int)) (! (= (add (sub x 1) 1) x) :pattern ((sub x 1)))))
(assert (let ((a!1 (^ base (sub (sub (sub j 1) i) 1))))
(let ((a!2 (mod (add (hash S base prime (add i 1) (sub j 1))
                     (mul (seq.nth S i) a!1))
                prime)))
  (= (hash S base prime i (sub j 1)) a!2))))
(assert (let ((a!1 (add (seq.nth S (- j 1)) (mul base (hash S base prime i (sub j 1))))))
  (= (hash S base prime i j) (mod a!1 prime))))
(assert (let ((a!1 (add (seq.nth S (- j 1))
                (mul base (hash S base prime (add i 1) (sub j 1))))))
  (= (hash S base prime (add i 1) j) (mod a!1 prime))))
(apply euf-completion)
```
To use conditional rewriting you can
```
(assert (not (= 0 prime)))
```
and update axioms using modulus with prime to be of the form:
```
(=> (not (= 0 prime)) <original-body of quantifier>)
``` 
							
						 
						
							2025-06-06 11:42:31 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									LeeYoungJoon 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								0a93ff515d 
								
							 
						 
						
							
							
								
								Centralize and document TRACE tags using X-macros ( #7657 )  
							
							... 
							
							
							
							* Introduce X-macro-based trace tag definition
- Created trace_tags.def to centralize TRACE tag definitions
- Each tag includes a symbolic name and description
- Set up enum class TraceTag for type-safe usage in TRACE macros
* Add script to generate Markdown documentation from trace_tags.def
- Python script parses trace_tags.def and outputs trace_tags.md
* Refactor TRACE_NEW to prepend TraceTag and pass enum to is_trace_enabled
* trace: improve trace tag handling system with hierarchical tagging
- Introduce hierarchical tag-class structure: enabling a tag class activates all child tags
- Unify TRACE, STRACE, SCTRACE, and CTRACE under enum TraceTag
- Implement initial version of trace_tag.def using X(tag, tag_class, description)
  (class names and descriptions to be refined in a future update)
* trace: replace all string-based TRACE tags with enum TraceTag
- Migrated all TRACE, STRACE, SCTRACE, and CTRACE macros to use enum TraceTag values instead of raw string literals
* trace : add cstring header
* trace : Add Markdown documentation generation from trace_tags.def via mk_api_doc.py
* trace : rename macro parameter 'class' to 'tag_class' and remove Unicode comment in trace_tags.h.
* trace : Add TODO comment for future implementation of tag_class activation
* trace : Disable code related to tag_class until implementation is ready (#7663 ). 
							
						 
						
							2025-05-28 14:31:25 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								47c12f9a18 
								
							 
						 
						
							
							
								
								refactoring to use for-range  
							
							
							
						 
						
							2025-05-15 10:57:46 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								7a302239c2 
								
							 
						 
						
							
							
								
								fix   #7630  
							
							
							
						 
						
							2025-04-26 11:40:48 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								d581dc1db4 
								
							 
						 
						
							
							
								
								#7630  propagate parameters on lazy tactics  
							
							
							
						 
						
							2025-04-26 11:22:16 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								1510b3112e 
								
							 
						 
						
							
							
								
								fix build warnings  
							
							
							
						 
						
							2025-04-14 10:34:09 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								93cf989b78 
								
							 
						 
						
							
							
								
								household chores - move to iterators  
							
							
							
						 
						
							2025-03-24 12:36:13 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								03f18c148e 
								
							 
						 
						
							
							
								
								some more copilot aided updated  
							
							
							
						 
						
							2025-03-19 08:57:32 -10:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									LeeYoungJoon 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								c1719e9ffa 
								
							 
						 
						
							
							
								
								Fix : typo-in-simplify-tactic ( #7587 )  
							
							
							
						 
						
							2025-03-18 13:43:12 -10:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								2e2a2e28df 
								
							 
						 
						
							
							
								
								use iterators on goal and other refactoring  
							
							
							
						 
						
							2025-03-16 20:04:04 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								80f00f191a 
								
							 
						 
						
							
							
								
								fix   #7572  and  fix   #7574  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2025-03-07 10:46:29 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								99cbfa715c 
								
							 
						 
						
							
							
								
								Add a sharp throttle to lia2card tactic to control overhead in default tactic mode  
							
							... 
							
							
							
							lia2card was added to qfuflia tactic based on a user scenario, but it overshot: lia2card is by default harmful. It is here tamed to only convert binary variables and throttle on nested ite terms 
							
						 
						
							2025-02-02 13:58:51 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								0ef26983fc 
								
							 
						 
						
							
							
								
								release  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2025-01-31 17:31:37 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								aea4490fb2 
								
							 
						 
						
							
							
								
								throttle overhead with lia2card  
							
							
							
						 
						
							2025-01-31 12:36:59 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								22e4054674 
								
							 
						 
						
							
							
								
								add clausal lookahead to arithmetic solver as part of portfolio  
							
							... 
							
							
							
							have legacy qfbv-sls solver use nnf pre-processing. It relies on it for correctness of the score updates. 
							
						 
						
							2025-01-20 16:16:46 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								be5a16cc4d 
								
							 
						 
						
							
							
								
								fixup scoring function for sle and ule  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2025-01-05 19:05:33 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								05f166f736 
								
							 
						 
						
							
							
								
								add py_value to selected classes in python bindings, add mode for input-assertion based lookahead solving  
							
							
							
						 
						
							2025-01-04 13:40:49 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								5eb71c3be6 
								
							 
						 
						
							
							
								
								integrate lookahead v1 into repair loop  
							
							... 
							
							
							
							this ports some functionality from lookahead solver for qfbv-sls into sls-smt. 
							
						 
						
							2024-12-26 17:49:30 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								8dec84110b 
								
							 
						 
						
							
							
								
								add lia2card tactic as default  #7483  
							
							
							
						 
						
							2024-12-21 13:11:22 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								87f7a20e14 
								
							 
						 
						
							
							
								
								Add (updated and general) solve_for functionality for arithmetic, add congruence_explain to API to retrieve explanation for why two terms are congruent Tweak handling of smt.qi.max_instantations  
							
							... 
							
							
							
							Add API solve_for(vars).
It takes a list of variables and returns a triangular solved form for the variables.
Currently for arithmetic. The solved form is a list with elements of the form (var, term, guard).
Variables solved in the tail of the list do not occur before in the list.
For example it can return a solution [(x, z, True), (y, x + z, True)] because first x was solved to be z,
then y was solved to be x + z which is the same as 2z.
Add congruent_explain that retuns an explanation for congruent terms.
Terms congruent in the final state after calling SimpleSolver().check() can be queried for
an explanation, i.e., a list of literals that collectively entail the equality under congruence closure.
The literals are asserted in the final state of search.
Adjust smt_context cancellation for the smt.qi.max_instantiations parameter.
It gets checked when qi-queue elements are consumed.
Prior it was checked on insertion time, which didn't allow for processing as many
instantations as there were in the queue. Moreover, it would not cancel the solver.
So it would keep adding instantations to the queue when it was full / depleted the
configuration limit. 
							
						 
						
							2024-12-19 23:27:57 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								e6feb8423a 
								
							 
						 
						
							
							
								
								sls: fix bug where unsat remains empty after a literal is flipped. The new satisfiable subset should be checked  
							
							... 
							
							
							
							refined interface between solvers to expose fixed variables for tabu objectives 
							
						 
						
							2024-12-01 18:35:56 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nuno Lopes 
								
							 
						 
						
							
							
							
							
								
							
							
								ab1be5c06e 
								
							 
						 
						
							
							
								
								internalize the reduce_args_tactic to reduce the number of heap allocations  
							
							
							
						 
						
							2024-11-27 12:35:40 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								71bad7159b 
								
							 
						 
						
							
							
								
								#7418  - circumvent use of timer threads to make WASM integration of z3 easier  
							
							... 
							
							
							
							The scoped_timer uses a std::therad. Spawning this thread fails in cases of WASM.
Instead of adapting builds and using async features at the level of WASM and the client, we expose a specialized version of z3 that doesn't use threads at all, neither for solvers nor for timers.
The tradeoff is that the periodic poll that checks for timeout directly queries the global clock each time.
We characterize it as based on polling. 
							
						 
						
							2024-11-21 11:20:05 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								750dd68a14 
								
							 
						 
						
							
							
								
								enable par_then and par_or even if single threaded - fall back to sequential mode  
							
							
							
						 
						
							2024-11-16 12:29:22 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								abd16740ce 
								
							 
						 
						
							
							
								
								inherit more exceptions from std::exception  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2024-11-04 13:52:14 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								a38bf3e22f 
								
							 
						 
						
							
							
								
								port to inherit from std::exception  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2024-11-04 13:25:14 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								407bad3693 
								
							 
						 
						
							
							
								
								add noexcept  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2024-11-04 11:21:55 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								92065462b4 
								
							 
						 
						
							
							
								
								use std::exception as base class to z3_exception  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2024-11-04 11:08:15 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								91dc02d862 
								
							 
						 
						
							
							
								
								Sls ( #7439 )  
							
							... 
							
							
							
							* reorg sls
* sls
* na
* split into base and plugin
* move sat_params to params directory, add op_def repair options
* move sat_ddfw to sls, initiate sls-bv-plugin
* porting bv-sls
* adding basic plugin
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* add sls-sms solver
* bv updates
* updated dependencies
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* updated dependencies
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* use portable ptr-initializer
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* move definitions to cpp
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* use template<> syntax
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix compiler errors for gcc
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* Bump docker/build-push-action from 6.0.0 to 6.1.0 (#7265 )
Bumps [docker/build-push-action](https://github.com/docker/build-push-action ) from 6.0.0 to 6.1.0.
- [Release notes](https://github.com/docker/build-push-action/releases )
- [Commits](https://github.com/docker/build-push-action/compare/v6.0.0...v6.1.0 )
---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* set clean shutdown for local search and re-enable local search when it parallelizes with PB solver
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* Bump docker/build-push-action from 6.1.0 to 6.2.0 (#7269 )
Bumps [docker/build-push-action](https://github.com/docker/build-push-action ) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/docker/build-push-action/releases )
- [Commits](https://github.com/docker/build-push-action/compare/v6.1.0...v6.2.0 )
---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Fix a comment for Z3_solver_from_string (#7271 )
Z3_solver_from_string accepts a string buffer with solver
assertions, not a string buffer with filename.
* trigger the build with a comment change
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* remove macro distinction #7270 
* fix  #7268 
* kludge to address #7232 , probably superseeded by planned revision to setup/pypi
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* add new ema invariant (#7288 )
* Bump docker/build-push-action from 6.2.0 to 6.3.0 (#7280 )
Bumps [docker/build-push-action](https://github.com/docker/build-push-action ) from 6.2.0 to 6.3.0.
- [Release notes](https://github.com/docker/build-push-action/releases )
- [Commits](https://github.com/docker/build-push-action/compare/v6.2.0...v6.3.0 )
---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* merge
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix unit test build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* remove shared attribute
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* remove stale files
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix build of unit test
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fixes and rename sls-cc to sls-euf-plugin
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* testing / debugging arithmetic
* updates to repair logic, mainly arithmetic
* fixes to sls
* evolve sls arith
* bugfixes in sls-arith
* fix typo
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* bug fixes
* Update sls_test.cpp
* fixes
* fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* refactor basic plugin and clause generation
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fixes to ite and other
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* updates
* update
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix division by 0
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* disable fail restart
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* disable tabu when using reset moves
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* update sls_test
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* add factoring
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fixes to semantics
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* re-add tabu override
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* generalize factoring
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix bug
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* remove restart
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* disable tabu in fallback modes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* localize impact of factoring
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* delay factoring
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* flatten products
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* perform lookahead update + nested mul
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* disable nested mul
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* disable nested mul, use non-lookahead
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* make reset updates recursive
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* include linear moves
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* include 5% reset probability
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* separate linear update
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* separate linear update remove 20% threshold
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* remove linear opt
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* enable multiplier expansion, enable linear move
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* use unit coefficients for muls
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* disable non-tabu version of find_nl_moves
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* remove coefficient from multiplication definition
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* reorg monomials
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* add smt params to path
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* avoid negative reward
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* use reward as proxy for score
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* use reward as proxy for score
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* use exponential decay with breaks
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* use std::pow
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fixes to bv
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fixes to fixed
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fixup repairs
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* reserve for multiplication
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fixing repair
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* include bounds checks in set random
* na
* fixes to mul
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix mul inverse
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fixes to handling signed operators
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* logging and fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* gcm
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* peli
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* Add .env to gitignore to prevent environment files from being tracked
* Add m_num_pelis counter to stats in sls_context
* Remove m_num_pelis member from stats struct in sls_context
* Enhance bv_sls_eval with improved repair and logging, refine is_bv_predicate in sls_bv_plugin
* Remove verbose logging in register_term function of sls_basic_plugin and fix formatting in sls_context
* Rename source files for consistency in `src/ast/sls` directory
* Refactor bv_sls files to sls_bv with namespace and class name adjustments
* Remove typename from member declarations in bv_fixed class
* fixing conca
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* Add initial implementation of bit-vector SLS evaluation module in bv_sls_eval.cpp
* Remove bv_sls_eval.cpp as part of code cleanup and refactoring
* Refactor alignment of member variables in bv_plugin of sls namespace
* Rename SLS engine related files to reflect their specific use for bit-vectors
* Refactor SLS engine and evaluator components for bit-vector specifics and adjust memory manager alignment
* Enhance bv_eval with use_current, lookahead strategies, and randomization improvements in SLS module
* Refactor verbose logging and fix logic in range adjustment functions in sls bv modules
* Remove commented verbose output in sls_bv_plugin.cpp during repair process
* Add early return after setting fixed subterms in sls_bv_fixed.cpp
* Remove redundant return statement in sls_bv_fixed.cpp
* fixes to new value propagation
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* Refactor sls bv evaluation and fix logic checks for bit operations
* Add array plugin support and update bv_eval in ast_sls module
* Add array, model value, and user sort plugins to SLS module with enhancements in array propagation logic
* Refactor array_plugin in sls to improve handling of select expressions with multiple arguments
* Enhance array plugin with early termination and propagation verification, and improve euf and user sort plugins with propagation adjustments and debugging enhancements
* Add support for handling 'distinct' expressions in SLS context and user sort plugin
* Remove model value and user sort plugins from SLS theory
* replace user plugin by euf plugin
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* remove extra file
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* Refactor handling of term registration and enhance distinct handling in sls_euf_plugin
* Add TODO list for enhancements in sls_euf_plugin.cpp
* add incremental mode
* updated package
* fix sls build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* break sls build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix build
* break build again
* fix build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fixing incremental
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* avoid units
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fixup handling of disequality propagation
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fx
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* recover shift-weight loop
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* alternate
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* throttle save model
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* allow for alternating
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix test for new signature of flip
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* bug fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* restore use of value_hash
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* adding dt plugin
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* adt
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* dt updates
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* added cycle detection
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* updated sls-datatype
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* Refactor context management, improve datatype handling, and enhance logging in sls plugins.
* axiomatize dt
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* add missing factory plugins to model
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fixup finite domain search
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fixup finite domain search
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* redo dfs
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fixing model construction for underspecified operators
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fixes to occurs check
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fixup interpretation building
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* saturate worklist
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* delay distinct axiom
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* adding model-based sls for datatatypes
* update the interface in sls_solver to transfer phase between SAT and SLS
* add value transfer option
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* rename aux functions
* Track shared variables using a unit set
* debugging parallel integration
* fix dirty flag setting
* update log level
* add plugin to smt_context, factor out sls_smt_plugin functionality.
* bug fixes
* fixes
* use common infrastructure for sls-smt
* fix build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* remove declaration of context
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* add virtual destructor
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* build warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* reorder inclusion order to define smt_context before theory_sls
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* change namespace for single threaded
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* check delayed eqs before nla
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* use independent completion flag for sls to avoid conflating with genuine cancelation
* validate sls-arith lemmas
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* bugfixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* add intblast to legacy SMT solver
* fixup model generation for theory_intblast
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* mk_value needs to accept more cases where integer expression doesn't evalate
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* use th-axioms to track origins of assertions
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* add missing operator handling for bitwise operators
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* add missing operator handling for bitwise operators
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* normalizing inequality
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* add virtual destructor
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* rework elim_unconstrained
* fix non-termination
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* use glue as computed without adjustment
* update model generation to fix model bug
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fixes to model construction
* remove package and package lock
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix build warning
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* use original gai
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
---------
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Sergey Bronnikov <estetus@gmail.com>
Co-authored-by: Lev Nachmanson <levnach@hotmail.com>
Co-authored-by: LiviaSun <33578456+ChuyueSun@users.noreply.github.com> 
							
						 
						
							2024-11-02 12:32:48 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nuno Lopes 
								
							 
						 
						
							
							
							
							
								
							
							
								3586b613f7 
								
							 
						 
						
							
							
								
								remove default destructors  
							
							
							
						 
						
							2024-10-02 22:20:12 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								826835fd7c 
								
							 
						 
						
							
							
								
								fixes to build warnings  
							
							
							
						 
						
							2024-09-30 08:23:31 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								11bb19d99b 
								
							 
						 
						
							
							
								
								make default tactic cases lazy  
							
							
							
						 
						
							2024-09-27 15:11:43 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								40b0210dda 
								
							 
						 
						
							
							
								
								fixes to lazy tactic uses  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2024-09-27 14:33:09 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								01cf0427b4 
								
							 
						 
						
							
							
								
								fix   #7404 , relates to  #7400 .  
							
							
							
						 
						
							2024-09-27 11:36:10 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								5a6dc18d0d 
								
							 
						 
						
							
							
								
								Override convert_initialize_value method in bit_blaster_model_converter.cpp  
							
							
							
						 
						
							2024-09-23 13:46:50 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nuno Lopes 
								
							 
						 
						
							
							
							
							
								
							
							
								737c2208fa 
								
							 
						 
						
							
							
								
								delete more default constructors  
							
							... 
							
							
							
							reduces code size by 0.1% 
							
						 
						
							2024-09-23 12:59:04 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nuno Lopes 
								
							 
						 
						
							
							
							
							
								
							
							
								a62fede64b 
								
							 
						 
						
							
							
								
								remove a few default constructors  
							
							
							
						 
						
							2024-09-23 08:17:58 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								a9f8ec1bcb 
								
							 
						 
						
							
							
								
								updated handling of value initialization for bit-vectors  
							
							
							
						 
						
							2024-09-22 21:30:11 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								0c48a50d59 
								
							 
						 
						
							
							
								
								Add support for initializing variable values in solver and optimize contexts in Z3  
							
							
							
						 
						
							2024-09-20 18:28:26 +03:00