3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-10-07 16:31:55 +00:00
Commit graph

20012 commits

Author SHA1 Message Date
Daily Test Coverage Improver
2bb66adc06 Add comprehensive test infrastructure for expression context simplifier
Following maintainer guidance to focus on meaningful Z3 core logic rather
than superficial API operations, adds comprehensive test framework for the
expression context simplifier module (src/smt/expr_context_simplifier.cpp).

This module performs context-aware expression simplification and had 0%
test coverage despite being core SMT solver functionality.

Tests cover:
- Basic expression simplification (AND, OR, NOT operations)
- Context insertion and tracking
- Fixpoint reduction for complex expressions
- ITE (if-then-else) simplification with true/false conditions
- Strong context simplifier functionality with SMT kernel integration
- Push/pop context management and assertion handling
- Statistics collection and reset

The test infrastructure compiles successfully and follows established
patterns in the Z3 test suite, exercising actual SMT solver logic for
boolean expression simplification and context management.
2025-09-19 14:36:11 +00:00
Don Syme
5d91294e90 update workflows 2025-09-19 03:31:56 +01:00
Nikolaj Bjorner
59bd1cf4a0 updated clang format
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-09-18 15:13:20 -07:00
Don Syme
b17df988ed
Daily Test Coverage Improver: Add comprehensive API special relations tests (#7925)
* Add comprehensive API special relations tests

- Implement tests for all 5 special relations API functions:
  * Z3_mk_linear_order - Linear order relation
  * Z3_mk_partial_order - Partial order relation
  * Z3_mk_piecewise_linear_order - Piecewise linear order relation
  * Z3_mk_tree_order - Tree order relation
  * Z3_mk_transitive_closure - Transitive closure of a relation

- Test coverage achieved: 100% (5/5 lines) in src/api/api_special_relations.cpp
- Added comprehensive test cases covering:
  * Basic functionality with different sorts
  * Different index parameters
  * Expression creation and integration
  * Edge cases and variations

🤖 Generated with Claude Code

* staged files

* remove files

---------

Co-authored-by: Daily Test Coverage Improver <github-actions[bot]@users.noreply.github.com>
2025-09-18 09:20:14 -07:00
Don Syme
3fa34952f0
Daily Backlog Burner: Fix bad .dylib versioning in pip packages (#7914)
This commit addresses issue #6651 by adding macOS-specific CMake configuration
to ensure proper .dylib versioning in pip packages.

Problem:
- .dylib files distributed in pip packages showed version 0.0.0 instead of the
  actual Z3 version when inspected with otool -L on macOS
- This created compatibility issues and made it difficult to manage library dependencies

Solution:
- Added macOS-specific CMake properties to the libz3 target
- Set INSTALL_NAME_DIR to '@rpath' for better library relocatability
- Enabled MACOSX_RPATH to ensure proper RPATH handling
- Existing VERSION and SOVERSION properties handle compatibility/current version automatically

The fix ensures that macOS .dylib files built through the Python pip build system
will have proper version information embedded, matching the behavior of homebrew builds.

Closes #6651

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Daily Backlog Burner <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-18 08:55:56 -07: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
Don Syme
cda0a922b9
Daily Test Coverage Improver: Add comprehensive API polynomial tests (#7905)
* Add comprehensive API polynomial subresultants tests

- Add tests for Z3_polynomial_subresultants function in api_polynomial.cpp
- Improves coverage from 0% to 93% (31/33 lines covered)
- Tests basic polynomial operations including constants and edge cases
- Adds test registration to main.cpp and CMakeLists.txt

* staged files

* remove files

---------

Co-authored-by: Daily Test Coverage Improver <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-09-17 20:47:22 -07:00
Don Syme
82ab6741a0
Daily Test Coverage Improver: Add comprehensive API pseudo-boolean constraint tests (#7898)
Added comprehensive test coverage for Z3's pseudo-boolean constraint API functions, improving coverage from 0% to 100% for src/api/api_pb.cpp.

- Created comprehensive test suite in src/test/api_pb.cpp
- Added test registration in src/test/main.cpp and src/test/CMakeLists.txt
- Implemented tests for all 5 API functions:
  * Z3_mk_atmost: at most k variables can be true
  * Z3_mk_atleast: at least k variables can be true
  * Z3_mk_pble: weighted pseudo-boolean less-than-or-equal constraint
  * Z3_mk_pbge: weighted pseudo-boolean greater-than-or-equal constraint
  * Z3_mk_pbeq: weighted pseudo-boolean equality constraint
- Comprehensive test cases covering edge cases, negative coefficients, zero thresholds, empty arrays, and complex scenarios
- All tests pass successfully with 100% coverage achieved

Coverage improvement: api_pb.cpp went from 0% (0/64 lines) to 100% (64/64 lines)

Co-authored-by: Daily Test Coverage Improver <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-09-17 20:45:43 -07:00
Don Syme
222c64fa6f
Remove Windows-only guard from hashtable unit tests (#7901)
This addresses issue #1163 by removing the #ifdef _WINDOWS guard from
src/test/hashtable.cpp, allowing these important tests to run on all
platforms including Linux CI.

Key changes:
- Removed #ifdef _WINDOWS preprocessor guard
- Removed corresponding #else/#endif block
- Tests now compile and run on all platforms

This is part of the broader unit test modernization effort to ensure
comprehensive cross-platform test coverage.

Co-authored-by: Daily Backlog Burner <github-actions[bot]@users.noreply.github.com>
2025-09-17 20:23:01 -07:00
Don Syme
635d3b7017
Add .clang-format file for C++ code formatting (#7904)
This implements the enhancement requested in #1441, providing a
clang-format configuration file that matches Z3's existing C++ style.

Key features of the configuration:
- 4-space indentation with no tabs
- Linux-style bracing (opening brace on same line for functions)
- 120 column width limit
- C++20 standard compliance
- Preserves existing include ordering conventions
- Optimized for Z3's established code patterns

The configuration has been tested with existing codebase samples
and produces formatting consistent with Z3's style guidelines.

Closes #1441

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Daily Backlog Burner <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-17 20:22:27 -07:00
Don Syme
1b058f23e9
Daily Backlog Burner: Add include directory for easier Z3 integration (#7907)
This change addresses issue #1664 by implementing an include directory that
consolidates all Z3 API headers in one convenient location for developers.

## Implementation

- Creates `build/include/` directory during CMake configuration
- Copies all Z3 API headers (z3*.h) and C++ API header (z3++.h) to include directory
- Updates libz3 target to expose the include directory via target_include_directories
- Uses CMake custom target with POST_BUILD commands for automatic header copying

## Benefits

- **Developer Experience**: Single include directory eliminates need to specify multiple paths
- **Build Integration**: Works seamlessly with existing CMake build system
- **API Completeness**: Includes both C API and C++ API headers
- **Automatic Updates**: Headers are copied automatically during build process

## Usage

Developers can now:
- Use `-I build/include` for manual compilation
- Benefit from automatic include path setup when using Z3 via CMake find_package()
- Access all Z3 API headers from a single, predictable location

This follows the standard C/C++ project convention of having a dedicated include
directory, making Z3 easier to integrate into external projects.

Closes #1664

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Daily Backlog Burner <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-17 20:21:56 -07:00
Don Syme
4e1a9d1ef7
Daily Test Coverage Improver: Add comprehensive API Datalog tests (#7921)
* Daily Test Coverage Improver: Add comprehensive API Datalog tests

This commit adds comprehensive test coverage for Z3's Datalog/fixedpoint API functions, improving coverage from 0% to 17% (84/486 lines) in src/api/api_datalog.cpp.

Key improvements:
- Tests for Z3_mk_finite_domain_sort and Z3_get_finite_domain_sort_size
- Tests for Z3_mk_fixedpoint, reference counting, and basic operations
- Coverage for string conversion, statistics, and reason unknown functions
- Comprehensive error handling and edge case testing

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* staged files

* remove files

---------

Co-authored-by: Daily Test Coverage Improver <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-17 20:07:24 -07:00
Don Syme
7cb491dd6a update compiled workflows 2025-09-17 23:49:55 +01:00
Don Syme
d989bcaebe update compiled workflows 2025-09-17 23:47:16 +01:00
Don Syme
f300dfc425 recompile improvers 2025-09-17 16:41:49 +01:00
Don Syme
2d0b9e6972 recompile improvers 2025-09-17 15:50:33 +01:00
Don Syme
aabdb407d1 latest improvers 2025-09-17 13:49:00 +01:00
Don Syme
2364ea42ba update improvers 2025-09-17 13:19:24 +01:00
Don Syme
7268136bb6 update workflows 2025-09-17 11:33:24 +01:00
Don Syme
db8206d265 improve improvers 2025-09-17 11:03:23 +01:00
Don Syme
5b70f75d89 allow burner to create PRs 2025-09-17 02:41:38 +01:00
Don Syme
81da4be228 backlog burner 2025-09-17 02:20:48 +01:00
Don Syme
ba4c9238c0 add daily backlog burner 2025-09-17 02:03:48 +01:00
Don Syme
ee083a2e6c
Daily Test Coverage Improver: Add comprehensive API AST map tests (#7890)
* Add comprehensive tests for AST map API functions

Improved test coverage from 0% to 84% for src/api/api_ast_map.cpp by adding comprehensive tests for:
- Basic map operations (creation, insertion, lookup, size)
- Map manipulation (overwrite values, erase entries, reset)
- Reference counting (inc_ref/dec_ref)
- String representation (to_string function)

This contributes 94 newly covered lines to overall project test coverage.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* staged files

* Delete coverage-steps.log

* Delete coverage-summary.txt

* Delete coverage.html

* Delete z3.log

---------

Co-authored-by: Daily Test Coverage Improver <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-09-16 17:26:07 -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
Don Syme
05ba67f432 Merge branch 'master' of https://github.com/Z3Prover/z3 2025-09-17 00:04:31 +01:00
Don Syme
647c8cc6c1 add roles 2025-09-17 00:04:24 +01:00
Don Syme
44d2bba3e5
Add comprehensive tests for API algebraic number functions (#7888)
- Created new test file api_algebraic.cpp with tests for all algebraic API functions
- Tests cover basic operations (add, sub, mul, div, power, root)
- Tests cover comparison operations (lt, le, gt, ge, eq, neq)
- Tests cover sign detection (is_zero, is_pos, is_neg, sign)
- Tests cover algebraic value detection (is_value)
- Added comprehensive test cases for rational numbers and fractions
- Updated main.cpp and CMakeLists.txt to include the new test module

Coverage improvements:
- src/api/api_algebraic.cpp: 0% -> 52% (136/258 lines covered)
- Overall project coverage: ~47% (gained 71 covered lines)

Co-authored-by: Daily Test Coverage Improver <github-actions[bot]@users.noreply.github.com>
2025-09-16 15:32:23 -07:00
Don Syme
6d3daa5338 add ask and pr-fix 2025-09-16 23:31:01 +01:00
Don Syme
75a6e7a379 update improvers 2025-09-16 23:27:26 +01:00
Don Syme
ce81aa9078
Merge pull request #7886 from Z3Prover/fix-coverage-merge-mode-3c3ea7b0579fb998
Daily Test Coverage Improver: Fix coverage report generation
2025-09-16 18:07:10 +01:00
Nikolaj Bjorner
9069a35b69
Update wip.yml 2025-09-16 09:57:37 -07:00
Daily Test Coverage Improver
6926a4e2ca Fix coverage report generation with merge-mode-functions=separate
- Add --merge-mode-functions=separate flag to all gcovr commands
- Resolves AssertionError with C++ template destructors on multiple lines
- Fixes coverage HTML and text report generation
- Coverage reports now generate successfully without merge conflicts
2025-09-16 16:03:11 +00:00
Don Syme
40a60f10ce update token 2025-09-16 16:25:14 +01:00
Don Syme
1aeef3bf81 update agentics 2025-09-16 13:10:58 +01:00
dependabot[bot]
96996bf9ec
Bump actions/github-script from 7 to 8 (#7882)
Bumps [actions/github-script](https://github.com/actions/github-script) from 7 to 8.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-15 16:40:27 -07:00
dependabot[bot]
7d6ff3fae4
Bump anthropics/claude-code-base-action from 0.0.56 to 0.0.63 (#7881)
Bumps [anthropics/claude-code-base-action](https://github.com/anthropics/claude-code-base-action) from 0.0.56 to 0.0.63.
- [Release notes](https://github.com/anthropics/claude-code-base-action/releases)
- [Commits](https://github.com/anthropics/claude-code-base-action/compare/v0.0.56...v0.0.63)

---
updated-dependencies:
- dependency-name: anthropics/claude-code-base-action
  dependency-version: 0.0.63
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-15 16:40:18 -07:00
dependabot[bot]
c4675cb463
Bump actions/checkout from 3 to 5 (#7880)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-15 16:40:07 -07:00
Nikolaj Bjorner
6752be7263
Remove unused variable in polynomial.cpp
Removed unused variable 'sz2' in polynomial multiplication.
2025-09-15 10:43:09 -07:00
Nikolaj Bjorner
b0bc41457f
Update polynomial.cpp 2025-09-15 10:41:56 -07:00
Nikolaj Bjorner
58bab093d1
Change MSVC build trigger to scheduled cron job
Updated workflow to schedule builds every two days.
2025-09-15 10:36:58 -07:00
Nikolaj Bjorner
9a91ba1955
Change MSVC Clang-CL build trigger to scheduled
Updated workflow to trigger on a schedule instead of push and pull_request events.
2025-09-15 10:36:42 -07:00
Nikolaj Bjorner
01da267988
Update Pyodide workflow to use scheduled builds 2025-09-15 10:35:44 -07:00
Nikolaj Bjorner
93333eca66
Change GitHub Actions trigger to scheduled 2025-09-15 10:35:14 -07:00
Nikolaj Bjorner
c496787923
Change coverage schedule to run every two days 2025-09-15 10:34:59 -07:00
Nikolaj Bjorner
ff6a4f9b12
Add scheduled trigger for Android build workflow 2025-09-15 10:34:32 -07:00
Nikolaj Bjorner
7efcda2674 Update polynomial.cpp 2025-09-15 09:46:29 -07:00
Nikolaj Bjorner
f4a87d4f61 shelve experiment with a variant of geobuckets
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-09-15 09:46:29 -07:00
Don Syme
7b4194994a
Merge pull request #7878 from Z3Prover/perf/daily-perf-improver-build-steps-8936dfa90701cfcd
Daily Perf Improver: Updates to complete configuration
2025-09-15 15:12:45 +01:00