Skip to content

Add reduced-RAM x4 matrix batching - #1526

Draft
bremoran wants to merge 11 commits into
mainfrom
reduced-ram-x4
Draft

bremoran wants to merge 11 commits into
mainfrom
reduced-ram-x4

Conversation

@bremoran

@bremoran bremoran commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Add reduced-RAM x4 matrix batching

Why

Reduced-RAM x1 did not meet the desired speed, while retaining the full matrix for x4 requires substantially more RAM. Hanno suggested a middle course: process four matrix rows at a time so we can reuse the existing SHAKE128x4 implementation without keeping the full matrix in memory. No code change alone improves x1's latency; selecting full-RAM x4 has the larger RAM cost. A two-row batch would leave half the x4 lanes unused or need another backend.

An earlier ML-DSA-87 N657 campaign illustrates the tradeoff with the hand-optimized Keccak backend:

Configuration Mean sign cycles, 1,000 NUCLEO inputs Sampled caller-inclusive sign stack, 8 QEMU inputs Code size
Reduced-RAM x1 16,419,713 25,345 B 20,788 B
Reduced-RAM x4 11,300,588 32,869 B 26,628 B
Full-RAM x4 5,229,716 122,901 B 26,730 B

In that campaign, reduced-RAM x4 used 31.2% fewer mean signing cycles than x1 and 73.3% less sampled caller-inclusive signing stack than full-RAM x4. It also used 7,524 B more sampled stack and 5,840 B more code than x1, and was slower than full-RAM x4. These are historical whole-configuration measurements, not measurements of this PR head. The stack figures are samples, not proven peaks.

What changes

  • Add optional MLD_CONFIG_REDUCE_RAM_X4 for ML-DSA-44, 65, and 87. It requires MLD_CONFIG_REDUCE_RAM and rejects MLD_CONFIG_SERIAL_FIPS202_ONLY. The existing default and x1 configuration remain available.
  • Sample four entries from one matrix column with SHAKE128x4, accumulate them into four rows, and retain only the current batch. ML-DSA-65's final two rows use scalar sampling.
  • Use the batched row result in key generation and verification and a column-oriented x4 accumulation path in signing. Keep the implementation-only interfaces namespaced and update the documented allocation bounds.
  • Add focused unit and allocation tests, CBMC contracts and harnesses, build/run configuration preservation in scripts/tests, and generic and Zephyr CI coverage. The Zephyr transition test verifies that the requested x4 binary is built and executed after a scalar build in the same cache.

The work is divided seven commits: configuration and guards; batching; native Keccak selection; tests and runner; CBMC; generic CI; Zephyr CI.

The configuration header copies are generated from the repository's canonical configuration source. scripts/autogen regenerated them without a diff in the prior validation run.

Base and scope

This branch is based directly on the revised #1470 branch (origin/armv81m-x4-byte-access at 40a8f1137). This change does not replace full-RAM x4 or alter the default configuration. The static Bring-Your-Own-FIPS202 example remains serial-only and cannot select this x4 mode; the non-serial custom-FIPS202 path was exercised.

Validation so far

The batching preserves FIPS 204's ExpandA seed order (rho || column || row) and the existing NTT and Montgomery reduction boundaries. The new batch decisions depend on public row and column indices. Functional, vector, focused proof and source review results support that reasoning; compiled constant-time evidence is still pending.

Provide 256 KiB for the shared Zephyr test application so the full ML-DSA-87 eager/lazy polynomial unit suite fits. Retain the board-specific Nucleo stack override.

Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Advance partial-lane pointers to the next eight-byte lane and use bounded byte accesses whenever a next-lane pointer is unaligned. Retain the aligned gather/scatter paths and regenerate production assembly from dev sources.

Align both helpers with merged mlkem-native PR #1766 at d2f26d6e22a6cb38ebf5a3c73f0912cbe0066912; extraction repair originated in this PR. Generic regression coverage follows separately.

Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Extend the x1-reference differential test with the eight equal/mixed buffer offsets and thirteen extraction boundary cases from merged mlkem-native PR #1766. Use independent MLD_ALLOC buffers, output guards, and a serial-only configuration guard.

Route comparison and guard failures through cleanup to release every buffer under custom allocation.

Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Run full unit suites on the existing Cortex-M3/M4/M7/M33/M55 matrix, retaining both portable and native AN547 configurations.

Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Signed-off-by: Brendan Moran <brendan.moran@arm.com>
@oqs-bot

oqs-bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

CBMC Results (ML-DSA-44, REDUCE-RAM-X4)

* default.

⚠️ Attention Required

Proof DM Solver Status Current Previous Change
compute_pack_t0_t1 LP64 z3_no_bv_extract* ❌ - - -
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ❌ - - -
LP64 z3* ❌ - - -
poly_uniform_eta LP64 bitwuzla ❌ - - -
LP64 z3* ❌ - - -
polyvec_matrix_expand_serial LP64 z3* ❌ - - -
polyvec_matrix_pointwise_montgomery_rows_tail LP64 cadical ❌ - - -
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ❌ - - -
LP64 z3* ❌ - - -
sign_verify_internal LP64 z3_no_bv_extract* ❌ - - -
Full Results (445 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ✅ 996s - -
caddq LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 3s - new
compute_pack_t0_t1 LP64 z3_no_bv_extract* ❌ - - -
decompose LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
fqmul LP64 bitwuzla* ✅ 25s - new
LP64 z3_smt_only ✅ 21s - new
fqscale LP64 bitwuzla* ✅ 3s - new
LP64 z3 ✅ 1s - new
intt_native_aarch64 LP64 bitwuzla ✅ 22s - new
LP64 z3* ✅ 2s - new
intt_native_rv32im_fastmul ILP32 z3* ✅ 2s - new
LP64 cvc5_mbqi_enum ✅ 8s - new
LP64 z3 ✅ 1s - new
intt_native_rv32im_slowmul ILP32 z3* ✅ 2s - new
LP64 cvc5_mbqi_enum ✅ 6s - new
LP64 z3 ✅ 3s - new
intt_native_x86_64 LP64 bitwuzla ✅ 18s - new
LP64 z3* ✅ 4s - new
keccak_absorb LP64 cvc5_arrays_exp ✅ 3s - new
LP64 z3* ✅ 7s - new
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 5s - new
LP64 cvc5_arrays_exp ✅ 8s - new
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 1s - new
LP64 z3_no_bv_extract ✅ 2s - new
keccak_f1600_x1_native_aarch64_v84a LP64 bitwuzla* ✅ 3s - new
LP64 cvc5_arrays_exp ✅ 3s - new
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 3s - new
LP64 z3 ✅ 3s - new
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 1s - new
LP64 z3_smt_only ✅ 2s - new
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 1s - new
LP64 z3_smt_only ✅ 3s - new
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 1s - new
LP64 cvc5_arrays_exp ✅ 1s - new
keccak_finalize LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 3s - new
keccak_init LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 1s - new
keccak_squeeze LP64 bitwuzla* ✅ 2s - new
LP64 z3 ✅ 2s - new
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 5s - new
LP64 z3 ✅ 3s - new
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 1s - new
LP64 z3* ✅ 2s - new
keccakf1600_permute LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 1s - new
keccakf1600_permute_native LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 3s - new
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 3s - new
LP64 cvc5_arrays_exp ✅ 2s - new
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 2s - new
LP64 z3_smt_only ✅ 1s - new
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 1s - new
LP64 z3 ✅ 1s - new
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 2s - new
LP64 z3 ✅ 1s - new
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 2s - new
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 13s - new
LP64 z3* ✅ 14s - new
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 2s - new
LP64 cvc5_arrays_exp ✅ 1s - new
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 3s - new
LP64 z3_no_bv_extract ✅ 3s - new
make_hint LP64 cvc5_arrays_exp ✅ 4s - new
LP64 z3* ✅ 2s - new
mld_attempt_signature_generation LP64 z3_no_bv_extract* ✅ 102s - new
mld_check_pct LP64 bitwuzla ✅ 5s - new
LP64 z3* ✅ 6s - new
mld_compute_pack_z LP64 cadical ✅ 47s - new
LP64 z3_no_bv_extract* ✅ 4s - new
mld_ct_abs_i32 ILP32 bitwuzla ✅ 1s - new
ILP32 cvc5_arrays_exp ✅ 2s - new
ILP32 z3 ✅ 3s - new
LP64 bitwuzla ✅ 1s - new
LP64 cvc5_arrays_exp ✅ 1s - new
LP64 z3* ✅ 2s - new
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 3s - new
LP64 z3* ✅ 3s - new
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 5s - new
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 5s - new
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 4s - new
LP64 z3_smt_only ✅ 3s - new
mld_ct_memcmp LP64 bitwuzla* ✅ 2s - new
LP64 z3_no_bv_extract ✅ 51s - new
mld_ct_sel_int32 LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 4s - new
mld_h LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 3s - new
mld_invntt_layer LP64 bitwuzla* ✅ 69s - new
LP64 z3_smt_only ✅ 96s - new
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 1s - new
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 4s - new
LP64 z3* ✅ 5s - new
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 2s - new
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 1s - new
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 14s - new
LP64 z3_no_bv_extract ✅ 64s - new
mld_ntt_layer LP64 bitwuzla* ✅ 25s - new
LP64 z3_no_bv_extract ✅ 4s - new
mld_polymat_expand_entry LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
mld_sample_pack_s1_s2 LP64 cadical ✅ 28s - new
LP64 z3* ✅ 3s - new
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ❌ - - -
LP64 z3* ❌ - - -
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 3s - new
LP64 z3* ✅ 2s - new
mld_sign_finish LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
mld_sign_hook_resume LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
mld_value_barrier_i64 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 3s - new
mld_value_barrier_u32 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 1s - new
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 1s - new
montgomery_reduce LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 3s - new
ntt_native_aarch64 LP64 bitwuzla ✅ 23s - new
LP64 z3* ✅ 1s - new
ntt_native_rv32im_fastmul ILP32 z3* ✅ 3s - new
LP64 cvc5_mbqi_enum ✅ 7s - new
LP64 z3 ✅ 3s - new
ntt_native_rv32im_slowmul ILP32 z3* ✅ 2s - new
LP64 cvc5_mbqi_enum ✅ 6s - new
LP64 z3 ✅ 3s - new
ntt_native_x86_64 LP64 bitwuzla ✅ 20s - new
LP64 z3* ✅ 2s - new
nttunpack_native_x86_64 LP64 bitwuzla ✅ 163s - new
LP64 z3* ✅ 2s - new
pack_sig_c LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 2s - new
pack_sig_h LP64 bitwuzla ✅ 3s - new
LP64 z3_no_bv_extract* ✅ 2s - new
pack_sig_z LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 3s - new
pack_sk_rho_key_tr LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 2s - new
pointwise_acc_native_aarch64 LP64 cadical ✅ 68s - new
LP64 z3_smt_only* ✅ 4s - new
pointwise_acc_native_x86_64 LP64 cadical ✅ 58s - new
LP64 z3_smt_only* ✅ 3s - new
pointwise_native_aarch64 LP64 bitwuzla ✅ 22s - new
LP64 z3* ✅ 4s - new
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 2s - new
LP64 cvc5_mbqi_enum ✅ 10s - new
LP64 z3 ✅ 1s - new
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 2s - new
LP64 cvc5_mbqi_enum ✅ 9s - new
LP64 z3 ✅ 4s - new
pointwise_native_x86_64 LP64 bitwuzla ✅ 23s - new
LP64 z3* ✅ 2s - new
poly_accumulate_column4 LP64 cadical ✅ 44s - new
LP64 z3* ✅ 5s - new
poly_accumulate_column_entry LP64 cadical ✅ 18s - new
LP64 z3* ✅ 3s - new
poly_add LP64 cadical ✅ 48s - new
LP64 z3* ✅ 10s - new
poly_caddq LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
poly_caddq_c LP64 bitwuzla ✅ 20s - new
LP64 z3* ✅ 4s - new
poly_caddq_native LP64 bitwuzla ✅ 117s - new
LP64 z3* ✅ 1s - new
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ✅ 34s - new
LP64 z3* ✅ 1s - new
poly_caddq_native_x86_64 LP64 bitwuzla ✅ 128s - new
LP64 z3* ✅ 2s - new
poly_challenge LP64 bitwuzla ✅ 26s - new
LP64 z3* ✅ 12s - new
poly_chknorm LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
poly_chknorm_c LP64 bitwuzla ✅ 8s - new
LP64 z3* ✅ 8s - new
poly_chknorm_native LP64 bitwuzla ✅ 7s - new
LP64 z3* ✅ 2s - new
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 1s - new
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
poly_decompose LP64 bitwuzla ✅ 5s - new
LP64 z3* ✅ 3s - new
poly_decompose_32_native_aarch64 LP64 cadical ✅ 3s - new
LP64 z3* ✅ 2s - new
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 5s - new
LP64 z3* ✅ 2s - new
poly_decompose_c LP64 cvc5_mbqi_enum ✅ 228s - new
LP64 z3* ✅ 3s - new
poly_decompose_native LP64 cadical ✅ 15s - new
LP64 z3* ✅ 2s - new
poly_decompose_native_x86_64 LP64 cadical ✅ 8s - new
LP64 z3* ✅ 2s - new
poly_invntt_tomont LP64 bitwuzla ✅ 5s - new
LP64 z3* ✅ 3s - new
poly_invntt_tomont_c LP64 bitwuzla ✅ 162s - new
LP64 z3_smt_only* ✅ 4s - new
poly_invntt_tomont_native LP64 bitwuzla ✅ 50s - new
LP64 z3* ✅ 4s - new
poly_ntt LP64 bitwuzla ✅ 6s - new
LP64 z3* ✅ 2s - new
poly_ntt_c LP64 bitwuzla ✅ 49s - new
LP64 z3_smt_only* ✅ 9s - new
poly_ntt_native LP64 bitwuzla ✅ 29s - new
LP64 z3* ✅ 3s - new
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 4s - new
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
poly_pointwise_montgomery LP64 bitwuzla ✅ 11s - new
LP64 z3* ✅ 2s - new
poly_pointwise_montgomery_c LP64 bitwuzla ✅ 194s - new
LP64 z3* ✅ 64s - new
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ✅ 55s - new
LP64 z3* ✅ 2s - new
poly_power2round LP64 bitwuzla ✅ 291s - new
LP64 z3* ✅ 2s - new
poly_reduce LP64 bitwuzla ✅ 9s - new
LP64 z3* ✅ 2s - new
poly_shiftl LP64 bitwuzla ✅ 11s - new
LP64 z3* ✅ 2s - new
poly_sub LP64 bitwuzla ✅ 16s - new
LP64 z3* ✅ 3s - new
poly_uniform LP64 bitwuzla ✅ 188s - new
LP64 z3* ✅ 1s - new
poly_uniform_4x LP64 cadical ✅ 1s - new
LP64 z3* ✅ 2s - new
poly_uniform_eta LP64 bitwuzla ❌ - - -
LP64 z3* ❌ - - -
poly_uniform_eta_4x LP64 cadical ✅ 63s - new
LP64 z3* ✅ 9s - new
poly_uniform_gamma1 LP64 cadical ✅ 2s - new
LP64 z3* ✅ 1s - new
poly_uniform_gamma1_4x LP64 cadical ✅ 2s - new
LP64 z3* ✅ 2s - new
poly_use_hint LP64 cvc5_mbqi_enum ✅ 23s - new
LP64 z3* ✅ 1s - new
poly_use_hint_c LP64 cvc5_enum_inst ✅ 12s - new
LP64 z3* ✅ 2s - new
poly_use_hint_native LP64 cvc5_mbqi_enum ✅ 91s - new
LP64 z3* ✅ 3s - new
poly_use_hint_native_aarch64 LP64 bitwuzla ✅ 35s - new
LP64 z3* ✅ 4s - new
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 33s - new
LP64 z3* ✅ 3s - new
polyeta_pack LP64 bitwuzla ✅ 7s - new
LP64 z3* ✅ 2s - new
polyeta_unpack LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 8s - new
polymat_expand_column4 LP64 cadical ✅ 75s - new
LP64 z3* ✅ 8s - new
polyt0_pack LP64 bitwuzla ✅ 5s - new
LP64 z3* ✅ 4s - new
polyt0_unpack LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 9s - new
polyt1_pack LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 2s - new
polyt1_unpack LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 2s - new
polyvec_matrix_expand_serial LP64 z3* ❌ - - -
polyvec_matrix_pointwise_montgomery_row LP64 cadical ✅ 38s - new
LP64 z3_no_bv_extract* ✅ 5s - new
polyvec_matrix_pointwise_montgomery_rows LP64 cadical ✅ 146s - new
LP64 z3_no_bv_extract* ✅ 19s - new
polyvec_matrix_pointwise_montgomery_rows_tail LP64 cadical ❌ - - -
LP64 z3_no_bv_extract* ✅ 1s - new
polyvec_matrix_pointwise_montgomery_yvec LP64 cadical ✅ 103s - new
LP64 z3* ✅ 6s - new
polyveck_accumulate_column_x4 LP64 cadical ✅ 38s - new
LP64 z3* ✅ 2s - new
polyveck_caddq LP64 cadical ✅ 121s - new
LP64 z3* ✅ 3s - new
polyveck_decompose_pack_w1 LP64 cadical ✅ 109s - new
LP64 z3* ✅ 2s - new
polyveck_invntt_tomont LP64 cadical ✅ 142s - new
LP64 z3* ✅ 2s - new
polyveck_ntt LP64 cadical ✅ 2s - new
LP64 z3* ✅ 3s - new
polyveck_reduce LP64 cadical ✅ 113s - new
LP64 z3* ✅ 2s - new
polyveck_unpack_eta LP64 cvc5_mbqi_enum ✅ 3s - new
LP64 z3* ✅ 1s - new
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 18s - new
LP64 z3* ✅ 3s - new
polyvecl_chknorm LP64 cadical ✅ 52s - new
LP64 z3* ✅ 4s - new
polyvecl_ntt LP64 cadical ✅ 117s - new
LP64 z3* ✅ 3s - new
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 1s - new
LP64 z3_smt_only* ✅ 2s - new
polyvecl_pointwise_acc_montgomery_c LP64 cadical ✅ 1s - new
LP64 z3_smt_only* ✅ 3s - new
polyvecl_pointwise_acc_montgomery_native LP64 cvc5_mbqi_enum ✅ 3s - new
LP64 z3_smt_only* ✅ 3s - new
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ✅ 2s - new
LP64 z3* ✅ 3s - new
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ❌ - - -
LP64 z3* ❌ - - -
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ✅ 32s - new
LP64 z3* ✅ 1s - new
polyvecl_unpack_z LP64 cvc5_mbqi_enum ✅ 27s - new
LP64 z3* ✅ 2s - new
polyw1_pack LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 1s - new
polyw1_pack_32 LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 3s - new
polyw1_pack_88 LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 1s - new
polyw1_unpack LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 2s - new
polyw1_unpack_32 LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 1s - new
polyw1_unpack_88 LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 6s - new
polyz_pack LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 3s - new
polyz_unpack LP64 bitwuzla ✅ 9s - new
LP64 z3* ✅ 2s - new
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 3s - new
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 1s - new
polyz_unpack_c LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 5s - new
polyz_unpack_native LP64 bitwuzla ✅ 26s - new
LP64 z3* ✅ 3s - new
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 17s - new
LP64 z3* ✅ 2s - new
power2round LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 3s - new
reduce32 LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
rej_eta LP64 bitwuzla* ✅ 2s - new
LP64 z3_smt_only ✅ 3s - new
rej_eta_c LP64 bitwuzla* ✅ 1s - new
LP64 z3 ✅ 15s - new
rej_eta_native LP64 bitwuzla* ✅ 4s - new
LP64 z3_smt_only ✅ 17s - new
rej_uniform LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 7s - new
rej_uniform_c LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 13s - new
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 3s - new
LP64 z3_smt_only ✅ 3s - new
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 2s - new
LP64 z3_smt_only* ✅ 4s - new
rej_uniform_native LP64 bitwuzla* ✅ 2s - new
LP64 z3_smt_only ✅ 9s - new
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 2s - new
LP64 z3_smt_only ✅ 3s - new
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 5s - new
LP64 z3_smt_only* ✅ 10s - new
shake128_absorb LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 3s - new
shake128_finalize LP64 cvc5_arrays_exp ✅ 3s - new
LP64 z3* ✅ 2s - new
shake128_init LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 2s - new
shake128_release LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
shake128_squeeze LP64 bitwuzla* ✅ 2s - new
LP64 cvc5_arrays_exp ✅ 1s - new
shake128x4_absorb_once LP64 bitwuzla* ✅ 1s - new
LP64 z3_smt_only ✅ 2s - new
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 2s - new
LP64 z3 ✅ 2s - new
shake256 LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 2s - new
shake256_absorb LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 2s - new
shake256_finalize LP64 cvc5_arrays_exp ✅ 3s - new
LP64 z3* ✅ 1s - new
shake256_init LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 3s - new
shake256_release LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 2s - new
shake256_squeeze LP64 bitwuzla* ✅ 3s - new
LP64 z3 ✅ 2s - new
shake256x4_absorb_once LP64 bitwuzla* ✅ 2s - new
LP64 z3 ✅ 2s - new
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 1s - new
LP64 z3_smt_only ✅ 1s - new
sig_unpack_hints LP64 bitwuzla ✅ 55s - new
LP64 z3* ✅ 16s - new
sign_keypair LP64 cadical ✅ 49s - new
LP64 z3* ✅ 5s - new
sign_keypair_internal LP64 cadical ✅ 153s - new
LP64 z3_no_bv_extract* ✅ 16s - new
sign_pk_from_sk LP64 z3_no_bv_extract* ✅ 33s - new
sign_signature LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 2s - new
sign_signature_extmu LP64 cadical ✅ 21s - new
LP64 z3* ✅ 4s - new
sign_signature_internal LP64 z3_no_bv_extract* ✅ 16s - new
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 3s - new
sign_signature_pre_hash_shake256 LP64 cadical ✅ 12s - new
LP64 z3* ✅ 4s - new
sign_verify LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 3s - new
sign_verify_extmu LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
sign_verify_internal LP64 z3_no_bv_extract* ❌ - - -
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 3s - new
sk_s1hat_get_poly LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
sk_s2hat_get_poly LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 4s - new
sk_t0hat_get_poly LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 2s - new
sys_check_capability LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 1s - new
unpack_pk_t1 LP64 bitwuzla ✅ 11s - new
LP64 z3* ✅ 2s - new
unpack_sk LP64 cadical ✅ 2s - new
LP64 z3* ✅ 4s - new
unpack_sk_s1hat LP64 cvc5_mbqi_enum ✅ 3s - new
LP64 z3* ✅ 3s - new
unpack_sk_s2hat LP64 cvc5_mbqi_enum ✅ 4s - new
LP64 z3* ✅ 3s - new
unpack_sk_t0hat LP64 cadical ✅ 5s - new
LP64 z3* ✅ 1s - new
use_hint LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
yvec_get_poly LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 2s - new
yvec_init LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 2s - new

@oqs-bot

oqs-bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

CBMC Results (ML-DSA-44, REDUCE-RAM)

* default.

⚠️ Attention Required

Proof DM Solver Status Current Previous Change
compute_pack_t0_t1 LP64 z3_no_bv_extract* ❌ - 27s -
polyvec_matrix_pointwise_montgomery_rows_tail LP64 cadical ❌ - - -
sign_verify_internal LP64 z3_no_bv_extract* ❌ - 217s -
Full Results (445 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ✅ 1047s 1384s -24.3%
caddq LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 1s 3s -67%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ❌ - 27s -
decompose LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 3s 2s +50%
fqmul LP64 bitwuzla* ✅ 23s 25s -8%
LP64 z3_smt_only ✅ 19s 20s -5%
fqscale LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3 ✅ 2s 3s -33%
intt_native_aarch64 LP64 bitwuzla ✅ 25s 25s +0%
LP64 z3* ✅ 3s 4s -25%
intt_native_rv32im_fastmul ILP32 z3* ✅ 2s 1s +100%
LP64 cvc5_mbqi_enum ✅ 8s 8s +0%
LP64 z3 ✅ 2s 4s -50%
intt_native_rv32im_slowmul ILP32 z3* ✅ 1s 3s -67%
LP64 cvc5_mbqi_enum ✅ 7s 8s -12%
LP64 z3 ✅ 1s 2s -50%
intt_native_x86_64 LP64 bitwuzla ✅ 19s 16s +19%
LP64 z3* ✅ 3s 2s +50%
keccak_absorb LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 7s 6s +17%
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 6s 5s +20%
LP64 cvc5_arrays_exp ✅ 10s 9s +11%
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_no_bv_extract ✅ 2s 1s +100%
keccak_f1600_x1_native_aarch64_v84a LP64 bitwuzla* ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 1s 2s -50%
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3 ✅ 2s 2s +0%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_smt_only ✅ 2s 2s +0%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 1s 2s -50%
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 3s 2s +50%
LP64 cvc5_arrays_exp ✅ 2s 3s -33%
keccak_finalize LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 3s 1s +200%
keccak_init LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 1s +0%
keccak_squeeze LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3 ✅ 3s 2s +50%
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 2s 4s -50%
LP64 z3 ✅ 2s 2s +0%
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 2s 5s -60%
keccakf1600_permute LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 1s +200%
keccakf1600_permute_native LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 3s 2s +50%
LP64 cvc5_arrays_exp ✅ 3s 5s -40%
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3_smt_only ✅ 4s 3s +33%
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3 ✅ 2s 2s +0%
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 1s 2s -50%
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 4s 2s +100%
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 13s 14s -7%
LP64 z3* ✅ 12s 13s -8%
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 1s 2s -50%
LP64 cvc5_arrays_exp ✅ 1s 2s -50%
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_no_bv_extract ✅ 1s 1s +0%
make_hint LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 2s 3s -33%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ✅ 127s 123s +3%
mld_check_pct LP64 bitwuzla ✅ 5s 4s +25%
LP64 z3* ✅ 6s 5s +20%
mld_compute_pack_z LP64 cadical ✅ 36s 37s -3%
LP64 z3_no_bv_extract* ✅ 4s 3s +33%
mld_ct_abs_i32 ILP32 bitwuzla ✅ 3s 3s +0%
ILP32 cvc5_arrays_exp ✅ 2s 1s +100%
ILP32 z3 ✅ 1s 1s +0%
LP64 bitwuzla ✅ 1s 2s -50%
LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 1s 5s -80%
LP64 z3* ✅ 1s 3s -67%
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 3s 3s +0%
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 1s +200%
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 2s +0%
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 2s 2s +0%
mld_ct_memcmp LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_no_bv_extract ✅ 48s 50s -4%
mld_ct_sel_int32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 4s -50%
mld_h LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 3s 2s +50%
mld_invntt_layer LP64 bitwuzla* ✅ 62s 81s -23%
LP64 z3_smt_only ✅ 78s 83s -6%
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3* ✅ 2s 2s +0%
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 2s 4s -50%
LP64 z3* ✅ 4s 3s +33%
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 2s +50%
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 12s 14s -14%
LP64 z3_no_bv_extract ✅ 196s 220s -11%
mld_ntt_layer LP64 bitwuzla* ✅ 28s 24s +17%
LP64 z3_no_bv_extract ✅ 3s 2s +50%
mld_polymat_expand_entry LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 1s 2s -50%
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 1s 4s -75%
mld_sample_pack_s1_s2 LP64 cadical ✅ 28s 30s -7%
LP64 z3* ✅ 2s 3s -33%
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ✅ 91s 95s -4%
LP64 z3* ✅ 1s 3s -67%
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
mld_sign_finish LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 3s -33%
mld_sign_hook_resume LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 1s 2s -50%
mld_value_barrier_i64 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 3s +0%
mld_value_barrier_u32 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 4s 2s +100%
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 1s 2s -50%
montgomery_reduce LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 3s 3s +0%
ntt_native_aarch64 LP64 bitwuzla ✅ 22s 24s -8%
LP64 z3* ✅ 3s 3s +0%
ntt_native_rv32im_fastmul ILP32 z3* ✅ 2s 4s -50%
LP64 cvc5_mbqi_enum ✅ 7s 7s +0%
LP64 z3 ✅ 4s 5s -20%
ntt_native_rv32im_slowmul ILP32 z3* ✅ 1s 2s -50%
LP64 cvc5_mbqi_enum ✅ 6s 7s -14%
LP64 z3 ✅ 1s 3s -67%
ntt_native_x86_64 LP64 bitwuzla ✅ 19s 17s +12%
LP64 z3* ✅ 5s 3s +67%
nttunpack_native_x86_64 LP64 bitwuzla ✅ 160s 211s -24%
LP64 z3* ✅ 1s 2s -50%
pack_sig_c LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 4s 2s +100%
pack_sig_h LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3_no_bv_extract* ✅ 2s 4s -50%
pack_sig_z LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
pack_sk_rho_key_tr LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 1s 3s -67%
pointwise_acc_native_aarch64 LP64 cadical ✅ 60s 60s +0%
LP64 z3_smt_only* ✅ 3s 5s -40%
pointwise_acc_native_x86_64 LP64 cadical ✅ 56s 58s -3%
LP64 z3_smt_only* ✅ 2s 2s +0%
pointwise_native_aarch64 LP64 bitwuzla ✅ 24s 24s +0%
LP64 z3* ✅ 2s 3s -33%
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 2s 3s -33%
LP64 cvc5_mbqi_enum ✅ 7s 9s -22%
LP64 z3 ✅ 2s 2s +0%
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 2s 5s -60%
LP64 cvc5_mbqi_enum ✅ 7s 7s +0%
LP64 z3 ✅ 3s 2s +50%
pointwise_native_x86_64 LP64 bitwuzla ✅ 20s 23s -13%
LP64 z3* ✅ 1s 2s -50%
poly_accumulate_column4 LP64 cadical ✅ 43s - new
LP64 z3* ✅ 4s - new
poly_accumulate_column_entry LP64 cadical ✅ 15s - new
LP64 z3* ✅ 3s - new
poly_add LP64 cadical ✅ 50s 51s -2%
LP64 z3* ✅ 12s 12s +0%
poly_caddq LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 1s 1s +0%
poly_caddq_c LP64 bitwuzla ✅ 18s 22s -18%
LP64 z3* ✅ 3s 1s +200%
poly_caddq_native LP64 bitwuzla ✅ 118s 120s -2%
LP64 z3* ✅ 3s 2s +50%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ✅ 36s 36s +0%
LP64 z3* ✅ 2s 5s -60%
poly_caddq_native_x86_64 LP64 bitwuzla ✅ 127s 128s -1%
LP64 z3* ✅ 3s 2s +50%
poly_challenge LP64 bitwuzla ✅ 23s 25s -8%
LP64 z3* ✅ 11s 11s +0%
poly_chknorm LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 4s 3s +33%
poly_chknorm_c LP64 bitwuzla ✅ 8s 9s -11%
LP64 z3* ✅ 8s 8s +0%
poly_chknorm_native LP64 bitwuzla ✅ 6s 5s +20%
LP64 z3* ✅ 3s 2s +50%
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 4s 1s +300%
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
poly_decompose LP64 bitwuzla ✅ 6s 4s +50%
LP64 z3* ✅ 3s 1s +200%
poly_decompose_32_native_aarch64 LP64 cadical ✅ 1s 1s +0%
LP64 z3* ✅ 2s 3s -33%
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3* ✅ 3s 1s +200%
poly_decompose_c LP64 cvc5_mbqi_enum ✅ 211s 249s -15%
LP64 z3* ✅ 5s 5s +0%
poly_decompose_native LP64 cadical ✅ 14s 16s -12%
LP64 z3* ✅ 3s 2s +50%
poly_decompose_native_x86_64 LP64 cadical ✅ 9s 10s -10%
LP64 z3* ✅ 1s 3s -67%
poly_invntt_tomont LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3* ✅ 2s 4s -50%
poly_invntt_tomont_c LP64 bitwuzla ✅ 163s 185s -12%
LP64 z3_smt_only* ✅ 4s 4s +0%
poly_invntt_tomont_native LP64 bitwuzla ✅ 45s 51s -12%
LP64 z3* ✅ 2s 4s -50%
poly_ntt LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3* ✅ 3s 1s +200%
poly_ntt_c LP64 bitwuzla ✅ 53s 54s -2%
LP64 z3_smt_only* ✅ 10s 9s +11%
poly_ntt_native LP64 bitwuzla ✅ 27s 30s -10%
LP64 z3* ✅ 1s 3s -67%
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 3s +0%
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 2s 2s +0%
poly_pointwise_montgomery LP64 bitwuzla ✅ 11s 10s +10%
LP64 z3* ✅ 2s 1s +100%
poly_pointwise_montgomery_c LP64 bitwuzla ✅ 197s 213s -8%
LP64 z3* ✅ 40s 43s -7%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ✅ 54s 57s -5%
LP64 z3* ✅ 2s 3s -33%
poly_power2round LP64 bitwuzla ✅ 306s 329s -7%
LP64 z3* ✅ 1s 1s +0%
poly_reduce LP64 bitwuzla ✅ 8s 9s -11%
LP64 z3* ✅ 3s 2s +50%
poly_shiftl LP64 bitwuzla ✅ 12s 11s +9%
LP64 z3* ✅ 4s 4s +0%
poly_sub LP64 bitwuzla ✅ 14s 17s -18%
LP64 z3* ✅ 2s 1s +100%
poly_uniform LP64 bitwuzla ✅ 180s 205s -12%
LP64 z3* ✅ 3s 3s +0%
poly_uniform_4x LP64 cadical ✅ 3s 3s +0%
LP64 z3* ✅ 2s 4s -50%
poly_uniform_eta LP64 bitwuzla ✅ 82s 92s -11%
LP64 z3* ✅ 2s 2s +0%
poly_uniform_eta_4x LP64 cadical ✅ 63s 63s +0%
LP64 z3* ✅ 8s 8s +0%
poly_uniform_gamma1 LP64 cadical ✅ 3s 2s +50%
LP64 z3* ✅ 2s 1s +100%
poly_uniform_gamma1_4x LP64 cadical ✅ 3s 1s +200%
LP64 z3* ✅ 3s 1s +200%
poly_use_hint LP64 cvc5_mbqi_enum ✅ 23s 25s -8%
LP64 z3* ✅ 2s 4s -50%
poly_use_hint_c LP64 cvc5_enum_inst ✅ 12s 12s +0%
LP64 z3* ✅ 4s 4s +0%
poly_use_hint_native LP64 cvc5_mbqi_enum ✅ 85s 92s -8%
LP64 z3* ✅ 2s 2s +0%
poly_use_hint_native_aarch64 LP64 bitwuzla ✅ 35s 37s -5%
LP64 z3* ✅ 2s 3s -33%
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 35s 38s -8%
LP64 z3* ✅ 3s 4s -25%
polyeta_pack LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3* ✅ 2s 4s -50%
polyeta_unpack LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 9s 9s +0%
polymat_expand_column4 LP64 cadical ✅ 71s - new
LP64 z3* ✅ 7s - new
polyt0_pack LP64 bitwuzla ✅ 6s 4s +50%
LP64 z3* ✅ 2s 3s -33%
polyt0_unpack LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 7s 8s -12%
polyt1_pack LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 3s -33%
polyt1_unpack LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 6s 3s +100%
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 2s 3s -33%
polyvec_matrix_expand_serial LP64 z3* ✅ 1s 2s -50%
polyvec_matrix_pointwise_montgomery_row LP64 cadical ✅ 40s 37s +8%
LP64 z3_no_bv_extract* ✅ 6s 5s +20%
polyvec_matrix_pointwise_montgomery_rows LP64 cadical ✅ 19s - new
LP64 z3_no_bv_extract* ✅ 2s - new
polyvec_matrix_pointwise_montgomery_rows_tail LP64 cadical ❌ - - -
LP64 z3_no_bv_extract* ✅ 3s - new
polyvec_matrix_pointwise_montgomery_yvec LP64 cadical ✅ 475s 492s -3%
LP64 z3* ✅ 93s 148s -37%
polyveck_accumulate_column_x4 LP64 cadical ✅ 45s - new
LP64 z3* ✅ 1s - new
polyveck_caddq LP64 cadical ✅ 102s 108s -6%
LP64 z3* ✅ 1s 2s -50%
polyveck_decompose_pack_w1 LP64 cadical ✅ 106s 110s -4%
LP64 z3* ✅ 3s 3s +0%
polyveck_invntt_tomont LP64 cadical ✅ 136s 144s -6%
LP64 z3* ✅ 4s 2s +100%
polyveck_ntt LP64 cadical ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
polyveck_reduce LP64 cadical ✅ 113s 116s -3%
LP64 z3* ✅ 4s 2s +100%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 16s 16s +0%
LP64 z3* ✅ 2s 2s +0%
polyvecl_chknorm LP64 cadical ✅ 52s 69s -25%
LP64 z3* ✅ 3s 3s +0%
polyvecl_ntt LP64 cadical ✅ 134s 121s +11%
LP64 z3* ✅ 2s 3s -33%
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 1s 2s -50%
LP64 z3_smt_only* ✅ 3s 2s +50%
polyvecl_pointwise_acc_montgomery_c LP64 cadical ✅ 2s 3s -33%
LP64 z3_smt_only* ✅ 1s 1s +0%
polyvecl_pointwise_acc_montgomery_native LP64 cvc5_mbqi_enum ✅ 2s 2s +0%
LP64 z3_smt_only* ✅ 3s 2s +50%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ✅ 1s 2s -50%
LP64 z3* ✅ 3s 2s +50%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ✅ 2s 2s +0%
LP64 z3* ✅ 1s 1s +0%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ✅ 33s 32s +3%
LP64 z3* ✅ 3s 2s +50%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ✅ 26s 27s -4%
LP64 z3* ✅ 1s 2s -50%
polyw1_pack LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 4s -50%
polyw1_pack_32 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 4s -50%
polyw1_pack_88 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 5s 1s +400%
polyw1_unpack LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 4s -50%
polyw1_unpack_32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 1s +200%
polyw1_unpack_88 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 5s 3s +67%
polyz_pack LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 1s 2s -50%
polyz_unpack LP64 bitwuzla ✅ 4s 6s -33%
LP64 z3* ✅ 1s 4s -75%
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 2s 4s -50%
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 2s +0%
polyz_unpack_c LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 7s 7s +0%
polyz_unpack_native LP64 bitwuzla ✅ 27s 28s -4%
LP64 z3* ✅ 3s 3s +0%
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 15s 17s -12%
LP64 z3* ✅ 1s 4s -75%
power2round LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
reduce32 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 3s -33%
rej_eta LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_smt_only ✅ 3s 4s -25%
rej_eta_c LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3 ✅ 14s 14s +0%
rej_eta_native LP64 bitwuzla* ✅ 1s 4s -75%
LP64 z3_smt_only ✅ 19s 18s +6%
rej_uniform LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 10s 10s +0%
rej_uniform_c LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 8s 7s +14%
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_smt_only ✅ 3s 4s -25%
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3_smt_only* ✅ 4s 4s +0%
rej_uniform_native LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 10s 10s +0%
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 2s 4s -50%
LP64 z3_smt_only ✅ 3s 1s +200%
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 6s 6s +0%
LP64 z3_smt_only* ✅ 9s 9s +0%
shake128_absorb LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 1s 3s -67%
shake128_finalize LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
shake128_init LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 1s 2s -50%
shake128_release LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 1s +100%
shake128_squeeze LP64 bitwuzla* ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 3s 2s +50%
shake128x4_absorb_once LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 2s 1s +100%
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 2s 2s +0%
shake256 LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 2s 2s +0%
shake256_absorb LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
shake256_finalize LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
shake256_init LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 2s 3s -33%
shake256_release LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 1s +100%
shake256_squeeze LP64 bitwuzla* ✅ 1s 4s -75%
LP64 z3 ✅ 1s 1s +0%
shake256x4_absorb_once LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3 ✅ 1s 2s -50%
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3_smt_only ✅ 2s 3s -33%
sig_unpack_hints LP64 bitwuzla ✅ 57s 57s +0%
LP64 z3* ✅ 25s 23s +9%
sign_keypair LP64 cadical ✅ 61s 49s +24%
LP64 z3* ✅ 3s 7s -57%
sign_keypair_internal LP64 cadical ✅ 147s 167s -12%
LP64 z3_no_bv_extract* ✅ 10s 14s -29%
sign_pk_from_sk LP64 z3_no_bv_extract* ✅ 29s 34s -15%
sign_signature LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 2s 5s -60%
sign_signature_extmu LP64 cadical ✅ 22s 27s -19%
LP64 z3* ✅ 4s 2s +100%
sign_signature_internal LP64 z3_no_bv_extract* ✅ 12s 11s +9%
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 3s 6s -50%
LP64 z3* ✅ 2s 3s -33%
sign_signature_pre_hash_shake256 LP64 cadical ✅ 13s 12s +8%
LP64 z3* ✅ 4s 4s +0%
sign_verify LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
sign_verify_extmu LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 2s +0%
sign_verify_internal LP64 z3_no_bv_extract* ❌ - 217s -
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 3s +0%
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 2s 2s +0%
sk_s1hat_get_poly LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 4s -50%
sk_s2hat_get_poly LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 4s 3s +33%
sk_t0hat_get_poly LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 2s +0%
sys_check_capability LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 1s 3s -67%
unpack_pk_t1 LP64 bitwuzla ✅ 12s 13s -8%
LP64 z3* ✅ 2s 2s +0%
unpack_sk LP64 cadical ✅ 3s 3s +0%
LP64 z3* ✅ 3s 3s +0%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ✅ 6s 3s +100%
LP64 z3* ✅ 2s 3s -33%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ✅ 4s 1s +300%
LP64 z3* ✅ 2s 3s -33%
unpack_sk_t0hat LP64 cadical ✅ 1s 2s -50%
LP64 z3* ✅ 4s 2s +100%
use_hint LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
yvec_get_poly LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 3s +0%
yvec_init LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%

@oqs-bot

oqs-bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

CBMC Results (ML-DSA-44)

* default.

⚠️ Attention Required

Proof DM Solver Status Current Previous Change
compute_pack_t0_t1 LP64 z3_no_bv_extract* ❌ - 75s -
polyvec_matrix_pointwise_montgomery_rows_tail LP64 cadical ❌ - - -
sign_verify_internal LP64 z3_no_bv_extract* ❌ - 376s -
Full Results (445 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ✅ 1403s 1890s -25.8%
caddq LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 1s 3s -67%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ❌ - 75s -
decompose LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 4s -25%
fqmul LP64 bitwuzla* ✅ 26s 26s +0%
LP64 z3_smt_only ✅ 20s 21s -5%
fqscale LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3 ✅ 3s 5s -40%
intt_native_aarch64 LP64 bitwuzla ✅ 25s 29s -14%
LP64 z3* ✅ 3s 2s +50%
intt_native_rv32im_fastmul ILP32 z3* ✅ 5s 2s +150%
LP64 cvc5_mbqi_enum ✅ 8s 11s -27%
LP64 z3 ✅ 1s 2s -50%
intt_native_rv32im_slowmul ILP32 z3* ✅ 3s 2s +50%
LP64 cvc5_mbqi_enum ✅ 8s 10s -20%
LP64 z3 ✅ 2s 2s +0%
intt_native_x86_64 LP64 bitwuzla ✅ 18s 23s -22%
LP64 z3* ✅ 2s 4s -50%
keccak_absorb LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 6s 8s -25%
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 8s 6s +33%
LP64 cvc5_arrays_exp ✅ 9s 11s -18%
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3_no_bv_extract ✅ 2s 2s +0%
keccak_f1600_x1_native_aarch64_v84a LP64 bitwuzla* ✅ 3s 2s +50%
LP64 cvc5_arrays_exp ✅ 2s 2s +0%
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3 ✅ 1s 4s -75%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 2s 2s +0%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 3s 3s +0%
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 3s 1s +200%
LP64 cvc5_arrays_exp ✅ 3s 1s +200%
keccak_finalize LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 2s 1s +100%
keccak_init LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 2s +0%
keccak_squeeze LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 3s 4s -25%
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 4s 2s +100%
LP64 z3 ✅ 1s 3s -67%
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 3s 1s +200%
keccakf1600_permute LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 2s 4s -50%
keccakf1600_permute_native LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 4s -75%
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 2s 1s +100%
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3_smt_only ✅ 1s 2s -50%
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 2s 2s +0%
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 2s 1s +100%
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 1s 2s -50%
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 12s 11s +9%
LP64 z3* ✅ 12s 13s -8%
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 1s 2s -50%
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_no_bv_extract ✅ 3s 2s +50%
make_hint LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 1s 2s -50%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ✅ 243s 255s -5%
mld_check_pct LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3* ✅ 5s 9s -44%
mld_compute_pack_z LP64 cadical ✅ 70s 72s -3%
LP64 z3_no_bv_extract* ✅ 6s 3s +100%
mld_ct_abs_i32 ILP32 bitwuzla ✅ 2s 1s +100%
ILP32 cvc5_arrays_exp ✅ 2s 3s -33%
ILP32 z3 ✅ 2s 4s -50%
LP64 bitwuzla ✅ 4s 3s +33%
LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 2s 1s +100%
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 3s 1s +200%
LP64 z3* ✅ 3s 2s +50%
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 6s 2s +200%
LP64 z3* ✅ 3s 2s +50%
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 2s 4s -50%
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 4s -50%
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 2s 1s +100%
mld_ct_memcmp LP64 bitwuzla* ✅ 3s 4s -25%
LP64 z3_no_bv_extract ✅ 49s 53s -8%
mld_ct_sel_int32 LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 4s 1s +300%
mld_h LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 2s 3s -33%
mld_invntt_layer LP64 bitwuzla* ✅ 73s 76s -4%
LP64 z3_smt_only ✅ 101s 100s +1%
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 1s 3s -67%
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 5s 3s +67%
LP64 z3* ✅ 5s 3s +67%
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 1s 2s -50%
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 2s 2s +0%
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 14s 13s +8%
LP64 z3_no_bv_extract ✅ 72s 76s -5%
mld_ntt_layer LP64 bitwuzla* ✅ 29s 28s +4%
LP64 z3_no_bv_extract ✅ 4s 5s -20%
mld_polymat_expand_entry LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 5s 4s +25%
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 3s 5s -40%
LP64 z3* ✅ 4s 2s +100%
mld_sample_pack_s1_s2 LP64 cadical ✅ 30s 31s -3%
LP64 z3* ✅ 4s 5s -20%
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ✅ 93s 96s -3%
LP64 z3* ✅ 1s 3s -67%
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 2s 4s -50%
LP64 z3* ✅ 2s 5s -60%
mld_sign_finish LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 4s 3s +33%
mld_sign_hook_resume LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 2s 3s -33%
mld_value_barrier_i64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 1s 2s -50%
mld_value_barrier_u32 LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 2s 2s +0%
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 3s 2s +50%
montgomery_reduce LP64 cvc5_arrays_exp ✅ 1s 5s -80%
LP64 z3* ✅ 2s 2s +0%
ntt_native_aarch64 LP64 bitwuzla ✅ 21s 26s -19%
LP64 z3* ✅ 2s 2s +0%
ntt_native_rv32im_fastmul ILP32 z3* ✅ 3s 3s +0%
LP64 cvc5_mbqi_enum ✅ 6s 8s -25%
LP64 z3 ✅ 3s 5s -40%
ntt_native_rv32im_slowmul ILP32 z3* ✅ 2s 1s +100%
LP64 cvc5_mbqi_enum ✅ 7s 6s +17%
LP64 z3 ✅ 2s 4s -50%
ntt_native_x86_64 LP64 bitwuzla ✅ 22s 20s +10%
LP64 z3* ✅ 2s 2s +0%
nttunpack_native_x86_64 LP64 bitwuzla ✅ 178s 218s -18%
LP64 z3* ✅ 2s 1s +100%
pack_sig_c LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
pack_sig_h LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3_no_bv_extract* ✅ 3s 2s +50%
pack_sig_z LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 2s +0%
pack_sk_rho_key_tr LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 3s -33%
pointwise_acc_native_aarch64 LP64 cadical ✅ 61s 61s +0%
LP64 z3_smt_only* ✅ 3s 3s +0%
pointwise_acc_native_x86_64 LP64 cadical ✅ 58s 58s +0%
LP64 z3_smt_only* ✅ 4s 3s +33%
pointwise_native_aarch64 LP64 bitwuzla ✅ 24s 25s -4%
LP64 z3* ✅ 2s 3s -33%
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 3s 1s +200%
LP64 cvc5_mbqi_enum ✅ 7s 9s -22%
LP64 z3 ✅ 3s 2s +50%
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 3s 4s -25%
LP64 cvc5_mbqi_enum ✅ 8s 8s +0%
LP64 z3 ✅ 3s 2s +50%
pointwise_native_x86_64 LP64 bitwuzla ✅ 24s 26s -8%
LP64 z3* ✅ 3s 3s +0%
poly_accumulate_column4 LP64 cadical ✅ 44s - new
LP64 z3* ✅ 5s - new
poly_accumulate_column_entry LP64 cadical ✅ 14s - new
LP64 z3* ✅ 1s - new
poly_add LP64 cadical ✅ 51s 53s -4%
LP64 z3* ✅ 15s 12s +25%
poly_caddq LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 1s +100%
poly_caddq_c LP64 bitwuzla ✅ 21s 21s +0%
LP64 z3* ✅ 4s 2s +100%
poly_caddq_native LP64 bitwuzla ✅ 117s 134s -13%
LP64 z3* ✅ 3s 5s -40%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ✅ 34s 35s -3%
LP64 z3* ✅ 5s 2s +150%
poly_caddq_native_x86_64 LP64 bitwuzla ✅ 145s 152s -5%
LP64 z3* ✅ 2s 1s +100%
poly_challenge LP64 bitwuzla ✅ 26s 29s -10%
LP64 z3* ✅ 14s 13s +8%
poly_chknorm LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3* ✅ 2s 3s -33%
poly_chknorm_c LP64 bitwuzla ✅ 9s 9s +0%
LP64 z3* ✅ 12s 10s +20%
poly_chknorm_native LP64 bitwuzla ✅ 5s 7s -29%
LP64 z3* ✅ 4s 3s +33%
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 5s -60%
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 4s 2s +100%
poly_decompose LP64 bitwuzla ✅ 6s 7s -14%
LP64 z3* ✅ 4s 1s +300%
poly_decompose_32_native_aarch64 LP64 cadical ✅ 1s 2s -50%
LP64 z3* ✅ 1s 2s -50%
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 5s 6s -17%
LP64 z3* ✅ 2s 4s -50%
poly_decompose_c LP64 cvc5_mbqi_enum ✅ 244s 223s +9%
LP64 z3* ✅ 5s 1s +400%
poly_decompose_native LP64 cadical ✅ 15s 18s -17%
LP64 z3* ✅ 2s 2s +0%
poly_decompose_native_x86_64 LP64 cadical ✅ 11s 11s +0%
LP64 z3* ✅ 4s 3s +33%
poly_invntt_tomont LP64 bitwuzla ✅ 6s 6s +0%
LP64 z3* ✅ 4s 2s +100%
poly_invntt_tomont_c LP64 bitwuzla ✅ 173s 166s +4%
LP64 z3_smt_only* ✅ 7s 6s +17%
poly_invntt_tomont_native LP64 bitwuzla ✅ 50s 53s -6%
LP64 z3* ✅ 3s 3s +0%
poly_ntt LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3* ✅ 1s 3s -67%
poly_ntt_c LP64 bitwuzla ✅ 60s 56s +7%
LP64 z3_smt_only* ✅ 12s 10s +20%
poly_ntt_native LP64 bitwuzla ✅ 29s 31s -6%
LP64 z3* ✅ 3s 2s +50%
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 3s +0%
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 2s +50%
poly_pointwise_montgomery LP64 bitwuzla ✅ 14s 10s +40%
LP64 z3* ✅ 2s 2s +0%
poly_pointwise_montgomery_c LP64 bitwuzla ✅ 211s 223s -5%
LP64 z3* ✅ 72s 73s -1%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ✅ 54s 57s -5%
LP64 z3* ✅ 2s 2s +0%
poly_power2round LP64 bitwuzla ✅ 350s 365s -4%
LP64 z3* ✅ 2s 3s -33%
poly_reduce LP64 bitwuzla ✅ 9s 9s +0%
LP64 z3* ✅ 3s 3s +0%
poly_shiftl LP64 bitwuzla ✅ 14s 12s +17%
LP64 z3* ✅ 2s 1s +100%
poly_sub LP64 bitwuzla ✅ 14s 14s +0%
LP64 z3* ✅ 3s 2s +50%
poly_uniform LP64 bitwuzla ✅ 203s 202s +0%
LP64 z3* ✅ 3s 3s +0%
poly_uniform_4x LP64 cadical ✅ 61s 63s -3%
LP64 z3* ✅ 9s 7s +29%
poly_uniform_eta LP64 bitwuzla ✅ 84s 92s -9%
LP64 z3* ✅ 1s 4s -75%
poly_uniform_eta_4x LP64 cadical ✅ 64s 65s -2%
LP64 z3* ✅ 10s 11s -9%
poly_uniform_gamma1 LP64 cadical ✅ 2s 1s +100%
LP64 z3* ✅ 1s 3s -67%
poly_uniform_gamma1_4x LP64 cadical ✅ 10s 11s -9%
LP64 z3* ✅ 4s 4s +0%
poly_use_hint LP64 cvc5_mbqi_enum ✅ 23s 25s -8%
LP64 z3* ✅ 3s 5s -40%
poly_use_hint_c LP64 cvc5_enum_inst ✅ 12s 11s +9%
LP64 z3* ✅ 4s 2s +100%
poly_use_hint_native LP64 cvc5_mbqi_enum ✅ 93s 93s +0%
LP64 z3* ✅ 2s 2s +0%
poly_use_hint_native_aarch64 LP64 bitwuzla ✅ 35s 38s -8%
LP64 z3* ✅ 1s 2s -50%
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 37s 36s +3%
LP64 z3* ✅ 2s 3s -33%
polyeta_pack LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3* ✅ 2s 2s +0%
polyeta_unpack LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 8s 8s +0%
polymat_expand_column4 LP64 cadical ✅ 74s - new
LP64 z3* ✅ 10s - new
polyt0_pack LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3* ✅ 2s 3s -33%
polyt0_unpack LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 9s 11s -18%
polyt1_pack LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 1s 1s +0%
polyt1_unpack LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 4s 4s +0%
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 12s 12s +0%
polyvec_matrix_expand_serial LP64 z3* ✅ 4s 6s -33%
polyvec_matrix_pointwise_montgomery_row LP64 cadical ✅ 104s 106s -2%
LP64 z3_no_bv_extract* ✅ 4s 1s +300%
polyvec_matrix_pointwise_montgomery_rows LP64 cadical ✅ 108s - new
LP64 z3_no_bv_extract* ✅ 2s - new
polyvec_matrix_pointwise_montgomery_rows_tail LP64 cadical ❌ - - -
LP64 z3_no_bv_extract* ✅ 1s - new
polyvec_matrix_pointwise_montgomery_yvec LP64 cadical ✅ 245s 269s -9%
LP64 z3* ✅ 5s 4s +25%
polyveck_accumulate_column_x4 LP64 cadical ✅ 38s - new
LP64 z3* ✅ 2s - new
polyveck_caddq LP64 cadical ✅ 110s 112s -2%
LP64 z3* ✅ 3s 5s -40%
polyveck_decompose_pack_w1 LP64 cadical ✅ 130s 113s +15%
LP64 z3* ✅ 1s 2s -50%
polyveck_invntt_tomont LP64 cadical ✅ 143s 147s -3%
LP64 z3* ✅ 2s 2s +0%
polyveck_ntt LP64 cadical ✅ 120s 124s -3%
LP64 z3* ✅ 1s 4s -75%
polyveck_reduce LP64 cadical ✅ 1s 2s -50%
LP64 z3* ✅ 3s 2s +50%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ✅ 29s 31s -6%
LP64 z3* ✅ 2s 3s -33%
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 19s 16s +19%
LP64 z3* ✅ 4s 4s +0%
polyvecl_chknorm LP64 cadical ✅ 54s 54s +0%
LP64 z3* ✅ 4s 1s +300%
polyvecl_ntt LP64 cadical ✅ 120s 123s -2%
LP64 z3* ✅ 1s 1s +0%
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 5s 6s -17%
LP64 z3_smt_only* ✅ 2s 3s -33%
polyvecl_pointwise_acc_montgomery_c LP64 cadical ✅ 93s 95s -2%
LP64 z3_smt_only* ✅ 108s 123s -12%
polyvecl_pointwise_acc_montgomery_native LP64 cvc5_mbqi_enum ✅ 169s 169s +0%
LP64 z3_smt_only* ✅ 3s 2s +50%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ✅ 41s 42s -2%
LP64 z3* ✅ 1s 3s -67%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ✅ 43s 44s -2%
LP64 z3* ✅ 4s 1s +300%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ✅ 34s 35s -3%
LP64 z3* ✅ 3s 2s +50%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ✅ 30s 30s +0%
LP64 z3* ✅ 3s 2s +50%
polyw1_pack LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 1s 2s -50%
polyw1_pack_32 LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 3s 2s +50%
polyw1_pack_88 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 4s 2s +100%
polyw1_unpack LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
polyw1_unpack_32 LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 2s 3s -33%
polyw1_unpack_88 LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 3s 2s +50%
polyz_pack LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 4s 1s +300%
polyz_unpack LP64 bitwuzla ✅ 6s 6s +0%
LP64 z3* ✅ 4s 2s +100%
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
polyz_unpack_c LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 4s 7s -43%
polyz_unpack_native LP64 bitwuzla ✅ 29s 30s -3%
LP64 z3* ✅ 2s 2s +0%
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 17s 17s +0%
LP64 z3* ✅ 3s 2s +50%
power2round LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 3s 3s +0%
reduce32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 1s +200%
rej_eta LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3_smt_only ✅ 3s 2s +50%
rej_eta_c LP64 bitwuzla* ✅ 4s 3s +33%
LP64 z3 ✅ 19s 16s +19%
rej_eta_native LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3_smt_only ✅ 18s 19s -5%
rej_uniform LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 10s 10s +0%
rej_uniform_c LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 16s 18s -11%
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 1s 4s -75%
LP64 z3_smt_only ✅ 3s 3s +0%
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3_smt_only* ✅ 3s 1s +200%
rej_uniform_native LP64 bitwuzla* ✅ 1s 5s -80%
LP64 z3_smt_only ✅ 10s 11s -9%
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 4s 2s +100%
LP64 z3_smt_only ✅ 2s 1s +100%
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3_smt_only* ✅ 9s 8s +12%
shake128_absorb LP64 cvc5_arrays_exp ✅ 3s 1s +200%
LP64 z3* ✅ 2s 1s +100%
shake128_finalize LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 1s 1s +0%
shake128_init LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 3s -33%
shake128_release LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 1s 2s -50%
shake128_squeeze LP64 bitwuzla* ✅ 4s 1s +300%
LP64 cvc5_arrays_exp ✅ 3s 2s +50%
shake128x4_absorb_once LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3_smt_only ✅ 1s 2s -50%
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 2s 1s +100%
shake256 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 1s +200%
shake256_absorb LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 3s 2s +50%
shake256_finalize LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
shake256_init LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 2s 3s -33%
shake256_release LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 1s +100%
shake256_squeeze LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 2s 2s +0%
shake256x4_absorb_once LP64 bitwuzla* ✅ 5s 2s +150%
LP64 z3 ✅ 2s 3s -33%
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_smt_only ✅ 2s 2s +0%
sig_unpack_hints LP64 bitwuzla ✅ 60s 61s -2%
LP64 z3* ✅ 19s 42s -55%
sign_keypair LP64 cadical ✅ 50s 52s -4%
LP64 z3* ✅ 6s 7s -14%
sign_keypair_internal LP64 cadical ✅ 152s 155s -2%
LP64 z3_no_bv_extract* ✅ 12s 10s +20%
sign_pk_from_sk LP64 z3_no_bv_extract* ✅ 33s 34s -3%
sign_signature LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 5s 3s +67%
sign_signature_extmu LP64 cadical ✅ 21s 23s -9%
LP64 z3* ✅ 2s 2s +0%
sign_signature_internal LP64 z3_no_bv_extract* ✅ 89s 114s -22%
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 4s -25%
sign_signature_pre_hash_shake256 LP64 cadical ✅ 12s 17s -29%
LP64 z3* ✅ 5s 7s -29%
sign_verify LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 4s -25%
sign_verify_extmu LP64 bitwuzla ✅ 1s 5s -80%
LP64 z3* ✅ 3s 3s +0%
sign_verify_internal LP64 z3_no_bv_extract* ❌ - 376s -
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 2s +0%
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 3s 1s +200%
sk_s1hat_get_poly LP64 bitwuzla ✅ 32s 31s +3%
LP64 z3* ✅ 2s 1s +100%
sk_s2hat_get_poly LP64 bitwuzla ✅ 32s 32s +0%
LP64 z3* ✅ 4s 3s +33%
sk_t0hat_get_poly LP64 bitwuzla ✅ 32s 36s -11%
LP64 z3* ✅ 4s 3s +33%
sys_check_capability LP64 cvc5_arrays_exp ✅ 1s 1s +0%
LP64 z3* ✅ 3s 6s -50%
unpack_pk_t1 LP64 bitwuzla ✅ 12s 14s -14%
LP64 z3* ✅ 1s 5s -80%
unpack_sk LP64 cadical ✅ 35s 36s -3%
LP64 z3* ✅ 2s 2s +0%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ✅ 258s 273s -5%
LP64 z3* ✅ 4s 3s +33%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ✅ 266s 267s -0%
LP64 z3* ✅ 4s 2s +100%
unpack_sk_t0hat LP64 cadical ✅ 41s 41s +0%
LP64 z3* ✅ 2s 3s -33%
use_hint LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 4s 2s +100%
yvec_get_poly LP64 bitwuzla ✅ 34s 37s -8%
LP64 z3* ✅ 5s 4s +25%
yvec_init LP64 bitwuzla ✅ 41s 43s -5%
LP64 z3* ✅ 1s 3s -67%

@oqs-bot

oqs-bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

CBMC Results (ML-DSA-65, REDUCE-RAM)

* default.

⚠️ Attention Required

Proof DM Solver Status Current Previous Change
compute_pack_t0_t1 LP64 z3_no_bv_extract* ❌ - 34s -
polyvec_matrix_pointwise_montgomery_rows_tail LP64 cadical ❌ - - -
polyvec_matrix_pointwise_montgomery_yvec LP64 z3* ⚠️ 155s 97s +60%
sign_verify_internal LP64 z3_no_bv_extract* ❌ - 185s -
Full Results (445 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ✅ 1144s 1285s -11.0%
caddq LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 1s 2s -50%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ❌ - 34s -
decompose LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 4s 2s +100%
fqmul LP64 bitwuzla* ✅ 23s 27s -15%
LP64 z3_smt_only ✅ 19s 21s -10%
fqscale LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 1s 4s -75%
intt_native_aarch64 LP64 bitwuzla ✅ 21s 26s -19%
LP64 z3* ✅ 1s 5s -80%
intt_native_rv32im_fastmul ILP32 z3* ✅ 3s 3s +0%
LP64 cvc5_mbqi_enum ✅ 7s 9s -22%
LP64 z3 ✅ 1s 3s -67%
intt_native_rv32im_slowmul ILP32 z3* ✅ 5s 2s +150%
LP64 cvc5_mbqi_enum ✅ 7s 6s +17%
LP64 z3 ✅ 2s 5s -60%
intt_native_x86_64 LP64 bitwuzla ✅ 15s 17s -12%
LP64 z3* ✅ 4s 2s +100%
keccak_absorb LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 6s 8s -25%
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 5s 5s +0%
LP64 cvc5_arrays_exp ✅ 10s 8s +25%
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3_no_bv_extract ✅ 2s 1s +100%
keccak_f1600_x1_native_aarch64_v84a LP64 bitwuzla* ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 2s 2s +0%
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3 ✅ 4s 1s +300%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 2s 2s +0%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 2s 3s -33%
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 1s 1s +0%
LP64 cvc5_arrays_exp ✅ 2s 4s -50%
keccak_finalize LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 2s 1s +100%
keccak_init LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
keccak_squeeze LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3 ✅ 2s 1s +100%
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 2s 3s -33%
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
keccakf1600_permute LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 4s 1s +300%
keccakf1600_permute_native LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 1s +100%
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 1s 2s -50%
LP64 cvc5_arrays_exp ✅ 1s 2s -50%
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3_smt_only ✅ 1s 1s +0%
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 1s 3s -67%
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3 ✅ 2s 2s +0%
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 12s 12s +0%
LP64 z3* ✅ 13s 13s +0%
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 2s 3s -33%
LP64 cvc5_arrays_exp ✅ 1s 2s -50%
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_no_bv_extract ✅ 3s 2s +50%
make_hint LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ✅ 129s 122s +6%
mld_check_pct LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 7s 5s +40%
mld_compute_pack_z LP64 cadical ✅ 33s 38s -13%
LP64 z3_no_bv_extract* ✅ 3s 6s -50%
mld_ct_abs_i32 ILP32 bitwuzla ✅ 1s 1s +0%
ILP32 cvc5_arrays_exp ✅ 2s 2s +0%
ILP32 z3 ✅ 1s 3s -67%
LP64 bitwuzla ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 2s 2s +0%
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 2s 1s +100%
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 3s -33%
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 1s +100%
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 3s -33%
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 1s 3s -67%
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 2s 2s +0%
mld_ct_memcmp LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_no_bv_extract ✅ 46s 51s -10%
mld_ct_sel_int32 LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 3s -33%
mld_h LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
mld_invntt_layer LP64 bitwuzla* ✅ 62s 78s -21%
LP64 z3_smt_only ✅ 75s 90s -17%
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 3s 2s +50%
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 3s 4s -25%
LP64 z3* ✅ 3s 4s -25%
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 1s 1s +0%
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 1s +100%
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 14s 13s +8%
LP64 z3_no_bv_extract ✅ 173s 221s -22%
mld_ntt_layer LP64 bitwuzla* ✅ 24s 28s -14%
LP64 z3_no_bv_extract ✅ 2s 3s -33%
mld_polymat_expand_entry LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 4s 2s +100%
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 2s +0%
mld_sample_pack_s1_s2 LP64 cadical ✅ 44s 51s -14%
LP64 z3* ✅ 3s 4s -25%
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ✅ 226s 229s -1%
LP64 z3* ✅ 3s 4s -25%
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 2s 3s -33%
mld_sign_finish LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 2s 2s +0%
mld_sign_hook_resume LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 4s 3s +33%
mld_value_barrier_i64 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 2s +0%
mld_value_barrier_u32 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 2s +50%
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 3s -33%
montgomery_reduce LP64 cvc5_arrays_exp ✅ 4s 3s +33%
LP64 z3* ✅ 2s 3s -33%
ntt_native_aarch64 LP64 bitwuzla ✅ 19s 24s -21%
LP64 z3* ✅ 2s 3s -33%
ntt_native_rv32im_fastmul ILP32 z3* ✅ 2s 3s -33%
LP64 cvc5_mbqi_enum ✅ 5s 7s -29%
LP64 z3 ✅ 3s 2s +50%
ntt_native_rv32im_slowmul ILP32 z3* ✅ 2s 3s -33%
LP64 cvc5_mbqi_enum ✅ 8s 7s +14%
LP64 z3 ✅ 2s 1s +100%
ntt_native_x86_64 LP64 bitwuzla ✅ 17s 20s -15%
LP64 z3* ✅ 2s 2s +0%
nttunpack_native_x86_64 LP64 bitwuzla ✅ 173s 199s -13%
LP64 z3* ✅ 3s 2s +50%
pack_sig_c LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 3s 3s +0%
pack_sig_h LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3_no_bv_extract* ✅ 4s 1s +300%
pack_sig_z LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 4s 4s +0%
pack_sk_rho_key_tr LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
pointwise_acc_native_aarch64 LP64 cadical ✅ 79s 81s -2%
LP64 z3_smt_only* ✅ 5s 3s +67%
pointwise_acc_native_x86_64 LP64 cadical ✅ 76s 82s -7%
LP64 z3_smt_only* ✅ 4s 3s +33%
pointwise_native_aarch64 LP64 bitwuzla ✅ 20s 26s -23%
LP64 z3* ✅ 3s 2s +50%
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 2s 1s +100%
LP64 cvc5_mbqi_enum ✅ 8s 7s +14%
LP64 z3 ✅ 2s 4s -50%
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 4s 1s +300%
LP64 cvc5_mbqi_enum ✅ 9s 7s +29%
LP64 z3 ✅ 2s 2s +0%
pointwise_native_x86_64 LP64 bitwuzla ✅ 22s 21s +5%
LP64 z3* ✅ 2s 3s -33%
poly_accumulate_column4 LP64 cadical ✅ 33s - new
LP64 z3* ✅ 3s - new
poly_accumulate_column_entry LP64 cadical ✅ 13s - new
LP64 z3* ✅ 2s - new
poly_add LP64 cadical ✅ 48s 49s -2%
LP64 z3* ✅ 9s 13s -31%
poly_caddq LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 1s +100%
poly_caddq_c LP64 bitwuzla ✅ 18s 22s -18%
LP64 z3* ✅ 5s 3s +67%
poly_caddq_native LP64 bitwuzla ✅ 105s 129s -19%
LP64 z3* ✅ 1s 1s +0%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ✅ 33s 35s -6%
LP64 z3* ✅ 1s 4s -75%
poly_caddq_native_x86_64 LP64 bitwuzla ✅ 112s 145s -23%
LP64 z3* ✅ 2s 3s -33%
poly_challenge LP64 bitwuzla ✅ 24s 25s -4%
LP64 z3* ✅ 10s 13s -23%
poly_chknorm LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 1s 2s -50%
poly_chknorm_c LP64 bitwuzla ✅ 8s 8s +0%
LP64 z3* ✅ 8s 11s -27%
poly_chknorm_native LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3* ✅ 4s 2s +100%
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 1s 3s -67%
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 2s 1s +100%
poly_decompose LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 2s 3s -33%
poly_decompose_32_native_aarch64 LP64 cadical ✅ 8s 9s -11%
LP64 z3* ✅ 2s 1s +100%
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 3s 3s +0%
poly_decompose_c LP64 cvc5_mbqi_enum ✅ 217s 261s -17%
LP64 z3* ✅ 2s 2s +0%
poly_decompose_native LP64 cadical ✅ 11s 12s -8%
LP64 z3* ✅ 3s 2s +50%
poly_decompose_native_x86_64 LP64 cadical ✅ 9s 9s +0%
LP64 z3* ✅ 2s 3s -33%
poly_invntt_tomont LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 3s 2s +50%
poly_invntt_tomont_c LP64 bitwuzla ✅ 146s 185s -21%
LP64 z3_smt_only* ✅ 4s 5s -20%
poly_invntt_tomont_native LP64 bitwuzla ✅ 43s 51s -16%
LP64 z3* ✅ 2s 2s +0%
poly_ntt LP64 bitwuzla ✅ 5s 6s -17%
LP64 z3* ✅ 1s 1s +0%
poly_ntt_c LP64 bitwuzla ✅ 44s 54s -19%
LP64 z3_smt_only* ✅ 8s 12s -33%
poly_ntt_native LP64 bitwuzla ✅ 27s 32s -16%
LP64 z3* ✅ 2s 2s +0%
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 1s +200%
poly_pointwise_montgomery LP64 bitwuzla ✅ 11s 12s -8%
LP64 z3* ✅ 3s 2s +50%
poly_pointwise_montgomery_c LP64 bitwuzla ✅ 177s 193s -8%
LP64 z3* ✅ 36s 43s -16%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ✅ 55s 56s -2%
LP64 z3* ✅ 2s 2s +0%
poly_power2round LP64 bitwuzla ✅ 277s 301s -8%
LP64 z3* ✅ 1s 4s -75%
poly_reduce LP64 bitwuzla ✅ 8s 7s +14%
LP64 z3* ✅ 3s 3s +0%
poly_shiftl LP64 bitwuzla ✅ 11s 13s -15%
LP64 z3* ✅ 2s 4s -50%
poly_sub LP64 bitwuzla ✅ 13s 16s -19%
LP64 z3* ✅ 2s 3s -33%
poly_uniform LP64 bitwuzla ✅ 158s 210s -25%
LP64 z3* ✅ 3s 2s +50%
poly_uniform_4x LP64 cadical ✅ 1s 3s -67%
LP64 z3* ✅ 2s 3s -33%
poly_uniform_eta LP64 bitwuzla ✅ 55s 62s -11%
LP64 z3* ✅ 2s 4s -50%
poly_uniform_eta_4x LP64 cadical ✅ 56s 57s -2%
LP64 z3* ✅ 9s 11s -18%
poly_uniform_gamma1 LP64 cadical ✅ 4s 3s +33%
LP64 z3* ✅ 3s 3s +0%
poly_uniform_gamma1_4x LP64 cadical ✅ 3s 1s +200%
LP64 z3* ✅ 2s 2s +0%
poly_use_hint LP64 cvc5_mbqi_enum ✅ 21s 22s -5%
LP64 z3* ✅ 2s 2s +0%
poly_use_hint_c LP64 cvc5_enum_inst ✅ 11s 15s -27%
LP64 z3* ✅ 4s 3s +33%
poly_use_hint_native LP64 cvc5_mbqi_enum ✅ 81s 86s -6%
LP64 z3* ✅ 2s 1s +100%
poly_use_hint_native_aarch64 LP64 bitwuzla ✅ 26s 34s -24%
LP64 z3* ✅ 4s 3s +33%
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 29s 31s -6%
LP64 z3* ✅ 2s 2s +0%
polyeta_pack LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 3s 4s -25%
polyeta_unpack LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 3s 1s +200%
polymat_expand_column4 LP64 cadical ✅ 52s - new
LP64 z3* ✅ 52s - new
polyt0_pack LP64 bitwuzla ✅ 6s 7s -14%
LP64 z3* ✅ 2s 4s -50%
polyt0_unpack LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 9s 7s +29%
polyt1_pack LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
polyt1_unpack LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 3s +0%
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 2s 5s -60%
polyvec_matrix_expand_serial LP64 z3* ✅ 1s 2s -50%
polyvec_matrix_pointwise_montgomery_row LP64 cadical ✅ 37s 41s -10%
LP64 z3_no_bv_extract* ✅ 7s 4s +75%
polyvec_matrix_pointwise_montgomery_rows LP64 cadical ✅ 21s - new
LP64 z3_no_bv_extract* ✅ 2s - new
polyvec_matrix_pointwise_montgomery_rows_tail LP64 cadical ❌ - - -
LP64 z3_no_bv_extract* ✅ 2s - new
polyvec_matrix_pointwise_montgomery_yvec LP64 cadical ✅ 727s 817s -11%
LP64 z3* ⚠️ 155s 97s +60%
polyveck_accumulate_column_x4 LP64 cadical ✅ 56s - new
LP64 z3* ✅ 6s - new
polyveck_caddq LP64 cadical ✅ 204s 225s -9%
LP64 z3* ✅ 2s 3s -33%
polyveck_decompose_pack_w1 LP64 cadical ✅ 171s 186s -8%
LP64 z3* ✅ 3s 16s -81%
polyveck_invntt_tomont LP64 cadical ✅ 178s 234s -24%
LP64 z3* ✅ 4s 4s +0%
polyveck_ntt LP64 cadical ✅ 2s 2s +0%
LP64 z3* ✅ 3s 1s +200%
polyveck_reduce LP64 cadical ✅ 169s 187s -10%
LP64 z3* ✅ 3s 1s +200%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ✅ 1s 3s -67%
LP64 z3* ✅ 1s 4s -75%
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 17s 19s -11%
LP64 z3* ✅ 2s 2s +0%
polyvecl_chknorm LP64 cadical ✅ 65s 74s -12%
LP64 z3* ✅ 3s 3s +0%
polyvecl_ntt LP64 cadical ✅ 181s 168s +8%
LP64 z3* ✅ 3s 4s -25%
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 3s 2s +50%
LP64 z3_smt_only* ✅ 1s 1s +0%
polyvecl_pointwise_acc_montgomery_c LP64 cadical ✅ 2s 3s -33%
LP64 z3_smt_only* ✅ 2s 1s +100%
polyvecl_pointwise_acc_montgomery_native LP64 cvc5_mbqi_enum ✅ 3s 2s +50%
LP64 z3_smt_only* ✅ 3s 1s +200%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ✅ 3s 2s +50%
LP64 z3* ✅ 1s 2s -50%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ✅ 3s 3s +0%
LP64 z3* ✅ 3s 2s +50%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ✅ 34s 35s -3%
LP64 z3* ✅ 2s 3s -33%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ✅ 33s 34s -3%
LP64 z3* ✅ 4s 2s +100%
polyw1_pack LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 2s +0%
polyw1_pack_32 LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 5s -40%
polyw1_pack_88 LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 3s 1s +200%
polyw1_unpack LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 1s +100%
polyw1_unpack_32 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 3s 2s +50%
polyw1_unpack_88 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 4s 1s +300%
polyz_pack LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3* ✅ 1s 1s +0%
polyz_unpack LP64 bitwuzla ✅ 6s 6s +0%
LP64 z3* ✅ 2s 2s +0%
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 1s 3s -67%
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 1s +100%
polyz_unpack_c LP64 bitwuzla ✅ 5s 1s +400%
LP64 z3* ✅ 3s 4s -25%
polyz_unpack_native LP64 bitwuzla ✅ 24s 25s -4%
LP64 z3* ✅ 2s 2s +0%
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 14s 17s -18%
LP64 z3* ✅ 2s 4s -50%
power2round LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 1s +100%
reduce32 LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 1s 1s +0%
rej_eta LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3_smt_only ✅ 3s 4s -25%
rej_eta_c LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 16s 16s +0%
rej_eta_native LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3_smt_only ✅ 10s 12s -17%
rej_uniform LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 8s 9s -11%
rej_uniform_c LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 8s 9s -11%
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3_smt_only ✅ 2s 4s -50%
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3_smt_only* ✅ 1s 1s +0%
rej_uniform_native LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 8s 10s -20%
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 3s 3s +0%
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 6s 5s +20%
LP64 z3_smt_only* ✅ 9s 9s +0%
shake128_absorb LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 1s 2s -50%
shake128_finalize LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
shake128_init LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 3s 3s +0%
shake128_release LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
shake128_squeeze LP64 bitwuzla* ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 1s 2s -50%
shake128x4_absorb_once LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 3s 1s +200%
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 1s 5s -80%
LP64 z3 ✅ 1s 1s +0%
shake256 LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 1s 2s -50%
shake256_absorb LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
shake256_finalize LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 2s 3s -33%
shake256_init LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 3s 1s +200%
shake256_release LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 3s 2s +50%
shake256_squeeze LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3 ✅ 2s 2s +0%
shake256x4_absorb_once LP64 bitwuzla* ✅ 5s 5s +0%
LP64 z3 ✅ 1s 2s -50%
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 1s 1s +0%
sig_unpack_hints LP64 bitwuzla ✅ 1258s 1511s -17%
LP64 z3* ✅ 6s 20s -70%
sign_keypair LP64 cadical ✅ 461s 507s -9%
LP64 z3* ✅ 7s 5s +40%
sign_keypair_internal LP64 cadical ✅ 178s 189s -6%
LP64 z3_no_bv_extract* ✅ 20s 15s +33%
sign_pk_from_sk LP64 z3_no_bv_extract* ✅ 27s 27s +0%
sign_signature LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 3s 2s +50%
sign_signature_extmu LP64 cadical ✅ 25s 29s -14%
LP64 z3* ✅ 2s 5s -60%
sign_signature_internal LP64 z3_no_bv_extract* ✅ 12s 14s -14%
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 2s +50%
sign_signature_pre_hash_shake256 LP64 cadical ✅ 13s 14s -7%
LP64 z3* ✅ 4s 4s +0%
sign_verify LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 3s +0%
sign_verify_extmu LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 3s +0%
sign_verify_internal LP64 z3_no_bv_extract* ❌ - 185s -
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 1s +100%
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 5s 4s +25%
sk_s1hat_get_poly LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 1s +100%
sk_s2hat_get_poly LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 1s 3s -67%
sk_t0hat_get_poly LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 2s 1s +100%
sys_check_capability LP64 cvc5_arrays_exp ✅ 1s 4s -75%
LP64 z3* ✅ 6s 3s +100%
unpack_pk_t1 LP64 bitwuzla ✅ 12s 13s -8%
LP64 z3* ✅ 2s 2s +0%
unpack_sk LP64 cadical ✅ 1s 3s -67%
LP64 z3* ✅ 3s 2s +50%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
unpack_sk_t0hat LP64 cadical ✅ 1s 1s +0%
LP64 z3* ✅ 3s 2s +50%
use_hint LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 3s -33%
yvec_get_poly LP64 bitwuzla ✅ 5s 6s -17%
LP64 z3* ✅ 2s 4s -50%
yvec_init LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 2s +0%

@oqs-bot

oqs-bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

CBMC Results (ML-DSA-65, REDUCE-RAM-X4)

* default.

⚠️ Attention Required

Proof DM Solver Status Current Previous Change
compute_pack_t0_t1 LP64 z3_no_bv_extract* ❌ - - -
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ❌ - - -
LP64 z3* ❌ - - -
poly_uniform_eta LP64 bitwuzla ❌ - - -
LP64 z3* ❌ - - -
polyvec_matrix_expand_serial LP64 z3* ❌ - - -
polyvec_matrix_pointwise_montgomery_rows_tail LP64 cadical ❌ - - -
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ❌ - - -
LP64 z3* ❌ - - -
sign_verify_internal LP64 z3_no_bv_extract* ❌ - - -
Full Results (445 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ✅ 1231s - -
caddq LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
compute_pack_t0_t1 LP64 z3_no_bv_extract* ❌ - - -
decompose LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 3s - new
fqmul LP64 bitwuzla* ✅ 29s - new
LP64 z3_smt_only ✅ 24s - new
fqscale LP64 bitwuzla* ✅ 3s - new
LP64 z3 ✅ 4s - new
intt_native_aarch64 LP64 bitwuzla ✅ 27s - new
LP64 z3* ✅ 4s - new
intt_native_rv32im_fastmul ILP32 z3* ✅ 2s - new
LP64 cvc5_mbqi_enum ✅ 3s - new
LP64 z3 ✅ 1s - new
intt_native_rv32im_slowmul ILP32 z3* ✅ 4s - new
LP64 cvc5_mbqi_enum ✅ 9s - new
LP64 z3 ✅ 2s - new
intt_native_x86_64 LP64 bitwuzla ✅ 23s - new
LP64 z3* ✅ 2s - new
keccak_absorb LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 7s - new
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 5s - new
LP64 cvc5_arrays_exp ✅ 10s - new
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 2s - new
LP64 z3_no_bv_extract ✅ 3s - new
keccak_f1600_x1_native_aarch64_v84a LP64 bitwuzla* ✅ 1s - new
LP64 cvc5_arrays_exp ✅ 2s - new
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 3s - new
LP64 z3 ✅ 2s - new
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 2s - new
LP64 z3_smt_only ✅ 2s - new
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 1s - new
LP64 z3_smt_only ✅ 2s - new
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 3s - new
LP64 cvc5_arrays_exp ✅ 1s - new
keccak_finalize LP64 cvc5_arrays_exp ✅ 3s - new
LP64 z3* ✅ 2s - new
keccak_init LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 3s - new
keccak_squeeze LP64 bitwuzla* ✅ 1s - new
LP64 z3 ✅ 2s - new
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 2s - new
LP64 z3 ✅ 3s - new
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 3s - new
LP64 z3* ✅ 1s - new
keccakf1600_permute LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 5s - new
keccakf1600_permute_native LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 2s - new
LP64 cvc5_arrays_exp ✅ 1s - new
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 2s - new
LP64 z3_smt_only ✅ 3s - new
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 3s - new
LP64 z3 ✅ 3s - new
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 3s - new
LP64 z3 ✅ 2s - new
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 1s - new
LP64 z3* ✅ 3s - new
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 13s - new
LP64 z3* ✅ 13s - new
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 3s - new
LP64 cvc5_arrays_exp ✅ 4s - new
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 1s - new
LP64 z3_no_bv_extract ✅ 3s - new
make_hint LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 2s - new
mld_attempt_signature_generation LP64 z3_no_bv_extract* ✅ 162s - new
mld_check_pct LP64 bitwuzla ✅ 7s - new
LP64 z3* ✅ 4s - new
mld_compute_pack_z LP64 cadical ✅ 36s - new
LP64 z3_no_bv_extract* ✅ 2s - new
mld_ct_abs_i32 ILP32 bitwuzla ✅ 2s - new
ILP32 cvc5_arrays_exp ✅ 1s - new
ILP32 z3 ✅ 1s - new
LP64 bitwuzla ✅ 1s - new
LP64 cvc5_arrays_exp ✅ 1s - new
LP64 z3* ✅ 2s - new
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 4s - new
LP64 z3* ✅ 2s - new
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 4s - new
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 4s - new
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 2s - new
LP64 z3_smt_only ✅ 2s - new
mld_ct_memcmp LP64 bitwuzla* ✅ 2s - new
LP64 z3_no_bv_extract ✅ 57s - new
mld_ct_sel_int32 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 4s - new
mld_h LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 2s - new
mld_invntt_layer LP64 bitwuzla* ✅ 83s - new
LP64 z3_smt_only ✅ 109s - new
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 4s - new
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 4s - new
LP64 z3* ✅ 4s - new
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 3s - new
LP64 z3* ✅ 2s - new
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 2s - new
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 15s - new
LP64 z3_no_bv_extract ✅ 81s - new
mld_ntt_layer LP64 bitwuzla* ✅ 35s - new
LP64 z3_no_bv_extract ✅ 3s - new
mld_polymat_expand_entry LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 2s - new
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 3s - new
mld_sample_pack_s1_s2 LP64 cadical ✅ 49s - new
LP64 z3* ✅ 4s - new
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ❌ - - -
LP64 z3* ❌ - - -
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 2s - new
mld_sign_finish LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
mld_sign_hook_resume LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 5s - new
mld_value_barrier_i64 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 3s - new
mld_value_barrier_u32 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 3s - new
LP64 z3* ✅ 2s - new
montgomery_reduce LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 4s - new
ntt_native_aarch64 LP64 bitwuzla ✅ 27s - new
LP64 z3* ✅ 5s - new
ntt_native_rv32im_fastmul ILP32 z3* ✅ 2s - new
LP64 cvc5_mbqi_enum ✅ 8s - new
LP64 z3 ✅ 3s - new
ntt_native_rv32im_slowmul ILP32 z3* ✅ 2s - new
LP64 cvc5_mbqi_enum ✅ 8s - new
LP64 z3 ✅ 3s - new
ntt_native_x86_64 LP64 bitwuzla ✅ 22s - new
LP64 z3* ✅ 3s - new
nttunpack_native_x86_64 LP64 bitwuzla ✅ 223s - new
LP64 z3* ✅ 4s - new
pack_sig_c LP64 cvc5_arrays_exp ✅ 3s - new
LP64 z3* ✅ 6s - new
pack_sig_h LP64 bitwuzla ✅ 2s - new
LP64 z3_no_bv_extract* ✅ 3s - new
pack_sig_z LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 3s - new
pack_sk_rho_key_tr LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 2s - new
pointwise_acc_native_aarch64 LP64 cadical ✅ 87s - new
LP64 z3_smt_only* ✅ 3s - new
pointwise_acc_native_x86_64 LP64 cadical ✅ 84s - new
LP64 z3_smt_only* ✅ 4s - new
pointwise_native_aarch64 LP64 bitwuzla ✅ 27s - new
LP64 z3* ✅ 4s - new
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 3s - new
LP64 cvc5_mbqi_enum ✅ 13s - new
LP64 z3 ✅ 2s - new
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 3s - new
LP64 cvc5_mbqi_enum ✅ 9s - new
LP64 z3 ✅ 1s - new
pointwise_native_x86_64 LP64 bitwuzla ✅ 27s - new
LP64 z3* ✅ 2s - new
poly_accumulate_column4 LP64 cadical ✅ 38s - new
LP64 z3* ✅ 4s - new
poly_accumulate_column_entry LP64 cadical ✅ 17s - new
LP64 z3* ✅ 5s - new
poly_add LP64 cadical ✅ 67s - new
LP64 z3* ✅ 13s - new
poly_caddq LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 5s - new
poly_caddq_c LP64 bitwuzla ✅ 25s - new
LP64 z3* ✅ 3s - new
poly_caddq_native LP64 bitwuzla ✅ 140s - new
LP64 z3* ✅ 1s - new
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ✅ 39s - new
LP64 z3* ✅ 3s - new
poly_caddq_native_x86_64 LP64 bitwuzla ✅ 168s - new
LP64 z3* ✅ 3s - new
poly_challenge LP64 bitwuzla ✅ 26s - new
LP64 z3* ✅ 13s - new
poly_chknorm LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 2s - new
poly_chknorm_c LP64 bitwuzla ✅ 13s - new
LP64 z3* ✅ 8s - new
poly_chknorm_native LP64 bitwuzla ✅ 7s - new
LP64 z3* ✅ 4s - new
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 3s - new
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 3s - new
poly_decompose LP64 bitwuzla ✅ 5s - new
LP64 z3* ✅ 2s - new
poly_decompose_32_native_aarch64 LP64 cadical ✅ 11s - new
LP64 z3* ✅ 1s - new
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
poly_decompose_c LP64 cvc5_mbqi_enum ✅ 288s - new
LP64 z3* ✅ 2s - new
poly_decompose_native LP64 cadical ✅ 15s - new
LP64 z3* ✅ 3s - new
poly_decompose_native_x86_64 LP64 cadical ✅ 10s - new
LP64 z3* ✅ 2s - new
poly_invntt_tomont LP64 bitwuzla ✅ 5s - new
LP64 z3* ✅ 2s - new
poly_invntt_tomont_c LP64 bitwuzla ✅ 203s - new
LP64 z3_smt_only* ✅ 5s - new
poly_invntt_tomont_native LP64 bitwuzla ✅ 58s - new
LP64 z3* ✅ 4s - new
poly_ntt LP64 bitwuzla ✅ 8s - new
LP64 z3* ✅ 1s - new
poly_ntt_c LP64 bitwuzla ✅ 63s - new
LP64 z3_smt_only* ✅ 10s - new
poly_ntt_native LP64 bitwuzla ✅ 34s - new
LP64 z3* ✅ 2s - new
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
poly_pointwise_montgomery LP64 bitwuzla ✅ 12s - new
LP64 z3* ✅ 3s - new
poly_pointwise_montgomery_c LP64 bitwuzla ✅ 240s - new
LP64 z3* ✅ 78s - new
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ✅ 56s - new
LP64 z3* ✅ 3s - new
poly_power2round LP64 bitwuzla ✅ 404s - new
LP64 z3* ✅ 3s - new
poly_reduce LP64 bitwuzla ✅ 10s - new
LP64 z3* ✅ 1s - new
poly_shiftl LP64 bitwuzla ✅ 14s - new
LP64 z3* ✅ 2s - new
poly_sub LP64 bitwuzla ✅ 19s - new
LP64 z3* ✅ 1s - new
poly_uniform LP64 bitwuzla ✅ 230s - new
LP64 z3* ✅ 3s - new
poly_uniform_4x LP64 cadical ✅ 2s - new
LP64 z3* ✅ 2s - new
poly_uniform_eta LP64 bitwuzla ❌ - - -
LP64 z3* ❌ - - -
poly_uniform_eta_4x LP64 cadical ✅ 56s - new
LP64 z3* ✅ 10s - new
poly_uniform_gamma1 LP64 cadical ✅ 3s - new
LP64 z3* ✅ 2s - new
poly_uniform_gamma1_4x LP64 cadical ✅ 2s - new
LP64 z3* ✅ 2s - new
poly_use_hint LP64 cvc5_mbqi_enum ✅ 26s - new
LP64 z3* ✅ 2s - new
poly_use_hint_c LP64 cvc5_enum_inst ✅ 16s - new
LP64 z3* ✅ 4s - new
poly_use_hint_native LP64 cvc5_mbqi_enum ✅ 87s - new
LP64 z3* ✅ 4s - new
poly_use_hint_native_aarch64 LP64 bitwuzla ✅ 34s - new
LP64 z3* ✅ 2s - new
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 36s - new
LP64 z3* ✅ 3s - new
polyeta_pack LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 3s - new
polyeta_unpack LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 4s - new
polymat_expand_column4 LP64 cadical ✅ 54s - new
LP64 z3* ✅ 69s - new
polyt0_pack LP64 bitwuzla ✅ 5s - new
LP64 z3* ✅ 3s - new
polyt0_unpack LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 10s - new
polyt1_pack LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 3s - new
polyt1_unpack LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 1s - new
polyvec_matrix_expand_serial LP64 z3* ❌ - - -
polyvec_matrix_pointwise_montgomery_row LP64 cadical ✅ 48s - new
LP64 z3_no_bv_extract* ✅ 4s - new
polyvec_matrix_pointwise_montgomery_rows LP64 cadical ✅ 171s - new
LP64 z3_no_bv_extract* ✅ 9s - new
polyvec_matrix_pointwise_montgomery_rows_tail LP64 cadical ❌ - - -
LP64 z3_no_bv_extract* ✅ 3s - new
polyvec_matrix_pointwise_montgomery_yvec LP64 cadical ✅ 177s - new
LP64 z3* ✅ 13s - new
polyveck_accumulate_column_x4 LP64 cadical ✅ 62s - new
LP64 z3* ✅ 8s - new
polyveck_caddq LP64 cadical ✅ 300s - new
LP64 z3* ✅ 3s - new
polyveck_decompose_pack_w1 LP64 cadical ✅ 185s - new
LP64 z3* ✅ 4s - new
polyveck_invntt_tomont LP64 cadical ✅ 209s - new
LP64 z3* ✅ 3s - new
polyveck_ntt LP64 cadical ✅ 3s - new
LP64 z3* ✅ 1s - new
polyveck_reduce LP64 cadical ✅ 195s - new
LP64 z3* ✅ 2s - new
polyveck_unpack_eta LP64 cvc5_mbqi_enum ✅ 2s - new
LP64 z3* ✅ 2s - new
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 19s - new
LP64 z3* ✅ 4s - new
polyvecl_chknorm LP64 cadical ✅ 75s - new
LP64 z3* ✅ 1s - new
polyvecl_ntt LP64 cadical ✅ 175s - new
LP64 z3* ✅ 3s - new
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 3s - new
LP64 z3_smt_only* ✅ 1s - new
polyvecl_pointwise_acc_montgomery_c LP64 cadical ✅ 2s - new
LP64 z3_smt_only* ✅ 2s - new
polyvecl_pointwise_acc_montgomery_native LP64 cvc5_mbqi_enum ✅ 2s - new
LP64 z3_smt_only* ✅ 3s - new
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ✅ 2s - new
LP64 z3* ✅ 2s - new
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ❌ - - -
LP64 z3* ❌ - - -
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ✅ 39s - new
LP64 z3* ✅ 2s - new
polyvecl_unpack_z LP64 cvc5_mbqi_enum ✅ 38s - new
LP64 z3* ✅ 3s - new
polyw1_pack LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 2s - new
polyw1_pack_32 LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
polyw1_pack_88 LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 2s - new
polyw1_unpack LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
polyw1_unpack_32 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
polyw1_unpack_88 LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 3s - new
polyz_pack LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 1s - new
polyz_unpack LP64 bitwuzla ✅ 8s - new
LP64 z3* ✅ 2s - new
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 3s - new
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 3s - new
polyz_unpack_c LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 5s - new
polyz_unpack_native LP64 bitwuzla ✅ 35s - new
LP64 z3* ✅ 5s - new
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 18s - new
LP64 z3* ✅ 1s - new
power2round LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 3s - new
reduce32 LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 3s - new
rej_eta LP64 bitwuzla* ✅ 2s - new
LP64 z3_smt_only ✅ 4s - new
rej_eta_c LP64 bitwuzla* ✅ 5s - new
LP64 z3 ✅ 22s - new
rej_eta_native LP64 bitwuzla* ✅ 2s - new
LP64 z3_smt_only ✅ 11s - new
rej_uniform LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 13s - new
rej_uniform_c LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 16s - new
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 2s - new
LP64 z3_smt_only ✅ 2s - new
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 2s - new
LP64 z3_smt_only* ✅ 1s - new
rej_uniform_native LP64 bitwuzla* ✅ 2s - new
LP64 z3_smt_only ✅ 11s - new
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 4s - new
LP64 z3_smt_only ✅ 3s - new
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 5s - new
LP64 z3_smt_only* ✅ 9s - new
shake128_absorb LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 3s - new
shake128_finalize LP64 cvc5_arrays_exp ✅ 1s - new
LP64 z3* ✅ 5s - new
shake128_init LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
shake128_release LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 1s - new
shake128_squeeze LP64 bitwuzla* ✅ 2s - new
LP64 cvc5_arrays_exp ✅ 1s - new
shake128x4_absorb_once LP64 bitwuzla* ✅ 3s - new
LP64 z3_smt_only ✅ 3s - new
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 3s - new
LP64 z3 ✅ 2s - new
shake256 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 1s - new
shake256_absorb LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 2s - new
shake256_finalize LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 1s - new
shake256_init LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 1s - new
shake256_release LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 2s - new
shake256_squeeze LP64 bitwuzla* ✅ 3s - new
LP64 z3 ✅ 1s - new
shake256x4_absorb_once LP64 bitwuzla* ✅ 2s - new
LP64 z3 ✅ 3s - new
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 1s - new
LP64 z3_smt_only ✅ 1s - new
sig_unpack_hints LP64 bitwuzla ✅ 1702s - new
LP64 z3* ✅ 13s - new
sign_keypair LP64 cadical ✅ 550s - new
LP64 z3* ✅ 5s - new
sign_keypair_internal LP64 cadical ✅ 201s - new
LP64 z3_no_bv_extract* ✅ 26s - new
sign_pk_from_sk LP64 z3_no_bv_extract* ✅ 32s - new
sign_signature LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 5s - new
sign_signature_extmu LP64 cadical ✅ 33s - new
LP64 z3* ✅ 3s - new
sign_signature_internal LP64 z3_no_bv_extract* ✅ 27s - new
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 4s - new
sign_signature_pre_hash_shake256 LP64 cadical ✅ 17s - new
LP64 z3* ✅ 5s - new
sign_verify LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 6s - new
sign_verify_extmu LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 3s - new
sign_verify_internal LP64 z3_no_bv_extract* ❌ - - -
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 5s - new
LP64 z3* ✅ 4s - new
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 3s - new
sk_s1hat_get_poly LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
sk_s2hat_get_poly LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 1s - new
sk_t0hat_get_poly LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
sys_check_capability LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 2s - new
unpack_pk_t1 LP64 bitwuzla ✅ 16s - new
LP64 z3* ✅ 3s - new
unpack_sk LP64 cadical ✅ 2s - new
LP64 z3* ✅ 4s - new
unpack_sk_s1hat LP64 cvc5_mbqi_enum ✅ 2s - new
LP64 z3* ✅ 2s - new
unpack_sk_s2hat LP64 cvc5_mbqi_enum ✅ 3s - new
LP64 z3* ✅ 2s - new
unpack_sk_t0hat LP64 cadical ✅ 1s - new
LP64 z3* ✅ 2s - new
use_hint LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
yvec_get_poly LP64 bitwuzla ✅ 7s - new
LP64 z3* ✅ 2s - new
yvec_init LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 3s - new

@oqs-bot

oqs-bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

CBMC Results (ML-DSA-65)

* default.

⚠️ Attention Required

Proof DM Solver Status Current Previous Change
compute_pack_t0_t1 LP64 z3_no_bv_extract* ❌ - 154s -
polyvec_matrix_pointwise_montgomery_rows_tail LP64 cadical ❌ - - -
polyveck_decompose_pack_w1 LP64 z3* ⚠️ 20s 8s +150%
sign_verify_internal LP64 z3_no_bv_extract* ❌ - 478s -
Full Results (445 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ✅ 1802s 2339s -23.0%
caddq LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 1s +100%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ❌ - 154s -
decompose LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 2s 2s +0%
fqmul LP64 bitwuzla* ✅ 29s 27s +7%
LP64 z3_smt_only ✅ 21s 21s +0%
fqscale LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3 ✅ 2s 1s +100%
intt_native_aarch64 LP64 bitwuzla ✅ 28s 27s +4%
LP64 z3* ✅ 2s 2s +0%
intt_native_rv32im_fastmul ILP32 z3* ✅ 4s 2s +100%
LP64 cvc5_mbqi_enum ✅ 8s 8s +0%
LP64 z3 ✅ 3s 4s -25%
intt_native_rv32im_slowmul ILP32 z3* ✅ 2s 4s -50%
LP64 cvc5_mbqi_enum ✅ 10s 9s +11%
LP64 z3 ✅ 3s 3s +0%
intt_native_x86_64 LP64 bitwuzla ✅ 21s 21s +0%
LP64 z3* ✅ 3s 1s +200%
keccak_absorb LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 7s 7s +0%
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 6s 4s +50%
LP64 cvc5_arrays_exp ✅ 9s 10s -10%
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_no_bv_extract ✅ 2s 2s +0%
keccak_f1600_x1_native_aarch64_v84a LP64 bitwuzla* ✅ 3s 2s +50%
LP64 cvc5_arrays_exp ✅ 1s 2s -50%
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3 ✅ 2s 2s +0%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3_smt_only ✅ 3s 3s +0%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3_smt_only ✅ 1s 1s +0%
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 3s 2s +50%
LP64 cvc5_arrays_exp ✅ 3s 1s +200%
keccak_finalize LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 3s 1s +200%
keccak_init LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 2s +0%
keccak_squeeze LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3 ✅ 3s 3s +0%
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 4s 4s +0%
LP64 z3 ✅ 3s 2s +50%
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
keccakf1600_permute LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
keccakf1600_permute_native LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 4s 3s +33%
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 3s 2s +50%
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_smt_only ✅ 2s 5s -60%
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 4s 3s +33%
LP64 z3 ✅ 1s 1s +0%
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 5s 1s +400%
LP64 z3 ✅ 2s 3s -33%
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 3s 1s +200%
LP64 z3* ✅ 2s 2s +0%
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 12s 13s -8%
LP64 z3* ✅ 14s 12s +17%
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 4s 2s +100%
LP64 cvc5_arrays_exp ✅ 1s 2s -50%
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_no_bv_extract ✅ 2s 2s +0%
make_hint LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ✅ 223s 267s -16%
mld_check_pct LP64 bitwuzla ✅ 3s 7s -57%
LP64 z3* ✅ 5s 5s +0%
mld_compute_pack_z LP64 cadical ✅ 76s 75s +1%
LP64 z3_no_bv_extract* ✅ 5s 4s +25%
mld_ct_abs_i32 ILP32 bitwuzla ✅ 1s 2s -50%
ILP32 cvc5_arrays_exp ✅ 2s 2s +0%
ILP32 z3 ✅ 1s 2s -50%
LP64 bitwuzla ✅ 2s 1s +100%
LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 1s 3s -67%
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 2s 1s +100%
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 4s 3s +33%
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 1s 3s -67%
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 1s 2s -50%
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_smt_only ✅ 2s 2s +0%
mld_ct_memcmp LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_no_bv_extract ✅ 62s 51s +22%
mld_ct_sel_int32 LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 2s 4s -50%
mld_h LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 3s 5s -40%
mld_invntt_layer LP64 bitwuzla* ✅ 80s 83s -4%
LP64 z3_smt_only ✅ 111s 108s +3%
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 5s 5s +0%
LP64 z3* ✅ 3s 4s -25%
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 1s 2s -50%
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 16s 15s +7%
LP64 z3_no_bv_extract ✅ 87s 80s +9%
mld_ntt_layer LP64 bitwuzla* ✅ 31s 31s +0%
LP64 z3_no_bv_extract ✅ 5s 5s +0%
mld_polymat_expand_entry LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 3s +0%
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 4s -25%
mld_sample_pack_s1_s2 LP64 cadical ✅ 51s 48s +6%
LP64 z3* ✅ 6s 5s +20%
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ✅ 240s 254s -6%
LP64 z3* ✅ 4s 2s +100%
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 4s 2s +100%
mld_sign_finish LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 2s 2s +0%
mld_sign_hook_resume LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 5s 2s +150%
mld_value_barrier_i64 LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 2s 2s +0%
mld_value_barrier_u32 LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 4s 3s +33%
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 4s 2s +100%
LP64 z3* ✅ 2s 3s -33%
montgomery_reduce LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 2s 4s -50%
ntt_native_aarch64 LP64 bitwuzla ✅ 24s 27s -11%
LP64 z3* ✅ 2s 4s -50%
ntt_native_rv32im_fastmul ILP32 z3* ✅ 2s 3s -33%
LP64 cvc5_mbqi_enum ✅ 3s 5s -40%
LP64 z3 ✅ 2s 3s -33%
ntt_native_rv32im_slowmul ILP32 z3* ✅ 4s 3s +33%
LP64 cvc5_mbqi_enum ✅ 6s 9s -33%
LP64 z3 ✅ 3s 2s +50%
ntt_native_x86_64 LP64 bitwuzla ✅ 22s 23s -4%
LP64 z3* ✅ 3s 2s +50%
nttunpack_native_x86_64 LP64 bitwuzla ✅ 239s 224s +7%
LP64 z3* ✅ 2s 2s +0%
pack_sig_c LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 3s 4s -25%
pack_sig_h LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3_no_bv_extract* ✅ 2s 4s -50%
pack_sig_z LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 4s 3s +33%
pack_sk_rho_key_tr LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%
pointwise_acc_native_aarch64 LP64 cadical ✅ 86s 84s +2%
LP64 z3_smt_only* ✅ 3s 2s +50%
pointwise_acc_native_x86_64 LP64 cadical ✅ 84s 86s -2%
LP64 z3_smt_only* ✅ 3s 5s -40%
pointwise_native_aarch64 LP64 bitwuzla ✅ 27s 26s +4%
LP64 z3* ✅ 2s 2s +0%
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 3s 2s +50%
LP64 cvc5_mbqi_enum ✅ 8s 8s +0%
LP64 z3 ✅ 3s 1s +200%
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 4s 4s +0%
LP64 cvc5_mbqi_enum ✅ 9s 11s -18%
LP64 z3 ✅ 3s 2s +50%
pointwise_native_x86_64 LP64 bitwuzla ✅ 26s 25s +4%
LP64 z3* ✅ 4s 3s +33%
poly_accumulate_column4 LP64 cadical ✅ 39s - new
LP64 z3* ✅ 6s - new
poly_accumulate_column_entry LP64 cadical ✅ 17s - new
LP64 z3* ✅ 1s - new
poly_add LP64 cadical ✅ 54s 54s +0%
LP64 z3* ✅ 16s 15s +7%
poly_caddq LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 3s 1s +200%
poly_caddq_c LP64 bitwuzla ✅ 25s 26s -4%
LP64 z3* ✅ 2s 4s -50%
poly_caddq_native LP64 bitwuzla ✅ 147s 142s +4%
LP64 z3* ✅ 2s 1s +100%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ✅ 42s 41s +2%
LP64 z3* ✅ 2s 2s +0%
poly_caddq_native_x86_64 LP64 bitwuzla ✅ 153s 162s -6%
LP64 z3* ✅ 2s 1s +100%
poly_challenge LP64 bitwuzla ✅ 30s 25s +20%
LP64 z3* ✅ 13s 12s +8%
poly_chknorm LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 2s +0%
poly_chknorm_c LP64 bitwuzla ✅ 11s 10s +10%
LP64 z3* ✅ 8s 8s +0%
poly_chknorm_native LP64 bitwuzla ✅ 8s 8s +0%
LP64 z3* ✅ 4s 3s +33%
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 4s 3s +33%
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 3s 3s +0%
poly_decompose LP64 bitwuzla ✅ 4s 6s -33%
LP64 z3* ✅ 2s 1s +100%
poly_decompose_32_native_aarch64 LP64 cadical ✅ 8s 8s +0%
LP64 z3* ✅ 2s 4s -50%
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 1s +100%
poly_decompose_c LP64 cvc5_mbqi_enum ✅ 291s 288s +1%
LP64 z3* ✅ 5s 3s +67%
poly_decompose_native LP64 cadical ✅ 14s 14s +0%
LP64 z3* ✅ 4s 2s +100%
poly_decompose_native_x86_64 LP64 cadical ✅ 10s 9s +11%
LP64 z3* ✅ 2s 3s -33%
poly_invntt_tomont LP64 bitwuzla ✅ 8s 4s +100%
LP64 z3* ✅ 3s 3s +0%
poly_invntt_tomont_c LP64 bitwuzla ✅ 208s 211s -1%
LP64 z3_smt_only* ✅ 7s 6s +17%
poly_invntt_tomont_native LP64 bitwuzla ✅ 54s 53s +2%
LP64 z3* ✅ 2s 2s +0%
poly_ntt LP64 bitwuzla ✅ 7s 5s +40%
LP64 z3* ✅ 2s 2s +0%
poly_ntt_c LP64 bitwuzla ✅ 63s 66s -5%
LP64 z3_smt_only* ✅ 10s 12s -17%
poly_ntt_native LP64 bitwuzla ✅ 35s 31s +13%
LP64 z3* ✅ 3s 2s +50%
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 2s 2s +0%
poly_pointwise_montgomery LP64 bitwuzla ✅ 13s 12s +8%
LP64 z3* ✅ 3s 2s +50%
poly_pointwise_montgomery_c LP64 bitwuzla ✅ 220s 233s -6%
LP64 z3* ✅ 80s 71s +13%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ✅ 60s 58s +3%
LP64 z3* ✅ 2s 2s +0%
poly_power2round LP64 bitwuzla ✅ 341s 420s -19%
LP64 z3* ✅ 5s 3s +67%
poly_reduce LP64 bitwuzla ✅ 10s 11s -9%
LP64 z3* ✅ 4s 3s +33%
poly_shiftl LP64 bitwuzla ✅ 16s 15s +7%
LP64 z3* ✅ 4s 2s +100%
poly_sub LP64 bitwuzla ✅ 17s 18s -6%
LP64 z3* ✅ 4s 3s +33%
poly_uniform LP64 bitwuzla ✅ 230s 226s +2%
LP64 z3* ✅ 3s 2s +50%
poly_uniform_4x LP64 cadical ✅ 66s 66s +0%
LP64 z3* ✅ 9s 9s +0%
poly_uniform_eta LP64 bitwuzla ✅ 63s 64s -2%
LP64 z3* ✅ 3s 4s -25%
poly_uniform_eta_4x LP64 cadical ✅ 73s 61s +20%
LP64 z3* ✅ 9s 10s -10%
poly_uniform_gamma1 LP64 cadical ✅ 5s 3s +67%
LP64 z3* ✅ 2s 3s -33%
poly_uniform_gamma1_4x LP64 cadical ✅ 18s 13s +38%
LP64 z3* ✅ 3s 2s +50%
poly_use_hint LP64 cvc5_mbqi_enum ✅ 25s 25s +0%
LP64 z3* ✅ 3s 2s +50%
poly_use_hint_c LP64 cvc5_enum_inst ✅ 15s 14s +7%
LP64 z3* ✅ 1s 1s +0%
poly_use_hint_native LP64 cvc5_mbqi_enum ✅ 87s 98s -11%
LP64 z3* ✅ 3s 1s +200%
poly_use_hint_native_aarch64 LP64 bitwuzla ✅ 37s 35s +6%
LP64 z3* ✅ 2s 2s +0%
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 35s 36s -3%
LP64 z3* ✅ 2s 1s +100%
polyeta_pack LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 3s 2s +50%
polyeta_unpack LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 4s -25%
polymat_expand_column4 LP64 cadical ✅ 55s - new
LP64 z3* ✅ 71s - new
polyt0_pack LP64 bitwuzla ✅ 5s 4s +25%
LP64 z3* ✅ 3s 3s +0%
polyt0_unpack LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 10s 9s +11%
polyt1_pack LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 3s +0%
polyt1_unpack LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 5s 3s +67%
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 77s 71s +8%
polyvec_matrix_expand_serial LP64 z3* ✅ 13s 12s +8%
polyvec_matrix_pointwise_montgomery_row LP64 cadical ✅ 258s 270s -4%
LP64 z3_no_bv_extract* ✅ 2s 4s -50%
polyvec_matrix_pointwise_montgomery_rows LP64 cadical ✅ 302s - new
LP64 z3_no_bv_extract* ✅ 1s - new
polyvec_matrix_pointwise_montgomery_rows_tail LP64 cadical ❌ - - -
LP64 z3_no_bv_extract* ✅ 4s - new
polyvec_matrix_pointwise_montgomery_yvec LP64 cadical ✅ 475s 443s +7%
LP64 z3* ✅ 6s 6s +0%
polyveck_accumulate_column_x4 LP64 cadical ✅ 62s - new
LP64 z3* ✅ 11s - new
polyveck_caddq LP64 cadical ✅ 242s 239s +1%
LP64 z3* ✅ 2s 2s +0%
polyveck_decompose_pack_w1 LP64 cadical ✅ 187s 185s +1%
LP64 z3* ⚠️ 20s 8s +150%
polyveck_invntt_tomont LP64 cadical ✅ 206s 207s -0%
LP64 z3* ✅ 3s 4s -25%
polyveck_ntt LP64 cadical ✅ 213s 211s +1%
LP64 z3* ✅ 3s 4s -25%
polyveck_reduce LP64 cadical ✅ 3s 3s +0%
LP64 z3* ✅ 2s 2s +0%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ✅ 42s 46s -9%
LP64 z3* ✅ 2s 3s -33%
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 19s 20s -5%
LP64 z3* ✅ 3s 2s +50%
polyvecl_chknorm LP64 cadical ✅ 78s 79s -1%
LP64 z3* ✅ 2s 2s +0%
polyvecl_ntt LP64 cadical ✅ 173s 174s -1%
LP64 z3* ✅ 2s 3s -33%
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 10s 11s -9%
LP64 z3_smt_only* ✅ 3s 2s +50%
polyvecl_pointwise_acc_montgomery_c LP64 cadical ✅ 128s 123s +4%
LP64 z3_smt_only* ✅ 263s 239s +10%
polyvecl_pointwise_acc_montgomery_native LP64 cvc5_mbqi_enum ✅ 124s 126s -2%
LP64 z3_smt_only* ✅ 1s 4s -75%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ✅ 39s 39s +0%
LP64 z3* ✅ 2s 3s -33%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ✅ 38s 38s +0%
LP64 z3* ✅ 2s 2s +0%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ✅ 36s 32s +12%
LP64 z3* ✅ 2s 3s -33%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ✅ 35s 34s +3%
LP64 z3* ✅ 4s 2s +100%
polyw1_pack LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 1s +100%
polyw1_pack_32 LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 2s +0%
polyw1_pack_88 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 1s +200%
polyw1_unpack LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 3s 2s +50%
polyw1_unpack_32 LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 3s -33%
polyw1_unpack_88 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 4s -25%
polyz_pack LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 2s 2s +0%
polyz_unpack LP64 bitwuzla ✅ 7s 9s -22%
LP64 z3* ✅ 3s 1s +200%
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 1s +100%
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 3s -33%
polyz_unpack_c LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 4s 2s +100%
polyz_unpack_native LP64 bitwuzla ✅ 32s 34s -6%
LP64 z3* ✅ 2s 3s -33%
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 23s 17s +35%
LP64 z3* ✅ 2s 3s -33%
power2round LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3* ✅ 2s 2s +0%
reduce32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 4s -25%
rej_eta LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_smt_only ✅ 6s 4s +50%
rej_eta_c LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3 ✅ 17s 16s +6%
rej_eta_native LP64 bitwuzla* ✅ 4s 4s +0%
LP64 z3_smt_only ✅ 12s 13s -8%
rej_uniform LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 11s 9s +22%
rej_uniform_c LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 16s 18s -11%
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 4s 1s +300%
LP64 z3_smt_only ✅ 2s 2s +0%
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3_smt_only* ✅ 1s 2s -50%
rej_uniform_native LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3_smt_only ✅ 12s 11s +9%
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 1s 4s -75%
LP64 z3_smt_only ✅ 4s 2s +100%
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 6s 6s +0%
LP64 z3_smt_only* ✅ 11s 10s +10%
shake128_absorb LP64 cvc5_arrays_exp ✅ 1s 1s +0%
LP64 z3* ✅ 2s 2s +0%
shake128_finalize LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 3s 5s -40%
shake128_init LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
shake128_release LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 4s -50%
shake128_squeeze LP64 bitwuzla* ✅ 1s 3s -67%
LP64 cvc5_arrays_exp ✅ 2s 1s +100%
shake128x4_absorb_once LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3_smt_only ✅ 2s 2s +0%
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3 ✅ 1s 2s -50%
shake256 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 1s +100%
shake256_absorb LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3* ✅ 1s 3s -67%
shake256_finalize LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 2s 3s -33%
shake256_init LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 2s 2s +0%
shake256_release LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
shake256_squeeze LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3 ✅ 2s 2s +0%
shake256x4_absorb_once LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3 ✅ 4s 3s +33%
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3_smt_only ✅ 1s 4s -75%
sig_unpack_hints LP64 bitwuzla ✅ 1716s 1762s -3%
LP64 z3* ✅ 21s 22s -5%
sign_keypair LP64 cadical ✅ 566s 563s +1%
LP64 z3* ✅ 6s 4s +50%
sign_keypair_internal LP64 cadical ✅ 197s 195s +1%
LP64 z3_no_bv_extract* ✅ 17s 17s +0%
sign_pk_from_sk LP64 z3_no_bv_extract* ✅ 45s 40s +12%
sign_signature LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 3s 4s -25%
sign_signature_extmu LP64 cadical ✅ 41s 44s -7%
LP64 z3* ✅ 4s 2s +100%
sign_signature_internal LP64 z3_no_bv_extract* ✅ 153s 196s -22%
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 3s 3s +0%
sign_signature_pre_hash_shake256 LP64 cadical ✅ 19s 20s -5%
LP64 z3* ✅ 8s 2s +300%
sign_verify LP64 bitwuzla ✅ 3s 7s -57%
LP64 z3* ✅ 4s 2s +100%
sign_verify_extmu LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 3s 3s +0%
sign_verify_internal LP64 z3_no_bv_extract* ❌ - 478s -
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 4s -50%
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 5s 4s +25%
LP64 z3* ✅ 3s 4s -25%
sk_s1hat_get_poly LP64 bitwuzla ✅ 45s 44s +2%
LP64 z3* ✅ 1s 3s -67%
sk_s2hat_get_poly LP64 bitwuzla ✅ 34s 34s +0%
LP64 z3* ✅ 3s 2s +50%
sk_t0hat_get_poly LP64 bitwuzla ✅ 34s 30s +13%
LP64 z3* ✅ 3s 3s +0%
sys_check_capability LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
unpack_pk_t1 LP64 bitwuzla ✅ 12s 13s -8%
LP64 z3* ✅ 1s 4s -75%
unpack_sk LP64 cadical ✅ 50s 53s -6%
LP64 z3* ✅ 4s 3s +33%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ✅ 95s 94s +1%
LP64 z3* ✅ 2s 2s +0%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ✅ 178s 170s +5%
LP64 z3* ✅ 3s 1s +200%
unpack_sk_t0hat LP64 cadical ✅ 89s 91s -2%
LP64 z3* ✅ 3s 1s +200%
use_hint LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 4s -25%
yvec_get_poly LP64 bitwuzla ✅ 37s 37s +0%
LP64 z3* ✅ 2s 1s +100%
yvec_init LP64 bitwuzla ✅ 12s 9s +33%
LP64 z3* ✅ 1s 1s +0%

@oqs-bot

oqs-bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

CBMC Results (ML-DSA-87, REDUCE-RAM-X4)

* default.

⚠️ Attention Required

Proof DM Solver Status Current Previous Change
compute_pack_t0_t1 LP64 z3_no_bv_extract* ❌ - - -
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ❌ - - -
LP64 z3* ❌ - - -
poly_uniform_eta LP64 bitwuzla ❌ - - -
LP64 z3* ❌ - - -
polyvec_matrix_expand_serial LP64 z3* ❌ - - -
polyvec_matrix_pointwise_montgomery_rows_tail LP64 cadical ❌ - - -
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ❌ - - -
LP64 z3* ❌ - - -
sign_verify_internal LP64 z3_no_bv_extract* ❌ - - -
Full Results (445 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ✅ 1570s - -
caddq LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 4s - new
compute_pack_t0_t1 LP64 z3_no_bv_extract* ❌ - - -
decompose LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 3s - new
fqmul LP64 bitwuzla* ✅ 29s - new
LP64 z3_smt_only ✅ 21s - new
fqscale LP64 bitwuzla* ✅ 4s - new
LP64 z3 ✅ 2s - new
intt_native_aarch64 LP64 bitwuzla ✅ 22s - new
LP64 z3* ✅ 3s - new
intt_native_rv32im_fastmul ILP32 z3* ✅ 2s - new
LP64 cvc5_mbqi_enum ✅ 8s - new
LP64 z3 ✅ 2s - new
intt_native_rv32im_slowmul ILP32 z3* ✅ 3s - new
LP64 cvc5_mbqi_enum ✅ 8s - new
LP64 z3 ✅ 3s - new
intt_native_x86_64 LP64 bitwuzla ✅ 20s - new
LP64 z3* ✅ 3s - new
keccak_absorb LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 7s - new
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 5s - new
LP64 cvc5_arrays_exp ✅ 12s - new
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 1s - new
LP64 z3_no_bv_extract ✅ 3s - new
keccak_f1600_x1_native_aarch64_v84a LP64 bitwuzla* ✅ 3s - new
LP64 cvc5_arrays_exp ✅ 3s - new
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 2s - new
LP64 z3 ✅ 2s - new
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 4s - new
LP64 z3_smt_only ✅ 2s - new
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 3s - new
LP64 z3_smt_only ✅ 2s - new
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 1s - new
LP64 cvc5_arrays_exp ✅ 1s - new
keccak_finalize LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 2s - new
keccak_init LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 4s - new
keccak_squeeze LP64 bitwuzla* ✅ 2s - new
LP64 z3 ✅ 2s - new
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 4s - new
LP64 z3 ✅ 2s - new
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 1s - new
LP64 z3* ✅ 2s - new
keccakf1600_permute LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 1s - new
keccakf1600_permute_native LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 2s - new
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 2s - new
LP64 cvc5_arrays_exp ✅ 2s - new
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 1s - new
LP64 z3_smt_only ✅ 1s - new
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 2s - new
LP64 z3 ✅ 3s - new
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 2s - new
LP64 z3 ✅ 1s - new
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 3s - new
LP64 z3* ✅ 2s - new
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 13s - new
LP64 z3* ✅ 13s - new
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 3s - new
LP64 cvc5_arrays_exp ✅ 3s - new
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 3s - new
LP64 z3_no_bv_extract ✅ 2s - new
make_hint LP64 cvc5_arrays_exp ✅ 1s - new
LP64 z3* ✅ 1s - new
mld_attempt_signature_generation LP64 z3_no_bv_extract* ✅ 571s - new
mld_check_pct LP64 bitwuzla ✅ 5s - new
LP64 z3* ✅ 4s - new
mld_compute_pack_z LP64 cadical ✅ 35s - new
LP64 z3_no_bv_extract* ✅ 3s - new
mld_ct_abs_i32 ILP32 bitwuzla ✅ 2s - new
ILP32 cvc5_arrays_exp ✅ 5s - new
ILP32 z3 ✅ 3s - new
LP64 bitwuzla ✅ 3s - new
LP64 cvc5_arrays_exp ✅ 1s - new
LP64 z3* ✅ 2s - new
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 1s - new
LP64 z3* ✅ 1s - new
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 3s - new
LP64 z3* ✅ 2s - new
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 1s - new
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 3s - new
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 1s - new
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 1s - new
LP64 z3_smt_only ✅ 3s - new
mld_ct_memcmp LP64 bitwuzla* ✅ 2s - new
LP64 z3_no_bv_extract ✅ 49s - new
mld_ct_sel_int32 LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 2s - new
mld_h LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 3s - new
mld_invntt_layer LP64 bitwuzla* ✅ 69s - new
LP64 z3_smt_only ✅ 84s - new
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 1s - new
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 3s - new
LP64 z3* ✅ 2s - new
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 1s - new
LP64 z3* ✅ 3s - new
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 1s - new
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 14s - new
LP64 z3_no_bv_extract ✅ 68s - new
mld_ntt_layer LP64 bitwuzla* ✅ 25s - new
LP64 z3_no_bv_extract ✅ 3s - new
mld_polymat_expand_entry LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 3s - new
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 4s - new
mld_sample_pack_s1_s2 LP64 cadical ✅ 74s - new
LP64 z3* ✅ 6s - new
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ❌ - - -
LP64 z3* ❌ - - -
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 2s - new
mld_sign_finish LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
mld_sign_hook_resume LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 4s - new
mld_value_barrier_i64 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 3s - new
mld_value_barrier_u32 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 1s - new
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 3s - new
LP64 z3* ✅ 2s - new
montgomery_reduce LP64 cvc5_arrays_exp ✅ 1s - new
LP64 z3* ✅ 2s - new
ntt_native_aarch64 LP64 bitwuzla ✅ 19s - new
LP64 z3* ✅ 3s - new
ntt_native_rv32im_fastmul ILP32 z3* ✅ 2s - new
LP64 cvc5_mbqi_enum ✅ 8s - new
LP64 z3 ✅ 1s - new
ntt_native_rv32im_slowmul ILP32 z3* ✅ 3s - new
LP64 cvc5_mbqi_enum ✅ 6s - new
LP64 z3 ✅ 2s - new
ntt_native_x86_64 LP64 bitwuzla ✅ 18s - new
LP64 z3* ✅ 2s - new
nttunpack_native_x86_64 LP64 bitwuzla ✅ 176s - new
LP64 z3* ✅ 2s - new
pack_sig_c LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 1s - new
pack_sig_h LP64 bitwuzla ✅ 3s - new
LP64 z3_no_bv_extract* ✅ 1s - new
pack_sig_z LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 2s - new
pack_sk_rho_key_tr LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 4s - new
pointwise_acc_native_aarch64 LP64 cadical ✅ 88s - new
LP64 z3_smt_only* ✅ 5s - new
pointwise_acc_native_x86_64 LP64 cadical ✅ 89s - new
LP64 z3_smt_only* ✅ 4s - new
pointwise_native_aarch64 LP64 bitwuzla ✅ 21s - new
LP64 z3* ✅ 2s - new
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 2s - new
LP64 cvc5_mbqi_enum ✅ 9s - new
LP64 z3 ✅ 3s - new
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 3s - new
LP64 cvc5_mbqi_enum ✅ 8s - new
LP64 z3 ✅ 2s - new
pointwise_native_x86_64 LP64 bitwuzla ✅ 23s - new
LP64 z3* ✅ 2s - new
poly_accumulate_column4 LP64 cadical ✅ 46s - new
LP64 z3* ✅ 3s - new
poly_accumulate_column_entry LP64 cadical ✅ 15s - new
LP64 z3* ✅ 3s - new
poly_add LP64 cadical ✅ 46s - new
LP64 z3* ✅ 11s - new
poly_caddq LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 2s - new
poly_caddq_c LP64 bitwuzla ✅ 20s - new
LP64 z3* ✅ 3s - new
poly_caddq_native LP64 bitwuzla ✅ 115s - new
LP64 z3* ✅ 4s - new
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ✅ 36s - new
LP64 z3* ✅ 3s - new
poly_caddq_native_x86_64 LP64 bitwuzla ✅ 127s - new
LP64 z3* ✅ 1s - new
poly_challenge LP64 bitwuzla ✅ 37s - new
LP64 z3* ✅ 17s - new
poly_chknorm LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 4s - new
poly_chknorm_c LP64 bitwuzla ✅ 11s - new
LP64 z3* ✅ 9s - new
poly_chknorm_native LP64 bitwuzla ✅ 7s - new
LP64 z3* ✅ 2s - new
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
poly_decompose LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 3s - new
poly_decompose_32_native_aarch64 LP64 cadical ✅ 7s - new
LP64 z3* ✅ 2s - new
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
poly_decompose_c LP64 cvc5_mbqi_enum ✅ 219s - new
LP64 z3* ✅ 2s - new
poly_decompose_native LP64 cadical ✅ 15s - new
LP64 z3* ✅ 2s - new
poly_decompose_native_x86_64 LP64 cadical ✅ 9s - new
LP64 z3* ✅ 4s - new
poly_invntt_tomont LP64 bitwuzla ✅ 5s - new
LP64 z3* ✅ 4s - new
poly_invntt_tomont_c LP64 bitwuzla ✅ 165s - new
LP64 z3_smt_only* ✅ 5s - new
poly_invntt_tomont_native LP64 bitwuzla ✅ 45s - new
LP64 z3* ✅ 4s - new
poly_ntt LP64 bitwuzla ✅ 5s - new
LP64 z3* ✅ 1s - new
poly_ntt_c LP64 bitwuzla ✅ 51s - new
LP64 z3_smt_only* ✅ 8s - new
poly_ntt_native LP64 bitwuzla ✅ 28s - new
LP64 z3* ✅ 2s - new
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 3s - new
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 2s - new
poly_pointwise_montgomery LP64 bitwuzla ✅ 11s - new
LP64 z3* ✅ 1s - new
poly_pointwise_montgomery_c LP64 bitwuzla ✅ 200s - new
LP64 z3* ✅ 67s - new
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ✅ 53s - new
LP64 z3* ✅ 3s - new
poly_power2round LP64 bitwuzla ✅ 309s - new
LP64 z3* ✅ 2s - new
poly_reduce LP64 bitwuzla ✅ 9s - new
LP64 z3* ✅ 2s - new
poly_shiftl LP64 bitwuzla ✅ 12s - new
LP64 z3* ✅ 2s - new
poly_sub LP64 bitwuzla ✅ 14s - new
LP64 z3* ✅ 2s - new
poly_uniform LP64 bitwuzla ✅ 166s - new
LP64 z3* ✅ 2s - new
poly_uniform_4x LP64 cadical ✅ 3s - new
LP64 z3* ✅ 1s - new
poly_uniform_eta LP64 bitwuzla ❌ - - -
LP64 z3* ❌ - - -
poly_uniform_eta_4x LP64 cadical ✅ 72s - new
LP64 z3* ✅ 12s - new
poly_uniform_gamma1 LP64 cadical ✅ 2s - new
LP64 z3* ✅ 2s - new
poly_uniform_gamma1_4x LP64 cadical ✅ 4s - new
LP64 z3* ✅ 3s - new
poly_use_hint LP64 cvc5_mbqi_enum ✅ 25s - new
LP64 z3* ✅ 2s - new
poly_use_hint_c LP64 cvc5_enum_inst ✅ 14s - new
LP64 z3* ✅ 2s - new
poly_use_hint_native LP64 cvc5_mbqi_enum ✅ 91s - new
LP64 z3* ✅ 2s - new
poly_use_hint_native_aarch64 LP64 bitwuzla ✅ 28s - new
LP64 z3* ✅ 3s - new
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 30s - new
LP64 z3* ✅ 3s - new
polyeta_pack LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 2s - new
polyeta_unpack LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 9s - new
polymat_expand_column4 LP64 cadical ✅ 51s - new
LP64 z3* ✅ 45s - new
polyt0_pack LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 1s - new
polyt0_unpack LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 8s - new
polyt1_pack LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 3s - new
polyt1_unpack LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 1s - new
polyvec_matrix_expand_serial LP64 z3* ❌ - - -
polyvec_matrix_pointwise_montgomery_row LP64 cadical ✅ 46s - new
LP64 z3_no_bv_extract* ✅ 5s - new
polyvec_matrix_pointwise_montgomery_rows LP64 cadical ✅ 280s - new
LP64 z3_no_bv_extract* ✅ 5s - new
polyvec_matrix_pointwise_montgomery_rows_tail LP64 cadical ❌ - - -
LP64 z3_no_bv_extract* ✅ 5s - new
polyvec_matrix_pointwise_montgomery_yvec LP64 cadical ✅ 200s - new
LP64 z3* ✅ 27s - new
polyveck_accumulate_column_x4 LP64 cadical ✅ 84s - new
LP64 z3* ✅ 11s - new
polyveck_caddq LP64 cadical ✅ 1212s - new
LP64 z3* ✅ 2s - new
polyveck_decompose_pack_w1 LP64 cadical ✅ 205s - new
LP64 z3* ✅ 2s - new
polyveck_invntt_tomont LP64 cadical ✅ 315s - new
LP64 z3* ✅ 4s - new
polyveck_ntt LP64 cadical ✅ 3s - new
LP64 z3* ✅ 3s - new
polyveck_reduce LP64 cadical ✅ 259s - new
LP64 z3* ✅ 2s - new
polyveck_unpack_eta LP64 cvc5_mbqi_enum ✅ 3s - new
LP64 z3* ✅ 2s - new
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 19s - new
LP64 z3* ✅ 2s - new
polyvecl_chknorm LP64 cadical ✅ 139s - new
LP64 z3* ✅ 2s - new
polyvecl_ntt LP64 cadical ✅ 194s - new
LP64 z3* ✅ 2s - new
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 2s - new
LP64 z3_smt_only* ✅ 3s - new
polyvecl_pointwise_acc_montgomery_c LP64 cadical ✅ 2s - new
LP64 z3_smt_only* ✅ 3s - new
polyvecl_pointwise_acc_montgomery_native LP64 cvc5_mbqi_enum ✅ 1s - new
LP64 z3_smt_only* ✅ 1s - new
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ✅ 2s - new
LP64 z3* ✅ 2s - new
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ❌ - - -
LP64 z3* ❌ - - -
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ✅ 47s - new
LP64 z3* ✅ 2s - new
polyvecl_unpack_z LP64 cvc5_mbqi_enum ✅ 49s - new
LP64 z3* ✅ 1s - new
polyw1_pack LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 4s - new
polyw1_pack_32 LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
polyw1_pack_88 LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
polyw1_unpack LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 3s - new
polyw1_unpack_32 LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
polyw1_unpack_88 LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 2s - new
polyz_pack LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 1s - new
polyz_unpack LP64 bitwuzla ✅ 9s - new
LP64 z3* ✅ 3s - new
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 3s - new
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
polyz_unpack_c LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 6s - new
polyz_unpack_native LP64 bitwuzla ✅ 27s - new
LP64 z3* ✅ 2s - new
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 15s - new
LP64 z3* ✅ 2s - new
power2round LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
reduce32 LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 2s - new
rej_eta LP64 bitwuzla* ✅ 2s - new
LP64 z3_smt_only ✅ 4s - new
rej_eta_c LP64 bitwuzla* ✅ 2s - new
LP64 z3 ✅ 18s - new
rej_eta_native LP64 bitwuzla* ✅ 4s - new
LP64 z3_smt_only ✅ 18s - new
rej_uniform LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 9s - new
rej_uniform_c LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 15s - new
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 2s - new
LP64 z3_smt_only ✅ 3s - new
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 1s - new
LP64 z3_smt_only* ✅ 2s - new
rej_uniform_native LP64 bitwuzla* ✅ 2s - new
LP64 z3_smt_only ✅ 11s - new
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 2s - new
LP64 z3_smt_only ✅ 2s - new
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 4s - new
LP64 z3_smt_only* ✅ 11s - new
shake128_absorb LP64 cvc5_arrays_exp ✅ 5s - new
LP64 z3* ✅ 1s - new
shake128_finalize LP64 cvc5_arrays_exp ✅ 1s - new
LP64 z3* ✅ 3s - new
shake128_init LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 3s - new
shake128_release LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 3s - new
shake128_squeeze LP64 bitwuzla* ✅ 4s - new
LP64 cvc5_arrays_exp ✅ 2s - new
shake128x4_absorb_once LP64 bitwuzla* ✅ 3s - new
LP64 z3_smt_only ✅ 2s - new
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 1s - new
LP64 z3 ✅ 1s - new
shake256 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
shake256_absorb LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 1s - new
shake256_finalize LP64 cvc5_arrays_exp ✅ 3s - new
LP64 z3* ✅ 1s - new
shake256_init LP64 cvc5_arrays_exp ✅ 1s - new
LP64 z3* ✅ 2s - new
shake256_release LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 1s - new
shake256_squeeze LP64 bitwuzla* ✅ 2s - new
LP64 z3 ✅ 3s - new
shake256x4_absorb_once LP64 bitwuzla* ✅ 2s - new
LP64 z3 ✅ 1s - new
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 1s - new
LP64 z3_smt_only ✅ 2s - new
sig_unpack_hints LP64 bitwuzla ✅ 27s - new
LP64 z3* ✅ 25s - new
sign_keypair LP64 cadical ✅ 570s - new
LP64 z3* ✅ 6s - new
sign_keypair_internal LP64 cadical ✅ 216s - new
LP64 z3_no_bv_extract* ✅ 27s - new
sign_pk_from_sk LP64 z3_no_bv_extract* ✅ 40s - new
sign_signature LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 4s - new
sign_signature_extmu LP64 cadical ✅ 56s - new
LP64 z3* ✅ 3s - new
sign_signature_internal LP64 z3_no_bv_extract* ✅ 18s - new
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 4s - new
sign_signature_pre_hash_shake256 LP64 cadical ✅ 21s - new
LP64 z3* ✅ 5s - new
sign_verify LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
sign_verify_extmu LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 2s - new
sign_verify_internal LP64 z3_no_bv_extract* ❌ - - -
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 3s - new
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
sk_s1hat_get_poly LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 6s - new
sk_s2hat_get_poly LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
sk_t0hat_get_poly LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 3s - new
sys_check_capability LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 2s - new
unpack_pk_t1 LP64 bitwuzla ✅ 12s - new
LP64 z3* ✅ 1s - new
unpack_sk LP64 cadical ✅ 2s - new
LP64 z3* ✅ 2s - new
unpack_sk_s1hat LP64 cvc5_mbqi_enum ✅ 2s - new
LP64 z3* ✅ 2s - new
unpack_sk_s2hat LP64 cvc5_mbqi_enum ✅ 1s - new
LP64 z3* ✅ 2s - new
unpack_sk_t0hat LP64 cadical ✅ 2s - new
LP64 z3* ✅ 4s - new
use_hint LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 3s - new
yvec_get_poly LP64 bitwuzla ✅ 5s - new
LP64 z3* ✅ 2s - new
yvec_init LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 2s - new

@oqs-bot

oqs-bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

CBMC Results (ML-DSA-87, REDUCE-RAM)

* default.

⚠️ Attention Required

Proof DM Solver Status Current Previous Change
compute_pack_t0_t1 LP64 z3_no_bv_extract* ❌ - 25s -
polyvec_matrix_pointwise_montgomery_rows_tail LP64 cadical ❌ - - -
sign_keypair_internal LP64 z3_no_bv_extract* ⚠️ 29s 19s +53%
sign_pk_from_sk LP64 z3_no_bv_extract* ⚠️ 42s 28s +50%
sign_verify_internal LP64 z3_no_bv_extract* ❌ - 193s -
Full Results (445 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ✅ 1199s 1294s -7.3%
caddq LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 2s +50%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ❌ - 25s -
decompose LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 4s 3s +33%
fqmul LP64 bitwuzla* ✅ 27s 25s +8%
LP64 z3_smt_only ✅ 20s 20s +0%
fqscale LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3 ✅ 2s 2s +0%
intt_native_aarch64 LP64 bitwuzla ✅ 23s 22s +5%
LP64 z3* ✅ 4s 1s +300%
intt_native_rv32im_fastmul ILP32 z3* ✅ 1s 2s -50%
LP64 cvc5_mbqi_enum ✅ 8s 7s +14%
LP64 z3 ✅ 3s 2s +50%
intt_native_rv32im_slowmul ILP32 z3* ✅ 5s 1s +400%
LP64 cvc5_mbqi_enum ✅ 8s 9s -11%
LP64 z3 ✅ 2s 2s +0%
intt_native_x86_64 LP64 bitwuzla ✅ 18s 16s +12%
LP64 z3* ✅ 3s 2s +50%
keccak_absorb LP64 cvc5_arrays_exp ✅ 4s 2s +100%
LP64 z3* ✅ 5s 5s +0%
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 5s 5s +0%
LP64 cvc5_arrays_exp ✅ 9s 6s +50%
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_no_bv_extract ✅ 1s 3s -67%
keccak_f1600_x1_native_aarch64_v84a LP64 bitwuzla* ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 3s 3s +0%
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3 ✅ 1s 2s -50%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3_smt_only ✅ 2s 2s +0%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 2s 1s +100%
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 1s 3s -67%
keccak_finalize LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 1s 3s -67%
keccak_init LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 3s -67%
keccak_squeeze LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 2s 3s -33%
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 4s 4s +0%
LP64 z3 ✅ 1s 2s -50%
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 3s 3s +0%
keccakf1600_permute LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 2s 1s +100%
keccakf1600_permute_native LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 3s 2s +50%
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 2s 2s +0%
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 2s 1s +100%
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3 ✅ 2s 2s +0%
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 2s 2s +0%
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 2s 3s -33%
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 12s 13s -8%
LP64 z3* ✅ 12s 12s +0%
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 2s 1s +100%
LP64 cvc5_arrays_exp ✅ 2s 1s +100%
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_no_bv_extract ✅ 2s 2s +0%
make_hint LP64 cvc5_arrays_exp ✅ 3s 1s +200%
LP64 z3* ✅ 1s 2s -50%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ✅ 170s 154s +10%
mld_check_pct LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 5s 5s +0%
mld_compute_pack_z LP64 cadical ✅ 42s 34s +24%
LP64 z3_no_bv_extract* ✅ 3s 4s -25%
mld_ct_abs_i32 ILP32 bitwuzla ✅ 3s 2s +50%
ILP32 cvc5_arrays_exp ✅ 3s 2s +50%
ILP32 z3 ✅ 2s 2s +0%
LP64 bitwuzla ✅ 2s 3s -33%
LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 4s 2s +100%
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 4s 2s +100%
LP64 z3* ✅ 1s 4s -75%
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 2s 2s +0%
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 1s 3s -67%
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 3s -33%
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 1s +100%
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 1s 4s -75%
LP64 z3_smt_only ✅ 3s 5s -40%
mld_ct_memcmp LP64 bitwuzla* ✅ 4s 1s +300%
LP64 z3_no_bv_extract ✅ 47s 46s +2%
mld_ct_sel_int32 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
mld_h LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 4s 3s +33%
mld_invntt_layer LP64 bitwuzla* ✅ 69s 65s +6%
LP64 z3_smt_only ✅ 78s 75s +4%
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 1s +100%
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 5s 4s +25%
LP64 z3* ✅ 4s 5s -20%
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 1s 3s -67%
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 10s 12s -17%
LP64 z3_no_bv_extract ✅ 193s 154s +25%
mld_ntt_layer LP64 bitwuzla* ✅ 24s 23s +4%
LP64 z3_no_bv_extract ✅ 3s 2s +50%
mld_polymat_expand_entry LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 5s -60%
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 2s +50%
mld_sample_pack_s1_s2 LP64 cadical ✅ 73s 72s +1%
LP64 z3* ✅ 6s 5s +20%
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ✅ 545s 542s +1%
LP64 z3* ✅ 6s 6s +0%
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 4s 5s -20%
mld_sign_finish LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 5s 3s +67%
mld_sign_hook_resume LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 4s -25%
mld_value_barrier_i64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 3s -67%
mld_value_barrier_u32 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 1s 2s -50%
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 3s 1s +200%
LP64 z3* ✅ 1s 2s -50%
montgomery_reduce LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 3s 3s +0%
ntt_native_aarch64 LP64 bitwuzla ✅ 22s 17s +29%
LP64 z3* ✅ 1s 2s -50%
ntt_native_rv32im_fastmul ILP32 z3* ✅ 3s 2s +50%
LP64 cvc5_mbqi_enum ✅ 7s 7s +0%
LP64 z3 ✅ 4s 2s +100%
ntt_native_rv32im_slowmul ILP32 z3* ✅ 2s 2s +0%
LP64 cvc5_mbqi_enum ✅ 7s 6s +17%
LP64 z3 ✅ 3s 3s +0%
ntt_native_x86_64 LP64 bitwuzla ✅ 20s 16s +25%
LP64 z3* ✅ 4s 2s +100%
nttunpack_native_x86_64 LP64 bitwuzla ✅ 188s 178s +6%
LP64 z3* ✅ 2s 2s +0%
pack_sig_c LP64 cvc5_arrays_exp ✅ 1s 1s +0%
LP64 z3* ✅ 3s 2s +50%
pack_sig_h LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3_no_bv_extract* ✅ 2s 2s +0%
pack_sig_z LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 2s 2s +0%
pack_sk_rho_key_tr LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 3s -33%
pointwise_acc_native_aarch64 LP64 cadical ✅ 87s 91s -4%
LP64 z3_smt_only* ✅ 3s 3s +0%
pointwise_acc_native_x86_64 LP64 cadical ✅ 88s 87s +1%
LP64 z3_smt_only* ✅ 5s 4s +25%
pointwise_native_aarch64 LP64 bitwuzla ✅ 21s 19s +11%
LP64 z3* ✅ 3s 2s +50%
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 2s 2s +0%
LP64 cvc5_mbqi_enum ✅ 8s 8s +0%
LP64 z3 ✅ 2s 1s +100%
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 3s 2s +50%
LP64 cvc5_mbqi_enum ✅ 11s 9s +22%
LP64 z3 ✅ 1s 3s -67%
pointwise_native_x86_64 LP64 bitwuzla ✅ 22s 21s +5%
LP64 z3* ✅ 3s 2s +50%
poly_accumulate_column4 LP64 cadical ✅ 45s - new
LP64 z3* ✅ 5s - new
poly_accumulate_column_entry LP64 cadical ✅ 15s - new
LP64 z3* ✅ 3s - new
poly_add LP64 cadical ✅ 51s 49s +4%
LP64 z3* ✅ 11s 9s +22%
poly_caddq LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 1s +100%
poly_caddq_c LP64 bitwuzla ✅ 20s 17s +18%
LP64 z3* ✅ 3s 2s +50%
poly_caddq_native LP64 bitwuzla ✅ 116s 106s +9%
LP64 z3* ✅ 4s 2s +100%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ✅ 35s 33s +6%
LP64 z3* ✅ 3s 1s +200%
poly_caddq_native_x86_64 LP64 bitwuzla ✅ 125s 118s +6%
LP64 z3* ✅ 3s 1s +200%
poly_challenge LP64 bitwuzla ✅ 34s 35s -3%
LP64 z3* ✅ 13s 12s +8%
poly_chknorm LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 2s 2s +0%
poly_chknorm_c LP64 bitwuzla ✅ 12s 8s +50%
LP64 z3* ✅ 8s 7s +14%
poly_chknorm_native LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3* ✅ 4s 2s +100%
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 1s +100%
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
poly_decompose LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 1s 4s -75%
poly_decompose_32_native_aarch64 LP64 cadical ✅ 7s 7s +0%
LP64 z3* ✅ 2s 2s +0%
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 1s +100%
poly_decompose_c LP64 cvc5_mbqi_enum ✅ 238s 224s +6%
LP64 z3* ✅ 1s 6s -83%
poly_decompose_native LP64 cadical ✅ 13s 14s -7%
LP64 z3* ✅ 1s 2s -50%
poly_decompose_native_x86_64 LP64 cadical ✅ 8s 9s -11%
LP64 z3* ✅ 3s 4s -25%
poly_invntt_tomont LP64 bitwuzla ✅ 6s 5s +20%
LP64 z3* ✅ 2s 2s +0%
poly_invntt_tomont_c LP64 bitwuzla ✅ 158s 152s +4%
LP64 z3_smt_only* ✅ 3s 5s -40%
poly_invntt_tomont_native LP64 bitwuzla ✅ 44s 45s -2%
LP64 z3* ✅ 2s 3s -33%
poly_ntt LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 3s 3s +0%
poly_ntt_c LP64 bitwuzla ✅ 50s 47s +6%
LP64 z3_smt_only* ✅ 11s 9s +22%
poly_ntt_native LP64 bitwuzla ✅ 28s 25s +12%
LP64 z3* ✅ 3s 2s +50%
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 1s +100%
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 3s -33%
poly_pointwise_montgomery LP64 bitwuzla ✅ 9s 10s -10%
LP64 z3* ✅ 3s 3s +0%
poly_pointwise_montgomery_c LP64 bitwuzla ✅ 195s 184s +6%
LP64 z3* ✅ 39s 37s +5%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ✅ 53s 54s -2%
LP64 z3* ✅ 2s 1s +100%
poly_power2round LP64 bitwuzla ✅ 279s 266s +5%
LP64 z3* ✅ 3s 3s +0%
poly_reduce LP64 bitwuzla ✅ 8s 10s -20%
LP64 z3* ✅ 2s 1s +100%
poly_shiftl LP64 bitwuzla ✅ 10s 12s -17%
LP64 z3* ✅ 2s 3s -33%
poly_sub LP64 bitwuzla ✅ 14s 13s +8%
LP64 z3* ✅ 2s 3s -33%
poly_uniform LP64 bitwuzla ✅ 187s 165s +13%
LP64 z3* ✅ 3s 3s +0%
poly_uniform_4x LP64 cadical ✅ 1s 2s -50%
LP64 z3* ✅ 3s 1s +200%
poly_uniform_eta LP64 bitwuzla ✅ 84s 76s +11%
LP64 z3* ✅ 4s 2s +100%
poly_uniform_eta_4x LP64 cadical ✅ 63s 60s +5%
LP64 z3* ✅ 10s 7s +43%
poly_uniform_gamma1 LP64 cadical ✅ 2s 3s -33%
LP64 z3* ✅ 2s 1s +100%
poly_uniform_gamma1_4x LP64 cadical ✅ 3s 1s +200%
LP64 z3* ✅ 2s 1s +100%
poly_use_hint LP64 cvc5_mbqi_enum ✅ 22s 20s +10%
LP64 z3* ✅ 1s 3s -67%
poly_use_hint_c LP64 cvc5_enum_inst ✅ 12s 11s +9%
LP64 z3* ✅ 4s 4s +0%
poly_use_hint_native LP64 cvc5_mbqi_enum ✅ 88s 93s -5%
LP64 z3* ✅ 2s 2s +0%
poly_use_hint_native_aarch64 LP64 bitwuzla ✅ 29s 28s +4%
LP64 z3* ✅ 2s 2s +0%
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 29s 30s -3%
LP64 z3* ✅ 1s 2s -50%
polyeta_pack LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 3s 2s +50%
polyeta_unpack LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 9s 9s +0%
polymat_expand_column4 LP64 cadical ✅ 53s - new
LP64 z3* ✅ 44s - new
polyt0_pack LP64 bitwuzla ✅ 5s 4s +25%
LP64 z3* ✅ 3s 1s +200%
polyt0_unpack LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 7s 7s +0%
polyt1_pack LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 1s +100%
polyt1_unpack LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 4s 2s +100%
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 1s 3s -67%
polyvec_matrix_expand_serial LP64 z3* ✅ 1s 2s -50%
polyvec_matrix_pointwise_montgomery_row LP64 cadical ✅ 43s 44s -2%
LP64 z3_no_bv_extract* ✅ 5s 3s +67%
polyvec_matrix_pointwise_montgomery_rows LP64 cadical ✅ 32s - new
LP64 z3_no_bv_extract* ✅ 2s - new
polyvec_matrix_pointwise_montgomery_rows_tail LP64 cadical ❌ - - -
LP64 z3_no_bv_extract* ✅ 3s - new
polyvec_matrix_pointwise_montgomery_yvec LP64 cadical ✅ 1280s 1250s +2%
LP64 z3* ✅ 95s 102s -7%
polyveck_accumulate_column_x4 LP64 cadical ✅ 83s - new
LP64 z3* ✅ 10s - new
polyveck_caddq LP64 cadical ✅ 1200s 1207s -1%
LP64 z3* ✅ 2s 2s +0%
polyveck_decompose_pack_w1 LP64 cadical ✅ 203s 196s +4%
LP64 z3* ✅ 1s 5s -80%
polyveck_invntt_tomont LP64 cadical ✅ 310s 303s +2%
LP64 z3* ✅ 5s 3s +67%
polyveck_ntt LP64 cadical ✅ 3s 1s +200%
LP64 z3* ✅ 3s 1s +200%
polyveck_reduce LP64 cadical ✅ 256s 247s +4%
LP64 z3* ✅ 3s 2s +50%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ✅ 1s 1s +0%
LP64 z3* ✅ 2s 2s +0%
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 18s 16s +12%
LP64 z3* ✅ 4s 1s +300%
polyvecl_chknorm LP64 cadical ✅ 138s 133s +4%
LP64 z3* ✅ 3s 2s +50%
polyvecl_ntt LP64 cadical ✅ 192s 181s +6%
LP64 z3* ✅ 2s 4s -50%
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 1s 2s -50%
LP64 z3_smt_only* ✅ 1s 3s -67%
polyvecl_pointwise_acc_montgomery_c LP64 cadical ✅ 1s 2s -50%
LP64 z3_smt_only* ✅ 1s 1s +0%
polyvecl_pointwise_acc_montgomery_native LP64 cvc5_mbqi_enum ✅ 4s 2s +100%
LP64 z3_smt_only* ✅ 3s 3s +0%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ✅ 3s 3s +0%
LP64 z3* ✅ 1s 2s -50%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ✅ 3s 3s +0%
LP64 z3* ✅ 1s 2s -50%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ✅ 48s 46s +4%
LP64 z3* ✅ 2s 2s +0%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ✅ 50s 48s +4%
LP64 z3* ✅ 2s 1s +100%
polyw1_pack LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 4s 3s +33%
polyw1_pack_32 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 3s 2s +50%
polyw1_pack_88 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 3s -33%
polyw1_unpack LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 1s 3s -67%
polyw1_unpack_32 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 4s 3s +33%
polyw1_unpack_88 LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 1s +100%
polyz_pack LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
polyz_unpack LP64 bitwuzla ✅ 7s 5s +40%
LP64 z3* ✅ 2s 2s +0%
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 3s 3s +0%
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 3s +0%
polyz_unpack_c LP64 bitwuzla ✅ 3s 5s -40%
LP64 z3* ✅ 3s 6s -50%
polyz_unpack_native LP64 bitwuzla ✅ 29s 25s +16%
LP64 z3* ✅ 2s 3s -33%
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 15s 13s +15%
LP64 z3* ✅ 2s 3s -33%
power2round LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 1s 1s +0%
reduce32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 3s +0%
rej_eta LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 3s 2s +50%
rej_eta_c LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3 ✅ 13s 13s +0%
rej_eta_native LP64 bitwuzla* ✅ 4s 2s +100%
LP64 z3_smt_only ✅ 16s 16s +0%
rej_uniform LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 10s 9s +11%
rej_uniform_c LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 8s 8s +0%
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 3s 1s +200%
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3_smt_only* ✅ 3s 2s +50%
rej_uniform_native LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_smt_only ✅ 9s 9s +0%
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3_smt_only ✅ 2s 2s +0%
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3_smt_only* ✅ 8s 7s +14%
shake128_absorb LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 1s 3s -67%
shake128_finalize LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 1s 2s -50%
shake128_init LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 2s 3s -33%
shake128_release LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 1s 2s -50%
shake128_squeeze LP64 bitwuzla* ✅ 1s 2s -50%
LP64 cvc5_arrays_exp ✅ 4s 1s +300%
shake128x4_absorb_once LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 2s 2s +0%
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3 ✅ 2s 1s +100%
shake256 LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3* ✅ 3s 2s +50%
shake256_absorb LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 1s 2s -50%
shake256_finalize LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 3s -33%
shake256_init LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 3s 2s +50%
shake256_release LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 1s 1s +0%
shake256_squeeze LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3 ✅ 1s 2s -50%
shake256x4_absorb_once LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 1s 1s +0%
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 2s 2s +0%
sig_unpack_hints LP64 bitwuzla ✅ 27s 24s +12%
LP64 z3* ✅ 20s 37s -46%
sign_keypair LP64 cadical ✅ 641s 495s +29%
LP64 z3* ✅ 6s 6s +0%
sign_keypair_internal LP64 cadical ✅ 220s 213s +3%
LP64 z3_no_bv_extract* ⚠️ 29s 19s +53%
sign_pk_from_sk LP64 z3_no_bv_extract* ⚠️ 42s 28s +50%
sign_signature LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 3s 4s -25%
sign_signature_extmu LP64 cadical ✅ 59s 58s +2%
LP64 z3* ✅ 4s 1s +300%
sign_signature_internal LP64 z3_no_bv_extract* ✅ 13s 14s -7%
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 3s 5s -40%
LP64 z3* ✅ 2s 2s +0%
sign_signature_pre_hash_shake256 LP64 cadical ✅ 22s 21s +5%
LP64 z3* ✅ 6s 6s +0%
sign_verify LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 4s 3s +33%
sign_verify_extmu LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 3s 2s +50%
sign_verify_internal LP64 z3_no_bv_extract* ❌ - 193s -
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 5s 4s +25%
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 3s 3s +0%
sk_s1hat_get_poly LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 4s 3s +33%
sk_s2hat_get_poly LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
sk_t0hat_get_poly LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
sys_check_capability LP64 cvc5_arrays_exp ✅ 3s 1s +200%
LP64 z3* ✅ 1s 1s +0%
unpack_pk_t1 LP64 bitwuzla ✅ 11s 10s +10%
LP64 z3* ✅ 2s 2s +0%
unpack_sk LP64 cadical ✅ 2s 1s +100%
LP64 z3* ✅ 3s 4s -25%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ✅ 3s 3s +0%
LP64 z3* ✅ 3s 2s +50%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ✅ 1s 3s -67%
LP64 z3* ✅ 3s 5s -40%
unpack_sk_t0hat LP64 cadical ✅ 1s 2s -50%
LP64 z3* ✅ 2s 1s +100%
use_hint LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 3s 2s +50%
yvec_get_poly LP64 bitwuzla ✅ 7s 5s +40%
LP64 z3* ✅ 4s 2s +100%
yvec_init LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 4s 2s +100%

@oqs-bot

oqs-bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

CBMC Results (ML-DSA-87)

* default.

⚠️ Attention Required

Proof DM Solver Status Current Previous Change
compute_pack_t0_t1 LP64 z3_no_bv_extract* ❌ - 176s -
polyvec_matrix_pointwise_montgomery_rows_tail LP64 cadical ❌ - - -
sign_verify_internal LP64 z3_no_bv_extract* ❌ - 798s -
Full Results (445 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ✅ 2944s 3488s -15.6%
caddq LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 3s -33%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ❌ - 176s -
decompose LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 3s 2s +50%
fqmul LP64 bitwuzla* ✅ 27s 24s +12%
LP64 z3_smt_only ✅ 20s 18s +11%
fqscale LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 2s 3s -33%
intt_native_aarch64 LP64 bitwuzla ✅ 24s 22s +9%
LP64 z3* ✅ 2s 1s +100%
intt_native_rv32im_fastmul ILP32 z3* ✅ 2s 1s +100%
LP64 cvc5_mbqi_enum ✅ 7s 6s +17%
LP64 z3 ✅ 2s 3s -33%
intt_native_rv32im_slowmul ILP32 z3* ✅ 3s 3s +0%
LP64 cvc5_mbqi_enum ✅ 11s 8s +38%
LP64 z3 ✅ 1s 3s -67%
intt_native_x86_64 LP64 bitwuzla ✅ 18s 17s +6%
LP64 z3* ✅ 2s 5s -60%
keccak_absorb LP64 cvc5_arrays_exp ✅ 4s 3s +33%
LP64 z3* ✅ 7s 6s +17%
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 5s 5s +0%
LP64 cvc5_arrays_exp ✅ 10s 8s +25%
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 4s 2s +100%
LP64 z3_no_bv_extract ✅ 3s 1s +200%
keccak_f1600_x1_native_aarch64_v84a LP64 bitwuzla* ✅ 3s 3s +0%
LP64 cvc5_arrays_exp ✅ 1s 3s -67%
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3 ✅ 3s 4s -25%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_smt_only ✅ 2s 3s -33%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 1s 1s +0%
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 2s 1s +100%
LP64 cvc5_arrays_exp ✅ 2s 2s +0%
keccak_finalize LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 1s +100%
keccak_init LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 3s -33%
keccak_squeeze LP64 bitwuzla* ✅ 3s 4s -25%
LP64 z3 ✅ 2s 2s +0%
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3 ✅ 1s 2s -50%
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 2s 1s +100%
keccakf1600_permute LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 3s -33%
keccakf1600_permute_native LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 1s +100%
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 2s 3s -33%
LP64 cvc5_arrays_exp ✅ 3s 2s +50%
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_smt_only ✅ 1s 2s -50%
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 2s 2s +0%
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 4s 2s +100%
LP64 z3 ✅ 2s 1s +100%
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 1s 3s -67%
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 13s 12s +8%
LP64 z3* ✅ 12s 11s +9%
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 2s 3s -33%
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_no_bv_extract ✅ 1s 5s -80%
make_hint LP64 cvc5_arrays_exp ✅ 3s 1s +200%
LP64 z3* ✅ 2s 4s -50%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ✅ 277s 250s +11%
mld_check_pct LP64 bitwuzla ✅ 6s 6s +0%
LP64 z3* ✅ 5s 6s -17%
mld_compute_pack_z LP64 cadical ✅ 86s 81s +6%
LP64 z3_no_bv_extract* ✅ 10s 7s +43%
mld_ct_abs_i32 ILP32 bitwuzla ✅ 2s 2s +0%
ILP32 cvc5_arrays_exp ✅ 1s 2s -50%
ILP32 z3 ✅ 2s 1s +100%
LP64 bitwuzla ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 1s 2s -50%
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 2s 4s -50%
LP64 z3* ✅ 7s 2s +250%
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 1s 3s -67%
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 4s 4s +0%
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 4s 2s +100%
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 1s +200%
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3_smt_only ✅ 1s 2s -50%
mld_ct_memcmp LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3_no_bv_extract ✅ 51s 45s +13%
mld_ct_sel_int32 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 2s +50%
mld_h LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 2s 3s -33%
mld_invntt_layer LP64 bitwuzla* ✅ 69s 60s +15%
LP64 z3_smt_only ✅ 95s 86s +10%
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 3s -33%
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 4s 4s +0%
LP64 z3* ✅ 4s 3s +33%
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 4s -50%
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 6s 5s +20%
LP64 z3* ✅ 2s 1s +100%
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 15s 13s +15%
LP64 z3_no_bv_extract ✅ 73s 62s +18%
mld_ntt_layer LP64 bitwuzla* ✅ 25s 24s +4%
LP64 z3_no_bv_extract ✅ 4s 3s +33%
mld_polymat_expand_entry LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 2s +50%
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
mld_sample_pack_s1_s2 LP64 cadical ✅ 76s 72s +6%
LP64 z3* ✅ 5s 7s -29%
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ✅ 560s 537s +4%
LP64 z3* ✅ 5s 5s +0%
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 3s 4s -25%
mld_sign_finish LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 2s +0%
mld_sign_hook_resume LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 3s -33%
mld_value_barrier_i64 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 1s +100%
mld_value_barrier_u32 LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 2s 1s +100%
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 2s 4s -50%
montgomery_reduce LP64 cvc5_arrays_exp ✅ 4s 5s -20%
LP64 z3* ✅ 2s 4s -50%
ntt_native_aarch64 LP64 bitwuzla ✅ 25s 19s +32%
LP64 z3* ✅ 2s 2s +0%
ntt_native_rv32im_fastmul ILP32 z3* ✅ 5s 3s +67%
LP64 cvc5_mbqi_enum ✅ 5s 7s -29%
LP64 z3 ✅ 4s 3s +33%
ntt_native_rv32im_slowmul ILP32 z3* ✅ 2s 2s +0%
LP64 cvc5_mbqi_enum ✅ 7s 8s -12%
LP64 z3 ✅ 2s 2s +0%
ntt_native_x86_64 LP64 bitwuzla ✅ 20s 17s +18%
LP64 z3* ✅ 3s 6s -50%
nttunpack_native_x86_64 LP64 bitwuzla ✅ 205s 177s +16%
LP64 z3* ✅ 4s 4s +0%
pack_sig_c LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 3s 4s -25%
pack_sig_h LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3_no_bv_extract* ✅ 2s 1s +100%
pack_sig_z LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 2s 2s +0%
pack_sk_rho_key_tr LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 3s 3s +0%
pointwise_acc_native_aarch64 LP64 cadical ✅ 93s 91s +2%
LP64 z3_smt_only* ✅ 6s 4s +50%
pointwise_acc_native_x86_64 LP64 cadical ✅ 96s 89s +8%
LP64 z3_smt_only* ✅ 6s 4s +50%
pointwise_native_aarch64 LP64 bitwuzla ✅ 25s 20s +25%
LP64 z3* ✅ 2s 3s -33%
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 2s 2s +0%
LP64 cvc5_mbqi_enum ✅ 7s 7s +0%
LP64 z3 ✅ 4s 2s +100%
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 4s 1s +300%
LP64 cvc5_mbqi_enum ✅ 9s 8s +12%
LP64 z3 ✅ 2s 2s +0%
pointwise_native_x86_64 LP64 bitwuzla ✅ 22s 21s +5%
LP64 z3* ✅ 1s 3s -67%
poly_accumulate_column4 LP64 cadical ✅ 48s - new
LP64 z3* ✅ 6s - new
poly_accumulate_column_entry LP64 cadical ✅ 16s - new
LP64 z3* ✅ 3s - new
poly_add LP64 cadical ✅ 51s 54s -6%
LP64 z3* ✅ 11s 9s +22%
poly_caddq LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 4s -50%
poly_caddq_c LP64 bitwuzla ✅ 19s 19s +0%
LP64 z3* ✅ 4s 3s +33%
poly_caddq_native LP64 bitwuzla ✅ 119s 102s +17%
LP64 z3* ✅ 3s 2s +50%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ✅ 35s 34s +3%
LP64 z3* ✅ 1s 2s -50%
poly_caddq_native_x86_64 LP64 bitwuzla ✅ 139s 99s +40%
LP64 z3* ✅ 2s 3s -33%
poly_challenge LP64 bitwuzla ✅ 42s 32s +31%
LP64 z3* ✅ 10s 14s -29%
poly_chknorm LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 4s -50%
poly_chknorm_c LP64 bitwuzla ✅ 9s 8s +12%
LP64 z3* ✅ 7s 8s -12%
poly_chknorm_native LP64 bitwuzla ✅ 8s 9s -11%
LP64 z3* ✅ 2s 3s -33%
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 3s 1s +200%
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 2s 4s -50%
poly_decompose LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3* ✅ 2s 2s +0%
poly_decompose_32_native_aarch64 LP64 cadical ✅ 7s 6s +17%
LP64 z3* ✅ 2s 5s -60%
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
poly_decompose_c LP64 cvc5_mbqi_enum ✅ 224s 217s +3%
LP64 z3* ✅ 6s 4s +50%
poly_decompose_native LP64 cadical ✅ 14s 14s +0%
LP64 z3* ✅ 3s 2s +50%
poly_decompose_native_x86_64 LP64 cadical ✅ 10s 10s +0%
LP64 z3* ✅ 2s 2s +0%
poly_invntt_tomont LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 3s 5s -40%
poly_invntt_tomont_c LP64 bitwuzla ✅ 171s 151s +13%
LP64 z3_smt_only* ✅ 6s 4s +50%
poly_invntt_tomont_native LP64 bitwuzla ✅ 54s 41s +32%
LP64 z3* ✅ 2s 3s -33%
poly_ntt LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3* ✅ 4s 3s +33%
poly_ntt_c LP64 bitwuzla ✅ 54s 43s +26%
LP64 z3_smt_only* ✅ 8s 10s -20%
poly_ntt_native LP64 bitwuzla ✅ 31s 26s +19%
LP64 z3* ✅ 3s 3s +0%
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 2s 1s +100%
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3* ✅ 2s 2s +0%
poly_pointwise_montgomery LP64 bitwuzla ✅ 14s 10s +40%
LP64 z3* ✅ 3s 3s +0%
poly_pointwise_montgomery_c LP64 bitwuzla ✅ 189s 178s +6%
LP64 z3* ✅ 68s 62s +10%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ✅ 57s 56s +2%
LP64 z3* ✅ 3s 2s +50%
poly_power2round LP64 bitwuzla ✅ 348s 256s +36%
LP64 z3* ✅ 4s 5s -20%
poly_reduce LP64 bitwuzla ✅ 9s 8s +12%
LP64 z3* ✅ 2s 4s -50%
poly_shiftl LP64 bitwuzla ✅ 11s 11s +0%
LP64 z3* ✅ 1s 2s -50%
poly_sub LP64 bitwuzla ✅ 16s 12s +33%
LP64 z3* ✅ 2s 2s +0%
poly_uniform LP64 bitwuzla ✅ 186s 173s +8%
LP64 z3* ✅ 1s 2s -50%
poly_uniform_4x LP64 cadical ✅ 62s 60s +3%
LP64 z3* ✅ 8s 8s +0%
poly_uniform_eta LP64 bitwuzla ✅ 89s 76s +17%
LP64 z3* ✅ 1s 3s -67%
poly_uniform_eta_4x LP64 cadical ✅ 64s 61s +5%
LP64 z3* ✅ 13s 8s +62%
poly_uniform_gamma1 LP64 cadical ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
poly_uniform_gamma1_4x LP64 cadical ✅ 11s 10s +10%
LP64 z3* ✅ 4s 3s +33%
poly_use_hint LP64 cvc5_mbqi_enum ✅ 23s 22s +5%
LP64 z3* ✅ 3s 3s +0%
poly_use_hint_c LP64 cvc5_enum_inst ✅ 13s 11s +18%
LP64 z3* ✅ 4s 2s +100%
poly_use_hint_native LP64 cvc5_mbqi_enum ✅ 91s 95s -4%
LP64 z3* ✅ 2s 2s +0%
poly_use_hint_native_aarch64 LP64 bitwuzla ✅ 33s 28s +18%
LP64 z3* ✅ 2s 2s +0%
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 32s 29s +10%
LP64 z3* ✅ 3s 2s +50%
polyeta_pack LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 2s 1s +100%
polyeta_unpack LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 10s 10s +0%
polymat_expand_column4 LP64 cadical ✅ 55s - new
LP64 z3* ✅ 48s - new
polyt0_pack LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 2s +0%
polyt0_unpack LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 9s 8s +12%
polyt1_pack LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 1s 1s +0%
polyt1_unpack LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 3s -33%
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 97s 82s +18%
polyvec_matrix_expand_serial LP64 z3* ✅ 22s 25s -12%
polyvec_matrix_pointwise_montgomery_row LP64 cadical ✅ 597s 582s +3%
LP64 z3_no_bv_extract* ✅ 3s 1s +200%
polyvec_matrix_pointwise_montgomery_rows LP64 cadical ✅ 627s - new
LP64 z3_no_bv_extract* ✅ 2s - new
polyvec_matrix_pointwise_montgomery_rows_tail LP64 cadical ❌ - - -
LP64 z3_no_bv_extract* ✅ 4s - new
polyvec_matrix_pointwise_montgomery_yvec LP64 cadical ✅ 782s 758s +3%
LP64 z3* ✅ 7s 6s +17%
polyveck_accumulate_column_x4 LP64 cadical ✅ 89s - new
LP64 z3* ✅ 12s - new
polyveck_caddq LP64 cadical ✅ 1243s 1189s +5%
LP64 z3* ✅ 3s 2s +50%
polyveck_decompose_pack_w1 LP64 cadical ✅ 254s 198s +28%
LP64 z3* ✅ 4s 4s +0%
polyveck_invntt_tomont LP64 cadical ✅ 326s 308s +6%
LP64 z3* ✅ 2s 4s -50%
polyveck_ntt LP64 cadical ✅ 1089s 1054s +3%
LP64 z3* ✅ 15s 5s +200%
polyveck_reduce LP64 cadical ✅ 1s 4s -75%
LP64 z3* ✅ 2s 2s +0%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ✅ 56s 50s +12%
LP64 z3* ✅ 2s 2s +0%
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 18s 18s +0%
LP64 z3* ✅ 3s 3s +0%
polyvecl_chknorm LP64 cadical ✅ 148s 155s -5%
LP64 z3* ✅ 4s 3s +33%
polyvecl_ntt LP64 cadical ✅ 198s 182s +9%
LP64 z3* ✅ 3s 3s +0%
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 14s 13s +8%
LP64 z3_smt_only* ✅ 2s 1s +100%
polyvecl_pointwise_acc_montgomery_c LP64 cadical ✅ 157s 148s +6%
LP64 z3_smt_only* ✅ 1244s 1031s +21%
polyvecl_pointwise_acc_montgomery_native LP64 cvc5_mbqi_enum ✅ 183s 175s +5%
LP64 z3_smt_only* ✅ 2s 3s -33%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ✅ 83s 75s +11%
LP64 z3* ✅ 3s 5s -40%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ✅ 47s 46s +2%
LP64 z3* ✅ 2s 4s -50%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ✅ 47s 47s +0%
LP64 z3* ✅ 2s 5s -60%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ✅ 50s 47s +6%
LP64 z3* ✅ 3s 2s +50%
polyw1_pack LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 4s -50%
polyw1_pack_32 LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 3s 2s +50%
polyw1_pack_88 LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 1s 3s -67%
polyw1_unpack LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 1s 1s +0%
polyw1_unpack_32 LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 3s 3s +0%
polyw1_unpack_88 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 1s +100%
polyz_pack LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
polyz_unpack LP64 bitwuzla ✅ 7s 7s +0%
LP64 z3* ✅ 3s 2s +50%
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 3s -33%
polyz_unpack_c LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 9s 8s +12%
polyz_unpack_native LP64 bitwuzla ✅ 25s 24s +4%
LP64 z3* ✅ 2s 3s -33%
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 17s 13s +31%
LP64 z3* ✅ 2s 3s -33%
power2round LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 1s 3s -67%
reduce32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 3s +0%
rej_eta LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 1s 1s +0%
rej_eta_c LP64 bitwuzla* ✅ 4s 4s +0%
LP64 z3 ✅ 17s 13s +31%
rej_eta_native LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 17s 18s -6%
rej_uniform LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 11s 8s +38%
rej_uniform_c LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 17s 15s +13%
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3_smt_only ✅ 4s 2s +100%
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3_smt_only* ✅ 4s 2s +100%
rej_uniform_native LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3_smt_only ✅ 10s 9s +11%
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 1s 4s -75%
LP64 z3_smt_only ✅ 2s 3s -33%
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 6s 5s +20%
LP64 z3_smt_only* ✅ 10s 7s +43%
shake128_absorb LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
shake128_finalize LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 2s 2s +0%
shake128_init LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 2s 2s +0%
shake128_release LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%
shake128_squeeze LP64 bitwuzla* ✅ 6s 2s +200%
LP64 cvc5_arrays_exp ✅ 3s 1s +200%
shake128x4_absorb_once LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_smt_only ✅ 1s 3s -67%
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3 ✅ 4s 3s +33%
shake256 LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 1s +100%
shake256_absorb LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 1s +0%
shake256_finalize LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
shake256_init LP64 cvc5_arrays_exp ✅ 3s 1s +200%
LP64 z3* ✅ 3s 2s +50%
shake256_release LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 3s 2s +50%
shake256_squeeze LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 3s 4s -25%
shake256x4_absorb_once LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3 ✅ 3s 2s +50%
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3_smt_only ✅ 2s 2s +0%
sig_unpack_hints LP64 bitwuzla ✅ 30s 24s +25%
LP64 z3* ✅ 7s 12s -42%
sign_keypair LP64 cadical ✅ 666s 585s +14%
LP64 z3* ✅ 5s 5s +0%
sign_keypair_internal LP64 cadical ✅ 225s 214s +5%
LP64 z3_no_bv_extract* ✅ 20s 28s -29%
sign_pk_from_sk LP64 z3_no_bv_extract* ✅ 39s 28s +39%
sign_signature LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 4s 2s +100%
sign_signature_extmu LP64 cadical ✅ 62s 69s -10%
LP64 z3* ✅ 4s 3s +33%
sign_signature_internal LP64 z3_no_bv_extract* ✅ 306s 245s +25%
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 4s 1s +300%
sign_signature_pre_hash_shake256 LP64 cadical ✅ 23s 23s +0%
LP64 z3* ✅ 6s 5s +20%
sign_verify LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 3s 3s +0%
sign_verify_extmu LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 4s 3s +33%
sign_verify_internal LP64 z3_no_bv_extract* ❌ - 798s -
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 2s 2s +0%
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 3s -33%
sk_s1hat_get_poly LP64 bitwuzla ✅ 35s 31s +13%
LP64 z3* ✅ 2s 2s +0%
sk_s2hat_get_poly LP64 bitwuzla ✅ 34s 34s +0%
LP64 z3* ✅ 2s 2s +0%
sk_t0hat_get_poly LP64 bitwuzla ✅ 35s 32s +9%
LP64 z3* ✅ 4s 3s +33%
sys_check_capability LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 3s 1s +200%
unpack_pk_t1 LP64 bitwuzla ✅ 10s 13s -23%
LP64 z3* ✅ 3s 1s +200%
unpack_sk LP64 cadical ✅ 67s 63s +6%
LP64 z3* ✅ 3s 3s +0%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ✅ 90s 86s +5%
LP64 z3* ✅ 2s 4s -50%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ✅ 319s 307s +4%
LP64 z3* ✅ 2s 3s -33%
unpack_sk_t0hat LP64 cadical ✅ 117s 112s +4%
LP64 z3* ✅ 3s 4s -25%
use_hint LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 1s 2s -50%
yvec_get_poly LP64 bitwuzla ✅ 38s 40s -5%
LP64 z3* ✅ 3s 2s +50%
yvec_init LP64 bitwuzla ✅ 17s 14s +21%
LP64 z3* ✅ 3s 4s -25%

This branch has not been deployed

No deployments
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