Skip to content

CBMC: Add CaDiCaL proofs using constant array-bound ranges - #1501

Draft
mkannwischer wants to merge 1 commit into
mainfrom
cbmc-native-and-sampling-second-solvers
Draft

mkannwischer wants to merge 1 commit into
mainfrom
cbmc-native-and-sampling-second-solvers

Conversation

@mkannwischer

Copy link
Copy Markdown
Contributor

CBMC's SAT backends need constant quantifier ranges to expand array bounds, but sampling contracts and loop invariants use symbolic range endpoints. Encode these ranges in the shared array-bound predicates so CaDiCaL can prove them without verbose quantifiers at each call site.

Quantify over MLDSA_N in array_bound_core, with the requested index range guarding coefficient bounds. Check that both range endpoints are within MLDSA_N so unsupported ranges cannot be silently truncated. array_abs_bound inherits the encoding through its existing wrapper.

Add LP64 CaDiCaL configurations for pointwise_acc_native_aarch64, poly_uniform_4x, and poly_uniform_eta_4x.

CBMC's SAT backends need constant quantifier ranges to expand array
bounds, but sampling contracts and loop invariants use symbolic range
endpoints. Encode these ranges in the shared array-bound predicates
so CaDiCaL can prove them without verbose quantifiers at each call site.

Quantify over MLDSA_N in array_bound_core, with the requested index
range guarding coefficient bounds. Check that both range endpoints
are within MLDSA_N so unsupported ranges cannot be silently truncated.
array_abs_bound inherits the encoding through its existing wrapper.

Add LP64 CaDiCaL configurations for pointwise_acc_native_aarch64,
poly_uniform_4x, and poly_uniform_eta_4x.

Signed-off-by: Matthias J. Kannwischer <matthias@zerorisc.com>
@oqs-bot

oqs-bot commented Oct 26, 2026

Copy link
Copy Markdown
Contributor

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

* default.

⚠️ Attention Required

Proof DM Solver Status Current Previous Change
poly_invntt_tomont_c LP64 z3_smt_only* ❌ - 7s -
poly_ntt_c LP64 bitwuzla ❌ - 51s -
LP64 z3_smt_only* ❌ - 9s -
polyeta_unpack LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 8s -
polyt0_unpack LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 8s -
polyt1_unpack LP64 bitwuzla ❌ - 1s -
LP64 z3* ❌ - 3s -
polyvec_matrix_pointwise_montgomery_row LP64 z3_no_bv_extract* ❌ - 3s -
polyw1_unpack_88 LP64 bitwuzla ❌ - 1s -
LP64 z3* ❌ - 2s -
polyz_unpack_c LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 6s -
rej_eta_c LP64 bitwuzla* ❌ - 4s -
LP64 z3 ❌ - 22s -
rej_uniform_c LP64 bitwuzla ❌ - 4s -
LP64 z3* ❌ - 8s -
Full Results (410 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ✅ 1305s 1448s -9.9%
caddq LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ✅ 30s 30s +0%
decompose LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 4s -50%
fqmul LP64 bitwuzla* ✅ 23s 24s -4%
LP64 z3_smt_only ✅ 18s 22s -18%
fqscale LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3 ✅ 2s 2s +0%
intt_native_aarch64 LP64 bitwuzla ✅ 22s 23s -4%
LP64 z3* ✅ 3s 2s +50%
intt_native_rv32im_fastmul ILP32 z3* ✅ 2s 2s +0%
LP64 cvc5_mbqi_enum ✅ 8s 7s +14%
LP64 z3 ✅ 2s 5s -60%
intt_native_rv32im_slowmul ILP32 z3* ✅ 2s 2s +0%
LP64 cvc5_mbqi_enum ✅ 7s 9s -22%
LP64 z3 ✅ 2s 3s -33%
intt_native_x86_64 LP64 bitwuzla ✅ 16s 18s -11%
LP64 z3* ✅ 2s 1s +100%
keccak_absorb LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 4s 4s +0%
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 6s 3s +100%
LP64 cvc5_arrays_exp ✅ 8s 7s +14%
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_no_bv_extract ✅ 2s 3s -33%
keccak_f1600_x1_native_aarch64_v84a LP64 bitwuzla* ✅ 1s 1s +0%
LP64 cvc5_arrays_exp ✅ 2s 1s +100%
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 1s 1s +0%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3_smt_only ✅ 3s 1s +200%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3_smt_only ✅ 2s 2s +0%
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 2s 3s -33%
LP64 cvc5_arrays_exp ✅ 2s 1s +100%
keccak_finalize LP64 cvc5_arrays_exp ✅ 1s 1s +0%
LP64 z3* ✅ 1s 3s -67%
keccak_init LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 1s 3s -67%
keccak_squeeze LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 2s 2s +0%
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 4s 3s +33%
LP64 z3 ✅ 3s 1s +200%
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 1s 2s -50%
keccakf1600_permute LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 1s 3s -67%
keccakf1600_permute_native LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 1s 2s -50%
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 2s 3s -33%
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 2s 4s -50%
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 2s 3s -33%
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 ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 13s 12s +8%
LP64 z3* ✅ 11s 11s +0%
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 2s 3s -33%
LP64 cvc5_arrays_exp ✅ 2s 1s +100%
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_no_bv_extract ✅ 1s 2s -50%
make_hint LP64 cvc5_arrays_exp ✅ 4s 2s +100%
LP64 z3* ✅ 1s 2s -50%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ✅ 131s 159s -18%
mld_check_pct LP64 bitwuzla ✅ 6s 6s +0%
LP64 z3* ✅ 5s 7s -29%
mld_compute_pack_z LP64 cadical ✅ 41s 43s -5%
LP64 z3_no_bv_extract* ✅ 3s 3s +0%
mld_ct_abs_i32 ILP32 bitwuzla ✅ 3s 2s +50%
ILP32 cvc5_arrays_exp ✅ 1s 2s -50%
ILP32 z3 ✅ 1s 3s -67%
LP64 bitwuzla ✅ 1s 2s -50%
LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 3s 1s +200%
LP64 z3* ✅ 3s 3s +0%
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 1s 2s -50%
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 2s 3s -33%
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 ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_smt_only ✅ 2s 1s +100%
mld_ct_memcmp LP64 bitwuzla* ✅ 5s 2s +150%
LP64 z3_no_bv_extract ✅ 75s 83s -10%
mld_ct_sel_int32 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 3s 1s +200%
mld_h LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 5s -40%
mld_invntt_layer LP64 bitwuzla* ✅ 44s 67s -34%
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 2s 1s +100%
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 5s 3s +67%
LP64 z3* ✅ 3s 5s -40%
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 5s 2s +150%
LP64 z3* ✅ 2s 3s -33%
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 1s +100%
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 9s 12s -25%
mld_ntt_layer LP64 bitwuzla* ✅ 26s 23s +13%
LP64 z3_no_bv_extract ✅ 4s 3s +33%
mld_polymat_expand_entry LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 1s 2s -50%
mld_sample_pack_s1_s2 LP64 cadical ✅ 33s 35s -6%
LP64 z3* ✅ 3s 4s -25%
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ✅ 89s 93s -4%
LP64 z3* ✅ 2s 2s +0%
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 3s 2s +50%
mld_sign_finish LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3* ✅ 2s 2s +0%
mld_sign_resume LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 4s -25%
mld_value_barrier_i64 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 3s 3s +0%
mld_value_barrier_u32 LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 1s 1s +0%
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
montgomery_reduce LP64 cvc5_arrays_exp ✅ 2s 6s -67%
LP64 z3* ✅ 1s 2s -50%
ntt_native_aarch64 LP64 bitwuzla ✅ 20s 19s +5%
LP64 z3* ✅ 4s 2s +100%
ntt_native_rv32im_fastmul ILP32 z3* ✅ 2s 1s +100%
LP64 cvc5_mbqi_enum ✅ 5s 6s -17%
LP64 z3 ✅ 1s 1s +0%
ntt_native_rv32im_slowmul ILP32 z3* ✅ 2s 2s +0%
LP64 cvc5_mbqi_enum ✅ 6s 7s -14%
LP64 z3 ✅ 2s 2s +0%
ntt_native_x86_64 LP64 bitwuzla ✅ 17s 18s -6%
LP64 z3* ✅ 2s 2s +0%
nttunpack_native_x86_64 LP64 z3* ✅ 1s 2s -50%
pack_sig_c LP64 cvc5_arrays_exp ✅ 1s 4s -75%
LP64 z3* ✅ 1s 3s -67%
pack_sig_h LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3_no_bv_extract* ✅ 1s 1s +0%
pack_sig_z LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
pack_sk_rho_key_tr LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 3s -33%
pointwise_acc_native_aarch64 LP64 cadical ✅ 65s omitted new
LP64 z3_smt_only* ✅ 3s 2s +50%
pointwise_acc_native_x86_64 LP64 cadical ✅ 64s 65s -2%
LP64 z3_smt_only* ✅ 6s 5s +20%
pointwise_native_aarch64 LP64 bitwuzla ✅ 20s 22s -9%
LP64 z3* ✅ 1s 4s -75%
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 3s 3s +0%
LP64 cvc5_mbqi_enum ✅ 9s 9s +0%
LP64 z3 ✅ 1s 1s +0%
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 2s 2s +0%
LP64 cvc5_mbqi_enum ✅ 9s 8s +12%
LP64 z3 ✅ 1s 2s -50%
pointwise_native_x86_64 LP64 bitwuzla ✅ 22s 22s +0%
LP64 z3* ✅ 2s 4s -50%
poly_add LP64 z3* ✅ 3s 3s +0%
poly_caddq LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 2s 4s -50%
poly_caddq_c LP64 bitwuzla ✅ 12s 20s -40%
LP64 z3* ✅ 2s 4s -50%
poly_caddq_native LP64 bitwuzla ✅ 91s 113s -19%
LP64 z3* ✅ 2s 4s -50%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ✅ 33s 34s -3%
LP64 z3* ✅ 4s 5s -20%
poly_caddq_native_x86_64 LP64 bitwuzla ✅ 108s 121s -11%
LP64 z3* ✅ 1s 1s +0%
poly_challenge LP64 bitwuzla ✅ 24s 27s -11%
LP64 z3* ✅ 4s 4s +0%
poly_chknorm LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 2s 2s +0%
poly_chknorm_c LP64 bitwuzla ✅ 8s 10s -20%
LP64 z3* ✅ 11s 8s +38%
poly_chknorm_native LP64 bitwuzla ✅ 6s 6s +0%
LP64 z3* ✅ 3s 5s -40%
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 3s -33%
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 3s 2s +50%
poly_decompose LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 3s 2s +50%
poly_decompose_32_native_aarch64 LP64 cadical ✅ 3s 3s +0%
LP64 z3* ✅ 1s 2s -50%
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 6s 4s +50%
LP64 z3* ✅ 5s 2s +150%
poly_decompose_c LP64 z3* ✅ 1s 3s -67%
poly_decompose_native LP64 cadical ✅ 16s 17s -6%
LP64 z3* ✅ 3s 1s +200%
poly_decompose_native_x86_64 LP64 cadical ✅ 12s 13s -8%
LP64 z3* ✅ 3s 3s +0%
poly_invntt_tomont LP64 bitwuzla ✅ 6s 4s +50%
LP64 z3* ✅ 1s 3s -67%
poly_invntt_tomont_c LP64 z3_smt_only* ❌ - 7s -
poly_invntt_tomont_native LP64 bitwuzla ✅ 43s 44s -2%
LP64 z3* ✅ 3s 1s +200%
poly_ntt LP64 bitwuzla ✅ 5s 6s -17%
LP64 z3* ✅ 2s 2s +0%
poly_ntt_c LP64 bitwuzla ❌ - 51s -
LP64 z3_smt_only* ❌ - 9s -
poly_ntt_native LP64 bitwuzla ✅ 27s 27s +0%
LP64 z3* ✅ 5s 2s +150%
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 3s -33%
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 2s +0%
poly_pointwise_montgomery LP64 bitwuzla ✅ 11s 10s +10%
LP64 z3* ✅ 1s 3s -67%
poly_pointwise_montgomery_c LP64 z3* ✅ 87s 75s +16%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ✅ 56s 53s +6%
LP64 z3* ✅ 1s 1s +0%
poly_power2round LP64 bitwuzla ✅ 188s 285s -34%
LP64 z3* ✅ 3s 5s -40%
poly_reduce LP64 bitwuzla ✅ 17s 8s +112%
LP64 z3* ✅ 4s 3s +33%
poly_shiftl LP64 bitwuzla ✅ 11s 10s +10%
LP64 z3* ✅ 1s 1s +0%
poly_sub LP64 bitwuzla ✅ 15s 12s +25%
LP64 z3* ✅ 2s 2s +0%
poly_uniform LP64 z3* ✅ 2s 5s -60%
poly_uniform_4x LP64 cadical ✅ 2s omitted new
LP64 z3* ✅ 2s 2s +0%
poly_uniform_eta LP64 z3* ✅ 3s 6s -50%
poly_uniform_eta_4x LP64 cadical ✅ 64s omitted new
LP64 z3* ✅ 8s 10s -20%
poly_uniform_gamma1 LP64 cadical ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
poly_uniform_gamma1_4x LP64 cadical ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
poly_use_hint LP64 cvc5_mbqi_enum ✅ 22s 22s +0%
LP64 z3* ✅ 2s 2s +0%
poly_use_hint_c LP64 cvc5_enum_inst ✅ 9s 11s -18%
LP64 z3* ✅ 2s 3s -33%
poly_use_hint_native LP64 cvc5_mbqi_enum ✅ 93s 89s +4%
LP64 z3* ✅ 3s 3s +0%
poly_use_hint_native_aarch64 LP64 bitwuzla ✅ 32s 32s +0%
LP64 z3* ✅ 4s 2s +100%
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 30s 33s -9%
LP64 z3* ✅ 3s 3s +0%
polyeta_pack LP64 bitwuzla ✅ 5s 6s -17%
LP64 z3* ✅ 2s 3s -33%
polyeta_unpack LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 8s -
polyt0_pack LP64 bitwuzla ✅ 6s 4s +50%
LP64 z3* ✅ 3s 2s +50%
polyt0_unpack LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 8s -
polyt1_pack LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 1s 4s -75%
polyt1_unpack LP64 bitwuzla ❌ - 1s -
LP64 z3* ❌ - 3s -
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 3s 1s +200%
polyvec_matrix_expand_serial LP64 z3* ✅ 3s 1s +200%
polyvec_matrix_pointwise_montgomery_row LP64 z3_no_bv_extract* ❌ - 3s -
polyvec_matrix_pointwise_montgomery_yvec LP64 z3* ✅ 129s 133s -3%
polyveck_caddq LP64 z3* ✅ 4s 1s +300%
polyveck_decompose_pack_w1 LP64 z3* ✅ 7s 7s +0%
polyveck_invntt_tomont LP64 z3* ✅ 2s 3s -33%
polyveck_ntt LP64 z3* ✅ 3s 3s +0%
polyveck_reduce LP64 z3* ✅ 2s 4s -50%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ✅ 3s 3s +0%
LP64 z3* ✅ 3s 2s +50%
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 16s 15s +7%
LP64 z3* ✅ 3s 2s +50%
polyvecl_chknorm LP64 z3* ✅ 4s 4s +0%
polyvecl_ntt LP64 z3* ✅ 2s 3s -33%
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 1s 3s -67%
LP64 z3_smt_only* ✅ 2s 2s +0%
polyvecl_pointwise_acc_montgomery_c LP64 z3* ✅ 3s 1s +200%
polyvecl_pointwise_acc_montgomery_native LP64 z3_smt_only* ✅ 2s 2s +0%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ✅ 31s 33s -6%
LP64 z3* ✅ 3s 2s +50%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ✅ 27s 26s +4%
LP64 z3* ✅ 3s 1s +200%
polyw1_pack LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 3s -33%
polyw1_pack_32 LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 1s 2s -50%
polyw1_pack_88 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 1s 3s -67%
polyw1_unpack LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 3s 2s +50%
polyw1_unpack_32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 4s 1s +300%
polyw1_unpack_88 LP64 bitwuzla ❌ - 1s -
LP64 z3* ❌ - 2s -
polyz_pack LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 1s 3s -67%
polyz_unpack LP64 bitwuzla ✅ 5s 4s +25%
LP64 z3* ✅ 2s 1s +100%
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 3s -33%
polyz_unpack_c LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 6s -
polyz_unpack_native LP64 bitwuzla ✅ 24s 24s +0%
LP64 z3* ✅ 3s 3s +0%
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 15s 15s +0%
LP64 z3* ✅ 3s 3s +0%
power2round LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 3s 2s +50%
reduce32 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 2s +0%
rej_eta LP64 bitwuzla* ✅ 4s 1s +300%
LP64 z3_smt_only ✅ 6s 1s +500%
rej_eta_c LP64 bitwuzla* ❌ - 4s -
LP64 z3 ❌ - 22s -
rej_eta_native LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_smt_only ✅ 12s 10s +20%
rej_uniform LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 14s 3s +367%
rej_uniform_c LP64 bitwuzla ❌ - 4s -
LP64 z3* ❌ - 8s -
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 4s 2s +100%
LP64 z3_smt_only ✅ 1s 3s -67%
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3_smt_only* ✅ 1s 2s -50%
rej_uniform_native LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_smt_only ✅ 11s 20s -45%
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 4s 2s +100%
LP64 z3_smt_only ✅ 2s 2s +0%
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3_smt_only* ✅ 8s 9s -11%
shake128_absorb LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 2s 1s +100%
shake128_finalize LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 1s 2s -50%
shake128_init LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 2s 2s +0%
shake128_release LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 1s 3s -67%
shake128_squeeze LP64 bitwuzla* ✅ 2s 1s +100%
LP64 cvc5_arrays_exp ✅ 2s 1s +100%
shake128x4_absorb_once LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 1s 1s +0%
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 2s 3s -33%
shake256 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 1s 1s +0%
shake256_absorb LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
shake256_finalize LP64 cvc5_arrays_exp ✅ 2s 4s -50%
LP64 z3* ✅ 2s 1s +100%
shake256_init LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 2s 1s +100%
shake256_release LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 2s 3s -33%
shake256_squeeze LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 3s 3s +0%
shake256x4_absorb_once LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3 ✅ 2s 4s -50%
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_smt_only ✅ 3s 3s +0%
sig_unpack_hints LP64 bitwuzla ✅ 52s 53s -2%
LP64 z3* ✅ 36s 38s -5%
sign_keypair LP64 z3* ✅ 5s 4s +25%
sign_keypair_internal LP64 z3_no_bv_extract* ✅ 12s 12s +0%
sign_pk_from_sk LP64 z3_no_bv_extract* ✅ 31s 30s +3%
sign_signature LP64 bitwuzla ✅ 3s 6s -50%
LP64 z3* ✅ 2s 3s -33%
sign_signature_extmu LP64 cadical ✅ 25s 24s +4%
LP64 z3* ✅ 4s 4s +0%
sign_signature_internal LP64 z3_no_bv_extract* ✅ 13s 16s -19%
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 4s 3s +33%
sign_signature_pre_hash_shake256 LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 4s 4s +0%
sign_verify LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 4s 3s +33%
sign_verify_extmu LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3* ✅ 4s 2s +100%
sign_verify_internal LP64 z3_no_bv_extract* ✅ 228s 268s -15%
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 6s 4s +50%
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 2s 2s +0%
sk_s1hat_get_poly LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 3s 4s -25%
sk_s2hat_get_poly LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 3s 2s +50%
sk_t0hat_get_poly LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 1s +100%
sys_check_capability LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 2s 3s -33%
unpack_pk_t1 LP64 bitwuzla ✅ 11s 12s -8%
LP64 z3* ✅ 3s 3s +0%
unpack_sk LP64 cadical ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%
unpack_sk_t0hat LP64 z3* ✅ 1s 2s -50%
use_hint LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 3s 5s -40%
yvec_get_poly LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
yvec_init LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%

@oqs-bot

oqs-bot commented Oct 26, 2026

Copy link
Copy Markdown
Contributor

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

* default.

⚠️ Attention Required

Proof DM Solver Status Current Previous Change
poly_invntt_tomont_c LP64 z3_smt_only* ❌ - 7s -
poly_ntt_c LP64 bitwuzla ❌ - 51s -
LP64 z3_smt_only* ❌ - 10s -
poly_reduce LP64 bitwuzla ⚠️ 20s 12s +67%
polyeta_unpack LP64 bitwuzla ❌ - 1s -
LP64 z3* ❌ - 4s -
polyt0_unpack LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 8s -
polyt1_unpack LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 3s -
polyvec_matrix_pointwise_montgomery_row LP64 z3_no_bv_extract* ❌ - 4s -
polyw1_unpack_32 LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 2s -
polyz_unpack_c LP64 bitwuzla ❌ - 1s -
LP64 z3* ❌ - 3s -
rej_eta_c LP64 bitwuzla* ❌ - 3s -
LP64 z3 ❌ - 18s -
rej_uniform_c LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 9s -
Full Results (410 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ✅ 1315s 1426s -7.8%
caddq LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ✅ 38s 38s +0%
decompose LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 1s 1s +0%
fqmul LP64 bitwuzla* ✅ 23s 25s -8%
LP64 z3_smt_only ✅ 20s 22s -9%
fqscale LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3 ✅ 3s 2s +50%
intt_native_aarch64 LP64 bitwuzla ✅ 19s 24s -21%
LP64 z3* ✅ 3s 2s +50%
intt_native_rv32im_fastmul ILP32 z3* ✅ 2s 1s +100%
LP64 cvc5_mbqi_enum ✅ 8s 6s +33%
LP64 z3 ✅ 2s 2s +0%
intt_native_rv32im_slowmul ILP32 z3* ✅ 1s 4s -75%
LP64 cvc5_mbqi_enum ✅ 8s 8s +0%
LP64 z3 ✅ 3s 3s +0%
intt_native_x86_64 LP64 bitwuzla ✅ 18s 19s -5%
LP64 z3* ✅ 2s 4s -50%
keccak_absorb LP64 cvc5_arrays_exp ✅ 2s 5s -60%
LP64 z3* ✅ 3s 3s +0%
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 4s 4s +0%
LP64 cvc5_arrays_exp ✅ 8s 7s +14%
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_no_bv_extract ✅ 3s 2s +50%
keccak_f1600_x1_native_aarch64_v84a LP64 bitwuzla* ✅ 1s 3s -67%
LP64 cvc5_arrays_exp ✅ 2s 1s +100%
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3 ✅ 2s 2s +0%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 2s 2s +0%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3_smt_only ✅ 1s 3s -67%
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 1s 2s -50%
LP64 cvc5_arrays_exp ✅ 2s 2s +0%
keccak_finalize LP64 cvc5_arrays_exp ✅ 3s 1s +200%
LP64 z3* ✅ 2s 1s +100%
keccak_init LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 1s 1s +0%
keccak_squeeze LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3 ✅ 2s 3s -33%
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 2s 4s -50%
LP64 z3 ✅ 1s 2s -50%
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 2s 2s +0%
keccakf1600_permute LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 2s 1s +100%
keccakf1600_permute_native LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 1s +100%
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 3s 2s +50%
LP64 cvc5_arrays_exp ✅ 2s 1s +100%
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 2s 1s +100%
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 1s 2s -50%
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3 ✅ 2s 3s -33%
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 2s 4s -50%
LP64 z3* ✅ 4s 2s +100%
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 12s 14s -14%
LP64 z3* ✅ 11s 11s +0%
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 1s 2s -50%
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 2s 5s -60%
LP64 z3_no_bv_extract ✅ 2s 2s +0%
make_hint LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 2s 4s -50%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ✅ 197s 201s -2%
mld_check_pct LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3* ✅ 5s 4s +25%
mld_compute_pack_z LP64 cadical ✅ 40s 40s +0%
LP64 z3_no_bv_extract* ✅ 3s 3s +0%
mld_ct_abs_i32 ILP32 bitwuzla ✅ 1s 2s -50%
ILP32 cvc5_arrays_exp ✅ 2s 1s +100%
ILP32 z3 ✅ 1s 1s +0%
LP64 bitwuzla ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 3s 1s +200%
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 3s 1s +200%
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 1s 4s -75%
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 1s 5s -80%
LP64 z3* ✅ 2s 3s -33%
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 1s 2s -50%
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 1s 1s +0%
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3_smt_only ✅ 1s 2s -50%
mld_ct_memcmp LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_no_bv_extract ✅ 78s 81s -4%
mld_ct_sel_int32 LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 1s 3s -67%
mld_h LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 1s +200%
mld_invntt_layer LP64 bitwuzla* ✅ 44s 66s -33%
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 1s +0%
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 3s 4s -25%
LP64 z3* ✅ 3s 3s +0%
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 3s 1s +200%
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 3s 2s +50%
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 6s 12s -50%
mld_ntt_layer LP64 bitwuzla* ✅ 28s 23s +22%
LP64 z3_no_bv_extract ✅ 4s 4s +0%
mld_polymat_expand_entry LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 2s 1s +100%
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 3s 3s +0%
mld_sample_pack_s1_s2 LP64 cadical ✅ 52s 53s -2%
LP64 z3* ✅ 4s 4s +0%
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ✅ 218s 233s -6%
LP64 z3* ✅ 4s 4s +0%
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 3s 1s +200%
LP64 z3* ✅ 4s 2s +100%
mld_sign_finish LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 4s 4s +0%
mld_sign_resume LP64 bitwuzla ✅ 5s 4s +25%
LP64 z3* ✅ 3s 3s +0%
mld_value_barrier_i64 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 1s 1s +0%
mld_value_barrier_u32 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 1s +100%
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 1s 3s -67%
montgomery_reduce LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 1s 2s -50%
ntt_native_aarch64 LP64 bitwuzla ✅ 19s 23s -17%
LP64 z3* ✅ 3s 1s +200%
ntt_native_rv32im_fastmul ILP32 z3* ✅ 3s 2s +50%
LP64 cvc5_mbqi_enum ✅ 5s 7s -29%
LP64 z3 ✅ 3s 2s +50%
ntt_native_rv32im_slowmul ILP32 z3* ✅ 1s 2s -50%
LP64 cvc5_mbqi_enum ✅ 7s 10s -30%
LP64 z3 ✅ 2s 2s +0%
ntt_native_x86_64 LP64 bitwuzla ✅ 18s 19s -5%
LP64 z3* ✅ 5s 2s +150%
nttunpack_native_x86_64 LP64 z3* ✅ 2s 2s +0%
pack_sig_c LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 3s 2s +50%
pack_sig_h LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3_no_bv_extract* ✅ 3s 2s +50%
pack_sig_z LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
pack_sk_rho_key_tr LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 2s +50%
pointwise_acc_native_aarch64 LP64 cadical ✅ 89s omitted new
LP64 z3_smt_only* ✅ 3s 3s +0%
pointwise_acc_native_x86_64 LP64 cadical ✅ 88s 95s -7%
LP64 z3_smt_only* ✅ 3s 5s -40%
pointwise_native_aarch64 LP64 bitwuzla ✅ 21s 25s -16%
LP64 z3* ✅ 2s 4s -50%
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* ✅ 1s 1s +0%
LP64 cvc5_mbqi_enum ✅ 10s 8s +25%
LP64 z3 ✅ 1s 2s -50%
pointwise_native_x86_64 LP64 bitwuzla ✅ 20s 22s -9%
LP64 z3* ✅ 2s 1s +100%
poly_add LP64 z3* ✅ 4s 3s +33%
poly_caddq LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
poly_caddq_c LP64 bitwuzla ✅ 10s 20s -50%
LP64 z3* ✅ 2s 4s -50%
poly_caddq_native LP64 bitwuzla ✅ 108s 117s -8%
LP64 z3* ✅ 1s 3s -67%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ✅ 35s 36s -3%
LP64 z3* ✅ 3s 3s +0%
poly_caddq_native_x86_64 LP64 bitwuzla ✅ 111s 133s -17%
LP64 z3* ✅ 3s 3s +0%
poly_challenge LP64 bitwuzla ✅ 22s 24s -8%
LP64 z3* ✅ 5s 3s +67%
poly_chknorm LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 2s +50%
poly_chknorm_c LP64 bitwuzla ✅ 11s 10s +10%
LP64 z3* ✅ 8s 7s +14%
poly_chknorm_native LP64 bitwuzla ✅ 8s 6s +33%
LP64 z3* ✅ 2s 2s +0%
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 3s -67%
poly_decompose LP64 bitwuzla ✅ 3s 5s -40%
LP64 z3* ✅ 3s 1s +200%
poly_decompose_32_native_aarch64 LP64 cadical ✅ 10s 8s +25%
LP64 z3* ✅ 2s 1s +100%
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 1s 1s +0%
poly_decompose_c LP64 z3* ✅ 2s 3s -33%
poly_decompose_native LP64 cadical ✅ 14s 18s -22%
LP64 z3* ✅ 3s 2s +50%
poly_decompose_native_x86_64 LP64 cadical ✅ 8s 11s -27%
LP64 z3* ✅ 4s 3s +33%
poly_invntt_tomont LP64 bitwuzla ✅ 6s 6s +0%
LP64 z3* ✅ 1s 1s +0%
poly_invntt_tomont_c LP64 z3_smt_only* ❌ - 7s -
poly_invntt_tomont_native LP64 bitwuzla ✅ 44s 48s -8%
LP64 z3* ✅ 2s 1s +100%
poly_ntt LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3* ✅ 3s 2s +50%
poly_ntt_c LP64 bitwuzla ❌ - 51s -
LP64 z3_smt_only* ❌ - 10s -
poly_ntt_native LP64 bitwuzla ✅ 27s 27s +0%
LP64 z3* ✅ 1s 3s -67%
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 2s +50%
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 1s 2s -50%
poly_pointwise_montgomery LP64 bitwuzla ✅ 9s 10s -10%
LP64 z3* ✅ 3s 2s +50%
poly_pointwise_montgomery_c LP64 z3* ✅ 101s 83s +22%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ✅ 58s 55s +5%
LP64 z3* ✅ 2s 4s -50%
poly_power2round LP64 bitwuzla ✅ 201s 303s -34%
LP64 z3* ✅ 1s 4s -75%
poly_reduce LP64 bitwuzla ⚠️ 20s 12s +67%
LP64 z3* ✅ 2s 4s -50%
poly_shiftl LP64 bitwuzla ✅ 12s 12s +0%
LP64 z3* ✅ 1s 2s -50%
poly_sub LP64 bitwuzla ✅ 16s 16s +0%
LP64 z3* ✅ 3s 1s +200%
poly_uniform LP64 z3* ✅ 1s 2s -50%
poly_uniform_4x LP64 cadical ✅ 2s omitted new
LP64 z3* ✅ 2s 5s -60%
poly_uniform_eta LP64 z3* ✅ 4s 3s +33%
poly_uniform_eta_4x LP64 cadical ✅ 66s omitted new
LP64 z3* ✅ 9s 8s +12%
poly_uniform_gamma1 LP64 cadical ✅ 5s 4s +25%
LP64 z3* ✅ 3s 3s +0%
poly_uniform_gamma1_4x LP64 cadical ✅ 2s 1s +100%
LP64 z3* ✅ 1s 1s +0%
poly_use_hint LP64 cvc5_mbqi_enum ✅ 24s 22s +9%
LP64 z3* ✅ 3s 3s +0%
poly_use_hint_c LP64 cvc5_enum_inst ✅ 11s 12s -8%
LP64 z3* ✅ 3s 2s +50%
poly_use_hint_native LP64 cvc5_mbqi_enum ✅ 87s 88s -1%
LP64 z3* ✅ 3s 2s +50%
poly_use_hint_native_aarch64 LP64 bitwuzla ✅ 28s 29s -3%
LP64 z3* ✅ 2s 4s -50%
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 29s 30s -3%
LP64 z3* ✅ 3s 4s -25%
polyeta_pack LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 1s 2s -50%
polyeta_unpack LP64 bitwuzla ❌ - 1s -
LP64 z3* ❌ - 4s -
polyt0_pack LP64 bitwuzla ✅ 5s 4s +25%
LP64 z3* ✅ 3s 3s +0%
polyt0_unpack LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 8s -
polyt1_pack LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
polyt1_unpack LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 3s -
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 3s 4s -25%
polyvec_matrix_expand_serial LP64 z3* ✅ 2s 1s +100%
polyvec_matrix_pointwise_montgomery_row LP64 z3_no_bv_extract* ❌ - 4s -
polyvec_matrix_pointwise_montgomery_yvec LP64 z3* ✅ 122s 120s +2%
polyveck_caddq LP64 z3* ✅ 2s 4s -50%
polyveck_decompose_pack_w1 LP64 z3* ✅ 8s 10s -20%
polyveck_invntt_tomont LP64 z3* ✅ 4s 5s -20%
polyveck_ntt LP64 z3* ✅ 1s 2s -50%
polyveck_reduce LP64 z3* ✅ 3s 6s -50%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ✅ 1s 1s +0%
LP64 z3* ✅ 1s 4s -75%
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 18s 21s -14%
LP64 z3* ✅ 4s 2s +100%
polyvecl_chknorm LP64 z3* ✅ 1s 4s -75%
polyvecl_ntt LP64 z3* ✅ 3s 4s -25%
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 2s 3s -33%
LP64 z3_smt_only* ✅ 1s 2s -50%
polyvecl_pointwise_acc_montgomery_c LP64 z3* ✅ 1s 1s +0%
polyvecl_pointwise_acc_montgomery_native LP64 z3_smt_only* ✅ 2s 2s +0%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ✅ 3s 2s +50%
LP64 z3* ✅ 1s 2s -50%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ✅ 3s 1s +200%
LP64 z3* ✅ 3s 2s +50%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ✅ 34s 33s +3%
LP64 z3* ✅ 1s 3s -67%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ✅ 33s 34s -3%
LP64 z3* ✅ 3s 3s +0%
polyw1_pack LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 1s +0%
polyw1_pack_32 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 4s 2s +100%
polyw1_pack_88 LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 3s 2s +50%
polyw1_unpack LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 3s -67%
polyw1_unpack_32 LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 2s -
polyw1_unpack_88 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 1s 1s +0%
polyz_pack LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 1s +200%
polyz_unpack LP64 bitwuzla ✅ 8s 7s +14%
LP64 z3* ✅ 4s 1s +300%
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3* ✅ 2s 5s -60%
polyz_unpack_c LP64 bitwuzla ❌ - 1s -
LP64 z3* ❌ - 3s -
polyz_unpack_native LP64 bitwuzla ✅ 25s 29s -14%
LP64 z3* ✅ 2s 2s +0%
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 14s 14s +0%
LP64 z3* ✅ 1s 4s -75%
power2round LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 1s 1s +0%
reduce32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
rej_eta LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_smt_only ✅ 2s 2s +0%
rej_eta_c LP64 bitwuzla* ❌ - 3s -
LP64 z3 ❌ - 18s -
rej_eta_native LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_smt_only ✅ 16s 11s +45%
rej_uniform LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 10s 3s +233%
rej_uniform_c LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 9s -
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 2s 3s -33%
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3_smt_only* ✅ 1s 2s -50%
rej_uniform_native LP64 bitwuzla* ✅ 3s 4s -25%
LP64 z3_smt_only ✅ 8s 19s -58%
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3_smt_only ✅ 4s 1s +300%
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* ✅ 3s 3s +0%
shake128_finalize LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 2s 3s -33%
shake128_init LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 1s 1s +0%
shake128_release LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 3s 1s +200%
shake128_squeeze LP64 bitwuzla* ✅ 2s 1s +100%
LP64 cvc5_arrays_exp ✅ 3s 3s +0%
shake128x4_absorb_once LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3_smt_only ✅ 1s 1s +0%
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3 ✅ 2s 2s +0%
shake256 LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 1s 1s +0%
shake256_absorb LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 1s +100%
shake256_finalize LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 1s 1s +0%
shake256_init LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 1s +100%
shake256_release LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
shake256_squeeze LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 2s 1s +100%
shake256x4_absorb_once LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3 ✅ 4s 2s +100%
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3_smt_only ✅ 2s 3s -33%
sig_unpack_hints LP64 bitwuzla ✅ 1226s 1441s -15%
LP64 z3* ✅ 14s 15s -7%
sign_keypair LP64 z3* ✅ 6s 5s +20%
sign_keypair_internal LP64 z3_no_bv_extract* ✅ 19s 18s +6%
sign_pk_from_sk LP64 z3_no_bv_extract* ✅ 34s 36s -6%
sign_signature LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 3s 3s +0%
sign_signature_extmu LP64 cadical ✅ 32s 38s -16%
LP64 z3* ✅ 2s 4s -50%
sign_signature_internal LP64 z3_no_bv_extract* ✅ 13s 13s +0%
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 3s 6s -50%
sign_signature_pre_hash_shake256 LP64 bitwuzla ✅ 352s 370s -5%
LP64 z3* ✅ 5s 3s +67%
sign_verify LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
sign_verify_extmu LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 3s 3s +0%
sign_verify_internal LP64 z3_no_bv_extract* ✅ 197s 234s -16%
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 2s +0%
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 3s 3s +0%
sk_s1hat_get_poly LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
sk_s2hat_get_poly LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 2s 3s -33%
sk_t0hat_get_poly LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 1s +100%
sys_check_capability LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 3s 1s +200%
unpack_pk_t1 LP64 bitwuzla ✅ 12s 13s -8%
LP64 z3* ✅ 3s 2s +50%
unpack_sk LP64 cadical ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ✅ 2s 3s -33%
LP64 z3* ✅ 3s 1s +200%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ✅ 2s 2s +0%
LP64 z3* ✅ 3s 4s -25%
unpack_sk_t0hat LP64 z3* ✅ 1s 2s -50%
use_hint LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 1s 3s -67%
yvec_get_poly LP64 bitwuzla ✅ 6s 8s -25%
LP64 z3* ✅ 3s 2s +50%
yvec_init LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 2s 2s +0%

@oqs-bot

oqs-bot commented Oct 26, 2026

Copy link
Copy Markdown
Contributor

CBMC Results (ML-DSA-44)

* default.

⚠️ Attention Required

Proof DM Solver Status Current Previous Change
**TOTAL** - - ⚠️ 3218s 2156s +49.3%
poly_invntt_tomont_c LP64 z3_smt_only* ❌ - 7s -
poly_ntt_c LP64 bitwuzla ❌ - 51s -
LP64 z3_smt_only* ❌ - 10s -
polyeta_unpack LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 6s -
polyt0_unpack LP64 bitwuzla ❌ - 2s -
LP64 z3* ❌ - 8s -
polyt1_unpack LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 3s -
polyvecl_pointwise_acc_montgomery_c LP64 z3* ⚠️ 1430s 161s +788%
polyw1_unpack_88 LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 2s -
polyz_unpack_c LP64 bitwuzla ❌ - 2s -
LP64 z3* ❌ - 5s -
rej_eta_c LP64 bitwuzla* ❌ - 4s -
LP64 z3 ❌ - 18s -
rej_uniform_c LP64 bitwuzla ❌ - 2s -
LP64 z3* ❌ - 12s -
Full Results (410 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ⚠️ 3218s 2156s +49.3%
caddq LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 1s 2s -50%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ✅ 91s 102s -11%
decompose LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3* ✅ 1s 2s -50%
fqmul LP64 bitwuzla* ✅ 24s 25s -4%
LP64 z3_smt_only ✅ 20s 21s -5%
fqscale LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3 ✅ 2s 3s -33%
intt_native_aarch64 LP64 bitwuzla ✅ 20s 23s -13%
LP64 z3* ✅ 2s 2s +0%
intt_native_rv32im_fastmul ILP32 z3* ✅ 3s 3s +0%
LP64 cvc5_mbqi_enum ✅ 7s 7s +0%
LP64 z3 ✅ 4s 2s +100%
intt_native_rv32im_slowmul ILP32 z3* ✅ 5s 2s +150%
LP64 cvc5_mbqi_enum ✅ 7s 7s +0%
LP64 z3 ✅ 3s 4s -25%
intt_native_x86_64 LP64 bitwuzla ✅ 16s 18s -11%
LP64 z3* ✅ 2s 5s -60%
keccak_absorb LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 3s 3s +0%
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 6s 5s +20%
LP64 cvc5_arrays_exp ✅ 7s 7s +0%
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_no_bv_extract ✅ 1s 2s -50%
keccak_f1600_x1_native_aarch64_v84a LP64 bitwuzla* ✅ 2s 1s +100%
LP64 cvc5_arrays_exp ✅ 2s 2s +0%
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 2s 2s +0%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 1s 2s -50%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 1s 1s +0%
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 1s 3s -67%
LP64 cvc5_arrays_exp ✅ 2s 1s +100%
keccak_finalize LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 3s 3s +0%
keccak_init LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 3s -33%
keccak_squeeze LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3 ✅ 2s 1s +100%
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 3s 4s -25%
LP64 z3 ✅ 1s 3s -67%
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 2s 2s +0%
keccakf1600_permute LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 4s -50%
keccakf1600_permute_native LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 1s 2s -50%
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 3s 1s +200%
LP64 cvc5_arrays_exp ✅ 2s 3s -33%
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_smt_only ✅ 1s 3s -67%
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 1s 1s +0%
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 1s 1s +0%
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 6s 2s +200%
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 12s 13s -8%
LP64 z3* ✅ 13s 11s +18%
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 2s 1s +100%
LP64 cvc5_arrays_exp ✅ 2s 2s +0%
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_no_bv_extract ✅ 1s 1s +0%
make_hint LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ✅ 343s 395s -13%
mld_check_pct LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3* ✅ 6s 5s +20%
mld_compute_pack_z LP64 cadical ✅ 71s 79s -10%
LP64 z3_no_bv_extract* ✅ 2s 5s -60%
mld_ct_abs_i32 ILP32 bitwuzla ✅ 1s 3s -67%
ILP32 cvc5_arrays_exp ✅ 2s 2s +0%
ILP32 z3 ✅ 1s 2s -50%
LP64 bitwuzla ✅ 1s 1s +0%
LP64 cvc5_arrays_exp ✅ 1s 1s +0%
LP64 z3* ✅ 4s 3s +33%
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 2s 4s -50%
LP64 z3* ✅ 1s 2s -50%
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 3s -33%
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 2s 2s +0%
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3_smt_only ✅ 1s 3s -67%
mld_ct_memcmp LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3_no_bv_extract ✅ 77s 85s -9%
mld_ct_sel_int32 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%
mld_h LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 4s -25%
mld_invntt_layer LP64 bitwuzla* ✅ 45s 71s -37%
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 1s +200%
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 5s 5s +0%
LP64 z3* ✅ 2s 3s -33%
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 5s 2s +150%
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 7s 15s -53%
mld_ntt_layer LP64 bitwuzla* ✅ 25s 30s -17%
LP64 z3_no_bv_extract ✅ 4s 2s +100%
mld_polymat_expand_entry LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 3s 3s +0%
mld_sample_pack_s1_s2 LP64 cadical ✅ 32s 34s -6%
LP64 z3* ✅ 3s 4s -25%
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ✅ 90s 92s -2%
LP64 z3* ✅ 2s 3s -33%
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 1s 4s -75%
LP64 z3* ✅ 2s 3s -33%
mld_sign_finish LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 5s -60%
mld_sign_resume LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 3s 3s +0%
mld_value_barrier_i64 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 5s 2s +150%
mld_value_barrier_u32 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 3s -33%
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 2s 1s +100%
montgomery_reduce LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 5s 1s +400%
ntt_native_aarch64 LP64 bitwuzla ✅ 21s 22s -5%
LP64 z3* ✅ 3s 4s -25%
ntt_native_rv32im_fastmul ILP32 z3* ✅ 3s 4s -25%
LP64 cvc5_mbqi_enum ✅ 6s 7s -14%
LP64 z3 ✅ 4s 2s +100%
ntt_native_rv32im_slowmul ILP32 z3* ✅ 2s 2s +0%
LP64 cvc5_mbqi_enum ✅ 6s 7s -14%
LP64 z3 ✅ 2s 1s +100%
ntt_native_x86_64 LP64 bitwuzla ✅ 17s 22s -23%
LP64 z3* ✅ 1s 3s -67%
nttunpack_native_x86_64 LP64 z3* ✅ 2s 2s +0%
pack_sig_c LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 6s 2s +200%
pack_sig_h LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3_no_bv_extract* ✅ 2s 2s +0%
pack_sig_z LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 4s 2s +100%
pack_sk_rho_key_tr LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
pointwise_acc_native_aarch64 LP64 cadical ✅ 65s omitted new
LP64 z3_smt_only* ✅ 2s 3s -33%
pointwise_acc_native_x86_64 LP64 cadical ✅ 65s 71s -8%
LP64 z3_smt_only* ✅ 6s 4s +50%
pointwise_native_aarch64 LP64 bitwuzla ✅ 21s 23s -9%
LP64 z3* ✅ 2s 2s +0%
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 2s 1s +100%
LP64 cvc5_mbqi_enum ✅ 8s 8s +0%
LP64 z3 ✅ 2s 3s -33%
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 2s 1s +100%
LP64 cvc5_mbqi_enum ✅ 8s 9s -11%
LP64 z3 ✅ 2s 2s +0%
pointwise_native_x86_64 LP64 bitwuzla ✅ 21s 24s -12%
LP64 z3* ✅ 1s 1s +0%
poly_add LP64 z3* ✅ 3s 4s -25%
poly_caddq LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 1s 2s -50%
poly_caddq_c LP64 bitwuzla ✅ 12s 21s -43%
LP64 z3* ✅ 3s 2s +50%
poly_caddq_native LP64 bitwuzla ✅ 111s 116s -4%
LP64 z3* ✅ 1s 3s -67%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ✅ 35s 36s -3%
LP64 z3* ✅ 2s 3s -33%
poly_caddq_native_x86_64 LP64 bitwuzla ✅ 123s 117s +5%
LP64 z3* ✅ 2s 1s +100%
poly_challenge LP64 bitwuzla ✅ 22s 26s -15%
LP64 z3* ✅ 2s 3s -33%
poly_chknorm LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 5s 2s +150%
poly_chknorm_c LP64 bitwuzla ✅ 11s 8s +38%
LP64 z3* ✅ 11s 6s +83%
poly_chknorm_native LP64 bitwuzla ✅ 7s 7s +0%
LP64 z3* ✅ 2s 2s +0%
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 3s -67%
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 2s 4s -50%
poly_decompose LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 3s 3s +0%
poly_decompose_32_native_aarch64 LP64 cadical ✅ 3s 1s +200%
LP64 z3* ✅ 3s 2s +50%
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 5s 4s +25%
LP64 z3* ✅ 2s 2s +0%
poly_decompose_c LP64 z3* ✅ 3s 5s -40%
poly_decompose_native LP64 cadical ✅ 18s 18s +0%
LP64 z3* ✅ 2s 3s -33%
poly_decompose_native_x86_64 LP64 cadical ✅ 11s 12s -8%
LP64 z3* ✅ 2s 2s +0%
poly_invntt_tomont LP64 bitwuzla ✅ 5s 9s -44%
LP64 z3* ✅ 4s 1s +300%
poly_invntt_tomont_c LP64 z3_smt_only* ❌ - 7s -
poly_invntt_tomont_native LP64 bitwuzla ✅ 44s 50s -12%
LP64 z3* ✅ 2s 3s -33%
poly_ntt LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3* ✅ 2s 4s -50%
poly_ntt_c LP64 bitwuzla ❌ - 51s -
LP64 z3_smt_only* ❌ - 10s -
poly_ntt_native LP64 bitwuzla ✅ 27s 28s -4%
LP64 z3* ✅ 2s 3s -33%
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 3s 2s +50%
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
poly_pointwise_montgomery LP64 bitwuzla ✅ 8s 11s -27%
LP64 z3* ✅ 4s 3s +33%
poly_pointwise_montgomery_c LP64 z3* ✅ 75s 52s +44%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ✅ 54s 53s +2%
LP64 z3* ✅ 1s 2s -50%
poly_power2round LP64 bitwuzla ✅ 201s 328s -39%
LP64 z3* ✅ 5s 3s +67%
poly_reduce LP64 bitwuzla ✅ 19s 11s +73%
LP64 z3* ✅ 2s 1s +100%
poly_shiftl LP64 bitwuzla ✅ 13s 11s +18%
LP64 z3* ✅ 4s 3s +33%
poly_sub LP64 bitwuzla ✅ 14s 18s -22%
LP64 z3* ✅ 2s 2s +0%
poly_uniform LP64 z3* ✅ 2s 4s -50%
poly_uniform_4x LP64 cadical ✅ 66s omitted new
LP64 z3* ✅ 10s 7s +43%
poly_uniform_eta LP64 z3* ✅ 2s 8s -75%
poly_uniform_eta_4x LP64 cadical ✅ 66s omitted new
LP64 z3* ✅ 7s 8s -12%
poly_uniform_gamma1 LP64 cadical ✅ 2s 1s +100%
LP64 z3* ✅ 3s 2s +50%
poly_uniform_gamma1_4x LP64 cadical ✅ 11s 14s -21%
LP64 z3* ✅ 2s 3s -33%
poly_use_hint LP64 cvc5_mbqi_enum ✅ 23s 24s -4%
LP64 z3* ✅ 4s 2s +100%
poly_use_hint_c LP64 cvc5_enum_inst ✅ 10s 11s -9%
LP64 z3* ✅ 4s 3s +33%
poly_use_hint_native LP64 cvc5_mbqi_enum ✅ 94s 84s +12%
LP64 z3* ✅ 3s 4s -25%
poly_use_hint_native_aarch64 LP64 bitwuzla ✅ 31s 34s -9%
LP64 z3* ✅ 2s 3s -33%
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 34s 35s -3%
LP64 z3* ✅ 4s 2s +100%
polyeta_pack LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3* ✅ 3s 3s +0%
polyeta_unpack LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 6s -
polyt0_pack LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 2s 3s -33%
polyt0_unpack LP64 bitwuzla ❌ - 2s -
LP64 z3* ❌ - 8s -
polyt1_pack LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 1s 1s +0%
polyt1_unpack LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 3s -
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 15s 16s -6%
polyvec_matrix_expand_serial LP64 z3* ✅ 3s 6s -50%
polyvec_matrix_pointwise_montgomery_row LP64 z3_no_bv_extract* ✅ 5s 3s +67%
polyvec_matrix_pointwise_montgomery_yvec LP64 z3* ✅ 12s 13s -8%
polyveck_caddq LP64 z3* ✅ 2s 2s +0%
polyveck_decompose_pack_w1 LP64 z3* ✅ 2s 1s +100%
polyveck_invntt_tomont LP64 z3* ✅ 3s 4s -25%
polyveck_ntt LP64 z3* ✅ 4s 4s +0%
polyveck_reduce LP64 z3* ✅ 3s 2s +50%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ✅ 25s 29s -14%
LP64 z3* ✅ 1s 2s -50%
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 16s 18s -11%
LP64 z3* ✅ 1s 4s -75%
polyvecl_chknorm LP64 z3* ✅ 2s 1s +100%
polyvecl_ntt LP64 z3* ✅ 2s 2s +0%
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 4s 7s -43%
LP64 z3_smt_only* ✅ 2s 3s -33%
polyvecl_pointwise_acc_montgomery_c LP64 z3* ⚠️ 1430s 161s +788%
polyvecl_pointwise_acc_montgomery_native LP64 z3_smt_only* ✅ 3s 3s +0%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ✅ 37s 40s -7%
LP64 z3* ✅ 1s 2s -50%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ✅ 42s 43s -2%
LP64 z3* ✅ 3s 1s +200%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ✅ 31s 31s +0%
LP64 z3* ✅ 3s 3s +0%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ✅ 25s 26s -4%
LP64 z3* ✅ 1s 3s -67%
polyw1_pack LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
polyw1_pack_32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
polyw1_pack_88 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
polyw1_unpack LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 2s +50%
polyw1_unpack_32 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 4s 2s +100%
polyw1_unpack_88 LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 2s -
polyz_pack LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 3s 2s +50%
polyz_unpack LP64 bitwuzla ✅ 5s 8s -38%
LP64 z3* ✅ 2s 1s +100%
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 3s -33%
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
polyz_unpack_c LP64 bitwuzla ❌ - 2s -
LP64 z3* ❌ - 5s -
polyz_unpack_native LP64 bitwuzla ✅ 23s 27s -15%
LP64 z3* ✅ 2s 1s +100%
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 14s 16s -12%
LP64 z3* ✅ 4s 1s +300%
power2round LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
reduce32 LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3* ✅ 3s 2s +50%
rej_eta LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_smt_only ✅ 4s 4s +0%
rej_eta_c LP64 bitwuzla* ❌ - 4s -
LP64 z3 ❌ - 18s -
rej_eta_native LP64 bitwuzla* ✅ 3s 5s -40%
LP64 z3_smt_only ✅ 13s 13s +0%
rej_uniform LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 6s 13s -54%
rej_uniform_c LP64 bitwuzla ❌ - 2s -
LP64 z3* ❌ - 12s -
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 4s 3s +33%
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3_smt_only* ✅ 2s 2s +0%
rej_uniform_native LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_smt_only ✅ 10s 20s -50%
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 4s 2s +100%
LP64 z3_smt_only ✅ 4s 1s +300%
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 6s 3s +100%
LP64 z3_smt_only* ✅ 6s 9s -33%
shake128_absorb LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 2s 1s +100%
shake128_finalize LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 2s 1s +100%
shake128_init LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 4s 2s +100%
shake128_release LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 1s +100%
shake128_squeeze LP64 bitwuzla* ✅ 2s 3s -33%
LP64 cvc5_arrays_exp ✅ 3s 1s +200%
shake128x4_absorb_once LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 1s 3s -67%
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 3s 2s +50%
shake256 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 1s +200%
shake256_absorb LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
shake256_finalize LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 3s 3s +0%
shake256_init LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 3s 1s +200%
shake256_release LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 2s +50%
shake256_squeeze LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3 ✅ 3s 3s +0%
shake256x4_absorb_once LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3 ✅ 1s 1s +0%
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 3s 2s +50%
sig_unpack_hints LP64 bitwuzla ✅ 53s 55s -4%
LP64 z3* ✅ 28s 28s +0%
sign_keypair LP64 z3* ✅ 4s 4s +0%
sign_keypair_internal LP64 z3_no_bv_extract* ✅ 16s 14s +14%
sign_pk_from_sk LP64 z3_no_bv_extract* ✅ 29s 33s -12%
sign_signature LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 3s 3s +0%
sign_signature_extmu LP64 cadical ✅ 24s 28s -14%
LP64 z3* ✅ 3s 4s -25%
sign_signature_internal LP64 z3_no_bv_extract* ✅ 206s 257s -20%
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 5s 5s +0%
sign_signature_pre_hash_shake256 LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 4s 5s -20%
sign_verify LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 2s +50%
sign_verify_extmu LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
sign_verify_internal LP64 z3_no_bv_extract* ✅ 358s 370s -3%
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 2s 4s -50%
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 3s 5s -40%
LP64 z3* ✅ 2s 3s -33%
sk_s1hat_get_poly LP64 bitwuzla ✅ 28s 29s -3%
LP64 z3* ✅ 2s 3s -33%
sk_s2hat_get_poly LP64 bitwuzla ✅ 29s 31s -6%
LP64 z3* ✅ 2s 3s -33%
sk_t0hat_get_poly LP64 bitwuzla ✅ 30s 31s -3%
LP64 z3* ✅ 2s 1s +100%
sys_check_capability LP64 cvc5_arrays_exp ✅ 5s 2s +150%
LP64 z3* ✅ 3s 2s +50%
unpack_pk_t1 LP64 bitwuzla ✅ 10s 13s -23%
LP64 z3* ✅ 3s 2s +50%
unpack_sk LP64 cadical ✅ 38s 38s +0%
LP64 z3* ✅ 1s 1s +0%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ✅ 246s 251s -2%
LP64 z3* ✅ 2s 3s -33%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ✅ 248s 260s -5%
LP64 z3* ✅ 1s 1s +0%
unpack_sk_t0hat LP64 z3* ✅ 2s 3s -33%
use_hint LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
yvec_get_poly LP64 bitwuzla ✅ 33s 32s +3%
LP64 z3* ✅ 3s 2s +50%
yvec_init LP64 bitwuzla ✅ 39s 40s -3%
LP64 z3* ✅ 1s 3s -67%

@oqs-bot

oqs-bot commented Oct 26, 2026

Copy link
Copy Markdown
Contributor

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

* default.

⚠️ Attention Required

Proof DM Solver Status Current Previous Change
poly_invntt_tomont_c LP64 z3_smt_only* ❌ - 10s -
poly_ntt_c LP64 bitwuzla ❌ - 54s -
LP64 z3_smt_only* ❌ - 12s -
poly_reduce LP64 bitwuzla ⚠️ 20s 8s +150%
polyeta_unpack LP64 bitwuzla ❌ - 1s -
LP64 z3* ❌ - 10s -
polyt0_unpack LP64 bitwuzla ❌ - 4s -
LP64 z3* ❌ - 7s -
polyt1_unpack LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 3s -
polyvec_matrix_pointwise_montgomery_row LP64 z3_no_bv_extract* ❌ - 5s -
polyw1_unpack_32 LP64 bitwuzla ❌ - 2s -
LP64 z3* ❌ - 2s -
polyz_unpack_c LP64 bitwuzla ❌ - 2s -
LP64 z3* ❌ - 6s -
rej_eta_c LP64 bitwuzla* ❌ - 3s -
LP64 z3 ❌ - 24s -
rej_uniform_c LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 10s -
sig_unpack_hints LP64 z3* ⚠️ 33s 21s +57%
Full Results (410 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ✅ 1380s 1567s -11.9%
caddq LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 3s +0%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ✅ 29s 33s -12%
decompose LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 3s +0%
fqmul LP64 bitwuzla* ✅ 26s 25s +4%
LP64 z3_smt_only ✅ 19s 22s -14%
fqscale LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 3s 2s +50%
intt_native_aarch64 LP64 bitwuzla ✅ 23s 22s +5%
LP64 z3* ✅ 2s 4s -50%
intt_native_rv32im_fastmul ILP32 z3* ✅ 3s 2s +50%
LP64 cvc5_mbqi_enum ✅ 9s 8s +12%
LP64 z3 ✅ 3s 3s +0%
intt_native_rv32im_slowmul ILP32 z3* ✅ 2s 4s -50%
LP64 cvc5_mbqi_enum ✅ 6s 7s -14%
LP64 z3 ✅ 2s 4s -50%
intt_native_x86_64 LP64 bitwuzla ✅ 17s 20s -15%
LP64 z3* ✅ 3s 3s +0%
keccak_absorb LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 2s 2s +0%
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 4s 6s -33%
LP64 cvc5_arrays_exp ✅ 8s 9s -11%
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 ✅ 1s 2s -50%
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3 ✅ 4s 3s +33%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3_smt_only ✅ 1s 1s +0%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 4s 2s +100%
LP64 z3_smt_only ✅ 1s 2s -50%
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 3s 1s +200%
LP64 cvc5_arrays_exp ✅ 2s 2s +0%
keccak_finalize LP64 cvc5_arrays_exp ✅ 4s 2s +100%
LP64 z3* ✅ 3s 2s +50%
keccak_init LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 2s 2s +0%
keccak_squeeze LP64 bitwuzla* ✅ 5s 3s +67%
LP64 z3 ✅ 2s 3s -33%
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 3s 3s +0%
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 3s -33%
keccakf1600_permute LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 2s 2s +0%
keccakf1600_permute_native LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 2s +50%
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 3s 2s +50%
LP64 cvc5_arrays_exp ✅ 1s 1s +0%
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 2s 4s -50%
LP64 z3_smt_only ✅ 3s 3s +0%
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3 ✅ 2s 3s -33%
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3 ✅ 1s 2s -50%
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 2s 1s +100%
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 12s 12s +0%
LP64 z3* ✅ 14s 11s +27%
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 1s 2s -50%
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3_no_bv_extract ✅ 2s 1s +100%
make_hint LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 1s 3s -67%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ✅ 201s 228s -12%
mld_check_pct LP64 bitwuzla ✅ 2s 7s -71%
LP64 z3* ✅ 3s 6s -50%
mld_compute_pack_z LP64 cadical ✅ 39s 44s -11%
LP64 z3_no_bv_extract* ✅ 3s 7s -57%
mld_ct_abs_i32 ILP32 bitwuzla ✅ 3s 2s +50%
ILP32 cvc5_arrays_exp ✅ 2s 1s +100%
ILP32 z3 ✅ 1s 2s -50%
LP64 bitwuzla ✅ 1s 2s -50%
LP64 cvc5_arrays_exp ✅ 1s 1s +0%
LP64 z3* ✅ 3s 2s +50%
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* ✅ 1s 1s +0%
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 2s +50%
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 5s 2s +150%
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3_smt_only ✅ 1s 3s -67%
mld_ct_memcmp LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_no_bv_extract ✅ 80s 91s -12%
mld_ct_sel_int32 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 1s 3s -67%
mld_h LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
mld_invntt_layer LP64 bitwuzla* ✅ 40s 74s -46%
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 2s 3s -33%
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 4s 4s +0%
LP64 z3* ✅ 4s 6s -33%
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 3s 1s +200%
LP64 z3* ✅ 3s 2s +50%
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 1s +200%
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 7s 13s -46%
mld_ntt_layer LP64 bitwuzla* ✅ 28s 27s +4%
LP64 z3_no_bv_extract ✅ 3s 3s +0%
mld_polymat_expand_entry LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 1s +200%
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
mld_sample_pack_s1_s2 LP64 cadical ✅ 81s 90s -10%
LP64 z3* ✅ 7s 5s +40%
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ✅ 538s 554s -3%
LP64 z3* ✅ 6s 5s +20%
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 3s 4s -25%
mld_sign_finish LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 1s 3s -67%
mld_sign_resume LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 2s 2s +0%
mld_value_barrier_i64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 1s +100%
mld_value_barrier_u32 LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 1s 2s -50%
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 3s 2s +50%
montgomery_reduce LP64 cvc5_arrays_exp ✅ 5s 4s +25%
LP64 z3* ✅ 2s 2s +0%
ntt_native_aarch64 LP64 bitwuzla ✅ 19s 20s -5%
LP64 z3* ✅ 1s 2s -50%
ntt_native_rv32im_fastmul ILP32 z3* ✅ 2s 2s +0%
LP64 cvc5_mbqi_enum ✅ 7s 8s -12%
LP64 z3 ✅ 5s 2s +150%
ntt_native_rv32im_slowmul ILP32 z3* ✅ 4s 3s +33%
LP64 cvc5_mbqi_enum ✅ 6s 7s -14%
LP64 z3 ✅ 3s 2s +50%
ntt_native_x86_64 LP64 bitwuzla ✅ 16s 18s -11%
LP64 z3* ✅ 2s 3s -33%
nttunpack_native_x86_64 LP64 z3* ✅ 2s 2s +0%
pack_sig_c LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 1s 1s +0%
pack_sig_h LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3_no_bv_extract* ✅ 3s 3s +0%
pack_sig_z LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 4s -50%
pack_sk_rho_key_tr LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 1s +200%
pointwise_acc_native_aarch64 LP64 cadical ✅ 105s omitted new
LP64 z3_smt_only* ✅ 4s 5s -20%
pointwise_acc_native_x86_64 LP64 cadical ✅ 103s 109s -6%
LP64 z3_smt_only* ✅ 5s 5s +0%
pointwise_native_aarch64 LP64 bitwuzla ✅ 19s 22s -14%
LP64 z3* ✅ 3s 3s +0%
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 3s -33%
LP64 cvc5_mbqi_enum ✅ 7s 7s +0%
LP64 z3 ✅ 3s 2s +50%
pointwise_native_x86_64 LP64 bitwuzla ✅ 22s 21s +5%
LP64 z3* ✅ 2s 6s -67%
poly_add LP64 z3* ✅ 5s 4s +25%
poly_caddq LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 4s 3s +33%
poly_caddq_c LP64 bitwuzla ✅ 10s 21s -52%
LP64 z3* ✅ 2s 4s -50%
poly_caddq_native LP64 bitwuzla ✅ 103s 123s -16%
LP64 z3* ✅ 2s 4s -50%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ✅ 33s 36s -8%
LP64 z3* ✅ 3s 3s +0%
poly_caddq_native_x86_64 LP64 bitwuzla ✅ 93s 137s -32%
LP64 z3* ✅ 5s 2s +150%
poly_challenge LP64 bitwuzla ✅ 35s 37s -5%
LP64 z3* ✅ 1s 2s -50%
poly_chknorm LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 1s 2s -50%
poly_chknorm_c LP64 bitwuzla ✅ 9s 8s +12%
LP64 z3* ✅ 9s 7s +29%
poly_chknorm_native LP64 bitwuzla ✅ 7s 7s +0%
LP64 z3* ✅ 1s 2s -50%
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 1s 2s -50%
poly_decompose LP64 bitwuzla ✅ 6s 6s +0%
LP64 z3* ✅ 2s 2s +0%
poly_decompose_32_native_aarch64 LP64 cadical ✅ 7s 10s -30%
LP64 z3* ✅ 1s 2s -50%
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
poly_decompose_c LP64 z3* ✅ 3s 7s -57%
poly_decompose_native LP64 cadical ✅ 15s 17s -12%
LP64 z3* ✅ 3s 4s -25%
poly_decompose_native_x86_64 LP64 cadical ✅ 9s 10s -10%
LP64 z3* ✅ 2s 4s -50%
poly_invntt_tomont LP64 bitwuzla ✅ 8s 7s +14%
LP64 z3* ✅ 4s 1s +300%
poly_invntt_tomont_c LP64 z3_smt_only* ❌ - 10s -
poly_invntt_tomont_native LP64 bitwuzla ✅ 41s 47s -13%
LP64 z3* ✅ 4s 4s +0%
poly_ntt LP64 bitwuzla ✅ 5s 6s -17%
LP64 z3* ✅ 2s 3s -33%
poly_ntt_c LP64 bitwuzla ❌ - 54s -
LP64 z3_smt_only* ❌ - 12s -
poly_ntt_native LP64 bitwuzla ✅ 27s 28s -4%
LP64 z3* ✅ 2s 2s +0%
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 1s +0%
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 2s +0%
poly_pointwise_montgomery LP64 bitwuzla ✅ 11s 11s +0%
LP64 z3* ✅ 2s 3s -33%
poly_pointwise_montgomery_c LP64 z3* ✅ 94s 81s +16%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ✅ 56s 54s +4%
LP64 z3* ✅ 2s 1s +100%
poly_power2round LP64 bitwuzla ✅ 197s 282s -30%
LP64 z3* ✅ 2s 2s +0%
poly_reduce LP64 bitwuzla ⚠️ 20s 8s +150%
LP64 z3* ✅ 1s 2s -50%
poly_shiftl LP64 bitwuzla ✅ 10s 11s -9%
LP64 z3* ✅ 2s 3s -33%
poly_sub LP64 bitwuzla ✅ 15s 17s -12%
LP64 z3* ✅ 2s 2s +0%
poly_uniform LP64 z3* ✅ 3s 2s +50%
poly_uniform_4x LP64 cadical ✅ 3s omitted new
LP64 z3* ✅ 2s 3s -33%
poly_uniform_eta LP64 z3* ✅ 2s 1s +100%
poly_uniform_eta_4x LP64 cadical ✅ 67s omitted new
LP64 z3* ✅ 9s 7s +29%
poly_uniform_gamma1 LP64 cadical ✅ 3s 3s +0%
LP64 z3* ✅ 2s 1s +100%
poly_uniform_gamma1_4x LP64 cadical ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
poly_use_hint LP64 cvc5_mbqi_enum ✅ 22s 24s -8%
LP64 z3* ✅ 2s 2s +0%
poly_use_hint_c LP64 cvc5_enum_inst ✅ 10s 12s -17%
LP64 z3* ✅ 4s 2s +100%
poly_use_hint_native LP64 cvc5_mbqi_enum ✅ 89s 86s +3%
LP64 z3* ✅ 4s 1s +300%
poly_use_hint_native_aarch64 LP64 bitwuzla ✅ 29s 31s -6%
LP64 z3* ✅ 3s 3s +0%
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 30s 30s +0%
LP64 z3* ✅ 3s 2s +50%
polyeta_pack LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 2s 1s +100%
polyeta_unpack LP64 bitwuzla ❌ - 1s -
LP64 z3* ❌ - 10s -
polyt0_pack LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3* ✅ 2s 2s +0%
polyt0_unpack LP64 bitwuzla ❌ - 4s -
LP64 z3* ❌ - 7s -
polyt1_pack LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 1s +100%
polyt1_unpack LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 3s -
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 2s 3s -33%
polyvec_matrix_expand_serial LP64 z3* ✅ 4s 2s +100%
polyvec_matrix_pointwise_montgomery_row LP64 z3_no_bv_extract* ❌ - 5s -
polyvec_matrix_pointwise_montgomery_yvec LP64 z3* ✅ 88s 95s -7%
polyveck_caddq LP64 z3* ✅ 3s 5s -40%
polyveck_decompose_pack_w1 LP64 z3* ✅ 12s 15s -20%
polyveck_invntt_tomont LP64 z3* ✅ 4s 6s -33%
polyveck_ntt LP64 z3* ✅ 1s 1s +0%
polyveck_reduce LP64 z3* ✅ 3s 4s -25%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 20s 19s +5%
LP64 z3* ✅ 2s 1s +100%
polyvecl_chknorm LP64 z3* ✅ 4s 4s +0%
polyvecl_ntt LP64 z3* ✅ 2s 6s -67%
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 2s 2s +0%
LP64 z3_smt_only* ✅ 1s 2s -50%
polyvecl_pointwise_acc_montgomery_c LP64 z3* ✅ 1s 2s -50%
polyvecl_pointwise_acc_montgomery_native LP64 z3_smt_only* ✅ 1s 1s +0%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ✅ 5s 4s +25%
LP64 z3* ✅ 2s 3s -33%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ✅ 1s 3s -67%
LP64 z3* ✅ 2s 2s +0%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ✅ 45s 47s -4%
LP64 z3* ✅ 2s 1s +100%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ✅ 47s 45s +4%
LP64 z3* ✅ 2s 1s +100%
polyw1_pack LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 2s +0%
polyw1_pack_32 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 4s -50%
polyw1_pack_88 LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 3s 3s +0%
polyw1_unpack LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 4s 3s +33%
polyw1_unpack_32 LP64 bitwuzla ❌ - 2s -
LP64 z3* ❌ - 2s -
polyw1_unpack_88 LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 4s 3s +33%
polyz_pack LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 3s 2s +50%
polyz_unpack LP64 bitwuzla ✅ 7s 6s +17%
LP64 z3* ✅ 2s 5s -60%
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 4s 3s +33%
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3* ✅ 3s 5s -40%
polyz_unpack_c LP64 bitwuzla ❌ - 2s -
LP64 z3* ❌ - 6s -
polyz_unpack_native LP64 bitwuzla ✅ 24s 30s -20%
LP64 z3* ✅ 5s 2s +150%
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 14s 16s -12%
LP64 z3* ✅ 2s 1s +100%
power2round LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 3s +0%
reduce32 LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 2s +0%
rej_eta LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 4s 4s +0%
rej_eta_c LP64 bitwuzla* ❌ - 3s -
LP64 z3 ❌ - 24s -
rej_eta_native LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_smt_only ✅ 12s 12s +0%
rej_uniform LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 14s 4s +250%
rej_uniform_c LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 10s -
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3_smt_only ✅ 2s 1s +100%
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3_smt_only* ✅ 3s 1s +200%
rej_uniform_native LP64 bitwuzla* ✅ 3s 5s -40%
LP64 z3_smt_only ✅ 10s 20s -50%
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 4s 2s +100%
LP64 z3_smt_only ✅ 3s 3s +0%
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 7s 3s +133%
LP64 z3_smt_only* ✅ 7s 10s -30%
shake128_absorb LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 1s 3s -67%
shake128_finalize LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 3s 3s +0%
shake128_init LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 3s -33%
shake128_release LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
shake128_squeeze LP64 bitwuzla* ✅ 2s 1s +100%
LP64 cvc5_arrays_exp ✅ 3s 2s +50%
shake128x4_absorb_once LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_smt_only ✅ 3s 4s -25%
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 4s 3s +33%
LP64 z3 ✅ 4s 1s +300%
shake256 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 3s 2s +50%
shake256_absorb LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
shake256_finalize LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 4s 2s +100%
shake256_init LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 3s 4s -25%
shake256_release LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 1s 3s -67%
shake256_squeeze LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 3s 4s -25%
shake256x4_absorb_once LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3 ✅ 1s 2s -50%
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3_smt_only ✅ 3s 3s +0%
sig_unpack_hints LP64 bitwuzla ✅ 25s 28s -11%
LP64 z3* ⚠️ 33s 21s +57%
sign_keypair LP64 z3* ✅ 4s 4s +0%
sign_keypair_internal LP64 z3_no_bv_extract* ✅ 25s 29s -14%
sign_pk_from_sk LP64 z3_no_bv_extract* ✅ 33s 36s -8%
sign_signature LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 4s 3s +33%
sign_signature_extmu LP64 cadical ✅ 72s 78s -8%
LP64 z3* ✅ 2s 4s -50%
sign_signature_internal LP64 z3_no_bv_extract* ✅ 15s 16s -6%
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 4s -25%
sign_signature_pre_hash_shake256 LP64 bitwuzla ✅ 1396s 1695s -18%
LP64 z3* ✅ 4s 3s +33%
sign_verify LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 3s 5s -40%
sign_verify_extmu LP64 bitwuzla ✅ 3s 5s -40%
LP64 z3* ✅ 4s 3s +33%
sign_verify_internal LP64 z3_no_bv_extract* ✅ 232s 286s -19%
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 2s 2s +0%
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 4s 2s +100%
sk_s1hat_get_poly LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 2s 3s -33%
sk_s2hat_get_poly LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 3s -33%
sk_t0hat_get_poly LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 3s 2s +50%
sys_check_capability LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 3s 3s +0%
unpack_pk_t1 LP64 bitwuzla ✅ 10s 12s -17%
LP64 z3* ✅ 1s 3s -67%
unpack_sk LP64 cadical ✅ 2s 2s +0%
LP64 z3* ✅ 1s 3s -67%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ✅ 1s 1s +0%
LP64 z3* ✅ 1s 2s -50%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ✅ 3s 3s +0%
LP64 z3* ✅ 2s 3s -33%
unpack_sk_t0hat LP64 z3* ✅ 2s 2s +0%
use_hint LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 5s 2s +150%
yvec_get_poly LP64 bitwuzla ✅ 7s 7s +0%
LP64 z3* ✅ 2s 2s +0%
yvec_init LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 3s -33%

@oqs-bot

oqs-bot commented Oct 26, 2026

Copy link
Copy Markdown
Contributor

CBMC Results (ML-DSA-65)

* default.

⚠️ Attention Required

Proof DM Solver Status Current Previous Change
poly_invntt_tomont_c LP64 z3_smt_only* ❌ - 7s -
poly_ntt_c LP64 bitwuzla ❌ - 46s -
LP64 z3_smt_only* ❌ - 9s -
poly_pointwise_montgomery_c LP64 z3* ⚠️ 79s 45s +76%
poly_reduce LP64 bitwuzla ⚠️ 24s 8s +200%
polyeta_unpack LP64 bitwuzla ❌ - 2s -
LP64 z3* ❌ - 2s -
polyt0_unpack LP64 bitwuzla ❌ - 4s -
LP64 z3* ❌ - 8s -
polyt1_unpack LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 3s -
polyvecl_pointwise_acc_montgomery_c LP64 z3* ⚠️ 171s 114s +50%
polyw1_unpack_32 LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 2s -
polyz_unpack_c LP64 bitwuzla ❌ - 2s -
LP64 z3* ❌ - 4s -
rej_eta_c LP64 bitwuzla* ❌ - 3s -
LP64 z3 ❌ - 8s -
rej_uniform_c LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 10s -
Full Results (410 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ✅ 2238s 2030s +10.2%
caddq LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 2s +50%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ✅ 160s 137s +17%
decompose LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 3s 2s +50%
fqmul LP64 bitwuzla* ✅ 24s 23s +4%
LP64 z3_smt_only ✅ 21s 19s +11%
fqscale LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3 ✅ 2s 1s +100%
intt_native_aarch64 LP64 bitwuzla ✅ 24s 20s +20%
LP64 z3* ✅ 2s 1s +100%
intt_native_rv32im_fastmul ILP32 z3* ✅ 2s 3s -33%
LP64 cvc5_mbqi_enum ✅ 9s 7s +29%
LP64 z3 ✅ 2s 2s +0%
intt_native_rv32im_slowmul ILP32 z3* ✅ 2s 3s -33%
LP64 cvc5_mbqi_enum ✅ 8s 9s -11%
LP64 z3 ✅ 2s 2s +0%
intt_native_x86_64 LP64 bitwuzla ✅ 20s 16s +25%
LP64 z3* ✅ 4s 3s +33%
keccak_absorb LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 4s 4s +0%
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 6s 6s +0%
LP64 cvc5_arrays_exp ✅ 8s 6s +33%
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_no_bv_extract ✅ 2s 2s +0%
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 2s +0%
LP64 z3 ✅ 2s 1s +100%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 3s 2s +50%
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* ✅ 3s 2s +50%
LP64 cvc5_arrays_exp ✅ 3s 2s +50%
keccak_finalize LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 5s -60%
keccak_init LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 1s 2s -50%
keccak_squeeze LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3 ✅ 2s 2s +0%
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 5s 3s +67%
LP64 z3 ✅ 2s 2s +0%
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 1s 1s +0%
LP64 z3* ✅ 2s 2s +0%
keccakf1600_permute LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 1s +200%
keccakf1600_permute_native LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 4s 2s +100%
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 3s 2s +50%
LP64 cvc5_arrays_exp ✅ 3s 2s +50%
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_smt_only ✅ 2s 2s +0%
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 3s 1s +200%
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3 ✅ 4s 2s +100%
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 2s 2s +0%
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 13s 13s +0%
LP64 z3* ✅ 13s 13s +0%
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 4s 1s +300%
LP64 cvc5_arrays_exp ✅ 4s 3s +33%
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_no_bv_extract ✅ 1s 1s +0%
make_hint LP64 cvc5_arrays_exp ✅ 3s 1s +200%
LP64 z3* ✅ 2s 2s +0%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ✅ 227s 207s +10%
mld_check_pct LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 4s 7s -43%
mld_compute_pack_z LP64 cadical ✅ 90s 78s +15%
LP64 z3_no_bv_extract* ✅ 5s 3s +67%
mld_ct_abs_i32 ILP32 bitwuzla ✅ 1s 1s +0%
ILP32 cvc5_arrays_exp ✅ 2s 2s +0%
ILP32 z3 ✅ 1s 1s +0%
LP64 bitwuzla ✅ 4s 2s +100%
LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 2s 3s -33%
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 1s 1s +0%
LP64 z3* ✅ 2s 1s +100%
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 4s 1s +300%
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 3s 4s -25%
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 3s 2s +50%
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 4s 4s +0%
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 4s 1s +300%
mld_ct_memcmp LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_no_bv_extract ✅ 92s 79s +16%
mld_ct_sel_int32 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
mld_h LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 5s 2s +150%
mld_invntt_layer LP64 bitwuzla* ✅ 50s 63s -21%
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 3s -33%
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 5s 3s +67%
LP64 z3* ✅ 3s 4s -25%
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 4s -50%
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 1s 2s -50%
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 8s 12s -33%
mld_ntt_layer LP64 bitwuzla* ✅ 31s 26s +19%
LP64 z3_no_bv_extract ✅ 3s 1s +200%
mld_polymat_expand_entry LP64 bitwuzla ✅ 2s 2s +0%
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 ✅ 58s 51s +14%
LP64 z3* ✅ 5s 4s +25%
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ✅ 235s 227s +4%
LP64 z3* ✅ 5s 3s +67%
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 2s 3s -33%
mld_sign_finish LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 3s -33%
mld_sign_resume LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
mld_value_barrier_i64 LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 2s 1s +100%
mld_value_barrier_u32 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 1s 3s -67%
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 4s 1s +300%
montgomery_reduce LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
ntt_native_aarch64 LP64 bitwuzla ✅ 22s 19s +16%
LP64 z3* ✅ 3s 2s +50%
ntt_native_rv32im_fastmul ILP32 z3* ✅ 2s 1s +100%
LP64 cvc5_mbqi_enum ✅ 6s 7s -14%
LP64 z3 ✅ 2s 2s +0%
ntt_native_rv32im_slowmul ILP32 z3* ✅ 2s 3s -33%
LP64 cvc5_mbqi_enum ✅ 7s 7s +0%
LP64 z3 ✅ 2s 3s -33%
ntt_native_x86_64 LP64 bitwuzla ✅ 21s 19s +11%
LP64 z3* ✅ 3s 3s +0%
nttunpack_native_x86_64 LP64 z3* ✅ 2s 2s +0%
pack_sig_c LP64 cvc5_arrays_exp ✅ 4s 2s +100%
LP64 z3* ✅ 3s 3s +0%
pack_sig_h LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3_no_bv_extract* ✅ 3s 2s +50%
pack_sig_z LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 1s 3s -67%
pack_sk_rho_key_tr LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3* ✅ 1s 2s -50%
pointwise_acc_native_aarch64 LP64 cadical ✅ 101s omitted new
LP64 z3_smt_only* ✅ 6s 3s +100%
pointwise_acc_native_x86_64 LP64 cadical ✅ 104s 87s +20%
LP64 z3_smt_only* ✅ 6s 2s +200%
pointwise_native_aarch64 LP64 bitwuzla ✅ 25s 20s +25%
LP64 z3* ✅ 1s 2s -50%
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 3s 3s +0%
LP64 cvc5_mbqi_enum ✅ 9s 9s +0%
LP64 z3 ✅ 2s 3s -33%
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 3s 2s +50%
LP64 cvc5_mbqi_enum ✅ 8s 7s +14%
LP64 z3 ✅ 3s 1s +200%
pointwise_native_x86_64 LP64 bitwuzla ✅ 26s 19s +37%
LP64 z3* ✅ 4s 6s -33%
poly_add LP64 z3* ✅ 3s 3s +0%
poly_caddq LP64 bitwuzla ✅ 6s 3s +100%
LP64 z3* ✅ 2s 2s +0%
poly_caddq_c LP64 bitwuzla ✅ 13s 17s -24%
LP64 z3* ✅ 2s 2s +0%
poly_caddq_native LP64 bitwuzla ✅ 131s 102s +28%
LP64 z3* ✅ 2s 2s +0%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ✅ 37s 33s +12%
LP64 z3* ✅ 3s 3s +0%
poly_caddq_native_x86_64 LP64 bitwuzla ✅ 145s 113s +28%
LP64 z3* ✅ 2s 1s +100%
poly_challenge LP64 bitwuzla ✅ 25s 20s +25%
LP64 z3* ✅ 4s 2s +100%
poly_chknorm LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 1s 4s -75%
poly_chknorm_c LP64 bitwuzla ✅ 12s 7s +71%
LP64 z3* ✅ 13s 6s +117%
poly_chknorm_native LP64 bitwuzla ✅ 9s 7s +29%
LP64 z3* ✅ 2s 2s +0%
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 3s 4s -25%
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 4s 3s +33%
poly_decompose LP64 bitwuzla ✅ 6s 5s +20%
LP64 z3* ✅ 2s 2s +0%
poly_decompose_32_native_aarch64 LP64 cadical ✅ 10s 11s -9%
LP64 z3* ✅ 2s 1s +100%
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 4s -25%
poly_decompose_c LP64 z3* ✅ 3s 4s -25%
poly_decompose_native LP64 cadical ✅ 17s 12s +42%
LP64 z3* ✅ 5s 3s +67%
poly_decompose_native_x86_64 LP64 cadical ✅ 10s 10s +0%
LP64 z3* ✅ 3s 2s +50%
poly_invntt_tomont LP64 bitwuzla ✅ 5s 4s +25%
LP64 z3* ✅ 3s 2s +50%
poly_invntt_tomont_c LP64 z3_smt_only* ❌ - 7s -
poly_invntt_tomont_native LP64 bitwuzla ✅ 51s 42s +21%
LP64 z3* ✅ 1s 5s -80%
poly_ntt LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3* ✅ 2s 1s +100%
poly_ntt_c LP64 bitwuzla ❌ - 46s -
LP64 z3_smt_only* ❌ - 9s -
poly_ntt_native LP64 bitwuzla ✅ 33s 25s +32%
LP64 z3* ✅ 2s 3s -33%
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 2s 4s -50%
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 3s 2s +50%
poly_pointwise_montgomery LP64 bitwuzla ✅ 11s 8s +38%
LP64 z3* ✅ 3s 3s +0%
poly_pointwise_montgomery_c LP64 z3* ⚠️ 79s 45s +76%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ✅ 54s 56s -4%
LP64 z3* ✅ 2s 3s -33%
poly_power2round LP64 bitwuzla ✅ 235s 276s -15%
LP64 z3* ✅ 3s 2s +50%
poly_reduce LP64 bitwuzla ⚠️ 24s 8s +200%
LP64 z3* ✅ 1s 1s +0%
poly_shiftl LP64 bitwuzla ✅ 14s 11s +27%
LP64 z3* ✅ 1s 3s -67%
poly_sub LP64 bitwuzla ✅ 17s 13s +31%
LP64 z3* ✅ 2s 4s -50%
poly_uniform LP64 z3* ✅ 2s 3s -33%
poly_uniform_4x LP64 cadical ✅ 73s omitted new
LP64 z3* ✅ 10s 6s +67%
poly_uniform_eta LP64 z3* ✅ 1s 2s -50%
poly_uniform_eta_4x LP64 cadical ✅ 73s omitted new
LP64 z3* ✅ 11s 6s +83%
poly_uniform_gamma1 LP64 cadical ✅ 3s 4s -25%
LP64 z3* ✅ 2s 1s +100%
poly_uniform_gamma1_4x LP64 cadical ✅ 14s 12s +17%
LP64 z3* ✅ 1s 3s -67%
poly_use_hint LP64 cvc5_mbqi_enum ✅ 23s 22s +5%
LP64 z3* ✅ 4s 5s -20%
poly_use_hint_c LP64 cvc5_enum_inst ✅ 11s 10s +10%
LP64 z3* ✅ 3s 2s +50%
poly_use_hint_native LP64 cvc5_mbqi_enum ✅ 86s 89s -3%
LP64 z3* ✅ 2s 1s +100%
poly_use_hint_native_aarch64 LP64 bitwuzla ✅ 31s 28s +11%
LP64 z3* ✅ 3s 2s +50%
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 32s 26s +23%
LP64 z3* ✅ 3s 2s +50%
polyeta_pack LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 1s +100%
polyeta_unpack LP64 bitwuzla ❌ - 2s -
LP64 z3* ❌ - 2s -
polyt0_pack LP64 bitwuzla ✅ 6s 4s +50%
LP64 z3* ✅ 4s 4s +0%
polyt0_unpack LP64 bitwuzla ❌ - 4s -
LP64 z3* ❌ - 8s -
polyt1_pack LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 1s 3s -67%
polyt1_unpack LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 3s -
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 90s 72s +25%
polyvec_matrix_expand_serial LP64 z3* ✅ 15s 15s +0%
polyvec_matrix_pointwise_montgomery_row LP64 z3_no_bv_extract* ✅ 2s 2s +0%
polyvec_matrix_pointwise_montgomery_yvec LP64 z3* ✅ 20s 17s +18%
polyveck_caddq LP64 z3* ✅ 3s 5s -40%
polyveck_decompose_pack_w1 LP64 z3* ✅ 8s 8s +0%
polyveck_invntt_tomont LP64 z3* ✅ 5s 3s +67%
polyveck_ntt LP64 z3* ✅ 7s 4s +75%
polyveck_reduce LP64 z3* ✅ 2s 2s +0%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ✅ 43s 40s +7%
LP64 z3* ✅ 3s 2s +50%
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 19s 19s +0%
LP64 z3* ✅ 1s 2s -50%
polyvecl_chknorm LP64 z3* ✅ 4s 3s +33%
polyvecl_ntt LP64 z3* ✅ 4s 4s +0%
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 8s 9s -11%
LP64 z3_smt_only* ✅ 2s 2s +0%
polyvecl_pointwise_acc_montgomery_c LP64 z3* ⚠️ 171s 114s +50%
polyvecl_pointwise_acc_montgomery_native LP64 z3_smt_only* ✅ 2s 4s -50%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ✅ 34s 32s +6%
LP64 z3* ✅ 4s 3s +33%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ✅ 35s 34s +3%
LP64 z3* ✅ 2s 3s -33%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ✅ 36s 35s +3%
LP64 z3* ✅ 3s 3s +0%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ✅ 34s 31s +10%
LP64 z3* ✅ 3s 3s +0%
polyw1_pack LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 1s 1s +0%
polyw1_pack_32 LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 2s +0%
polyw1_pack_88 LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 2s 2s +0%
polyw1_unpack LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
polyw1_unpack_32 LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 2s -
polyw1_unpack_88 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 4s 1s +300%
polyz_pack LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 3s -33%
polyz_unpack LP64 bitwuzla ✅ 8s 6s +33%
LP64 z3* ✅ 1s 3s -67%
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 1s 2s -50%
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 1s 2s -50%
polyz_unpack_c LP64 bitwuzla ❌ - 2s -
LP64 z3* ❌ - 4s -
polyz_unpack_native LP64 bitwuzla ✅ 31s 25s +24%
LP64 z3* ✅ 3s 1s +200%
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 17s 15s +13%
LP64 z3* ✅ 3s 3s +0%
power2round LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%
reduce32 LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3* ✅ 4s 3s +33%
rej_eta LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3_smt_only ✅ 4s 3s +33%
rej_eta_c LP64 bitwuzla* ❌ - 3s -
LP64 z3 ❌ - 8s -
rej_eta_native LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3_smt_only ✅ 17s 9s +89%
rej_uniform LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 6s 14s -57%
rej_uniform_c LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 10s -
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_smt_only ✅ 3s 2s +50%
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3_smt_only* ✅ 3s 3s +0%
rej_uniform_native LP64 bitwuzla* ✅ 4s 3s +33%
LP64 z3_smt_only ✅ 12s 16s -25%
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_smt_only ✅ 3s 2s +50%
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3_smt_only* ✅ 6s 10s -40%
shake128_absorb LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
shake128_finalize LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 3s 3s +0%
shake128_init LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 3s -33%
shake128_release LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 2s +0%
shake128_squeeze LP64 bitwuzla* ✅ 2s 1s +100%
LP64 cvc5_arrays_exp ✅ 3s 2s +50%
shake128x4_absorb_once LP64 bitwuzla* ✅ 4s 2s +100%
LP64 z3_smt_only ✅ 2s 2s +0%
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3 ✅ 2s 4s -50%
shake256 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 6s -67%
shake256_absorb LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 1s 2s -50%
shake256_finalize LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%
shake256_init LP64 cvc5_arrays_exp ✅ 3s 1s +200%
LP64 z3* ✅ 2s 2s +0%
shake256_release LP64 bitwuzla ✅ 2s 2s +0%
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 ✅ 4s 2s +100%
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 3s 4s -25%
LP64 z3_smt_only ✅ 3s 2s +50%
sig_unpack_hints LP64 bitwuzla ✅ 1594s 1222s +30%
LP64 z3* ✅ 20s 17s +18%
sign_keypair LP64 z3* ✅ 6s 5s +20%
sign_keypair_internal LP64 z3_no_bv_extract* ✅ 19s 17s +12%
sign_pk_from_sk LP64 z3_no_bv_extract* ✅ 37s 33s +12%
sign_signature LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 4s 2s +100%
sign_signature_extmu LP64 cadical ✅ 38s 32s +19%
LP64 z3* ✅ 2s 3s -33%
sign_signature_internal LP64 z3_no_bv_extract* ✅ 221s 197s +12%
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3* ✅ 3s 4s -25%
sign_signature_pre_hash_shake256 LP64 bitwuzla ✅ 420s 339s +24%
LP64 z3* ✅ 3s 3s +0%
sign_verify LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 4s -50%
sign_verify_extmu LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 3s 3s +0%
sign_verify_internal LP64 z3_no_bv_extract* ✅ 521s 453s +15%
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 4s 3s +33%
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 2s 3s -33%
sk_s1hat_get_poly LP64 bitwuzla ✅ 42s 37s +14%
LP64 z3* ✅ 3s 3s +0%
sk_s2hat_get_poly LP64 bitwuzla ✅ 31s 29s +7%
LP64 z3* ✅ 3s 1s +200%
sk_t0hat_get_poly LP64 bitwuzla ✅ 31s 28s +11%
LP64 z3* ✅ 2s 4s -50%
sys_check_capability LP64 cvc5_arrays_exp ✅ 2s 4s -50%
LP64 z3* ✅ 3s 3s +0%
unpack_pk_t1 LP64 bitwuzla ✅ 13s 12s +8%
LP64 z3* ✅ 2s 1s +100%
unpack_sk LP64 cadical ✅ 60s 51s +18%
LP64 z3* ✅ 2s 3s -33%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ✅ 90s 85s +6%
LP64 z3* ✅ 2s 2s +0%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ✅ 163s 150s +9%
LP64 z3* ✅ 3s 3s +0%
unpack_sk_t0hat LP64 z3* ✅ 4s 6s -33%
use_hint LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 3s 2s +50%
yvec_get_poly LP64 bitwuzla ✅ 33s 31s +6%
LP64 z3* ✅ 2s 2s +0%
yvec_init LP64 bitwuzla ✅ 10s 8s +25%
LP64 z3* ✅ 2s 3s -33%

@oqs-bot

oqs-bot commented Oct 26, 2026

Copy link
Copy Markdown
Contributor

CBMC Results (ML-DSA-87)

* default.

⚠️ Attention Required

Proof DM Solver Status Current Previous Change
pointwise_acc_native_x86_64 LP64 cadical ❌ - 109s -
poly_invntt_tomont_c LP64 z3_smt_only* ❌ - 7s -
poly_ntt_c LP64 bitwuzla ❌ - 47s -
LP64 z3_smt_only* ❌ - 9s -
poly_pointwise_montgomery_c LP64 z3* ⚠️ 75s 50s +50%
polyeta_unpack LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 6s -
polyt0_unpack LP64 bitwuzla ❌ - 4s -
LP64 z3* ❌ - 7s -
polyt1_unpack LP64 bitwuzla ❌ - 2s -
LP64 z3* ❌ - 4s -
polyw1_unpack_32 LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 2s -
polyz_unpack_c LP64 bitwuzla ❌ - 2s -
LP64 z3* ❌ - 6s -
rej_eta_c LP64 bitwuzla* ❌ - 1s -
LP64 z3 ❌ - 16s -
rej_uniform_c LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 11s -
Full Results (410 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ✅ 3456s 3376s +2.4%
caddq LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 1s 2s -50%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ✅ 267s 236s +13%
decompose LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 2s 5s -60%
fqmul LP64 bitwuzla* ✅ 26s 27s -4%
LP64 z3_smt_only ✅ 21s 21s +0%
fqscale LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3 ✅ 3s 4s -25%
intt_native_aarch64 LP64 bitwuzla ✅ 22s 21s +5%
LP64 z3* ✅ 4s 2s +100%
intt_native_rv32im_fastmul ILP32 z3* ✅ 3s 3s +0%
LP64 cvc5_mbqi_enum ✅ 7s 10s -30%
LP64 z3 ✅ 5s 2s +150%
intt_native_rv32im_slowmul ILP32 z3* ✅ 4s 4s +0%
LP64 cvc5_mbqi_enum ✅ 8s 6s +33%
LP64 z3 ✅ 1s 2s -50%
intt_native_x86_64 LP64 bitwuzla ✅ 18s 18s +0%
LP64 z3* ✅ 3s 2s +50%
keccak_absorb LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 2s 3s -33%
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 5s 5s +0%
LP64 cvc5_arrays_exp ✅ 8s 9s -11%
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3_no_bv_extract ✅ 3s 2s +50%
keccak_f1600_x1_native_aarch64_v84a LP64 bitwuzla* ✅ 1s 2s -50%
LP64 cvc5_arrays_exp ✅ 2s 3s -33%
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3 ✅ 2s 2s +0%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_smt_only ✅ 1s 2s -50%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3_smt_only ✅ 1s 2s -50%
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 2s 1s +100%
keccak_finalize LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 1s +100%
keccak_init LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 1s 1s +0%
keccak_squeeze LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3 ✅ 1s 1s +0%
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3 ✅ 1s 1s +0%
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 2s 3s -33%
keccakf1600_permute LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 3s +0%
keccakf1600_permute_native LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 3s +0%
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 3s 3s +0%
LP64 cvc5_arrays_exp ✅ 2s 2s +0%
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_smt_only ✅ 3s 2s +50%
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3 ✅ 2s 2s +0%
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 4s 3s +33%
LP64 z3 ✅ 4s 1s +300%
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 1s 4s -75%
LP64 z3* ✅ 2s 4s -50%
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 17s 14s +21%
LP64 z3* ✅ 12s 12s +0%
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 3s 2s +50%
LP64 cvc5_arrays_exp ✅ 3s 2s +50%
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_no_bv_extract ✅ 4s 1s +300%
make_hint LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 3s -33%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ✅ 319s 312s +2%
mld_check_pct LP64 bitwuzla ✅ 4s 8s -50%
LP64 z3* ✅ 6s 5s +20%
mld_compute_pack_z LP64 cadical ✅ 101s 93s +9%
LP64 z3_no_bv_extract* ✅ 4s 6s -33%
mld_ct_abs_i32 ILP32 bitwuzla ✅ 2s 1s +100%
ILP32 cvc5_arrays_exp ✅ 3s 2s +50%
ILP32 z3 ✅ 1s 3s -67%
LP64 bitwuzla ✅ 4s 3s +33%
LP64 cvc5_arrays_exp ✅ 4s 3s +33%
LP64 z3* ✅ 2s 2s +0%
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 ✅ 1s 2s -50%
LP64 z3* ✅ 3s 2s +50%
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 3s 5s -40%
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 1s 2s -50%
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 1s +100%
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3_smt_only ✅ 1s 4s -75%
mld_ct_memcmp LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3_no_bv_extract ✅ 84s 82s +2%
mld_ct_sel_int32 LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 3s 2s +50%
mld_h LP64 bitwuzla ✅ 5s 4s +25%
LP64 z3* ✅ 3s 3s +0%
mld_invntt_layer LP64 bitwuzla* ✅ 50s 68s -26%
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 6s 5s +20%
LP64 z3* ✅ 3s 3s +0%
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 4s 3s +33%
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 3s -33%
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 9s 13s -31%
mld_ntt_layer LP64 bitwuzla* ✅ 31s 26s +19%
LP64 z3_no_bv_extract ✅ 6s 7s -14%
mld_polymat_expand_entry LP64 bitwuzla ✅ 1s 5s -80%
LP64 z3* ✅ 1s 3s -67%
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 5s -60%
mld_sample_pack_s1_s2 LP64 cadical ✅ 90s 86s +5%
LP64 z3* ✅ 7s 8s -12%
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ✅ 550s 541s +2%
LP64 z3* ✅ 6s 4s +50%
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 2s 4s -50%
LP64 z3* ✅ 3s 3s +0%
mld_sign_finish LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 5s 3s +67%
mld_sign_resume LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 2s +0%
mld_value_barrier_i64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
mld_value_barrier_u32 LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 1s 1s +0%
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 4s 5s -20%
LP64 z3* ✅ 1s 2s -50%
montgomery_reduce LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 4s 2s +100%
ntt_native_aarch64 LP64 bitwuzla ✅ 25s 21s +19%
LP64 z3* ✅ 3s 5s -40%
ntt_native_rv32im_fastmul ILP32 z3* ✅ 4s 2s +100%
LP64 cvc5_mbqi_enum ✅ 8s 6s +33%
LP64 z3 ✅ 2s 2s +0%
ntt_native_rv32im_slowmul ILP32 z3* ✅ 2s 2s +0%
LP64 cvc5_mbqi_enum ✅ 7s 7s +0%
LP64 z3 ✅ 3s 2s +50%
ntt_native_x86_64 LP64 bitwuzla ✅ 19s 19s +0%
LP64 z3* ✅ 3s 2s +50%
nttunpack_native_x86_64 LP64 z3* ✅ 3s 2s +50%
pack_sig_c LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 1s 4s -75%
pack_sig_h LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3_no_bv_extract* ✅ 1s 3s -67%
pack_sig_z LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3* ✅ 2s 3s -33%
pack_sk_rho_key_tr LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 1s +200%
pointwise_acc_native_aarch64 LP64 cadical ✅ 109s omitted new
LP64 z3_smt_only* ✅ 4s 5s -20%
pointwise_acc_native_x86_64 LP64 cadical ❌ - 109s -
LP64 z3_smt_only* ✅ 7s 7s +0%
pointwise_native_aarch64 LP64 bitwuzla ✅ 23s 23s +0%
LP64 z3* ✅ 1s 2s -50%
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 2s 3s -33%
LP64 cvc5_mbqi_enum ✅ 8s 9s -11%
LP64 z3 ✅ 3s 4s -25%
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 2s 1s +100%
LP64 cvc5_mbqi_enum ✅ 8s 10s -20%
LP64 z3 ✅ 2s 2s +0%
pointwise_native_x86_64 LP64 bitwuzla ✅ 21s 22s -5%
LP64 z3* ✅ 1s 3s -67%
poly_add LP64 z3* ✅ 4s 6s -33%
poly_caddq LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 3s -33%
poly_caddq_c LP64 bitwuzla ✅ 14s 21s -33%
LP64 z3* ✅ 5s 1s +400%
poly_caddq_native LP64 bitwuzla ✅ 115s 112s +3%
LP64 z3* ✅ 1s 2s -50%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ✅ 35s 35s +0%
LP64 z3* ✅ 2s 3s -33%
poly_caddq_native_x86_64 LP64 bitwuzla ✅ 135s 117s +15%
LP64 z3* ✅ 4s 4s +0%
poly_challenge LP64 bitwuzla ✅ 37s 35s +6%
LP64 z3* ✅ 1s 3s -67%
poly_chknorm LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 1s +100%
poly_chknorm_c LP64 bitwuzla ✅ 9s 10s -10%
LP64 z3* ✅ 11s 6s +83%
poly_chknorm_native LP64 bitwuzla ✅ 7s 7s +0%
LP64 z3* ✅ 2s 2s +0%
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 2s 3s -33%
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 1s 2s -50%
poly_decompose LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 4s 3s +33%
poly_decompose_32_native_aarch64 LP64 cadical ✅ 9s 9s +0%
LP64 z3* ✅ 3s 2s +50%
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 1s 2s -50%
poly_decompose_c LP64 z3* ✅ 1s 4s -75%
poly_decompose_native LP64 cadical ✅ 18s 15s +20%
LP64 z3* ✅ 2s 1s +100%
poly_decompose_native_x86_64 LP64 cadical ✅ 10s 10s +0%
LP64 z3* ✅ 3s 4s -25%
poly_invntt_tomont LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3* ✅ 4s 3s +33%
poly_invntt_tomont_c LP64 z3_smt_only* ❌ - 7s -
poly_invntt_tomont_native LP64 bitwuzla ✅ 44s 47s -6%
LP64 z3* ✅ 2s 3s -33%
poly_ntt LP64 bitwuzla ✅ 4s 6s -33%
LP64 z3* ✅ 3s 6s -50%
poly_ntt_c LP64 bitwuzla ❌ - 47s -
LP64 z3_smt_only* ❌ - 9s -
poly_ntt_native LP64 bitwuzla ✅ 29s 26s +12%
LP64 z3* ✅ 3s 1s +200%
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 5s -60%
poly_pointwise_montgomery LP64 bitwuzla ✅ 10s 10s +0%
LP64 z3* ✅ 3s 3s +0%
poly_pointwise_montgomery_c LP64 z3* ⚠️ 75s 50s +50%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ✅ 52s 56s -7%
LP64 z3* ✅ 1s 3s -67%
poly_power2round LP64 bitwuzla ✅ 215s 255s -16%
LP64 z3* ✅ 2s 4s -50%
poly_reduce LP64 bitwuzla ✅ 19s 9s +111%
LP64 z3* ✅ 3s 1s +200%
poly_shiftl LP64 bitwuzla ✅ 12s 10s +20%
LP64 z3* ✅ 1s 2s -50%
poly_sub LP64 bitwuzla ✅ 19s 16s +19%
LP64 z3* ✅ 5s 2s +150%
poly_uniform LP64 z3* ✅ 3s 2s +50%
poly_uniform_4x LP64 cadical ✅ 71s omitted new
LP64 z3* ✅ 8s 8s +0%
poly_uniform_eta LP64 z3* ✅ 1s 5s -80%
poly_uniform_eta_4x LP64 cadical ✅ 73s omitted new
LP64 z3* ✅ 10s 11s -9%
poly_uniform_gamma1 LP64 cadical ✅ 2s 4s -50%
LP64 z3* ✅ 2s 2s +0%
poly_uniform_gamma1_4x LP64 cadical ✅ 17s 16s +6%
LP64 z3* ✅ 2s 3s -33%
poly_use_hint LP64 cvc5_mbqi_enum ✅ 22s 23s -4%
LP64 z3* ✅ 4s 4s +0%
poly_use_hint_c LP64 cvc5_enum_inst ✅ 11s 11s +0%
LP64 z3* ✅ 3s 3s +0%
poly_use_hint_native LP64 cvc5_mbqi_enum ✅ 96s 93s +3%
LP64 z3* ✅ 3s 3s +0%
poly_use_hint_native_aarch64 LP64 bitwuzla ✅ 31s 29s +7%
LP64 z3* ✅ 3s 2s +50%
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 33s 33s +0%
LP64 z3* ✅ 5s 2s +150%
polyeta_pack LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3* ✅ 2s 3s -33%
polyeta_unpack LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 6s -
polyt0_pack LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 2s 4s -50%
polyt0_unpack LP64 bitwuzla ❌ - 4s -
LP64 z3* ❌ - 7s -
polyt1_pack LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 5s 1s +400%
polyt1_unpack LP64 bitwuzla ❌ - 2s -
LP64 z3* ❌ - 4s -
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 123s 115s +7%
polyvec_matrix_expand_serial LP64 z3* ✅ 24s 23s +4%
polyvec_matrix_pointwise_montgomery_row LP64 z3_no_bv_extract* ✅ 1s 4s -75%
polyvec_matrix_pointwise_montgomery_yvec LP64 z3* ✅ 16s 16s +0%
polyveck_caddq LP64 z3* ✅ 5s 8s -38%
polyveck_decompose_pack_w1 LP64 z3* ✅ 7s 7s +0%
polyveck_invntt_tomont LP64 z3* ✅ 4s 3s +33%
polyveck_ntt LP64 z3* ✅ 6s 5s +20%
polyveck_reduce LP64 z3* ✅ 2s 3s -33%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ✅ 54s 56s -4%
LP64 z3* ✅ 2s 1s +100%
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 18s 20s -10%
LP64 z3* ✅ 3s 2s +50%
polyvecl_chknorm LP64 z3* ✅ 1s 2s -50%
polyvecl_ntt LP64 z3* ✅ 3s 5s -40%
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 16s 12s +33%
LP64 z3_smt_only* ✅ 2s 2s +0%
polyvecl_pointwise_acc_montgomery_c LP64 z3* ✅ 192s 139s +38%
polyvecl_pointwise_acc_montgomery_native LP64 z3_smt_only* ✅ 3s 2s +50%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ✅ 76s 74s +3%
LP64 z3* ✅ 2s 2s +0%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ✅ 50s 46s +9%
LP64 z3* ✅ 1s 3s -67%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ✅ 49s 48s +2%
LP64 z3* ✅ 3s 3s +0%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ✅ 47s 49s -4%
LP64 z3* ✅ 1s 2s -50%
polyw1_pack LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
polyw1_pack_32 LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 3s 3s +0%
polyw1_pack_88 LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 2s 2s +0%
polyw1_unpack LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 1s +200%
polyw1_unpack_32 LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 2s -
polyw1_unpack_88 LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 1s +100%
polyz_pack LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 3s -33%
polyz_unpack LP64 bitwuzla ✅ 6s 7s -14%
LP64 z3* ✅ 4s 1s +300%
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 1s 2s -50%
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 5s 4s +25%
LP64 z3* ✅ 1s 1s +0%
polyz_unpack_c LP64 bitwuzla ❌ - 2s -
LP64 z3* ❌ - 6s -
polyz_unpack_native LP64 bitwuzla ✅ 28s 27s +4%
LP64 z3* ✅ 1s 2s -50%
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 19s 14s +36%
LP64 z3* ✅ 2s 2s +0%
power2round LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 2s +50%
reduce32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
rej_eta LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3_smt_only ✅ 5s 4s +25%
rej_eta_c LP64 bitwuzla* ❌ - 1s -
LP64 z3 ❌ - 16s -
rej_eta_native LP64 bitwuzla* ✅ 4s 3s +33%
LP64 z3_smt_only ✅ 11s 13s -15%
rej_uniform LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 9s 13s -31%
rej_uniform_c LP64 bitwuzla ❌ - 3s -
LP64 z3* ❌ - 11s -
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 3s 3s +0%
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3_smt_only* ✅ 2s 4s -50%
rej_uniform_native LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3_smt_only ✅ 11s 16s -31%
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 4s 2s +100%
LP64 z3_smt_only ✅ 1s 2s -50%
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 6s 6s +0%
LP64 z3_smt_only* ✅ 7s 9s -22%
shake128_absorb LP64 cvc5_arrays_exp ✅ 4s 3s +33%
LP64 z3* ✅ 1s 4s -75%
shake128_finalize LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 1s 4s -75%
shake128_init LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
shake128_release LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 1s +100%
shake128_squeeze LP64 bitwuzla* ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 4s 3s +33%
shake128x4_absorb_once LP64 bitwuzla* ✅ 2s 4s -50%
LP64 z3_smt_only ✅ 1s 2s -50%
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3 ✅ 1s 1s +0%
shake256 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 3s -33%
shake256_absorb LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 1s +100%
shake256_finalize LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
shake256_init LP64 cvc5_arrays_exp ✅ 4s 3s +33%
LP64 z3* ✅ 3s 3s +0%
shake256_release LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 3s 2s +50%
shake256_squeeze LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3 ✅ 1s 2s -50%
shake256x4_absorb_once LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3 ✅ 1s 2s -50%
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 1s 4s -75%
sig_unpack_hints LP64 bitwuzla ✅ 25s 28s -11%
LP64 z3* ✅ 16s 17s -6%
sign_keypair LP64 z3* ✅ 4s 5s -20%
sign_keypair_internal LP64 z3_no_bv_extract* ✅ 18s 21s -14%
sign_pk_from_sk LP64 z3_no_bv_extract* ✅ 34s 34s +0%
sign_signature LP64 bitwuzla ✅ 6s 5s +20%
LP64 z3* ✅ 7s 3s +133%
sign_signature_extmu LP64 cadical ✅ 79s 72s +10%
LP64 z3* ✅ 4s 4s +0%
sign_signature_internal LP64 z3_no_bv_extract* ✅ 407s 424s -4%
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3* ✅ 6s 3s +100%
sign_signature_pre_hash_shake256 LP64 bitwuzla ✅ 1708s 1613s +6%
LP64 z3* ✅ 4s 4s +0%
sign_verify LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 2s +0%
sign_verify_extmu LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 3s 3s +0%
sign_verify_internal LP64 z3_no_bv_extract* ✅ 1292s 1232s +5%
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3* ✅ 3s 3s +0%
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 4s 3s +33%
sk_s1hat_get_poly LP64 bitwuzla ✅ 34s 35s -3%
LP64 z3* ✅ 2s 3s -33%
sk_s2hat_get_poly LP64 bitwuzla ✅ 35s 36s -3%
LP64 z3* ✅ 2s 1s +100%
sk_t0hat_get_poly LP64 bitwuzla ✅ 33s 33s +0%
LP64 z3* ✅ 3s 2s +50%
sys_check_capability LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
unpack_pk_t1 LP64 bitwuzla ✅ 12s 12s +0%
LP64 z3* ✅ 2s 3s -33%
unpack_sk LP64 cadical ✅ 78s 77s +1%
LP64 z3* ✅ 5s 2s +150%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ✅ 90s 85s +6%
LP64 z3* ✅ 3s 4s -25%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ✅ 310s 309s +0%
LP64 z3* ✅ 5s 2s +150%
unpack_sk_t0hat LP64 z3* ✅ 5s 2s +150%
use_hint LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 5s 3s +67%
yvec_get_poly LP64 bitwuzla ✅ 37s 40s -7%
LP64 z3* ✅ 4s 1s +300%
yvec_init LP64 bitwuzla ✅ 20s 16s +25%
LP64 z3* ✅ 1s 4s -75%

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