Skip to content

Upgrade to Z3 5.1 - #340

Merged
tahina-pro merged 10 commits into
masterfrom
olympus_z3upgrade
Oct 17, 2026
Merged

tahina-pro merged 10 commits into
masterfrom
olympus_z3upgrade

Conversation

@nikswamy

Copy link
Copy Markdown
Contributor

No description provided.

nikswamy and others added 8 commits October 13, 2026 17:31
EVERPARSE_Z3_VERSION now defaults to 5.1.0, F*'s default Z3 version.
The 3D test-generation Makefiles and the adapter tests follow
EVERPARSE_Z3_VERSION instead of hardcoding z3-4.13.3, and so does the
binary package.

Olympus-Change: minimal

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: f536a3f7-4be1-44ba-ba6c-992c94e5e517
Olympus-Change: minimal

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: f536a3f7-4be1-44ba-ba6c-992c94e5e517
3D: use (check-sat-using smt) in Z3 test generation, since Z3 5.1.0's
default incremental solver may not terminate on these push/pop sessions;
add an F# realization of Hashing.Op.t for hashchk (now required by F*).

Olympus-Change: minimal
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: f536a3f7-4be1-44ba-ba6c-992c94e5e517
CBOR/CDDL Pulse: avoid non-linear real arithmetic on permissions (on which
Z3 5.1.0 may not terminate) and prune a quantifier cascade from
array_group_concat_unique_strong in cddl_array_iterator_next.

Olympus-Change: minimal
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: f536a3f7-4be1-44ba-ba6c-992c94e5e517
CBOR.Pulse.Raw.Match: exclude CBOR.Pulse.Raw.Util.perm_mul_assoc, whose
SMT patterns cause a matching loop with Z3 5.1.0 on permission products.

Olympus-Change: minimal
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: f536a3f7-4be1-44ba-ba6c-992c94e5e517
The pinned F* fb6ea91 does not know about Z3 5.1.0, so CI's
get_fstar_z3.sh never downloads z3-5.1.0 and F* reports 'Z3 solver not
found'. Move to the F* commit that adds 5.1.0 (FStarLang/FStar#4654 merged
with master, plus an rlimit cap).

Olympus-Change: minimal

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: f536a3f7-4be1-44ba-ba6c-992c94e5e517
The Z3 5.1.0 release binary bundled in the package requires glibc 2.38,
which Ubuntu 22.04 lacks.

Olympus-Change: minimal

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: f536a3f7-4be1-44ba-ba6c-992c94e5e517
Make three proofs that failed in GitHub CI (Z3 5.1.0 release) robust, so
that they succeed on the first attempt with large rlimit margin:

- CBOR.Spec.API.Format: split cbor_det_serialize_map_length_union_disjoint_eq
  into helper lemmas (snoc length, cons preconditions, cons serialization
  length, linear arithmetic step); it no longer needs --z3rlimit 32. Also
  make cbor_parse_prefix succeed without the ifuel retry.
- CBOR.Pulse.Raw.EverParse.Serialized.Base: in the tagged/array/map
  intro_aux ghost functions, state the perm_mul 1.0R and Array?.v/Map?.v
  equalities as small lemmas before the rewrites.
- EverParse3d.Actions.Base (validate_list_up_to): move the suffix
  reasoning after a leaf read and the list_up_to loop-invariant step into
  separate lemmas (leaf_read_is_suffix_of, list_up_to_step).

Checked with --query_stats on seeds 0-3 with both Z3 master and the
Z3 5.1.0 release: no failed/retried queries in these modules.

Olympus-Change: minimal

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: f536a3f7-4be1-44ba-ba6c-992c94e5e517
Comment thread opt/hashes.Makefile Outdated
tahina-pro and others added 2 commits October 15, 2026 20:35
Move the default EVERPARSE_Z3_VERSION and the package's bundled Z3 to
5.3.0, and the pinned F* to olympus_z3upgrade, which now has
FStarLang/FStar#4654 with Z3 5.3.0. On Linux x86_64 F* bundles the Z3
executable of the official manylinux wheel, which runs on Ubuntu 22.04, so
the package tests go back to ubuntu-22.04.

Olympus-Change: minimal

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: f536a3f7-4be1-44ba-ba6c-992c94e5e517
Comment thread opt/hashes.Makefile
@tahina-pro
tahina-pro merged commit aa78f01 into master Oct 17, 2026
35 checks passed

@tahina-pro tahina-pro left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks again Nik!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants