Lev Nachmanson
74c28532f4
param order
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-10-26 15:32:19 +01:00
Nikolaj Bjorner
f8b2268424
base implementation for cardinality constraints
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-26 10:35:37 +01:00
Nikolaj Bjorner
4068460a0f
fix bogus axioms
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-24 13:35:41 +02:00
Copilot
bfe6670b73
Fix finite_set sort cardinality computation for finite base sorts ( #7997 )
...
* Initial plan
* Implement cardinality computation for finite_set sorts
- Modified mk_sort in finite_set_decl_plugin.cpp to compute 2^|s| for finite base sorts
- If base sort size > 30, mark finite_set sort as very_big
- Added comprehensive tests to verify sort size calculations
- All tests pass successfully
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Update finite_set_decl_plugin.cpp
* Fix unit tests for infinite base sorts
Updated test to check is_infinite() instead of is_very_big() for FiniteSet(Int) since infinite element sorts now result in infinite FiniteSet sorts (not very_big). Also updated comment to clarify the behavior.
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>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-23 17:30:17 +02:00
Nikolaj Bjorner
4c67a7271e
extend proof logging
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-23 09:48:43 +02:00
Nikolaj Bjorner
b96624727d
remove ad-hoc membership axioms, enable boundary point saturatino
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-23 09:42:25 +02:00
Nikolaj Bjorner
2e4402c8f3
add interpretations when there are ranges
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-20 23:21:30 +02:00
Nikolaj Bjorner
65f38eac16
fixup proof log annotations of rules
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-19 10:04:18 +02:00
Nikolaj Bjorner
6485808b49
adding proof hint output
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-18 19:26:19 +02:00
Copilot
eb10ab1633
Rename set.select to set.filter and OP_FINITE_SET_SELECT to OP_FINITE_SET_FILTER ( #7989 )
...
* Initial plan
* Rename set.select to set.filter and OP_FINITE_SET_SELECT to OP_FINITE_SET_FILTER
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>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-18 17:16:32 +02:00
Nikolaj Bjorner
ba5bc90d7c
remove debug code
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-18 13:34:27 +02:00
Nikolaj Bjorner
7d585b5cfd
fix build
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-18 13:30:46 +02:00
Nikolaj Bjorner
d6908a3d4b
support AC parsing
...
By tagging union and intersection as AC we allow parsing set union and intersection as n-ary functions.
The internal representation remains binary.
2025-10-17 14:49:43 +02:00
Nikolaj Bjorner
df62e5e9e6
add assume-eqs and extensionality
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-17 09:37:11 +02:00
Nikolaj Bjorner
981c7d27ea
adding factory for model initialization
2025-10-16 22:43:20 +02:00
Nikolaj Bjorner
9e79fe0a51
merge comment
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-16 13:39:17 +02:00
Copilot
0371bbd192
Extend finite_set_decl_plugin::is_value to support unions of empty/singleton sets ( #7980 )
...
* Initial plan
* Initial state - all tests passing
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Implement is_value for unions of empty/singleton sets
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>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-16 13:36:55 +02:00
Nikolaj Bjorner
cc8bfd7890
add fintie_set_value_factory outline
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-16 13:27:26 +02:00
Nikolaj Bjorner
b53e87dcba
updated with immediate axioms
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-16 09:20:46 +02:00
Copilot
2bb22c6489
Fix finite_set::is_fully_interp to check element sort interpretation ( #7982 )
...
* Initial plan
* Implement finite_set is_fully_interp to check element sort
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Refine is_fully_interp implementation with SASSERT
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-10-15 21:47:32 +02:00
Nikolaj Bjorner
f22ef75d3e
update header
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-15 20:51:40 +02:00
Nikolaj Bjorner
ce60a8c5c5
fix merge issues
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-15 18:50:59 +02:00
Copilot
2e7f80f597
Add comprehensive algebraic rewrite rules to finite_set_rewriter ( #7975 )
...
* Initial plan
* Add comprehensive rewrite rules for finite set operations
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Add comprehensive unit tests for finite set rewrite rules
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Fix order of checks in mk_in to handle singleton same element case first
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>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-15 18:46:10 +02:00
kper
7446112fbe
Implement more cases for finite_set_decl_plugin::are_distinct ( #7978 )
...
* Implement more cases for finite_set_decl_plugin::are_distinct
* Adapted distinctive checks for finite sets
2025-10-15 14:35:57 +02:00
kper
b24aec3c4c
Fixed tests by making methods public for finite sets ( #7977 )
2025-10-15 14:03:00 +02:00
Nikolaj Bjorner
f2260d959d
test
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-14 18:01:41 +02:00
Nikolaj Bjorner
a1b831a3e1
fix build
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-14 17:50:08 +02:00
Copilot
930ba5ebd6
Implement inverter functions for finite-set operators ( #7974 )
...
* Initial plan
* Add set operator inverters to array_expr_inverter
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Refactor expr_inverter to remove set operations
Removed handling for set operations like union, intersection, and difference in expr_inverter.cpp. Introduced finite_set_inverter class to manage set union operation.
* Remove OP_SET_COMPLEMENT case from expr_inverter
Removed handling for OP_SET_COMPLEMENT in expr_inverter.
* Change OP_SET_UNION to OP_FINITE_SET_UNION
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-14 17:48:40 +02:00
Nikolaj Bjorner
0efe3820fc
build
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-14 17:46:49 +02:00
Nikolaj Bjorner
5dacb270f8
add to spec
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-14 17:33:19 +02:00
Copilot
75bac9c0ce
Implement finite_set_axioms.cpp and fix empty set constructor bug ( #7973 )
...
* Initial plan
* Add finite_set_axioms.cpp implementation and update CMakeLists.txt
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Fix finite_set_decl_plugin bug and complete implementation
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Use array select instead of function application for map and select axioms
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Simplify range assignment in finite_set_decl_plugin
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-14 17:16:29 +02:00
Copilot
c526c20cfc
Implement finite_set_rewriter with basic algebraic simplification rules ( #7972 )
...
* Initial plan
* Add finite_set_rewriter implementation with basic rewrite rules
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Fix finite_set_decl_plugin bug and complete implementation
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Revert finite_set_decl_plugin changes and disable difference rule
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Re-enable difference rule using set_sort directly
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Update finite_set_rewriter.h
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-14 17:13:18 +02:00
Nikolaj Bjorner
9442b41716
remove debug output
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-13 22:40:21 +02:00
Nikolaj Bjorner
1b9f27a798
patch definitions, add pretty print support
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-13 22:39:32 +02:00
Lev Nachmanson
fc2c5c7f58
fix the order of parameter evaluation
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-10-13 21:01:22 +02:00
Lev Nachmanson
e1db3c0b17
fixing the order
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-10-13 21:01:22 +02:00
Lev Nachmanson
33ae08ab29
fixing the order
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-10-13 21:00:54 +02:00
Copilot
df4052ec69
Implement finite_set_decl_plugin with complete operator support and polymorphism infrastructure ( #7961 )
...
* Initial plan
* Implement finite_sets_decl_plugin with all specified operations
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Add tests for finite_sets_decl_plugin
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Add set.singleton operator to finite_sets_decl_plugin
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Refactor finite_sets_decl_plugin to use polymorphic signatures and Array sorts
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Rename finite_sets to finite_set everywhere including file names
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Rename set.filter to set.select
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Refactor finite_set_decl_plugin to use polymorphism_util
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Move psig and match method to polymorphism_util
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Add MATCH macros and fix is_fully_interp return value
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Add is_finite_set helper and parameter count validation
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-10-13 10:58:53 +02:00
Nikolaj Bjorner
7356b5ff88
outline finite_set theory solver
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-05 16:22:28 -07:00
Nikolaj Bjorner
97c8fb15fa
update contract
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-05 14:15:08 -07:00
Nikolaj Bjorner
2ce30019ee
remove old files
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-05 14:06:36 -07:00
Nikolaj Bjorner
ad7b248956
add outline of axiomatization
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-05 14:04:51 -07:00
Nikolaj Bjorner
522be5d8c2
add stub for rewriter
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-04 18:14:43 -07:00
Nikolaj Bjorner
fb41fbf5e1
placeholder for finite set signature
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-04 17:30:25 -07:00
Nikolaj Bjorner
e0fca3ba25
placeholder for finite set signature
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-04 17:18:12 -07: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
Lev Nachmanson
c43cb18e63
better rewriting
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-09-18 08:08:32 -07:00
Lev Nachmanson
37904b9e85
fix the parameter evaluation order
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-09-18 07:52:13 -07:00
Lev Nachmanson
9b88aaf134
determine parameter evaluation order
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-09-16 16:32:46 -07:00
Nikolaj Bjorner
3c897b450f
add rewrite rules for update-field under accessors and recognizers
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-09-14 06:14:42 -07:00