Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								7d585b5cfd 
								
							 
						 
						
							
							
								
								fix build  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2025-10-18 13:30:46 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								43d40ac142 
								
							 
						 
						
							
							
								
								revise axiom instantiation scheme for finite-sets  
							
							... 
							
							
							
							Instead of asserting theory axioms lazily we create them on the fly and allow propagation eagerly.
The approach uses a waterfall model as follows:
- terms are created: they are inserted into an index for (set.in x S) axiom creation.
- two terms are merged by an equality.
  Loop over all new opportunities for axiom instantiation
  New axioms are added to a queue of recently created axioms.
- an atomic formula was asserted by the SAT solver.
  Update the watch list to find new propagations.
During propagation recently created axioms are either inserted into a propagation queue, or inserted into a watch list.
They are inserted into a propagation queue all or all but one literal is assigned to false.
They are inserted into a watch list if at least two literals are unassigned
They are dropped if the axiom contains a literal that is assigned to true
The propagation queue is processed by by asserting the theory axiom to the core.
Also add some elementary statistics.
A breaking change is to change the datatype for undo-trail in smt_context to not use a custom data-structure.
This can likely cause regressions. For example, the region allocator now comes from the stack_trail instead of being
owned within smt_context with a different declaration order. smt_context could crash during destruction or maybe even pop.
We take the risk as the change is overdue.
Add swap method to ref_vector. 
							
						 
						
							2025-10-18 12:08:39 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								6173a0d025 
								
							 
						 
						
							
							
								
								propagate value initialization to atoms  
							
							
							
						 
						
							2025-09-24 11:01:24 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								ce53e06e29 
								
							 
						 
						
							
							
								
								Par ( #7945 )  
							
							... 
							
							
							
							* port parallel
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* updates
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* update smt-parallel
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* cleanup
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* neat
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* configuration parameter renaming
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* config parameters
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
---------
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2025-09-21 10:11:04 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nuno Lopes 
								
							 
						 
						
							
							
							
							
								
							
							
								c350ddf990 
								
							 
						 
						
							
							
								
								remove a few useless dynamic casts  
							
							
							
						 
						
							2025-09-13 21:06:55 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								e2e54527db 
								
							 
						 
						
							
							
								
								remove trace that accesses stale data  #7668  
							
							
							
						 
						
							2025-06-02 08:58:35 +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 
								
							 
						 
						
							
							
							
							
								
							
							
								f6fbeda9d7 
								
							 
						 
						
							
							
								
								fix   #7629  
							
							
							
						 
						
							2025-04-23 15:22:44 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								fa605454fb 
								
							 
						 
						
							
							
								
								fix crash reported by Nikhil on F* due to unhandled exception while using the rewriter during search  
							
							
							
						 
						
							2025-01-28 16:27:28 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								a941f5ae84 
								
							 
						 
						
							
							
								
								reset m_conflict indicator on sls model  
							
							
							
						 
						
							2025-01-15 20:56:44 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								557c01a0e5 
								
							 
						 
						
							
							
								
								fix   #7499  - add another way to avoid adding user-defined functions to models if user don't want it  
							
							... 
							
							
							
							- you can already do model.user_functions=false
- now you can also specify smtlib2_compliant (globally) and get smtlib2 behavior 
							
						 
						
							2025-01-15 19:52:04 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								8c5abdf818 
								
							 
						 
						
							
							
								
								Can's fix to relevancy propagation  
							
							
							
						 
						
							2025-01-14 08:14:53 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								da6a5facca 
								
							 
						 
						
							
							
								
								revert change to setup_context that delays it until there are assertions  
							
							
							
						 
						
							2024-12-21 11:53:46 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								db9f45dfec 
								
							 
						 
						
							
							
								
								set relevancy = 0 in auto-config mode when there are bit-vectors and no quantifiers,  #7484  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2024-12-20 18:10:46 +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 
								
							 
						 
						
							
							
							
							
								
							
							
								a17d4e68eb 
								
							 
						 
						
							
							
								
								bugfix to elim_uncnstr to ensure nodes are created. Prepare smt_internalizer to replay unit literals  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2024-12-04 15:32:15 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								05e053247d 
								
							 
						 
						
							
							
								
								add facility to solve for a linear term over API  
							
							
							
						 
						
							2024-11-30 09:34:27 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nuno Lopes 
								
							 
						 
						
							
							
							
							
								
							
							
								1ccfba6a91 
								
							 
						 
						
							
							
								
								remove unreachble code  
							
							
							
						 
						
							2024-11-27 12:09:16 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								1957b4d991 
								
							 
						 
						
							
							
								
								fix reporting on cancelation when based on cancel flag  
							
							
							
						 
						
							2024-11-02 12:48:12 -07: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 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								6bd46b0922 
								
							 
						 
						
							
							
								
								fix   #7363 . Replay relevancy on unit literals that are re-asserted during backtracking.  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2024-10-08 19:40:37 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								2c94a3a1b3 
								
							 
						 
						
							
							
								
								fix build warnings  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2024-09-30 13:09:01 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								a9f8ec1bcb 
								
							 
						 
						
							
							
								
								updated handling of value initialization for bit-vectors  
							
							
							
						 
						
							2024-09-22 21:30:11 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								48712b4f60 
								
							 
						 
						
							
							
								
								Add initial value setting for variables in Z3 API, solver, and optimize modules  
							
							
							
						 
						
							2024-09-18 16:13:15 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								a1bcf136a6 
								
							 
						 
						
							
							
								
								fix build  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2024-08-30 17:34:54 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								01a419546f 
								
							 
						 
						
							
							
								
								#7362  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2024-08-30 14:35:37 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								349ebd0a5b 
								
							 
						 
						
							
							
								
								#7344  
							
							
							
						 
						
							2024-08-26 14:22:28 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								52f8eb21fb 
								
							 
						 
						
							
							
								
								#7255   #7328  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2024-08-03 09:39:19 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								bc8fa67afc 
								
							 
						 
						
							
							
								
								#7255   #7328  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2024-08-03 09:37:14 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								e820701f9d 
								
							 
						 
						
							
							
								
								fix   #7107  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2024-01-31 15:38:10 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								1710fe4927 
								
							 
						 
						
							
							
								
								use iterator shortcut  
							
							
							
						 
						
							2023-11-18 09:52:58 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Clemens Eisenhofer 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								e7c17e68b8 
								
							 
						 
						
							
							
								
								Fixed next_split call in pop ( #6966 )  
							
							... 
							
							
							
							* Give users ability to see if propagation failed
* Skip propagations in the new core if they are already satisfied
* Fix registration in final
* Don't make it too complicated...
* Fixed next_split when called in pop
Made delay_units available even without quantifiers
* Missing push calls before "decide"-callback 
							
						 
						
							2023-10-28 12:46:43 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								61319ffd85 
								
							 
						 
						
							
							
								
								cache is_shared information in the enode  
							
							... 
							
							
							
							observed perf overhead for QF_NIA is that assume_eqs in theory_lra incurs significant overhead when calling is_relevant_and_shared. The call to context::is_shared and the loop checking for beta redexes is a main bottleneck. The bottleneck is avoided by caching the result if is_shared inside the enode. It is invalidated for every merge/unmerge. 
							
						 
						
							2023-09-23 17:19:06 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nuno Lopes 
								
							 
						 
						
							
							
							
							
								
							
							
								3b546b2348 
								
							 
						 
						
							
							
								
								smt_context: we can't assert that the resource limits were exceeded on cancel_exception  
							
							... 
							
							
							
							It happens sometimes that e.g. the internalizer goes above the soft memory limit
But since it's only by a small amount, when the exception propagates back to the context, some stuff
has been freed already and we are not longer above the memory threshold
Just delete these asserts 
							
						 
						
							2023-08-20 10:34:28 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								4637339091 
								
							 
						 
						
							
							
								
								update model validate to include arithmetic  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2023-08-03 15:51:29 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								adad468cd7 
								
							 
						 
						
							
							
								
								allow copy within a user scope  #6827  
							
							... 
							
							
							
							this will allow copying the solver state within a scope.
The new solver state has its state at level 0. It is not possible to pop scopes from the new solver (you can still pop scopes from the original solver). The reason for this semantics is the relative difficulty of implementing (getting it right) of a state copy that preserves scopes. 
							
						 
						
							2023-07-31 19:46:08 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								4a9c4ca2ce 
								
							 
						 
						
							
							
								
								initialize poly solver in incremental mode  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2023-07-13 14:12:29 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								df77541aae 
								
							 
						 
						
							
							
								
								#6758  
							
							... 
							
							
							
							check-assumptions with compound formulas create fresh proxy variables both during compilation to internal format and for the assumptions. These fresh variables may occur in lemmas that are created during search. The lemmas are garbage for future check-sats, but the solver needs to be allowed to invoke GC. Adding a GC call before a check-sat with assumptions allows removing some lemmas every time a new assumptions are used. Eager GC when using assumptions is used elsewhere, for example in cube&conquer scenarios where lemmas learned from one set of assumptions are less likely to be useful for other assumptions.
With the GC invocation memory grows at a lesser pace. However, it is not entirely free of memory increases. To avoid memory bloat, have the solver pre-compile the assumptions by defining them as propositional variables, add assertions that the propositional variables are equivalent to the compound formulas and use the propositional variables as assumptions. The same propositional variables come with no extra overhead when invoking check-assumptions. The lemmas are then over the same fixed vocabulary. It is generally a good idea to recycle useful lemmas during the enumeration pass. 
							
						 
						
							2023-06-18 16:21:41 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Clemens Eisenhofer 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								82667bd86b 
								
							 
						 
						
							
							
								
								Fix UP's decide callback ( #6707 )  
							
							... 
							
							
							
							* Query Boolean Assignment in the UP
* UP's decide ref arguments => next_split
* Fixed wrapper
* More fixes 
							
						 
						
							2023-06-02 09:52:54 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								5e1869d8eb 
								
							 
						 
						
							
							
								
								fix   #6734  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2023-05-26 09:48:58 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								7368f9f7d3 
								
							 
						 
						
							
							
								
								increase build version, better propagation in euf-egraph, handle assumptions in sat.smt  
							
							... 
							
							
							
							- increase build version to 4.12.1. This prepares updated release for MacOs-11 build on x86
- move literal propagation mode in euf-egraph to a callback and traversal of equivalence class. Track antecedent by newest equality instead of root. This makes equality propagation to literals have similar behavior as in legacy solver and appears to result in a speedup (10% fewer conflicts on QF_UF/QG-classification/qg5/iso_icl478.smt2 in preliminary testing)
- fix interaction of pre-processing and assumptions. Pre-processing has to freeze assumption literals so they don't get eliminated. This is similar to dependencies that are already frozen. 
							
						 
						
							2023-01-17 14:07:07 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nuno Lopes 
								
							 
						 
						
							
							
							
							
								
							
							
								47324af210 
								
							 
						 
						
							
							
								
								be nicer when memout is reached in SMT internalize: return undef rather than crashing  
							
							
							
						 
						
							2022-12-29 11:08:57 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								fe8034731d 
								
							 
						 
						
							
							
								
								fix   #6501  
							
							
							
						 
						
							2022-12-19 21:02:55 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								0a28bacd0f 
								
							 
						 
						
							
							
								
								remove debug out  
							
							
							
						 
						
							2022-11-23 16:42:36 +07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								6188c536ef 
								
							 
						 
						
							
							
								
								add logging of propagations to smt core  
							
							... 
							
							
							
							log theory propagations with annotation "smt".
It allows tracking theory propagations (when used in conflicts) in the clause logs similar to the new core. 
							
						 
						
							2022-11-23 11:37:23 +07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								93e1db0b0b 
								
							 
						 
						
							
							
								
								fix   #6398  
							
							
							
						 
						
							2022-10-13 11:16:14 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nuno Lopes 
								
							 
						 
						
							
							
							
							
								
							
							
								16ef89905d 
								
							 
						 
						
							
							
								
								fix infinite loop in internalize  
							
							
							
						 
						
							2022-09-14 11:50:53 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								34969b71ee 
								
							 
						 
						
							
							
								
								#6340  again - reduce new assertions in fresh iteration  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2022-09-13 19:58:32 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikolaj Bjorner 
								
							 
						 
						
							
							
							
							
								
							
							
								fd5448d26b 
								
							 
						 
						
							
							
								
								fix   #6340  - again  
							
							... 
							
							
							
							Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> 
							
						 
						
							2022-09-13 17:01:51 -07:00