Skip to content

CBMC: Use constant quantifier ranges in some loop invariants - #1495

Draft
mkannwischer wants to merge 3 commits into
mainfrom
cbmc-bounded-invariants
Draft

mkannwischer wants to merge 3 commits into
mainfrom
cbmc-bounded-invariants

Conversation

@mkannwischer

Copy link
Copy Markdown
Contributor

CBMC's propositional backend only expands a quantifier whose range
bounds simplify to constants. Otherwise it replaces the quantifier
by an unconstrained literal ("warning: ignoring forall"), which can
lead to spurious failures. Loop invariants of the form
forall(k, 0, i, P) or forall(k, i, N, P), with i the loop counter,
therefore cannot be checked with cadical.

Rewrite these invariants as forall(k, 0, N, k < i ==> P) and
forall(k, 0, N, k >= i ==> P), respectively. This is equivalent
given the existing invariant i <= N.

With this, add cadical as a second solver for 8 proofs: poly_add,
polyveck_caddq, polyveck_decompose_pack_w1, polyveck_invntt_tomont,
polyveck_ntt, polyveck_reduce, polyvecl_ntt and unpack_sk_t0hat.
Most of these are slow with cadical, locally between about 250s and
600s for ML-DSA-87.

Add a cadical solver profile that uses CBMC's propositional backend
with CaDiCaL instead of an SMT solver.

Use it as a second solver for 10 proofs that discharge in about 150s
or less locally for ML-DSA-87, for which the SMT alternatives
timed out, returned unknown or were too slow.

Signed-off-by: Matthias J. Kannwischer <matthias@zerorisc.com>
Add a second solver for 8 proofs that discharge in about 175s or less
locally for ML-DSA-87:

- bitwuzla: nttunpack_native_x86_64, poly_invntt_tomont_c,
  poly_pointwise_montgomery_c, poly_uniform, poly_uniform_eta
- cvc5_mbqi_enum: polyvecl_pointwise_acc_montgomery_native
- z3_smt_only: invntt_layer (bitwuzla default)
- z3_no_bv_extract: ntt_butterfly_block (bitwuzla default)

Signed-off-by: Matthias J. Kannwischer <matthias@zerorisc.com>
CBMC's propositional backend only expands a quantifier whose range
bounds simplify to constants. Otherwise it replaces the quantifier
by an unconstrained literal ("warning: ignoring forall"), which can
lead to spurious failures. Loop invariants of the form
forall(k, 0, i, P) or forall(k, i, N, P), with i the loop counter,
therefore cannot be checked with cadical.

Rewrite these invariants as forall(k, 0, N, k < i ==> P) and
forall(k, 0, N, k >= i ==> P), respectively. This is equivalent
given the existing invariant i <= N.

With this, add cadical as a second solver for 8 proofs: poly_add,
polyveck_caddq, polyveck_decompose_pack_w1, polyveck_invntt_tomont,
polyveck_ntt, polyveck_reduce, polyvecl_ntt and unpack_sk_t0hat.
Most of these are slow with cadical, locally between about 250s and
600s for ML-DSA-87.

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

oqs-bot commented Oct 25, 2026

Copy link
Copy Markdown
Contributor

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

* default.

⚠️ Attention Required

Proof DM Solver Status Current Previous Change
compute_pack_t0_t1 LP64 z3_no_bv_extract* ⚠️ 32s 12s +167%
intt_native_aarch64 LP64 bitwuzla ⚠️ 26s 3s +767%
intt_native_x86_64 LP64 bitwuzla ⚠️ 20s 2s +900%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ⚠️ 167s 19s +779%
mld_compute_pack_z LP64 cadical ⚠️ 46s 6s +667%
mld_ct_memcmp LP64 z3_no_bv_extract ⚠️ 88s 1s +8700%
mld_ntt_butterfly_block LP64 z3_no_bv_extract ⚠️ 129s 23s +461%
ntt_native_aarch64 LP64 bitwuzla ⚠️ 22s 4s +450%
nttunpack_native_x86_64 LP64 bitwuzla ⚠️ 168s 4s +4100%
pointwise_acc_native_x86_64 LP64 cadical ⚠️ 71s 4s +1675%
pointwise_native_aarch64 LP64 bitwuzla ⚠️ 21s 2s +950%
pointwise_native_x86_64 LP64 bitwuzla ⚠️ 26s 4s +550%
poly_add LP64 cadical ⚠️ 54s 7s +671%
poly_caddq_c LP64 bitwuzla ⚠️ 21s 3s +600%
poly_caddq_native LP64 bitwuzla ⚠️ 121s 3s +3933%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ⚠️ 37s 3s +1133%
poly_caddq_native_x86_64 LP64 bitwuzla ⚠️ 135s 4s +3275%
poly_challenge LP64 bitwuzla ⚠️ 27s 6s +350%
poly_decompose_native LP64 cadical ⚠️ 20s 2s +900%
poly_invntt_tomont_c LP64 bitwuzla ⚠️ 166s 11s +1409%
poly_invntt_tomont_native LP64 bitwuzla ⚠️ 50s 3s +1567%
poly_ntt_c LP64 bitwuzla ⚠️ 52s 21s +148%
poly_ntt_native LP64 bitwuzla ⚠️ 30s 3s +900%
poly_pointwise_montgomery_c LP64 bitwuzla ⚠️ 195s 112s +74%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ⚠️ 55s 2s +2650%
poly_power2round LP64 bitwuzla ⚠️ 320s 4s +7900%
poly_uniform LP64 bitwuzla ⚠️ 163s 3s +5333%
poly_uniform_eta LP64 bitwuzla ⚠️ 87s 2s +4250%
poly_use_hint LP64 cvc5_mbqi_enum ⚠️ 25s 2s +1150%
poly_use_hint_native LP64 cvc5_mbqi_enum ⚠️ 87s 3s +2800%
poly_use_hint_native_aarch64 LP64 bitwuzla ⚠️ 37s 3s +1133%
polyveck_caddq LP64 cadical ⚠️ 113s 3s +3667%
polyveck_invntt_tomont LP64 cadical ⚠️ 167s 5s +3240%
polyveck_reduce LP64 cadical ⚠️ 132s 4s +3200%
polyvecl_ntt LP64 cadical ⚠️ 144s 3s +4700%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ⚠️ 34s 4s +750%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ⚠️ 26s 3s +767%
polyz_unpack_native LP64 bitwuzla ⚠️ 31s 3s +933%
rej_eta_c LP64 z3 ⚠️ 26s 4s +550%
rej_uniform_native LP64 z3_smt_only ⚠️ 21s 5s +320%
sig_unpack_hints LP64 bitwuzla ⚠️ 58s 2s +2800%
LP64 z3* ⚠️ 44s 2s +2100%
sign_pk_from_sk LP64 z3_no_bv_extract* ⚠️ 33s 5s +560%
sign_signature_extmu LP64 cadical ⚠️ 29s 4s +625%
sign_verify_internal LP64 z3_no_bv_extract* ⚠️ 269s 49s +449%
Full Results (423 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ✅ 1491s 1364s +9.3%
caddq LP64 bitwuzla ✅ 2s 6s -67%
LP64 z3* ✅ 2s 6s -67%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ⚠️ 32s 12s +167%
decompose LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 4s 3s +33%
fqmul LP64 bitwuzla* ✅ 28s 39s -28%
LP64 z3_smt_only ✅ 23s 39s -41%
fqscale LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3 ✅ 2s 2s +0%
intt_native_aarch64 LP64 bitwuzla ⚠️ 26s 3s +767%
LP64 z3* ✅ 2s 3s -33%
intt_native_rv32im_fastmul ILP32 z3* ✅ 3s - new
LP64 cvc5_mbqi_enum ✅ 8s - new
LP64 z3 ✅ 1s - new
intt_native_rv32im_slowmul ILP32 z3* ✅ 3s - new
LP64 cvc5_mbqi_enum ✅ 8s - new
LP64 z3 ✅ 1s - new
intt_native_x86_64 LP64 bitwuzla ⚠️ 20s 2s +900%
LP64 z3* ✅ 3s 2s +50%
keccak_absorb LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 3s 3s +0%
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 5s 8s -38%
LP64 cvc5_arrays_exp ✅ 8s 8s +0%
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_no_bv_extract ✅ 2s 3s -33%
keccak_f1600_x1_native_aarch64_v84a LP64 bitwuzla* ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 3s 2s +50%
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3 ✅ 1s 3s -67%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 4s 2s +100%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_smt_only ✅ 1s 3s -67%
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 4s 2s +100%
LP64 cvc5_arrays_exp ✅ 4s 2s +100%
keccak_finalize LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
keccak_init LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 3s -33%
keccak_squeeze LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 2s 2s +0%
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3 ✅ 1s 3s -67%
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 2s 4s -50%
LP64 z3* ✅ 1s 4s -75%
keccakf1600_permute LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 1s 2s -50%
keccakf1600_permute_native LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 5s 3s +67%
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 4s 3s +33%
LP64 cvc5_arrays_exp ✅ 2s 3s -33%
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 2s 6s -67%
LP64 z3_smt_only ✅ 1s 6s -83%
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3 ✅ 1s 2s -50%
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 2s 4s -50%
LP64 z3 ✅ 2s 4s -50%
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 1s 4s -75%
LP64 z3* ✅ 3s 4s -25%
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 11s 22s -50%
LP64 z3* ✅ 13s 22s -41%
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 2s 3s -33%
LP64 cvc5_arrays_exp ✅ 1s 3s -67%
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 2s 5s -60%
LP64 z3_no_bv_extract ✅ 1s 5s -80%
make_hint LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 2s 3s -33%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ⚠️ 167s 19s +779%
mld_check_pct LP64 bitwuzla ✅ 5s 15s -67%
LP64 z3* ✅ 4s 15s -73%
mld_compute_pack_z LP64 cadical ⚠️ 46s 6s +667%
LP64 z3_no_bv_extract* ✅ 2s 6s -67%
mld_ct_abs_i32 ILP32 bitwuzla ✅ 3s 3s +0%
ILP32 cvc5_arrays_exp ✅ 2s 3s -33%
ILP32 z3 ✅ 3s 3s +0%
LP64 bitwuzla ✅ 3s 3s +0%
LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 3s 3s +0%
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 2s 4s -50%
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 1s 2s -50%
mld_ct_memcmp LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3_no_bv_extract ⚠️ 88s 1s +8700%
mld_ct_sel_int32 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 1s 3s -67%
mld_h LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 2s 4s -50%
mld_invntt_layer LP64 bitwuzla* ✅ 75s 105s -29%
LP64 z3_smt_only ✅ 82s 105s -22%
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 5s 7s -29%
LP64 z3* ✅ 5s 7s -29%
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 1s 4s -75%
LP64 z3* ✅ 2s 4s -50%
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 4s -50%
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 14s 23s -39%
LP64 z3_no_bv_extract ⚠️ 129s 23s +461%
mld_ntt_layer LP64 bitwuzla* ✅ 28s 41s -32%
LP64 z3_no_bv_extract ✅ 6s 41s -85%
mld_polymat_expand_entry LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 4s 2s +100%
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
mld_sample_pack_s1_s2 LP64 cadical ✅ 34s - new
LP64 z3* ✅ 2s - new
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ✅ 91s - new
LP64 z3* ✅ 4s - new
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 3s - new
mld_sign_finish LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 4s - new
mld_sign_resume LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 6s - new
mld_value_barrier_i64 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 1s 3s -67%
mld_value_barrier_u32 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 1s 1s +0%
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 1s 4s -75%
LP64 z3* ✅ 3s 4s -25%
montgomery_reduce LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 1s 2s -50%
ntt_native_aarch64 LP64 bitwuzla ⚠️ 22s 4s +450%
LP64 z3* ✅ 3s 4s -25%
ntt_native_rv32im_fastmul ILP32 z3* ✅ 1s - new
LP64 cvc5_mbqi_enum ✅ 7s - new
LP64 z3 ✅ 2s - new
ntt_native_rv32im_slowmul ILP32 z3* ✅ 3s - new
LP64 cvc5_mbqi_enum ✅ 6s - new
LP64 z3 ✅ 3s - new
ntt_native_x86_64 LP64 bitwuzla ✅ 19s 3s +533%
LP64 z3* ✅ 2s 3s -33%
nttunpack_native_x86_64 LP64 bitwuzla ⚠️ 168s 4s +4100%
LP64 z3* ✅ 3s 4s -25%
pack_sig_c LP64 cvc5_arrays_exp ✅ 1s 5s -80%
LP64 z3* ✅ 1s 5s -80%
pack_sig_h LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3_no_bv_extract* ✅ 2s 4s -50%
pack_sig_z LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
pack_sk_rho_key_tr LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
pointwise_acc_native_aarch64 LP64 z3_smt_only* ✅ 3s 6s -50%
pointwise_acc_native_x86_64 LP64 cadical ⚠️ 71s 4s +1675%
LP64 z3_smt_only* ✅ 5s 4s +25%
pointwise_native_aarch64 LP64 bitwuzla ⚠️ 21s 2s +950%
LP64 z3* ✅ 2s 2s +0%
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 3s - new
LP64 cvc5_mbqi_enum ✅ 9s - new
LP64 z3 ✅ 3s - new
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 3s - new
LP64 cvc5_mbqi_enum ✅ 8s - new
LP64 z3 ✅ 3s - new
pointwise_native_x86_64 LP64 bitwuzla ⚠️ 26s 4s +550%
LP64 z3* ✅ 5s 4s +25%
poly_add LP64 cadical ⚠️ 54s 7s +671%
LP64 z3* ✅ 9s 7s +29%
poly_caddq LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 4s -50%
poly_caddq_c LP64 bitwuzla ⚠️ 21s 3s +600%
LP64 z3* ✅ 4s 3s +33%
poly_caddq_native LP64 bitwuzla ⚠️ 121s 3s +3933%
LP64 z3* ✅ 2s 3s -33%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ⚠️ 37s 3s +1133%
LP64 z3* ✅ 3s 3s +0%
poly_caddq_native_x86_64 LP64 bitwuzla ⚠️ 135s 4s +3275%
LP64 z3* ✅ 1s 4s -75%
poly_challenge LP64 bitwuzla ⚠️ 27s 6s +350%
LP64 z3* ✅ 2s 6s -67%
poly_chknorm LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 1s 3s -67%
poly_chknorm_c LP64 bitwuzla ✅ 10s 11s -9%
LP64 z3* ✅ 8s 11s -27%
poly_chknorm_native LP64 bitwuzla ✅ 6s 4s +50%
LP64 z3* ✅ 4s 4s +0%
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 4s 2s +100%
poly_decompose LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 1s 2s -50%
poly_decompose_32_native_aarch64 LP64 cadical ✅ 3s 4s -25%
LP64 z3* ✅ 2s 4s -50%
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 7s 3s +133%
LP64 z3* ✅ 1s 3s -67%
poly_decompose_c LP64 z3* ✅ 2s 5s -60%
poly_decompose_native LP64 cadical ⚠️ 20s 2s +900%
LP64 z3* ✅ 3s 2s +50%
poly_decompose_native_x86_64 LP64 cadical ✅ 12s 2s +500%
LP64 z3* ✅ 4s 2s +100%
poly_invntt_tomont LP64 bitwuzla ✅ 6s 2s +200%
LP64 z3* ✅ 2s 2s +0%
poly_invntt_tomont_c LP64 bitwuzla ⚠️ 166s 11s +1409%
LP64 z3_smt_only* ✅ 6s 11s -45%
poly_invntt_tomont_native LP64 bitwuzla ⚠️ 50s 3s +1567%
LP64 z3* ✅ 2s 3s -33%
poly_ntt LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 2s 3s -33%
poly_ntt_c LP64 bitwuzla ⚠️ 52s 21s +148%
LP64 z3_smt_only* ✅ 9s 21s -57%
poly_ntt_native LP64 bitwuzla ⚠️ 30s 3s +900%
LP64 z3* ✅ 2s 3s -33%
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 2s 5s -60%
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
poly_pointwise_montgomery LP64 bitwuzla ✅ 8s 3s +167%
LP64 z3* ✅ 1s 3s -67%
poly_pointwise_montgomery_c LP64 bitwuzla ⚠️ 195s 112s +74%
LP64 z3* ✅ 83s 112s -26%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ⚠️ 55s 2s +2650%
LP64 z3* ✅ 3s 2s +50%
poly_power2round LP64 bitwuzla ⚠️ 320s 4s +7900%
LP64 z3* ✅ 4s 4s +0%
poly_reduce LP64 bitwuzla ✅ 8s 4s +100%
LP64 z3* ✅ 3s 4s -25%
poly_shiftl LP64 bitwuzla ✅ 13s 4s +225%
LP64 z3* ✅ 2s 4s -50%
poly_sub LP64 bitwuzla ✅ 16s 3s +433%
LP64 z3* ✅ 3s 3s +0%
poly_uniform LP64 bitwuzla ⚠️ 163s 3s +5333%
LP64 z3* ✅ 2s 3s -33%
poly_uniform_4x LP64 z3* ✅ 2s 3s -33%
poly_uniform_eta LP64 bitwuzla ⚠️ 87s 2s +4250%
LP64 z3* ✅ 3s 2s +50%
poly_uniform_eta_4x LP64 z3* ✅ 8s 12s -33%
poly_uniform_gamma1 LP64 cadical ✅ 4s 3s +33%
LP64 z3* ✅ 2s 3s -33%
poly_uniform_gamma1_4x LP64 cadical ✅ 3s 5s -40%
LP64 z3* ✅ 1s 5s -80%
poly_use_hint LP64 cvc5_mbqi_enum ⚠️ 25s 2s +1150%
LP64 z3* ✅ 3s 2s +50%
poly_use_hint_c LP64 cvc5_enum_inst ✅ 11s 5s +120%
LP64 z3* ✅ 3s 5s -40%
poly_use_hint_native LP64 cvc5_mbqi_enum ⚠️ 87s 3s +2800%
LP64 z3* ✅ 2s 3s -33%
poly_use_hint_native_aarch64 LP64 bitwuzla ⚠️ 37s 3s +1133%
LP64 z3* ✅ 3s 3s +0%
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 37s - new
LP64 z3* ✅ 2s - new
polyeta_pack LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 2s 3s -33%
polyeta_unpack LP64 bitwuzla ✅ 3s 14s -79%
LP64 z3* ✅ 6s 14s -57%
polyt0_pack LP64 bitwuzla ✅ 7s 4s +75%
LP64 z3* ✅ 2s 4s -50%
polyt0_unpack LP64 bitwuzla ✅ 3s 12s -75%
LP64 z3* ✅ 9s 12s -25%
polyt1_pack LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
polyt1_unpack LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 2s 3s -33%
polyvec_matrix_expand_serial LP64 z3* ✅ 3s 4s -25%
polyvec_matrix_pointwise_montgomery_row LP64 z3_no_bv_extract* ✅ 4s 6s -33%
polyvec_matrix_pointwise_montgomery_yvec LP64 z3* ✅ 142s 149s -5%
polyveck_caddq LP64 cadical ⚠️ 113s 3s +3667%
LP64 z3* ✅ 4s 3s +33%
polyveck_decompose_pack_w1 LP64 cadical ✅ 132s - new
LP64 z3* ✅ 4s - new
polyveck_invntt_tomont LP64 cadical ⚠️ 167s 5s +3240%
LP64 z3* ✅ 2s 5s -60%
polyveck_ntt LP64 cadical ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
polyveck_reduce LP64 cadical ⚠️ 132s 4s +3200%
LP64 z3* ✅ 3s 4s -25%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 17s - new
LP64 z3* ✅ 3s - new
polyvecl_chknorm LP64 z3* ✅ 4s 11s -64%
polyvecl_ntt LP64 cadical ⚠️ 144s 3s +4700%
LP64 z3* ✅ 2s 3s -33%
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 1s 3s -67%
LP64 z3_smt_only* ✅ 2s 3s -33%
polyvecl_pointwise_acc_montgomery_c LP64 z3* ✅ 2s 4s -50%
polyvecl_pointwise_acc_montgomery_native LP64 cvc5_mbqi_enum ✅ 3s 3s +0%
LP64 z3_smt_only* ✅ 1s 3s -67%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ✅ 2s 2s +0%
LP64 z3* ✅ 4s 2s +100%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ✅ 4s 2s +100%
LP64 z3* ✅ 2s 2s +0%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ⚠️ 34s 4s +750%
LP64 z3* ✅ 3s 4s -25%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ⚠️ 26s 3s +767%
LP64 z3* ✅ 1s 3s -67%
polyw1_pack LP64 bitwuzla ✅ 5s 4s +25%
LP64 z3* ✅ 3s 4s -25%
polyw1_pack_32 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
polyw1_pack_88 LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 2s 2s +0%
polyw1_unpack LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
polyw1_unpack_32 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
polyw1_unpack_88 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 5s - new
polyz_pack LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 2s 2s +0%
polyz_unpack LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 2s 3s -33%
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 1s 2s -50%
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 4s -50%
polyz_unpack_c LP64 bitwuzla ✅ 1s 8s -88%
LP64 z3* ✅ 5s 8s -38%
polyz_unpack_native LP64 bitwuzla ⚠️ 31s 3s +933%
LP64 z3* ✅ 1s 3s -67%
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 17s 3s +467%
LP64 z3* ✅ 1s 3s -67%
power2round LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
reduce32 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 3s 3s +0%
rej_eta LP64 bitwuzla* ✅ 1s 5s -80%
LP64 z3_smt_only ✅ 3s 5s -40%
rej_eta_c LP64 bitwuzla* ✅ 1s 4s -75%
LP64 z3 ⚠️ 26s 4s +550%
rej_eta_native LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_smt_only ✅ 13s 3s +333%
rej_uniform LP64 bitwuzla ✅ 3s 8s -62%
LP64 z3* ✅ 6s 8s -25%
rej_uniform_c LP64 bitwuzla ✅ 3s 16s -81%
LP64 z3* ✅ 10s 16s -38%
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_smt_only ✅ 2s 3s -33%
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 2s - new
LP64 z3_smt_only* ✅ 2s - new
rej_uniform_native LP64 bitwuzla* ✅ 1s 5s -80%
LP64 z3_smt_only ⚠️ 21s 5s +320%
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_smt_only ✅ 4s 3s +33%
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 3s - new
LP64 z3_smt_only* ✅ 8s - new
shake128_absorb LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 1s 3s -67%
shake128_finalize LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 3s 3s +0%
shake128_init LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 1s 2s -50%
shake128_release LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
shake128_squeeze LP64 bitwuzla* ✅ 3s 2s +50%
LP64 cvc5_arrays_exp ✅ 2s 2s +0%
shake128x4_absorb_once LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_smt_only ✅ 3s 2s +50%
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 2s 2s +0%
shake256 LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3* ✅ 2s 1s +100%
shake256_absorb LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
shake256_finalize LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
shake256_init LP64 cvc5_arrays_exp ✅ 3s 4s -25%
LP64 z3* ✅ 3s 4s -25%
shake256_release LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3* ✅ 2s 1s +100%
shake256_squeeze LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 1s 2s -50%
shake256x4_absorb_once LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3 ✅ 2s 1s +100%
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 1s 2s -50%
sig_unpack_hints LP64 bitwuzla ⚠️ 58s 2s +2800%
LP64 z3* ⚠️ 44s 2s +2100%
sign_keypair LP64 z3* ✅ 7s 5s +40%
sign_keypair_internal LP64 z3_no_bv_extract* ✅ 13s 4s +225%
sign_pk_from_sk LP64 z3_no_bv_extract* ⚠️ 33s 5s +560%
sign_signature LP64 bitwuzla ✅ 4s 6s -33%
LP64 z3* ✅ 5s 6s -17%
sign_signature_extmu LP64 cadical ⚠️ 29s 4s +625%
LP64 z3* ✅ 3s 4s -25%
sign_signature_internal LP64 z3_no_bv_extract* ✅ 14s 4s +250%
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 5s 4s +25%
sign_signature_pre_hash_shake256 LP64 bitwuzla ✅ 6s 4s +50%
LP64 z3* ✅ 5s 4s +25%
sign_verify LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 4s -50%
sign_verify_extmu LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 2s 5s -60%
sign_verify_internal LP64 z3_no_bv_extract* ⚠️ 269s 49s +449%
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 2s 5s -60%
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 3s 5s -40%
LP64 z3* ✅ 4s 5s -20%
sk_s1hat_get_poly LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
sk_s2hat_get_poly LP64 bitwuzla ✅ 3s 5s -40%
LP64 z3* ✅ 2s 5s -60%
sk_t0hat_get_poly LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 1s +100%
sys_check_capability LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
unpack_pk_t1 LP64 bitwuzla ✅ 11s 3s +267%
LP64 z3* ✅ 1s 3s -67%
unpack_sk LP64 cadical ✅ 3s 3s +0%
LP64 z3* ✅ 2s 3s -33%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ✅ 4s 3s +33%
LP64 z3* ✅ 1s 3s -67%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ✅ 2s 4s -50%
LP64 z3* ✅ 3s 4s -25%
unpack_sk_t0hat LP64 cadical ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
use_hint LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
yvec_get_poly LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 1s 3s -67%
yvec_init LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 2s 1s +100%

@oqs-bot

oqs-bot commented Oct 25, 2026

Copy link
Copy Markdown
Contributor

CBMC Results (ML-DSA-44)

* default.

⚠️ Attention Required

Proof DM Solver Status Current Previous Change
**TOTAL** - - ⚠️ 2165s 1514s +43.0%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ⚠️ 97s 50s +94%
intt_native_aarch64 LP64 bitwuzla ⚠️ 24s 9s +167%
intt_native_x86_64 LP64 bitwuzla ⚠️ 20s 4s +400%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ⚠️ 353s 58s +509%
mld_compute_pack_z LP64 cadical ⚠️ 83s 7s +1086%
mld_ct_memcmp LP64 z3_no_bv_extract ⚠️ 102s 3s +3300%
mld_ntt_butterfly_block LP64 z3_no_bv_extract ⚠️ 152s 23s +561%
ntt_native_aarch64 LP64 bitwuzla ⚠️ 21s 3s +600%
nttunpack_native_x86_64 LP64 bitwuzla ⚠️ 216s 1s +21500%
pointwise_acc_native_x86_64 LP64 cadical ⚠️ 70s 7s +900%
pointwise_native_aarch64 LP64 bitwuzla ⚠️ 27s 5s +440%
pointwise_native_x86_64 LP64 bitwuzla ⚠️ 22s 4s +450%
poly_add LP64 cadical ⚠️ 55s 7s +686%
poly_caddq_c LP64 bitwuzla ⚠️ 23s 2s +1050%
poly_caddq_native LP64 bitwuzla ⚠️ 136s 5s +2620%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ⚠️ 36s 4s +800%
poly_caddq_native_x86_64 LP64 bitwuzla ⚠️ 151s 4s +3675%
poly_challenge LP64 bitwuzla ⚠️ 28s 3s +833%
poly_invntt_tomont_c LP64 bitwuzla ⚠️ 186s 11s +1591%
poly_invntt_tomont_native LP64 bitwuzla ⚠️ 54s 4s +1250%
poly_ntt_c LP64 bitwuzla ⚠️ 60s 19s +216%
poly_ntt_native LP64 bitwuzla ⚠️ 28s 5s +460%
poly_pointwise_montgomery_c LP64 bitwuzla ⚠️ 203s 114s +78%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ⚠️ 53s 2s +2550%
poly_power2round LP64 bitwuzla ⚠️ 367s 4s +9075%
poly_uniform LP64 bitwuzla ⚠️ 161s 6s +2583%
poly_uniform_eta LP64 bitwuzla ⚠️ 93s 5s +1760%
poly_use_hint LP64 cvc5_mbqi_enum ⚠️ 24s 4s +500%
poly_use_hint_native LP64 cvc5_mbqi_enum ⚠️ 87s 4s +2075%
poly_use_hint_native_aarch64 LP64 bitwuzla ⚠️ 38s 2s +1800%
polyveck_caddq LP64 cadical ⚠️ 113s 3s +3667%
polyveck_invntt_tomont LP64 cadical ⚠️ 173s 5s +3360%
polyveck_ntt LP64 cadical ⚠️ 143s 5s +2760%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ⚠️ 29s 2s +1350%
polyvecl_ntt LP64 cadical ⚠️ 150s 2s +7400%
polyvecl_pointwise_acc_montgomery_native LP64 cvc5_mbqi_enum ⚠️ 168s 2s +8300%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ⚠️ 40s 3s +1233%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ⚠️ 42s 2s +2000%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ⚠️ 33s 2s +1550%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ⚠️ 27s 2s +1250%
polyz_unpack_native LP64 bitwuzla ⚠️ 30s 2s +1400%
rej_uniform_native LP64 z3_smt_only ⚠️ 20s 4s +400%
sig_unpack_hints LP64 bitwuzla ⚠️ 63s 2s +3050%
LP64 z3* ⚠️ 29s 2s +1350%
sign_pk_from_sk LP64 z3_no_bv_extract* ⚠️ 38s 5s +660%
sign_signature_extmu LP64 cadical ⚠️ 30s 4s +650%
sign_signature_internal LP64 z3_no_bv_extract* ⚠️ 247s 26s +850%
sign_verify_internal LP64 z3_no_bv_extract* ⚠️ 420s 114s +268%
sk_s1hat_get_poly LP64 bitwuzla ⚠️ 30s 3s +900%
sk_s2hat_get_poly LP64 bitwuzla ⚠️ 33s 2s +1550%
sk_t0hat_get_poly LP64 bitwuzla ⚠️ 32s 2s +1500%
unpack_sk LP64 cadical ⚠️ 39s 3s +1200%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ⚠️ 260s 1s +25900%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ⚠️ 256s 4s +6300%
unpack_sk_t0hat LP64 cadical ⚠️ 43s 3s +1333%
yvec_get_poly LP64 bitwuzla ⚠️ 33s 3s +1000%
yvec_init LP64 bitwuzla ⚠️ 40s 3s +1233%
Full Results (423 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ⚠️ 2165s 1514s +43.0%
caddq LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 5s 2s +150%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ⚠️ 97s 50s +94%
decompose LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
fqmul LP64 bitwuzla* ✅ 25s 39s -36%
LP64 z3_smt_only ✅ 22s 39s -44%
fqscale LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3 ✅ 3s 3s +0%
intt_native_aarch64 LP64 bitwuzla ⚠️ 24s 9s +167%
LP64 z3* ✅ 4s 9s -56%
intt_native_rv32im_fastmul ILP32 z3* ✅ 2s - new
LP64 cvc5_mbqi_enum ✅ 11s - new
LP64 z3 ✅ 2s - new
intt_native_rv32im_slowmul ILP32 z3* ✅ 2s - new
LP64 cvc5_mbqi_enum ✅ 9s - new
LP64 z3 ✅ 1s - new
intt_native_x86_64 LP64 bitwuzla ⚠️ 20s 4s +400%
LP64 z3* ✅ 2s 4s -50%
keccak_absorb LP64 cvc5_arrays_exp ✅ 4s 5s -20%
LP64 z3* ✅ 6s 5s +20%
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 7s 9s -22%
LP64 cvc5_arrays_exp ✅ 10s 9s +11%
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_no_bv_extract ✅ 2s 2s +0%
keccak_f1600_x1_native_aarch64_v84a LP64 bitwuzla* ✅ 3s 3s +0%
LP64 cvc5_arrays_exp ✅ 3s 3s +0%
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 2s 2s +0%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_smt_only ✅ 1s 3s -67%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3_smt_only ✅ 1s 1s +0%
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 3s 3s +0%
LP64 cvc5_arrays_exp ✅ 1s 3s -67%
keccak_finalize LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 1s 3s -67%
keccak_init LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
keccak_squeeze LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3 ✅ 3s 1s +200%
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 4s 4s +0%
LP64 z3 ✅ 6s 4s +50%
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
keccakf1600_permute LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 2s 2s +0%
keccakf1600_permute_native LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 1s 3s -67%
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 2s 1s +100%
LP64 cvc5_arrays_exp ✅ 3s 1s +200%
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 1s 4s -75%
LP64 z3_smt_only ✅ 3s 4s -25%
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 2s 2s +0%
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3 ✅ 1s 3s -67%
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 1s 4s -75%
LP64 z3* ✅ 1s 4s -75%
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 14s 22s -36%
LP64 z3* ✅ 12s 22s -45%
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 1s 2s -50%
LP64 cvc5_arrays_exp ✅ 1s 2s -50%
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_no_bv_extract ✅ 2s 3s -33%
make_hint LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 3s 3s +0%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ⚠️ 353s 58s +509%
mld_check_pct LP64 bitwuzla ✅ 6s 14s -57%
LP64 z3* ✅ 4s 14s -71%
mld_compute_pack_z LP64 cadical ⚠️ 83s 7s +1086%
LP64 z3_no_bv_extract* ✅ 5s 7s -29%
mld_ct_abs_i32 ILP32 bitwuzla ✅ 1s 2s -50%
ILP32 cvc5_arrays_exp ✅ 3s 2s +50%
ILP32 z3 ✅ 2s 2s +0%
LP64 bitwuzla ✅ 1s 2s -50%
LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 1s 2s -50%
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 2s 3s -33%
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 2s 2s +0%
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 4s -50%
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 1s 1s +0%
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 1s 1s +0%
mld_ct_memcmp LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3_no_bv_extract ⚠️ 102s 3s +3300%
mld_ct_sel_int32 LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 1s 2s -50%
mld_h LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 1s 4s -75%
mld_invntt_layer LP64 bitwuzla* ✅ 63s 107s -41%
LP64 z3_smt_only ✅ 87s 107s -19%
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 6s 8s -25%
LP64 z3* ✅ 6s 8s -25%
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 1s 2s -50%
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 14s 23s -39%
LP64 z3_no_bv_extract ⚠️ 152s 23s +561%
mld_ntt_layer LP64 bitwuzla* ✅ 30s 42s -29%
LP64 z3_no_bv_extract ✅ 3s 42s -93%
mld_polymat_expand_entry LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 4s 3s +33%
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 4s -50%
mld_sample_pack_s1_s2 LP64 cadical ✅ 38s - new
LP64 z3* ✅ 6s - new
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ✅ 95s - new
LP64 z3* ✅ 3s - new
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 3s - new
LP64 z3* ✅ 2s - new
mld_sign_finish LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 3s - new
mld_sign_resume LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 3s - new
mld_value_barrier_i64 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 1s 2s -50%
mld_value_barrier_u32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 1s 3s -67%
montgomery_reduce LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 3s 3s +0%
ntt_native_aarch64 LP64 bitwuzla ⚠️ 21s 3s +600%
LP64 z3* ✅ 3s 3s +0%
ntt_native_rv32im_fastmul ILP32 z3* ✅ 3s - new
LP64 cvc5_mbqi_enum ✅ 9s - new
LP64 z3 ✅ 3s - new
ntt_native_rv32im_slowmul ILP32 z3* ✅ 1s - new
LP64 cvc5_mbqi_enum ✅ 8s - new
LP64 z3 ✅ 2s - new
ntt_native_x86_64 LP64 bitwuzla ✅ 18s 3s +500%
LP64 z3* ✅ 5s 3s +67%
nttunpack_native_x86_64 LP64 bitwuzla ⚠️ 216s 1s +21500%
LP64 z3* ✅ 1s 1s +0%
pack_sig_c LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
pack_sig_h LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3_no_bv_extract* ✅ 2s 3s -33%
pack_sig_z LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 3s 4s -25%
pack_sk_rho_key_tr LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 3s - new
pointwise_acc_native_aarch64 LP64 z3_smt_only* ✅ 4s 4s +0%
pointwise_acc_native_x86_64 LP64 cadical ⚠️ 70s 7s +900%
LP64 z3_smt_only* ✅ 3s 7s -57%
pointwise_native_aarch64 LP64 bitwuzla ⚠️ 27s 5s +440%
LP64 z3* ✅ 1s 5s -80%
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 3s - new
LP64 cvc5_mbqi_enum ✅ 7s - new
LP64 z3 ✅ 4s - new
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 2s - new
LP64 cvc5_mbqi_enum ✅ 8s - new
LP64 z3 ✅ 2s - new
pointwise_native_x86_64 LP64 bitwuzla ⚠️ 22s 4s +450%
LP64 z3* ✅ 2s 4s -50%
poly_add LP64 cadical ⚠️ 55s 7s +686%
LP64 z3* ✅ 9s 7s +29%
poly_caddq LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
poly_caddq_c LP64 bitwuzla ⚠️ 23s 2s +1050%
LP64 z3* ✅ 2s 2s +0%
poly_caddq_native LP64 bitwuzla ⚠️ 136s 5s +2620%
LP64 z3* ✅ 2s 5s -60%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ⚠️ 36s 4s +800%
LP64 z3* ✅ 3s 4s -25%
poly_caddq_native_x86_64 LP64 bitwuzla ⚠️ 151s 4s +3675%
LP64 z3* ✅ 1s 4s -75%
poly_challenge LP64 bitwuzla ⚠️ 28s 3s +833%
LP64 z3* ✅ 3s 3s +0%
poly_chknorm LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 1s 4s -75%
poly_chknorm_c LP64 bitwuzla ✅ 11s 17s -35%
LP64 z3* ✅ 8s 17s -53%
poly_chknorm_native LP64 bitwuzla ✅ 9s 4s +125%
LP64 z3* ✅ 3s 4s -25%
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 2s 4s -50%
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
poly_decompose LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 2s 3s -33%
poly_decompose_32_native_aarch64 LP64 cadical ✅ 1s 2s -50%
LP64 z3* ✅ 4s 2s +100%
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 6s 4s +50%
LP64 z3* ✅ 3s 4s -25%
poly_decompose_c LP64 z3* ✅ 4s 4s +0%
poly_decompose_native LP64 cadical ✅ 18s 3s +500%
LP64 z3* ✅ 3s 3s +0%
poly_decompose_native_x86_64 LP64 cadical ✅ 12s 3s +300%
LP64 z3* ✅ 2s 3s -33%
poly_invntt_tomont LP64 bitwuzla ✅ 5s 4s +25%
LP64 z3* ✅ 1s 4s -75%
poly_invntt_tomont_c LP64 bitwuzla ⚠️ 186s 11s +1591%
LP64 z3_smt_only* ✅ 5s 11s -55%
poly_invntt_tomont_native LP64 bitwuzla ⚠️ 54s 4s +1250%
LP64 z3* ✅ 1s 4s -75%
poly_ntt LP64 bitwuzla ✅ 7s 3s +133%
LP64 z3* ✅ 2s 3s -33%
poly_ntt_c LP64 bitwuzla ⚠️ 60s 19s +216%
LP64 z3_smt_only* ✅ 12s 19s -37%
poly_ntt_native LP64 bitwuzla ⚠️ 28s 5s +460%
LP64 z3* ✅ 2s 5s -60%
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 2s 4s -50%
poly_pointwise_montgomery LP64 bitwuzla ✅ 10s 3s +233%
LP64 z3* ✅ 2s 3s -33%
poly_pointwise_montgomery_c LP64 bitwuzla ⚠️ 203s 114s +78%
LP64 z3* ✅ 50s 114s -56%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ⚠️ 53s 2s +2550%
LP64 z3* ✅ 1s 2s -50%
poly_power2round LP64 bitwuzla ⚠️ 367s 4s +9075%
LP64 z3* ✅ 3s 4s -25%
poly_reduce LP64 bitwuzla ✅ 10s 3s +233%
LP64 z3* ✅ 2s 3s -33%
poly_shiftl LP64 bitwuzla ✅ 12s 3s +300%
LP64 z3* ✅ 3s 3s +0%
poly_sub LP64 bitwuzla ✅ 17s 3s +467%
LP64 z3* ✅ 3s 3s +0%
poly_uniform LP64 bitwuzla ⚠️ 161s 6s +2583%
LP64 z3* ✅ 4s 6s -33%
poly_uniform_4x LP64 z3* ✅ 7s 14s -50%
poly_uniform_eta LP64 bitwuzla ⚠️ 93s 5s +1760%
LP64 z3* ✅ 2s 5s -60%
poly_uniform_eta_4x LP64 z3* ✅ 10s 11s -9%
poly_uniform_gamma1 LP64 cadical ✅ 2s 4s -50%
LP64 z3* ✅ 2s 4s -50%
poly_uniform_gamma1_4x LP64 cadical ✅ 11s 5s +120%
LP64 z3* ✅ 1s 5s -80%
poly_use_hint LP64 cvc5_mbqi_enum ⚠️ 24s 4s +500%
LP64 z3* ✅ 2s 4s -50%
poly_use_hint_c LP64 cvc5_enum_inst ✅ 13s 3s +333%
LP64 z3* ✅ 2s 3s -33%
poly_use_hint_native LP64 cvc5_mbqi_enum ⚠️ 87s 4s +2075%
LP64 z3* ✅ 4s 4s +0%
poly_use_hint_native_aarch64 LP64 bitwuzla ⚠️ 38s 2s +1800%
LP64 z3* ✅ 3s 2s +50%
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 36s - new
LP64 z3* ✅ 2s - new
polyeta_pack LP64 bitwuzla ✅ 7s 3s +133%
LP64 z3* ✅ 4s 3s +33%
polyeta_unpack LP64 bitwuzla ✅ 4s 14s -71%
LP64 z3* ✅ 6s 14s -57%
polyt0_pack LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 4s 2s +100%
polyt0_unpack LP64 bitwuzla ✅ 3s 15s -80%
LP64 z3* ✅ 8s 15s -47%
polyt1_pack LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 2s 4s -50%
polyt1_unpack LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 3s 5s -40%
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 15s 28s -46%
polyvec_matrix_expand_serial LP64 z3* ✅ 4s 8s -50%
polyvec_matrix_pointwise_montgomery_row LP64 z3_no_bv_extract* ✅ 2s 2s +0%
polyvec_matrix_pointwise_montgomery_yvec LP64 z3* ✅ 13s 15s -13%
polyveck_caddq LP64 cadical ⚠️ 113s 3s +3667%
LP64 z3* ✅ 2s 3s -33%
polyveck_decompose_pack_w1 LP64 cadical ✅ 134s - new
LP64 z3* ✅ 3s - new
polyveck_invntt_tomont LP64 cadical ⚠️ 173s 5s +3360%
LP64 z3* ✅ 1s 5s -80%
polyveck_ntt LP64 cadical ⚠️ 143s 5s +2760%
LP64 z3* ✅ 3s 5s -40%
polyveck_reduce LP64 cadical ✅ 3s 5s -40%
LP64 z3* ✅ 3s 5s -40%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ⚠️ 29s 2s +1350%
LP64 z3* ✅ 3s 2s +50%
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 18s - new
LP64 z3* ✅ 2s - new
polyvecl_chknorm LP64 z3* ✅ 4s 10s -60%
polyvecl_ntt LP64 cadical ⚠️ 150s 2s +7400%
LP64 z3* ✅ 2s 2s +0%
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 7s 4s +75%
LP64 z3_smt_only* ✅ 2s 4s -50%
polyvecl_pointwise_acc_montgomery_c LP64 z3* ✅ 171s 131s +31%
polyvecl_pointwise_acc_montgomery_native LP64 cvc5_mbqi_enum ⚠️ 168s 2s +8300%
LP64 z3_smt_only* ✅ 2s 2s +0%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ⚠️ 40s 3s +1233%
LP64 z3* ✅ 1s 3s -67%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ⚠️ 42s 2s +2000%
LP64 z3* ✅ 4s 2s +100%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ⚠️ 33s 2s +1550%
LP64 z3* ✅ 2s 2s +0%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ⚠️ 27s 2s +1250%
LP64 z3* ✅ 2s 2s +0%
polyw1_pack LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 1s 3s -67%
polyw1_pack_32 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 3s 2s +50%
polyw1_pack_88 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 1s +200%
polyw1_unpack LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
polyw1_unpack_32 LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 1s - new
polyw1_unpack_88 LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 2s - new
polyz_pack LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
polyz_unpack LP64 bitwuzla ✅ 6s 3s +100%
LP64 z3* ✅ 1s 3s -67%
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 1s 5s -80%
LP64 z3* ✅ 4s 5s -20%
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 3s 5s -40%
LP64 z3* ✅ 3s 5s -40%
polyz_unpack_c LP64 bitwuzla ✅ 3s 11s -73%
LP64 z3* ✅ 6s 11s -45%
polyz_unpack_native LP64 bitwuzla ⚠️ 30s 2s +1400%
LP64 z3* ✅ 1s 2s -50%
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 17s 3s +467%
LP64 z3* ✅ 2s 3s -33%
power2round LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 3s -33%
reduce32 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
rej_eta LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3_smt_only ✅ 4s 3s +33%
rej_eta_c LP64 bitwuzla* ✅ 4s 4s +0%
LP64 z3 ✅ 18s 4s +350%
rej_eta_native LP64 bitwuzla* ✅ 3s 6s -50%
LP64 z3_smt_only ✅ 11s 6s +83%
rej_uniform LP64 bitwuzla ✅ 2s 18s -89%
LP64 z3* ✅ 13s 18s -28%
rej_uniform_c LP64 bitwuzla ✅ 2s 15s -87%
LP64 z3* ✅ 12s 15s -20%
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3_smt_only ✅ 2s 2s +0%
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 3s - new
LP64 z3_smt_only* ✅ 3s - new
rej_uniform_native LP64 bitwuzla* ✅ 3s 4s -25%
LP64 z3_smt_only ⚠️ 20s 4s +400%
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 1s 5s -80%
LP64 z3_smt_only ✅ 3s 5s -40%
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 3s - new
LP64 z3_smt_only* ✅ 9s - new
shake128_absorb LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
shake128_finalize LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
shake128_init LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 1s 3s -67%
shake128_release LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 1s +100%
shake128_squeeze LP64 bitwuzla* ✅ 2s 1s +100%
LP64 cvc5_arrays_exp ✅ 2s 1s +100%
shake128x4_absorb_once LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_smt_only ✅ 1s 3s -67%
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3 ✅ 1s 1s +0%
shake256 LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 1s 1s +0%
shake256_absorb LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 3s +0%
shake256_finalize LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 4s 2s +100%
shake256_init LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 3s 3s +0%
shake256_release LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 3s 2s +50%
shake256_squeeze LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 3s 2s +50%
shake256x4_absorb_once LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3 ✅ 2s 3s -33%
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 1s 4s -75%
LP64 z3_smt_only ✅ 2s 4s -50%
sig_unpack_hints LP64 bitwuzla ⚠️ 63s 2s +3050%
LP64 z3* ⚠️ 29s 2s +1350%
sign_keypair LP64 z3* ✅ 7s 4s +75%
sign_keypair_internal LP64 z3_no_bv_extract* ✅ 15s 4s +275%
sign_pk_from_sk LP64 z3_no_bv_extract* ⚠️ 38s 5s +660%
sign_signature LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 6s 3s +100%
sign_signature_extmu LP64 cadical ⚠️ 30s 4s +650%
LP64 z3* ✅ 6s 4s +50%
sign_signature_internal LP64 z3_no_bv_extract* ⚠️ 247s 26s +850%
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 5s 6s -17%
LP64 z3* ✅ 3s 6s -50%
sign_signature_pre_hash_shake256 LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 3s +0%
sign_verify LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 5s 4s +25%
sign_verify_extmu LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 4s 3s +33%
sign_verify_internal LP64 z3_no_bv_extract* ⚠️ 420s 114s +268%
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 1s 3s -67%
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3* ✅ 5s 5s +0%
sk_s1hat_get_poly LP64 bitwuzla ⚠️ 30s 3s +900%
LP64 z3* ✅ 2s 3s -33%
sk_s2hat_get_poly LP64 bitwuzla ⚠️ 33s 2s +1550%
LP64 z3* ✅ 2s 2s +0%
sk_t0hat_get_poly LP64 bitwuzla ⚠️ 32s 2s +1500%
LP64 z3* ✅ 3s 2s +50%
sys_check_capability LP64 cvc5_arrays_exp ✅ 1s 4s -75%
LP64 z3* ✅ 2s 4s -50%
unpack_pk_t1 LP64 bitwuzla ✅ 13s 5s +160%
LP64 z3* ✅ 1s 5s -80%
unpack_sk LP64 cadical ⚠️ 39s 3s +1200%
LP64 z3* ✅ 2s 3s -33%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ⚠️ 260s 1s +25900%
LP64 z3* ✅ 2s 1s +100%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ⚠️ 256s 4s +6300%
LP64 z3* ✅ 5s 4s +25%
unpack_sk_t0hat LP64 cadical ⚠️ 43s 3s +1333%
LP64 z3* ✅ 4s 3s +33%
use_hint LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
yvec_get_poly LP64 bitwuzla ⚠️ 33s 3s +1000%
LP64 z3* ✅ 2s 3s -33%
yvec_init LP64 bitwuzla ⚠️ 40s 3s +1233%
LP64 z3* ✅ 1s 3s -67%

@oqs-bot

oqs-bot commented Oct 25, 2026

Copy link
Copy Markdown
Contributor

CBMC Results (ML-DSA-65)

* default.

⚠️ Attention Required

Proof DM Solver Status Current Previous Change
compute_pack_t0_t1 LP64 z3_no_bv_extract* ⚠️ 144s 13s +1008%
intt_native_aarch64 LP64 bitwuzla ⚠️ 22s 3s +633%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ⚠️ 225s 63s +257%
mld_compute_pack_z LP64 cadical ⚠️ 89s 7s +1171%
mld_ct_memcmp LP64 z3_no_bv_extract ⚠️ 85s 2s +4150%
mld_ntt_butterfly_block LP64 z3_no_bv_extract ⚠️ 163s 24s +579%
ntt_native_aarch64 LP64 bitwuzla ⚠️ 21s 2s +950%
ntt_native_x86_64 LP64 bitwuzla ⚠️ 20s 2s +900%
nttunpack_native_x86_64 LP64 bitwuzla ⚠️ 176s 3s +5767%
pointwise_acc_native_x86_64 LP64 cadical ⚠️ 101s 8s +1162%
pointwise_native_aarch64 LP64 bitwuzla ⚠️ 23s 5s +360%
pointwise_native_x86_64 LP64 bitwuzla ⚠️ 21s 3s +600%
poly_add LP64 cadical ⚠️ 52s 9s +478%
poly_caddq_native LP64 bitwuzla ⚠️ 108s 2s +5300%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ⚠️ 34s 2s +1600%
poly_caddq_native_x86_64 LP64 bitwuzla ⚠️ 120s 3s +3900%
poly_challenge LP64 bitwuzla ⚠️ 23s 6s +283%
poly_invntt_tomont_c LP64 bitwuzla ⚠️ 162s 11s +1373%
poly_invntt_tomont_native LP64 bitwuzla ⚠️ 45s 2s +2150%
poly_ntt_c LP64 bitwuzla ⚠️ 48s 19s +153%
poly_ntt_native LP64 bitwuzla ⚠️ 28s 4s +600%
poly_pointwise_montgomery_c LP64 bitwuzla ⚠️ 194s 125s +55%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ⚠️ 56s 3s +1767%
poly_power2round LP64 bitwuzla ⚠️ 270s 4s +6650%
poly_uniform LP64 bitwuzla ⚠️ 151s 4s +3675%
poly_uniform_eta LP64 bitwuzla ⚠️ 143s 4s +3475%
poly_use_hint LP64 cvc5_mbqi_enum ⚠️ 26s 3s +767%
poly_use_hint_native LP64 cvc5_mbqi_enum ⚠️ 91s 2s +4450%
poly_use_hint_native_aarch64 LP64 bitwuzla ⚠️ 29s 3s +867%
polyveck_caddq LP64 cadical ⚠️ 240s 6s +3900%
polyveck_invntt_tomont LP64 cadical ⚠️ 257s 8s +3112%
polyveck_ntt LP64 cadical ⚠️ 237s 7s +3286%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ⚠️ 37s 6s +517%
polyvecl_ntt LP64 cadical ⚠️ 219s 4s +5375%
polyvecl_pointwise_acc_montgomery_native LP64 cvc5_mbqi_enum ⚠️ 116s 2s +5700%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ⚠️ 33s 2s +1550%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ⚠️ 34s 3s +1033%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ⚠️ 35s 3s +1067%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ⚠️ 34s 3s +1033%
polyz_unpack_native LP64 bitwuzla ⚠️ 25s 4s +525%
sig_unpack_hints LP64 bitwuzla ⚠️ 1346s 2s +67200%
sign_pk_from_sk LP64 z3_no_bv_extract* ⚠️ 35s 6s +483%
sign_signature_extmu LP64 cadical ⚠️ 35s 2s +1650%
sign_signature_internal LP64 z3_no_bv_extract* ⚠️ 210s 55s +282%
sign_signature_pre_hash_shake256 LP64 bitwuzla ⚠️ 347s 3s +11467%
sign_verify_internal LP64 z3_no_bv_extract* ⚠️ 510s 177s +188%
sk_s1hat_get_poly LP64 bitwuzla ⚠️ 38s 6s +533%
sk_s2hat_get_poly LP64 bitwuzla ⚠️ 31s 2s +1450%
sk_t0hat_get_poly LP64 bitwuzla ⚠️ 30s 2s +1400%
unpack_sk LP64 cadical ⚠️ 53s 3s +1667%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ⚠️ 87s 2s +4250%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ⚠️ 154s 4s +3750%
unpack_sk_t0hat LP64 cadical ⚠️ 96s 5s +1820%
yvec_get_poly LP64 bitwuzla ⚠️ 33s 3s +1000%
Full Results (423 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ✅ 2153s 1784s +20.7%
caddq LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 1s 3s -67%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ⚠️ 144s 13s +1008%
decompose LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 1s +200%
fqmul LP64 bitwuzla* ✅ 24s 40s -40%
LP64 z3_smt_only ✅ 22s 40s -45%
fqscale LP64 bitwuzla* ✅ 5s 3s +67%
LP64 z3 ✅ 2s 3s -33%
intt_native_aarch64 LP64 bitwuzla ⚠️ 22s 3s +633%
LP64 z3* ✅ 4s 3s +33%
intt_native_rv32im_fastmul ILP32 z3* ✅ 2s - new
LP64 cvc5_mbqi_enum ✅ 7s - new
LP64 z3 ✅ 2s - new
intt_native_rv32im_slowmul ILP32 z3* ✅ 2s - new
LP64 cvc5_mbqi_enum ✅ 9s - new
LP64 z3 ✅ 5s - new
intt_native_x86_64 LP64 bitwuzla ✅ 19s 3s +533%
LP64 z3* ✅ 5s 3s +67%
keccak_absorb LP64 cvc5_arrays_exp ✅ 4s 3s +33%
LP64 z3* ✅ 4s 3s +33%
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 6s 8s -25%
LP64 cvc5_arrays_exp ✅ 10s 8s +25%
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_no_bv_extract ✅ 2s 2s +0%
keccak_f1600_x1_native_aarch64_v84a LP64 bitwuzla* ✅ 2s 3s -33%
LP64 cvc5_arrays_exp ✅ 2s 3s -33%
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 3s 4s -25%
LP64 z3 ✅ 4s 4s +0%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 2s 2s +0%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_smt_only ✅ 3s 2s +50%
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 1s 2s -50%
LP64 cvc5_arrays_exp ✅ 1s 2s -50%
keccak_finalize LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 1s 2s -50%
keccak_init LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 2s 1s +100%
keccak_squeeze LP64 bitwuzla* ✅ 2s 4s -50%
LP64 z3 ✅ 3s 4s -25%
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 3s 5s -40%
LP64 z3 ✅ 1s 5s -80%
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
keccakf1600_permute LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
keccakf1600_permute_native LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 3s +0%
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 3s 2s +50%
LP64 cvc5_arrays_exp ✅ 3s 2s +50%
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3_smt_only ✅ 2s 2s +0%
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 3s 4s -25%
LP64 z3 ✅ 2s 4s -50%
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 1s 4s -75%
LP64 z3 ✅ 1s 4s -75%
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 2s 4s -50%
LP64 z3* ✅ 2s 4s -50%
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 13s 23s -43%
LP64 z3* ✅ 12s 23s -48%
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 1s 1s +0%
LP64 cvc5_arrays_exp ✅ 1s 1s +0%
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_no_bv_extract ✅ 2s 3s -33%
make_hint LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ⚠️ 225s 63s +257%
mld_check_pct LP64 bitwuzla ✅ 4s 14s -71%
LP64 z3* ✅ 5s 14s -64%
mld_compute_pack_z LP64 cadical ⚠️ 89s 7s +1171%
LP64 z3_no_bv_extract* ✅ 4s 7s -43%
mld_ct_abs_i32 ILP32 bitwuzla ✅ 1s 2s -50%
ILP32 cvc5_arrays_exp ✅ 2s 2s +0%
ILP32 z3 ✅ 3s 2s +50%
LP64 bitwuzla ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 4s 2s +100%
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 5s 2s +150%
LP64 z3* ✅ 2s 2s +0%
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 4s 4s +0%
LP64 z3* ✅ 1s 4s -75%
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 3s +0%
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 1s 2s -50%
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 1s 3s -67%
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 1s 2s -50%
mld_ct_memcmp LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_no_bv_extract ⚠️ 85s 2s +4150%
mld_ct_sel_int32 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 3s -33%
mld_h LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 4s 2s +100%
mld_invntt_layer LP64 bitwuzla* ✅ 68s 109s -38%
LP64 z3_smt_only ✅ 91s 109s -17%
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 1s +200%
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 4s 6s -33%
LP64 z3* ✅ 3s 6s -50%
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 1s 3s -67%
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 12s 24s -50%
LP64 z3_no_bv_extract ⚠️ 163s 24s +579%
mld_ntt_layer LP64 bitwuzla* ✅ 25s 41s -39%
LP64 z3_no_bv_extract ✅ 2s 41s -95%
mld_polymat_expand_entry LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 3s 4s -25%
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
mld_sample_pack_s1_s2 LP64 cadical ✅ 53s - new
LP64 z3* ✅ 2s - new
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ✅ 230s - new
LP64 z3* ✅ 5s - new
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 4s - new
LP64 z3* ✅ 3s - new
mld_sign_finish LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 5s - new
mld_sign_resume LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 3s - new
mld_value_barrier_i64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
mld_value_barrier_u32 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 1s 3s -67%
montgomery_reduce LP64 cvc5_arrays_exp ✅ 1s 4s -75%
LP64 z3* ✅ 2s 4s -50%
ntt_native_aarch64 LP64 bitwuzla ⚠️ 21s 2s +950%
LP64 z3* ✅ 3s 2s +50%
ntt_native_rv32im_fastmul ILP32 z3* ✅ 3s - new
LP64 cvc5_mbqi_enum ✅ 6s - new
LP64 z3 ✅ 3s - new
ntt_native_rv32im_slowmul ILP32 z3* ✅ 3s - new
LP64 cvc5_mbqi_enum ✅ 6s - new
LP64 z3 ✅ 2s - new
ntt_native_x86_64 LP64 bitwuzla ⚠️ 20s 2s +900%
LP64 z3* ✅ 1s 2s -50%
nttunpack_native_x86_64 LP64 bitwuzla ⚠️ 176s 3s +5767%
LP64 z3* ✅ 1s 3s -67%
pack_sig_c LP64 cvc5_arrays_exp ✅ 3s 5s -40%
LP64 z3* ✅ 1s 5s -80%
pack_sig_h LP64 bitwuzla ✅ 1s 5s -80%
LP64 z3_no_bv_extract* ✅ 2s 5s -60%
pack_sig_z LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
pack_sk_rho_key_tr LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
pointwise_acc_native_aarch64 LP64 z3_smt_only* ✅ 5s 6s -17%
pointwise_acc_native_x86_64 LP64 cadical ⚠️ 101s 8s +1162%
LP64 z3_smt_only* ✅ 4s 8s -50%
pointwise_native_aarch64 LP64 bitwuzla ⚠️ 23s 5s +360%
LP64 z3* ✅ 3s 5s -40%
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 3s - new
LP64 cvc5_mbqi_enum ✅ 8s - new
LP64 z3 ✅ 2s - new
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 2s - new
LP64 cvc5_mbqi_enum ✅ 8s - new
LP64 z3 ✅ 2s - new
pointwise_native_x86_64 LP64 bitwuzla ⚠️ 21s 3s +600%
LP64 z3* ✅ 3s 3s +0%
poly_add LP64 cadical ⚠️ 52s 9s +478%
LP64 z3* ✅ 11s 9s +22%
poly_caddq LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
poly_caddq_c LP64 bitwuzla ✅ 19s 2s +850%
LP64 z3* ✅ 2s 2s +0%
poly_caddq_native LP64 bitwuzla ⚠️ 108s 2s +5300%
LP64 z3* ✅ 4s 2s +100%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ⚠️ 34s 2s +1600%
LP64 z3* ✅ 3s 2s +50%
poly_caddq_native_x86_64 LP64 bitwuzla ⚠️ 120s 3s +3900%
LP64 z3* ✅ 2s 3s -33%
poly_challenge LP64 bitwuzla ⚠️ 23s 6s +283%
LP64 z3* ✅ 2s 6s -67%
poly_chknorm LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 1s 4s -75%
poly_chknorm_c LP64 bitwuzla ✅ 9s 15s -40%
LP64 z3* ✅ 8s 15s -47%
poly_chknorm_native LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 2s 2s +0%
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 3s +0%
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 3s +0%
poly_decompose LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 2s 2s +0%
poly_decompose_32_native_aarch64 LP64 cadical ✅ 9s 3s +200%
LP64 z3* ✅ 2s 3s -33%
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 1s +100%
poly_decompose_c LP64 z3* ✅ 2s 5s -60%
poly_decompose_native LP64 cadical ✅ 15s 3s +400%
LP64 z3* ✅ 1s 3s -67%
poly_decompose_native_x86_64 LP64 cadical ✅ 11s 3s +267%
LP64 z3* ✅ 3s 3s +0%
poly_invntt_tomont LP64 bitwuzla ✅ 6s 3s +100%
LP64 z3* ✅ 2s 3s -33%
poly_invntt_tomont_c LP64 bitwuzla ⚠️ 162s 11s +1373%
LP64 z3_smt_only* ✅ 6s 11s -45%
poly_invntt_tomont_native LP64 bitwuzla ⚠️ 45s 2s +2150%
LP64 z3* ✅ 2s 2s +0%
poly_ntt LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 4s 2s +100%
poly_ntt_c LP64 bitwuzla ⚠️ 48s 19s +153%
LP64 z3_smt_only* ✅ 10s 19s -47%
poly_ntt_native LP64 bitwuzla ⚠️ 28s 4s +600%
LP64 z3* ✅ 1s 4s -75%
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 4s -25%
LP64 z3* ✅ 3s 4s -25%
poly_pointwise_montgomery LP64 bitwuzla ✅ 9s 3s +200%
LP64 z3* ✅ 2s 3s -33%
poly_pointwise_montgomery_c LP64 bitwuzla ⚠️ 194s 125s +55%
LP64 z3* ✅ 49s 125s -61%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ⚠️ 56s 3s +1767%
LP64 z3* ✅ 2s 3s -33%
poly_power2round LP64 bitwuzla ⚠️ 270s 4s +6650%
LP64 z3* ✅ 3s 4s -25%
poly_reduce LP64 bitwuzla ✅ 9s 3s +200%
LP64 z3* ✅ 1s 3s -67%
poly_shiftl LP64 bitwuzla ✅ 10s 3s +233%
LP64 z3* ✅ 2s 3s -33%
poly_sub LP64 bitwuzla ✅ 14s 3s +367%
LP64 z3* ✅ 2s 3s -33%
poly_uniform LP64 bitwuzla ⚠️ 151s 4s +3675%
LP64 z3* ✅ 6s 4s +50%
poly_uniform_4x LP64 z3* ✅ 7s 13s -46%
poly_uniform_eta LP64 bitwuzla ⚠️ 143s 4s +3475%
LP64 z3* ✅ 2s 4s -50%
poly_uniform_eta_4x LP64 z3* ✅ 6s 14s -57%
poly_uniform_gamma1 LP64 cadical ✅ 4s 3s +33%
LP64 z3* ✅ 3s 3s +0%
poly_uniform_gamma1_4x LP64 cadical ✅ 13s 4s +225%
LP64 z3* ✅ 4s 4s +0%
poly_use_hint LP64 cvc5_mbqi_enum ⚠️ 26s 3s +767%
LP64 z3* ✅ 2s 3s -33%
poly_use_hint_c LP64 cvc5_enum_inst ✅ 12s 5s +140%
LP64 z3* ✅ 4s 5s -20%
poly_use_hint_native LP64 cvc5_mbqi_enum ⚠️ 91s 2s +4450%
LP64 z3* ✅ 3s 2s +50%
poly_use_hint_native_aarch64 LP64 bitwuzla ⚠️ 29s 3s +867%
LP64 z3* ✅ 3s 3s +0%
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 32s - new
LP64 z3* ✅ 3s - new
polyeta_pack LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 1s 3s -67%
polyeta_unpack LP64 bitwuzla ✅ 4s 8s -50%
LP64 z3* ✅ 2s 8s -75%
polyt0_pack LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 1s 3s -67%
polyt0_unpack LP64 bitwuzla ✅ 4s 16s -75%
LP64 z3* ✅ 7s 16s -56%
polyt1_pack LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 3s +0%
polyt1_unpack LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3* ✅ 5s 5s +0%
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 74s 110s -33%
polyvec_matrix_expand_serial LP64 z3* ✅ 15s 27s -44%
polyvec_matrix_pointwise_montgomery_row LP64 z3_no_bv_extract* ✅ 3s 1s +200%
polyvec_matrix_pointwise_montgomery_yvec LP64 z3* ✅ 18s 18s +0%
polyveck_caddq LP64 cadical ⚠️ 240s 6s +3900%
LP64 z3* ✅ 2s 6s -67%
polyveck_decompose_pack_w1 LP64 cadical ✅ 184s - new
LP64 z3* ✅ 6s - new
polyveck_invntt_tomont LP64 cadical ⚠️ 257s 8s +3112%
LP64 z3* ✅ 4s 8s -50%
polyveck_ntt LP64 cadical ⚠️ 237s 7s +3286%
LP64 z3* ✅ 2s 7s -71%
polyveck_reduce LP64 cadical ✅ 3s 4s -25%
LP64 z3* ✅ 3s 4s -25%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ⚠️ 37s 6s +517%
LP64 z3* ✅ 1s 6s -83%
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 17s - new
LP64 z3* ✅ 2s - new
polyvecl_chknorm LP64 z3* ✅ 2s 7s -71%
polyvecl_ntt LP64 cadical ⚠️ 219s 4s +5375%
LP64 z3* ✅ 5s 4s +25%
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 9s 3s +200%
LP64 z3_smt_only* ✅ 3s 3s +0%
polyvecl_pointwise_acc_montgomery_c LP64 z3* ✅ 128s 210s -39%
polyvecl_pointwise_acc_montgomery_native LP64 cvc5_mbqi_enum ⚠️ 116s 2s +5700%
LP64 z3_smt_only* ✅ 3s 2s +50%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ⚠️ 33s 2s +1550%
LP64 z3* ✅ 2s 2s +0%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ⚠️ 34s 3s +1033%
LP64 z3* ✅ 3s 3s +0%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ⚠️ 35s 3s +1067%
LP64 z3* ✅ 3s 3s +0%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ⚠️ 34s 3s +1033%
LP64 z3* ✅ 3s 3s +0%
polyw1_pack LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 4s -50%
polyw1_pack_32 LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 4s -50%
polyw1_pack_88 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
polyw1_unpack LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
polyw1_unpack_32 LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 3s - new
polyw1_unpack_88 LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
polyz_pack LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 3s +0%
polyz_unpack LP64 bitwuzla ✅ 6s 3s +100%
LP64 z3* ✅ 1s 3s -67%
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 1s 3s -67%
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 3s 3s +0%
polyz_unpack_c LP64 bitwuzla ✅ 3s 13s -77%
LP64 z3* ✅ 3s 13s -77%
polyz_unpack_native LP64 bitwuzla ⚠️ 25s 4s +525%
LP64 z3* ✅ 1s 4s -75%
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 16s 3s +433%
LP64 z3* ✅ 2s 3s -33%
power2round LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 2s 1s +100%
reduce32 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 3s -33%
rej_eta LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3_smt_only ✅ 5s 2s +150%
rej_eta_c LP64 bitwuzla* ✅ 1s 5s -80%
LP64 z3 ✅ 10s 5s +100%
rej_eta_native LP64 bitwuzla* ✅ 6s 3s +100%
LP64 z3_smt_only ✅ 9s 3s +200%
rej_uniform LP64 bitwuzla ✅ 4s 18s -78%
LP64 z3* ✅ 13s 18s -28%
rej_uniform_c LP64 bitwuzla ✅ 2s 14s -86%
LP64 z3* ✅ 11s 14s -21%
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 4s 4s +0%
LP64 z3_smt_only ✅ 4s 4s +0%
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 1s - new
LP64 z3_smt_only* ✅ 2s - new
rej_uniform_native LP64 bitwuzla* ✅ 3s 4s -25%
LP64 z3_smt_only ✅ 18s 4s +350%
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_smt_only ✅ 1s 3s -67%
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 3s - new
LP64 z3_smt_only* ✅ 7s - new
shake128_absorb LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 3s 2s +50%
shake128_finalize LP64 cvc5_arrays_exp ✅ 1s 1s +0%
LP64 z3* ✅ 2s 1s +100%
shake128_init LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
shake128_release LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 3s 3s +0%
shake128_squeeze LP64 bitwuzla* ✅ 1s 2s -50%
LP64 cvc5_arrays_exp ✅ 3s 2s +50%
shake128x4_absorb_once LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_smt_only ✅ 2s 3s -33%
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3 ✅ 1s 3s -67%
shake256 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
shake256_absorb LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 1s 2s -50%
shake256_finalize LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 3s 1s +200%
shake256_init LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 4s 2s +100%
shake256_release LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 3s 2s +50%
shake256_squeeze LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3 ✅ 1s 3s -67%
shake256x4_absorb_once LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3 ✅ 2s 3s -33%
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3_smt_only ✅ 2s 2s +0%
sig_unpack_hints LP64 bitwuzla ⚠️ 1346s 2s +67200%
LP64 z3* ✅ 17s 2s +750%
sign_keypair LP64 z3* ✅ 5s 3s +67%
sign_keypair_internal LP64 z3_no_bv_extract* ✅ 19s 5s +280%
sign_pk_from_sk LP64 z3_no_bv_extract* ⚠️ 35s 6s +483%
sign_signature LP64 bitwuzla ✅ 4s 6s -33%
LP64 z3* ✅ 2s 6s -67%
sign_signature_extmu LP64 cadical ⚠️ 35s 2s +1650%
LP64 z3* ✅ 2s 2s +0%
sign_signature_internal LP64 z3_no_bv_extract* ⚠️ 210s 55s +282%
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 5s 3s +67%
sign_signature_pre_hash_shake256 LP64 bitwuzla ⚠️ 347s 3s +11467%
LP64 z3* ✅ 6s 3s +100%
sign_verify LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 4s 3s +33%
sign_verify_extmu LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 5s 3s +67%
sign_verify_internal LP64 z3_no_bv_extract* ⚠️ 510s 177s +188%
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 3s 5s -40%
LP64 z3* ✅ 1s 5s -80%
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 3s 5s -40%
LP64 z3* ✅ 2s 5s -60%
sk_s1hat_get_poly LP64 bitwuzla ⚠️ 38s 6s +533%
LP64 z3* ✅ 3s 6s -50%
sk_s2hat_get_poly LP64 bitwuzla ⚠️ 31s 2s +1450%
LP64 z3* ✅ 4s 2s +100%
sk_t0hat_get_poly LP64 bitwuzla ⚠️ 30s 2s +1400%
LP64 z3* ✅ 1s 2s -50%
sys_check_capability LP64 cvc5_arrays_exp ✅ 1s 4s -75%
LP64 z3* ✅ 2s 4s -50%
unpack_pk_t1 LP64 bitwuzla ✅ 12s 5s +140%
LP64 z3* ✅ 1s 5s -80%
unpack_sk LP64 cadical ⚠️ 53s 3s +1667%
LP64 z3* ✅ 2s 3s -33%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ⚠️ 87s 2s +4250%
LP64 z3* ✅ 5s 2s +150%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ⚠️ 154s 4s +3750%
LP64 z3* ✅ 4s 4s +0%
unpack_sk_t0hat LP64 cadical ⚠️ 96s 5s +1820%
LP64 z3* ✅ 2s 5s -60%
use_hint LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
yvec_get_poly LP64 bitwuzla ⚠️ 33s 3s +1000%
LP64 z3* ✅ 3s 3s +0%
yvec_init LP64 bitwuzla ✅ 9s 3s +200%
LP64 z3* ✅ 1s 3s -67%

@oqs-bot

oqs-bot commented Oct 25, 2026

Copy link
Copy Markdown
Contributor

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

* default.

⚠️ Attention Required

Proof DM Solver Status Current Previous Change
compute_pack_t0_t1 LP64 z3_no_bv_extract* ⚠️ 40s 7s +471%
intt_native_aarch64 LP64 bitwuzla ⚠️ 22s 2s +1000%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ⚠️ 199s 31s +542%
mld_compute_pack_z LP64 cadical ⚠️ 40s 5s +700%
mld_ct_memcmp LP64 z3_no_bv_extract ⚠️ 85s 4s +2025%
mld_ntt_butterfly_block LP64 z3_no_bv_extract ⚠️ 118s 25s +372%
nttunpack_native_x86_64 LP64 bitwuzla ⚠️ 188s 3s +6167%
pointwise_acc_native_x86_64 LP64 cadical ⚠️ 89s 5s +1680%
pointwise_native_aarch64 LP64 bitwuzla ⚠️ 22s 3s +633%
pointwise_native_x86_64 LP64 bitwuzla ⚠️ 26s 2s +1200%
poly_add LP64 cadical ⚠️ 51s 7s +629%
poly_caddq_c LP64 bitwuzla ⚠️ 21s 5s +320%
poly_caddq_native LP64 bitwuzla ⚠️ 119s 4s +2875%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ⚠️ 34s 2s +1600%
poly_caddq_native_x86_64 LP64 bitwuzla ⚠️ 129s 1s +12800%
poly_challenge LP64 bitwuzla ⚠️ 24s 5s +380%
poly_invntt_tomont_c LP64 bitwuzla ⚠️ 159s 10s +1490%
poly_invntt_tomont_native LP64 bitwuzla ⚠️ 48s 5s +860%
poly_ntt_c LP64 bitwuzla ⚠️ 50s 22s +127%
poly_ntt_native LP64 bitwuzla ⚠️ 26s 2s +1200%
poly_pointwise_montgomery_c LP64 bitwuzla ⚠️ 189s 116s +63%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ⚠️ 52s 4s +1200%
poly_power2round LP64 bitwuzla ⚠️ 261s 7s +3629%
poly_uniform LP64 bitwuzla ⚠️ 154s 2s +7600%
poly_uniform_eta LP64 bitwuzla ⚠️ 148s 5s +2860%
poly_use_hint LP64 cvc5_mbqi_enum ⚠️ 27s 3s +800%
poly_use_hint_native LP64 cvc5_mbqi_enum ⚠️ 95s 7s +1257%
poly_use_hint_native_aarch64 LP64 bitwuzla ⚠️ 31s 4s +675%
polyveck_caddq LP64 cadical ⚠️ 212s 7s +2929%
polyveck_invntt_tomont LP64 cadical ⚠️ 244s 7s +3386%
polyveck_reduce LP64 cadical ⚠️ 214s 6s +3467%
polyvecl_ntt LP64 cadical ⚠️ 207s 7s +2857%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ⚠️ 33s 2s +1550%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ⚠️ 34s 1s +3300%
polyz_unpack_native LP64 bitwuzla ⚠️ 27s 3s +800%
sig_unpack_hints LP64 bitwuzla ⚠️ 1321s 1s +132000%
sign_pk_from_sk LP64 z3_no_bv_extract* ⚠️ 33s 5s +560%
sign_signature_extmu LP64 cadical ⚠️ 35s 4s +775%
sign_signature_pre_hash_shake256 LP64 bitwuzla ⚠️ 359s 7s +5029%
sign_verify_internal LP64 z3_no_bv_extract* ⚠️ 233s 71s +228%
Full Results (423 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ✅ 1456s 1482s -1.8%
caddq LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ⚠️ 40s 7s +471%
decompose LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 4s -50%
fqmul LP64 bitwuzla* ✅ 24s 40s -40%
LP64 z3_smt_only ✅ 23s 40s -43%
fqscale LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3 ✅ 3s 3s +0%
intt_native_aarch64 LP64 bitwuzla ⚠️ 22s 2s +1000%
LP64 z3* ✅ 3s 2s +50%
intt_native_rv32im_fastmul ILP32 z3* ✅ 4s - new
LP64 cvc5_mbqi_enum ✅ 9s - new
LP64 z3 ✅ 2s - new
intt_native_rv32im_slowmul ILP32 z3* ✅ 3s - new
LP64 cvc5_mbqi_enum ✅ 7s - new
LP64 z3 ✅ 1s - new
intt_native_x86_64 LP64 bitwuzla ✅ 16s 4s +300%
LP64 z3* ✅ 3s 4s -25%
keccak_absorb LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 3s 3s +0%
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 6s 10s -40%
LP64 cvc5_arrays_exp ✅ 7s 10s -30%
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* ✅ 3s 2s +50%
LP64 cvc5_arrays_exp ✅ 2s 2s +0%
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 3s 2s +50%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_smt_only ✅ 1s 3s -67%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3_smt_only ✅ 2s 3s -33%
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 1s 2s -50%
LP64 cvc5_arrays_exp ✅ 3s 2s +50%
keccak_finalize LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
keccak_init LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 4s -50%
keccak_squeeze LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 1s 2s -50%
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 7s 4s +75%
LP64 z3 ✅ 3s 4s -25%
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 4s 3s +33%
LP64 z3* ✅ 2s 3s -33%
keccakf1600_permute LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 3s 4s -25%
keccakf1600_permute_native LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 3s 4s -25%
LP64 cvc5_arrays_exp ✅ 2s 4s -50%
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 1s 2s -50%
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 2s 4s -50%
LP64 z3 ✅ 1s 4s -75%
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3 ✅ 2s 1s +100%
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 1s 1s +0%
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 13s 22s -41%
LP64 z3* ✅ 12s 22s -45%
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 1s 2s -50%
LP64 cvc5_arrays_exp ✅ 1s 2s -50%
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_no_bv_extract ✅ 2s 2s +0%
make_hint LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ⚠️ 199s 31s +542%
mld_check_pct LP64 bitwuzla ✅ 5s 12s -58%
LP64 z3* ✅ 4s 12s -67%
mld_compute_pack_z LP64 cadical ⚠️ 40s 5s +700%
LP64 z3_no_bv_extract* ✅ 4s 5s -20%
mld_ct_abs_i32 ILP32 bitwuzla ✅ 3s 6s -50%
ILP32 cvc5_arrays_exp ✅ 2s 6s -67%
ILP32 z3 ✅ 2s 6s -67%
LP64 bitwuzla ✅ 1s 6s -83%
LP64 cvc5_arrays_exp ✅ 1s 6s -83%
LP64 z3* ✅ 2s 6s -67%
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 3s 3s +0%
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 2s 3s -33%
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 1s 1s +0%
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 1s 3s -67%
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 1s 4s -75%
LP64 z3_smt_only ✅ 3s 4s -25%
mld_ct_memcmp LP64 bitwuzla* ✅ 3s 4s -25%
LP64 z3_no_bv_extract ⚠️ 85s 4s +2025%
mld_ct_sel_int32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
mld_h LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 2s 3s -33%
mld_invntt_layer LP64 bitwuzla* ✅ 66s 108s -39%
LP64 z3_smt_only ✅ 76s 108s -30%
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 1s 2s -50%
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 4s 7s -43%
LP64 z3* ✅ 4s 7s -43%
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 11s 25s -56%
LP64 z3_no_bv_extract ⚠️ 118s 25s +372%
mld_ntt_layer LP64 bitwuzla* ✅ 25s 43s -42%
LP64 z3_no_bv_extract ✅ 2s 43s -95%
mld_polymat_expand_entry LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 1s 3s -67%
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 4s -50%
mld_sample_pack_s1_s2 LP64 cadical ✅ 55s - new
LP64 z3* ✅ 7s - new
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ✅ 232s - new
LP64 z3* ✅ 3s - new
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 1s - new
LP64 z3* ✅ 1s - new
mld_sign_finish LP64 bitwuzla ✅ 5s - new
LP64 z3* ✅ 4s - new
mld_sign_resume LP64 bitwuzla ✅ 4s - new
LP64 z3* ✅ 2s - new
mld_value_barrier_i64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
mld_value_barrier_u32 LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 4s -50%
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 2s 1s +100%
montgomery_reduce LP64 cvc5_arrays_exp ✅ 4s 1s +300%
LP64 z3* ✅ 2s 1s +100%
ntt_native_aarch64 LP64 bitwuzla ✅ 19s 3s +533%
LP64 z3* ✅ 3s 3s +0%
ntt_native_rv32im_fastmul ILP32 z3* ✅ 5s - new
LP64 cvc5_mbqi_enum ✅ 7s - new
LP64 z3 ✅ 4s - new
ntt_native_rv32im_slowmul ILP32 z3* ✅ 3s - new
LP64 cvc5_mbqi_enum ✅ 5s - new
LP64 z3 ✅ 2s - new
ntt_native_x86_64 LP64 bitwuzla ✅ 17s 5s +240%
LP64 z3* ✅ 1s 5s -80%
nttunpack_native_x86_64 LP64 bitwuzla ⚠️ 188s 3s +6167%
LP64 z3* ✅ 4s 3s +33%
pack_sig_c LP64 cvc5_arrays_exp ✅ 5s 3s +67%
LP64 z3* ✅ 2s 3s -33%
pack_sig_h LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3_no_bv_extract* ✅ 2s 2s +0%
pack_sig_z LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 1s 1s +0%
pack_sk_rho_key_tr LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
pointwise_acc_native_aarch64 LP64 z3_smt_only* ✅ 2s 6s -67%
pointwise_acc_native_x86_64 LP64 cadical ⚠️ 89s 5s +1680%
LP64 z3_smt_only* ✅ 4s 5s -20%
pointwise_native_aarch64 LP64 bitwuzla ⚠️ 22s 3s +633%
LP64 z3* ✅ 2s 3s -33%
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 2s - new
LP64 cvc5_mbqi_enum ✅ 10s - new
LP64 z3 ✅ 1s - new
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 4s - new
LP64 cvc5_mbqi_enum ✅ 8s - new
LP64 z3 ✅ 3s - new
pointwise_native_x86_64 LP64 bitwuzla ⚠️ 26s 2s +1200%
LP64 z3* ✅ 3s 2s +50%
poly_add LP64 cadical ⚠️ 51s 7s +629%
LP64 z3* ✅ 11s 7s +57%
poly_caddq LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
poly_caddq_c LP64 bitwuzla ⚠️ 21s 5s +320%
LP64 z3* ✅ 4s 5s -20%
poly_caddq_native LP64 bitwuzla ⚠️ 119s 4s +2875%
LP64 z3* ✅ 1s 4s -75%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ⚠️ 34s 2s +1600%
LP64 z3* ✅ 2s 2s +0%
poly_caddq_native_x86_64 LP64 bitwuzla ⚠️ 129s 1s +12800%
LP64 z3* ✅ 2s 1s +100%
poly_challenge LP64 bitwuzla ⚠️ 24s 5s +380%
LP64 z3* ✅ 2s 5s -60%
poly_chknorm LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 2s 3s -33%
poly_chknorm_c LP64 bitwuzla ✅ 8s 13s -38%
LP64 z3* ✅ 7s 13s -46%
poly_chknorm_native LP64 bitwuzla ✅ 6s 4s +50%
LP64 z3* ✅ 3s 4s -25%
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 4s -50%
poly_decompose LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 2s 2s +0%
poly_decompose_32_native_aarch64 LP64 cadical ✅ 9s 4s +125%
LP64 z3* ✅ 3s 4s -25%
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
poly_decompose_c LP64 z3* ✅ 4s 8s -50%
poly_decompose_native LP64 cadical ✅ 14s 5s +180%
LP64 z3* ✅ 2s 5s -60%
poly_decompose_native_x86_64 LP64 cadical ✅ 9s 2s +350%
LP64 z3* ✅ 2s 2s +0%
poly_invntt_tomont LP64 bitwuzla ✅ 6s 5s +20%
LP64 z3* ✅ 1s 5s -80%
poly_invntt_tomont_c LP64 bitwuzla ⚠️ 159s 10s +1490%
LP64 z3_smt_only* ✅ 8s 10s -20%
poly_invntt_tomont_native LP64 bitwuzla ⚠️ 48s 5s +860%
LP64 z3* ✅ 3s 5s -40%
poly_ntt LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 3s 2s +50%
poly_ntt_c LP64 bitwuzla ⚠️ 50s 22s +127%
LP64 z3_smt_only* ✅ 13s 22s -41%
poly_ntt_native LP64 bitwuzla ⚠️ 26s 2s +1200%
LP64 z3* ✅ 3s 2s +50%
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 4s 3s +33%
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 2s 3s -33%
poly_pointwise_montgomery LP64 bitwuzla ✅ 12s 2s +500%
LP64 z3* ✅ 2s 2s +0%
poly_pointwise_montgomery_c LP64 bitwuzla ⚠️ 189s 116s +63%
LP64 z3* ✅ 81s 116s -30%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ⚠️ 52s 4s +1200%
LP64 z3* ✅ 1s 4s -75%
poly_power2round LP64 bitwuzla ⚠️ 261s 7s +3629%
LP64 z3* ✅ 4s 7s -43%
poly_reduce LP64 bitwuzla ✅ 9s 4s +125%
LP64 z3* ✅ 2s 4s -50%
poly_shiftl LP64 bitwuzla ✅ 11s 3s +267%
LP64 z3* ✅ 1s 3s -67%
poly_sub LP64 bitwuzla ✅ 13s 4s +225%
LP64 z3* ✅ 2s 4s -50%
poly_uniform LP64 bitwuzla ⚠️ 154s 2s +7600%
LP64 z3* ✅ 3s 2s +50%
poly_uniform_4x LP64 z3* ✅ 2s 4s -50%
poly_uniform_eta LP64 bitwuzla ⚠️ 148s 5s +2860%
LP64 z3* ✅ 3s 5s -40%
poly_uniform_eta_4x LP64 z3* ✅ 9s 13s -31%
poly_uniform_gamma1 LP64 cadical ✅ 4s 3s +33%
LP64 z3* ✅ 3s 3s +0%
poly_uniform_gamma1_4x LP64 cadical ✅ 5s 3s +67%
LP64 z3* ✅ 3s 3s +0%
poly_use_hint LP64 cvc5_mbqi_enum ⚠️ 27s 3s +800%
LP64 z3* ✅ 1s 3s -67%
poly_use_hint_c LP64 cvc5_enum_inst ✅ 12s 2s +500%
LP64 z3* ✅ 2s 2s +0%
poly_use_hint_native LP64 cvc5_mbqi_enum ⚠️ 95s 7s +1257%
LP64 z3* ✅ 1s 7s -86%
poly_use_hint_native_aarch64 LP64 bitwuzla ⚠️ 31s 4s +675%
LP64 z3* ✅ 3s 4s -25%
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 28s - new
LP64 z3* ✅ 3s - new
polyeta_pack LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 4s 1s +300%
polyeta_unpack LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 4s -50%
polyt0_pack LP64 bitwuzla ✅ 7s 5s +40%
LP64 z3* ✅ 5s 5s +0%
polyt0_unpack LP64 bitwuzla ✅ 3s 13s -77%
LP64 z3* ✅ 8s 13s -38%
polyt1_pack LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
polyt1_unpack LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 4s 3s +33%
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 2s 6s -67%
polyvec_matrix_expand_serial LP64 z3* ✅ 1s 3s -67%
polyvec_matrix_pointwise_montgomery_row LP64 z3_no_bv_extract* ✅ 4s 8s -50%
polyvec_matrix_pointwise_montgomery_yvec LP64 z3* ✅ 130s 201s -35%
polyveck_caddq LP64 cadical ⚠️ 212s 7s +2929%
LP64 z3* ✅ 2s 7s -71%
polyveck_decompose_pack_w1 LP64 cadical ✅ 183s - new
LP64 z3* ✅ 3s - new
polyveck_invntt_tomont LP64 cadical ⚠️ 244s 7s +3386%
LP64 z3* ✅ 3s 7s -57%
polyveck_ntt LP64 cadical ✅ 3s 4s -25%
LP64 z3* ✅ 2s 4s -50%
polyveck_reduce LP64 cadical ⚠️ 214s 6s +3467%
LP64 z3* ✅ 2s 6s -67%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ✅ 3s 3s +0%
LP64 z3* ✅ 3s 3s +0%
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 18s - new
LP64 z3* ✅ 2s - new
polyvecl_chknorm LP64 z3* ✅ 2s 43s -95%
polyvecl_ntt LP64 cadical ⚠️ 207s 7s +2857%
LP64 z3* ✅ 3s 7s -57%
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 2s 3s -33%
LP64 z3_smt_only* ✅ 1s 3s -67%
polyvecl_pointwise_acc_montgomery_c LP64 z3* ✅ 2s 3s -33%
polyvecl_pointwise_acc_montgomery_native LP64 cvc5_mbqi_enum ✅ 4s 3s +33%
LP64 z3_smt_only* ✅ 2s 3s -33%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ✅ 1s 4s -75%
LP64 z3* ✅ 2s 4s -50%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ✅ 1s 1s +0%
LP64 z3* ✅ 1s 1s +0%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ⚠️ 33s 2s +1550%
LP64 z3* ✅ 3s 2s +50%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ⚠️ 34s 1s +3300%
LP64 z3* ✅ 2s 1s +100%
polyw1_pack LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 3s 3s +0%
polyw1_pack_32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
polyw1_pack_88 LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 2s 3s -33%
polyw1_unpack LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 6s - new
polyw1_unpack_32 LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 3s - new
polyw1_unpack_88 LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 2s - new
polyz_pack LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 3s +0%
polyz_unpack LP64 bitwuzla ✅ 6s 3s +100%
LP64 z3* ✅ 2s 3s -33%
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 1s 5s -80%
LP64 z3* ✅ 2s 5s -60%
polyz_unpack_c LP64 bitwuzla ✅ 2s 9s -78%
LP64 z3* ✅ 4s 9s -56%
polyz_unpack_native LP64 bitwuzla ⚠️ 27s 3s +800%
LP64 z3* ✅ 2s 3s -33%
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 15s 3s +400%
LP64 z3* ✅ 3s 3s +0%
power2round LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
reduce32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
rej_eta LP64 bitwuzla* ✅ 1s 5s -80%
LP64 z3_smt_only ✅ 1s 5s -80%
rej_eta_c LP64 bitwuzla* ✅ 3s 4s -25%
LP64 z3 ✅ 16s 4s +300%
rej_eta_native LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_smt_only ✅ 10s 3s +233%
rej_uniform LP64 bitwuzla ✅ 3s 7s -57%
LP64 z3* ✅ 4s 7s -43%
rej_uniform_c LP64 bitwuzla ✅ 2s 16s -88%
LP64 z3* ✅ 8s 16s -50%
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 2s 5s -60%
LP64 z3_smt_only ✅ 1s 5s -80%
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 2s - new
LP64 z3_smt_only* ✅ 3s - new
rej_uniform_native LP64 bitwuzla* ✅ 1s 4s -75%
LP64 z3_smt_only ✅ 18s 4s +350%
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 2s 5s -60%
LP64 z3_smt_only ✅ 1s 5s -80%
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 4s - new
LP64 z3_smt_only* ✅ 9s - new
shake128_absorb LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
shake128_finalize LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
shake128_init LP64 bitwuzla ✅ 3s 6s -50%
LP64 z3* ✅ 1s 6s -83%
shake128_release LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
shake128_squeeze LP64 bitwuzla* ✅ 2s 3s -33%
LP64 cvc5_arrays_exp ✅ 3s 3s +0%
shake128x4_absorb_once LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3_smt_only ✅ 1s 2s -50%
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3 ✅ 3s 2s +50%
shake256 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
shake256_absorb LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 4s -50%
shake256_finalize LP64 cvc5_arrays_exp ✅ 3s 1s +200%
LP64 z3* ✅ 2s 1s +100%
shake256_init LP64 cvc5_arrays_exp ✅ 2s 4s -50%
LP64 z3* ✅ 2s 4s -50%
shake256_release LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 1s 3s -67%
shake256_squeeze LP64 bitwuzla* ✅ 1s 4s -75%
LP64 z3 ✅ 2s 4s -50%
shake256x4_absorb_once LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 1s 2s -50%
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3_smt_only ✅ 2s 2s +0%
sig_unpack_hints LP64 bitwuzla ⚠️ 1321s 1s +132000%
LP64 z3* ✅ 15s 1s +1400%
sign_keypair LP64 z3* ✅ 5s 4s +25%
sign_keypair_internal LP64 z3_no_bv_extract* ✅ 18s 3s +500%
sign_pk_from_sk LP64 z3_no_bv_extract* ⚠️ 33s 5s +560%
sign_signature LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3* ✅ 3s 5s -40%
sign_signature_extmu LP64 cadical ⚠️ 35s 4s +775%
LP64 z3* ✅ 6s 4s +50%
sign_signature_internal LP64 z3_no_bv_extract* ✅ 13s 6s +117%
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 5s 3s +67%
sign_signature_pre_hash_shake256 LP64 bitwuzla ⚠️ 359s 7s +5029%
LP64 z3* ✅ 5s 7s -29%
sign_verify LP64 bitwuzla ✅ 1s 6s -83%
LP64 z3* ✅ 3s 6s -50%
sign_verify_extmu LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
sign_verify_internal LP64 z3_no_bv_extract* ⚠️ 233s 71s +228%
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 3s 5s -40%
LP64 z3* ✅ 4s 5s -20%
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 4s 6s -33%
LP64 z3* ✅ 3s 6s -50%
sk_s1hat_get_poly LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 3s -33%
sk_s2hat_get_poly LP64 bitwuzla ✅ 5s 1s +400%
LP64 z3* ✅ 1s 1s +0%
sk_t0hat_get_poly LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 1s +200%
sys_check_capability LP64 cvc5_arrays_exp ✅ 3s 1s +200%
LP64 z3* ✅ 4s 1s +300%
unpack_pk_t1 LP64 bitwuzla ✅ 13s 2s +550%
LP64 z3* ✅ 1s 2s -50%
unpack_sk LP64 cadical ✅ 2s 3s -33%
LP64 z3* ✅ 3s 3s +0%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ✅ 3s 1s +200%
LP64 z3* ✅ 2s 1s +100%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ✅ 2s 3s -33%
LP64 z3* ✅ 4s 3s +33%
unpack_sk_t0hat LP64 cadical ✅ 3s 4s -25%
LP64 z3* ✅ 3s 4s -25%
use_hint LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
yvec_get_poly LP64 bitwuzla ✅ 7s 3s +133%
LP64 z3* ✅ 3s 3s +0%
yvec_init LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 3s 5s -40%

@oqs-bot

oqs-bot commented Oct 25, 2026

Copy link
Copy Markdown
Contributor

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

* default.

⚠️ Attention Required

Proof DM Solver Status Current Previous Change
compute_pack_t0_t1 LP64 z3_no_bv_extract* ⚠️ 32s 12s +167%
intt_native_aarch64 LP64 bitwuzla ⚠️ 24s 4s +500%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ⚠️ 228s 34s +571%
mld_compute_pack_z LP64 cadical ⚠️ 45s 6s +650%
mld_ct_memcmp LP64 z3_no_bv_extract ⚠️ 85s 1s +8400%
mld_ntt_butterfly_block LP64 z3_no_bv_extract ⚠️ 125s 23s +443%
ntt_native_aarch64 LP64 bitwuzla ⚠️ 23s 4s +475%
nttunpack_native_x86_64 LP64 bitwuzla ⚠️ 175s 3s +5733%
pointwise_acc_native_x86_64 LP64 cadical ❌ - 8s -
pointwise_native_aarch64 LP64 bitwuzla ⚠️ 25s 4s +525%
pointwise_native_x86_64 LP64 bitwuzla ⚠️ 22s 5s +340%
poly_add LP64 cadical ⚠️ 52s 8s +550%
poly_caddq_c LP64 bitwuzla ⚠️ 21s 3s +600%
poly_caddq_native LP64 bitwuzla ⚠️ 120s 3s +3900%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ⚠️ 36s 3s +1100%
poly_caddq_native_x86_64 LP64 bitwuzla ⚠️ 132s 3s +4300%
poly_challenge LP64 bitwuzla ⚠️ 37s 4s +825%
poly_invntt_tomont_c LP64 bitwuzla ⚠️ 157s 9s +1644%
poly_invntt_tomont_native LP64 bitwuzla ⚠️ 51s 2s +2450%
poly_ntt_c LP64 bitwuzla ⚠️ 57s 19s +200%
poly_ntt_native LP64 bitwuzla ⚠️ 30s 4s +650%
poly_pointwise_montgomery_c LP64 bitwuzla ⚠️ 203s 125s +62%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ⚠️ 55s 3s +1733%
poly_power2round LP64 bitwuzla ⚠️ 357s 7s +5000%
poly_uniform LP64 bitwuzla ⚠️ 150s 4s +3650%
poly_uniform_eta LP64 bitwuzla ⚠️ 89s 5s +1680%
poly_use_hint LP64 cvc5_mbqi_enum ⚠️ 24s 4s +500%
poly_use_hint_native LP64 cvc5_mbqi_enum ⚠️ 94s 1s +9300%
poly_use_hint_native_aarch64 LP64 bitwuzla ⚠️ 30s 3s +900%
polyveck_caddq LP64 cadical ⚠️ 403s 8s +4938%
polyveck_invntt_tomont LP64 cadical ⚠️ 347s 4s +8575%
polyveck_reduce LP64 cadical ⚠️ 319s 6s +5217%
polyvecl_ntt LP64 cadical ⚠️ 242s 8s +2925%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ⚠️ 51s 3s +1600%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ⚠️ 45s 3s +1400%
polyz_unpack_native LP64 bitwuzla ⚠️ 27s 1s +2600%
rej_eta_c LP64 z3 ⚠️ 22s 4s +450%
sig_unpack_hints LP64 bitwuzla ⚠️ 24s 4s +500%
LP64 z3* ⚠️ 20s 4s +400%
sign_keypair_internal LP64 z3_no_bv_extract* ⚠️ 26s 6s +333%
sign_pk_from_sk LP64 z3_no_bv_extract* ⚠️ 38s 6s +533%
sign_signature_extmu LP64 cadical ⚠️ 76s 4s +1800%
sign_signature_pre_hash_shake256 LP64 bitwuzla ⚠️ 1607s 3s +53467%
sign_verify_internal LP64 z3_no_bv_extract* ⚠️ 301s 47s +540%
Full Results (423 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ✅ 1596s 1436s +11.1%
caddq LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 3s 3s +0%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ⚠️ 32s 12s +167%
decompose LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
fqmul LP64 bitwuzla* ✅ 26s 39s -33%
LP64 z3_smt_only ✅ 21s 39s -46%
fqscale LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3 ✅ 2s 1s +100%
intt_native_aarch64 LP64 bitwuzla ⚠️ 24s 4s +500%
LP64 z3* ✅ 3s 4s -25%
intt_native_rv32im_fastmul ILP32 z3* ✅ 3s - new
LP64 cvc5_mbqi_enum ✅ 9s - new
LP64 z3 ✅ 1s - new
intt_native_rv32im_slowmul ILP32 z3* ✅ 3s - new
LP64 cvc5_mbqi_enum ✅ 8s - new
LP64 z3 ✅ 2s - new
intt_native_x86_64 LP64 bitwuzla ✅ 18s 4s +350%
LP64 z3* ✅ 2s 4s -50%
keccak_absorb LP64 cvc5_arrays_exp ✅ 4s 4s +0%
LP64 z3* ✅ 2s 4s -50%
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 6s 8s -25%
LP64 cvc5_arrays_exp ✅ 9s 8s +12%
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_no_bv_extract ✅ 2s 2s +0%
keccak_f1600_x1_native_aarch64_v84a LP64 bitwuzla* ✅ 3s 2s +50%
LP64 cvc5_arrays_exp ✅ 3s 2s +50%
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3 ✅ 2s 1s +100%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 2s 2s +0%
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 2s +0%
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 2s 3s -33%
LP64 cvc5_arrays_exp ✅ 1s 3s -67%
keccak_finalize LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 4s 1s +300%
keccak_init LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 4s 1s +300%
keccak_squeeze LP64 bitwuzla* ✅ 3s 5s -40%
LP64 z3 ✅ 2s 5s -60%
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 2s 4s -50%
LP64 z3 ✅ 3s 4s -25%
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 1s 3s -67%
keccakf1600_permute LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
keccakf1600_permute_native LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 3s +0%
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 2s 1s +100%
LP64 cvc5_arrays_exp ✅ 3s 1s +200%
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 1s 2s -50%
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 5s 1s +400%
LP64 z3 ✅ 2s 1s +100%
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 1s 4s -75%
LP64 z3 ✅ 2s 4s -50%
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 12s 25s -52%
LP64 z3* ✅ 14s 25s -44%
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 1s 1s +0%
LP64 cvc5_arrays_exp ✅ 3s 1s +200%
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3_no_bv_extract ✅ 1s 2s -50%
make_hint LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ⚠️ 228s 34s +571%
mld_check_pct LP64 bitwuzla ✅ 6s 15s -60%
LP64 z3* ✅ 6s 15s -60%
mld_compute_pack_z LP64 cadical ⚠️ 45s 6s +650%
LP64 z3_no_bv_extract* ✅ 5s 6s -17%
mld_ct_abs_i32 ILP32 bitwuzla ✅ 1s 1s +0%
ILP32 cvc5_arrays_exp ✅ 1s 1s +0%
ILP32 z3 ✅ 2s 1s +100%
LP64 bitwuzla ✅ 2s 1s +100%
LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 2s 1s +100%
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 2s 5s -60%
LP64 z3* ✅ 3s 5s -40%
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 1s 2s -50%
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 4s 2s +100%
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_smt_only ✅ 1s 3s -67%
mld_ct_memcmp LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3_no_bv_extract ⚠️ 85s 1s +8400%
mld_ct_sel_int32 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
mld_h LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
mld_invntt_layer LP64 bitwuzla* ✅ 69s 111s -38%
LP64 z3_smt_only ✅ 77s 111s -31%
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3* ✅ 2s 1s +100%
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 5s 8s -38%
LP64 z3* ✅ 5s 8s -38%
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 3s 3s +0%
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 1s +200%
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 12s 23s -48%
LP64 z3_no_bv_extract ⚠️ 125s 23s +443%
mld_ntt_layer LP64 bitwuzla* ✅ 28s 44s -36%
LP64 z3_no_bv_extract ✅ 4s 44s -91%
mld_polymat_expand_entry LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 4s -50%
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 1s 3s -67%
mld_sample_pack_s1_s2 LP64 cadical ✅ 93s - new
LP64 z3* ✅ 6s - new
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ✅ 547s - new
LP64 z3* ✅ 5s - new
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 4s - new
mld_sign_finish LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 1s - new
mld_sign_resume LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 4s - new
mld_value_barrier_i64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
mld_value_barrier_u32 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 3s -33%
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
montgomery_reduce LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 1s 2s -50%
ntt_native_aarch64 LP64 bitwuzla ⚠️ 23s 4s +475%
LP64 z3* ✅ 3s 4s -25%
ntt_native_rv32im_fastmul ILP32 z3* ✅ 2s - new
LP64 cvc5_mbqi_enum ✅ 6s - new
LP64 z3 ✅ 3s - new
ntt_native_rv32im_slowmul ILP32 z3* ✅ 2s - new
LP64 cvc5_mbqi_enum ✅ 7s - new
LP64 z3 ✅ 1s - new
ntt_native_x86_64 LP64 bitwuzla ✅ 19s 2s +850%
LP64 z3* ✅ 7s 2s +250%
nttunpack_native_x86_64 LP64 bitwuzla ⚠️ 175s 3s +5733%
LP64 z3* ✅ 2s 3s -33%
pack_sig_c LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
pack_sig_h LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3_no_bv_extract* ✅ 1s 3s -67%
pack_sig_z LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
pack_sk_rho_key_tr LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 4s - new
pointwise_acc_native_aarch64 LP64 z3_smt_only* ✅ 5s 5s +0%
pointwise_acc_native_x86_64 LP64 cadical ❌ - 8s -
LP64 z3_smt_only* ✅ 3s 8s -62%
pointwise_native_aarch64 LP64 bitwuzla ⚠️ 25s 4s +525%
LP64 z3* ✅ 2s 4s -50%
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 2s - new
LP64 cvc5_mbqi_enum ✅ 8s - new
LP64 z3 ✅ 4s - new
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 2s - new
LP64 cvc5_mbqi_enum ✅ 8s - new
LP64 z3 ✅ 3s - new
pointwise_native_x86_64 LP64 bitwuzla ⚠️ 22s 5s +340%
LP64 z3* ✅ 4s 5s -20%
poly_add LP64 cadical ⚠️ 52s 8s +550%
LP64 z3* ✅ 10s 8s +25%
poly_caddq LP64 bitwuzla ✅ 3s 5s -40%
LP64 z3* ✅ 2s 5s -60%
poly_caddq_c LP64 bitwuzla ⚠️ 21s 3s +600%
LP64 z3* ✅ 4s 3s +33%
poly_caddq_native LP64 bitwuzla ⚠️ 120s 3s +3900%
LP64 z3* ✅ 2s 3s -33%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ⚠️ 36s 3s +1100%
LP64 z3* ✅ 3s 3s +0%
poly_caddq_native_x86_64 LP64 bitwuzla ⚠️ 132s 3s +4300%
LP64 z3* ✅ 1s 3s -67%
poly_challenge LP64 bitwuzla ⚠️ 37s 4s +825%
LP64 z3* ✅ 2s 4s -50%
poly_chknorm LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 3s 4s -25%
poly_chknorm_c LP64 bitwuzla ✅ 9s 13s -31%
LP64 z3* ✅ 6s 13s -54%
poly_chknorm_native LP64 bitwuzla ✅ 6s 1s +500%
LP64 z3* ✅ 4s 1s +300%
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 3s 5s -40%
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 3s 2s +50%
poly_decompose LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 3s 2s +50%
poly_decompose_32_native_aarch64 LP64 cadical ✅ 11s 3s +267%
LP64 z3* ✅ 3s 3s +0%
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
poly_decompose_c LP64 z3* ✅ 5s 6s -17%
poly_decompose_native LP64 cadical ✅ 15s 2s +650%
LP64 z3* ✅ 4s 2s +100%
poly_decompose_native_x86_64 LP64 cadical ✅ 11s 3s +267%
LP64 z3* ✅ 3s 3s +0%
poly_invntt_tomont LP64 bitwuzla ✅ 6s 4s +50%
LP64 z3* ✅ 3s 4s -25%
poly_invntt_tomont_c LP64 bitwuzla ⚠️ 157s 9s +1644%
LP64 z3_smt_only* ✅ 7s 9s -22%
poly_invntt_tomont_native LP64 bitwuzla ⚠️ 51s 2s +2450%
LP64 z3* ✅ 2s 2s +0%
poly_ntt LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 1s 2s -50%
poly_ntt_c LP64 bitwuzla ⚠️ 57s 19s +200%
LP64 z3_smt_only* ✅ 10s 19s -47%
poly_ntt_native LP64 bitwuzla ⚠️ 30s 4s +650%
LP64 z3* ✅ 6s 4s +50%
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
poly_pointwise_montgomery LP64 bitwuzla ✅ 12s 3s +300%
LP64 z3* ✅ 2s 3s -33%
poly_pointwise_montgomery_c LP64 bitwuzla ⚠️ 203s 125s +62%
LP64 z3* ✅ 84s 125s -33%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ⚠️ 55s 3s +1733%
LP64 z3* ✅ 2s 3s -33%
poly_power2round LP64 bitwuzla ⚠️ 357s 7s +5000%
LP64 z3* ✅ 3s 7s -57%
poly_reduce LP64 bitwuzla ✅ 7s 4s +75%
LP64 z3* ✅ 2s 4s -50%
poly_shiftl LP64 bitwuzla ✅ 11s 4s +175%
LP64 z3* ✅ 3s 4s -25%
poly_sub LP64 bitwuzla ✅ 15s 5s +200%
LP64 z3* ✅ 2s 5s -60%
poly_uniform LP64 bitwuzla ⚠️ 150s 4s +3650%
LP64 z3* ✅ 4s 4s +0%
poly_uniform_4x LP64 z3* ✅ 3s 3s +0%
poly_uniform_eta LP64 bitwuzla ⚠️ 89s 5s +1680%
LP64 z3* ✅ 6s 5s +20%
poly_uniform_eta_4x LP64 z3* ✅ 8s 12s -33%
poly_uniform_gamma1 LP64 cadical ✅ 2s 3s -33%
LP64 z3* ✅ 3s 3s +0%
poly_uniform_gamma1_4x LP64 cadical ✅ 3s 3s +0%
LP64 z3* ✅ 1s 3s -67%
poly_use_hint LP64 cvc5_mbqi_enum ⚠️ 24s 4s +500%
LP64 z3* ✅ 3s 4s -25%
poly_use_hint_c LP64 cvc5_enum_inst ✅ 12s 4s +200%
LP64 z3* ✅ 5s 4s +25%
poly_use_hint_native LP64 cvc5_mbqi_enum ⚠️ 94s 1s +9300%
LP64 z3* ✅ 2s 1s +100%
poly_use_hint_native_aarch64 LP64 bitwuzla ⚠️ 30s 3s +900%
LP64 z3* ✅ 2s 3s -33%
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 32s - new
LP64 z3* ✅ 3s - new
polyeta_pack LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 3s 3s +0%
polyeta_unpack LP64 bitwuzla ✅ 2s 13s -85%
LP64 z3* ✅ 8s 13s -38%
polyt0_pack LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 4s 3s +33%
polyt0_unpack LP64 bitwuzla ✅ 2s 14s -86%
LP64 z3* ✅ 7s 14s -50%
polyt1_pack LP64 bitwuzla ✅ 3s 5s -40%
LP64 z3* ✅ 5s 5s +0%
polyt1_unpack LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 4s 3s +33%
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 2s 3s -33%
polyvec_matrix_expand_serial LP64 z3* ✅ 2s 3s -33%
polyvec_matrix_pointwise_montgomery_row LP64 z3_no_bv_extract* ✅ 5s 13s -62%
polyvec_matrix_pointwise_montgomery_yvec LP64 z3* ✅ 102s 196s -48%
polyveck_caddq LP64 cadical ⚠️ 403s 8s +4938%
LP64 z3* ✅ 4s 8s -50%
polyveck_decompose_pack_w1 LP64 cadical ✅ 239s - new
LP64 z3* ✅ 5s - new
polyveck_invntt_tomont LP64 cadical ⚠️ 347s 4s +8575%
LP64 z3* ✅ 2s 4s -50%
polyveck_ntt LP64 cadical ✅ 3s 3s +0%
LP64 z3* ✅ 3s 3s +0%
polyveck_reduce LP64 cadical ⚠️ 319s 6s +5217%
LP64 z3* ✅ 3s 6s -50%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ✅ 4s 3s +33%
LP64 z3* ✅ 2s 3s -33%
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 19s - new
LP64 z3* ✅ 2s - new
polyvecl_chknorm LP64 z3* ✅ 4s 38s -89%
polyvecl_ntt LP64 cadical ⚠️ 242s 8s +2925%
LP64 z3* ✅ 3s 8s -62%
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 2s 2s +0%
LP64 z3_smt_only* ✅ 3s 2s +50%
polyvecl_pointwise_acc_montgomery_c LP64 z3* ✅ 1s 2s -50%
polyvecl_pointwise_acc_montgomery_native LP64 cvc5_mbqi_enum ✅ 2s 2s +0%
LP64 z3_smt_only* ✅ 3s 2s +50%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ✅ 2s 3s -33%
LP64 z3* ✅ 1s 3s -67%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ✅ 2s 2s +0%
LP64 z3* ✅ 4s 2s +100%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ⚠️ 51s 3s +1600%
LP64 z3* ✅ 2s 3s -33%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ⚠️ 45s 3s +1400%
LP64 z3* ✅ 2s 3s -33%
polyw1_pack LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 1s 2s -50%
polyw1_pack_32 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 1s 3s -67%
polyw1_pack_88 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
polyw1_unpack LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
polyw1_unpack_32 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 3s - new
polyw1_unpack_88 LP64 bitwuzla ✅ 1s - new
LP64 z3* ✅ 2s - new
polyz_pack LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 4s -50%
polyz_unpack LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 4s 3s +33%
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 4s -50%
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 2s 5s -60%
polyz_unpack_c LP64 bitwuzla ✅ 3s 7s -57%
LP64 z3* ✅ 5s 7s -29%
polyz_unpack_native LP64 bitwuzla ⚠️ 27s 1s +2600%
LP64 z3* ✅ 2s 1s +100%
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 16s 3s +433%
LP64 z3* ✅ 4s 3s +33%
power2round LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 1s 3s -67%
reduce32 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 3s 3s +0%
rej_eta LP64 bitwuzla* ✅ 4s 2s +100%
LP64 z3_smt_only ✅ 3s 2s +50%
rej_eta_c LP64 bitwuzla* ✅ 3s 4s -25%
LP64 z3 ⚠️ 22s 4s +450%
rej_eta_native LP64 bitwuzla* ✅ 2s 4s -50%
LP64 z3_smt_only ✅ 13s 4s +225%
rej_uniform LP64 bitwuzla ✅ 1s 7s -86%
LP64 z3* ✅ 4s 7s -43%
rej_uniform_c LP64 bitwuzla ✅ 2s 18s -89%
LP64 z3* ✅ 10s 18s -44%
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_smt_only ✅ 3s 3s +0%
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 3s - new
LP64 z3_smt_only* ✅ 4s - new
rej_uniform_native LP64 bitwuzla* ✅ 4s 5s -20%
LP64 z3_smt_only ✅ 18s 5s +260%
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_smt_only ✅ 2s 3s -33%
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 3s - new
LP64 z3_smt_only* ✅ 10s - new
shake128_absorb LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 4s 2s +100%
shake128_finalize LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
shake128_init LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
shake128_release LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 3s -33%
shake128_squeeze LP64 bitwuzla* ✅ 3s 1s +200%
LP64 cvc5_arrays_exp ✅ 1s 1s +0%
shake128x4_absorb_once LP64 bitwuzla* ✅ 2s 4s -50%
LP64 z3_smt_only ✅ 1s 4s -75%
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3 ✅ 2s 1s +100%
shake256 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 3s -33%
shake256_absorb LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 1s 3s -67%
shake256_finalize LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
shake256_init LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 1s 3s -67%
shake256_release LP64 bitwuzla ✅ 1s 5s -80%
LP64 z3* ✅ 1s 5s -80%
shake256_squeeze LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 3s 2s +50%
shake256x4_absorb_once LP64 bitwuzla* ✅ 3s 5s -40%
LP64 z3 ✅ 2s 5s -60%
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 3s 4s -25%
LP64 z3_smt_only ✅ 1s 4s -75%
sig_unpack_hints LP64 bitwuzla ⚠️ 24s 4s +500%
LP64 z3* ⚠️ 20s 4s +400%
sign_keypair LP64 z3* ✅ 4s 4s +0%
sign_keypair_internal LP64 z3_no_bv_extract* ⚠️ 26s 6s +333%
sign_pk_from_sk LP64 z3_no_bv_extract* ⚠️ 38s 6s +533%
sign_signature LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 4s -50%
sign_signature_extmu LP64 cadical ⚠️ 76s 4s +1800%
LP64 z3* ✅ 3s 4s -25%
sign_signature_internal LP64 z3_no_bv_extract* ✅ 16s 3s +433%
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 4s 2s +100%
sign_signature_pre_hash_shake256 LP64 bitwuzla ⚠️ 1607s 3s +53467%
LP64 z3* ✅ 4s 3s +33%
sign_verify LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
sign_verify_extmu LP64 bitwuzla ✅ 5s 4s +25%
LP64 z3* ✅ 3s 4s -25%
sign_verify_internal LP64 z3_no_bv_extract* ⚠️ 301s 47s +540%
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 3s +0%
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 2s 7s -71%
LP64 z3* ✅ 4s 7s -43%
sk_s1hat_get_poly LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 1s 3s -67%
sk_s2hat_get_poly LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
sk_t0hat_get_poly LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 3s +0%
sys_check_capability LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
unpack_pk_t1 LP64 bitwuzla ✅ 12s 2s +500%
LP64 z3* ✅ 1s 2s -50%
unpack_sk LP64 cadical ✅ 2s 4s -50%
LP64 z3* ✅ 3s 4s -25%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ✅ 2s 3s -33%
LP64 z3* ✅ 3s 3s +0%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ✅ 3s 3s +0%
LP64 z3* ✅ 2s 3s -33%
unpack_sk_t0hat LP64 cadical ✅ 4s 4s +0%
LP64 z3* ✅ 3s 4s -25%
use_hint LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
yvec_get_poly LP64 bitwuzla ✅ 8s 2s +300%
LP64 z3* ✅ 3s 2s +50%
yvec_init LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 4s 4s +0%

@oqs-bot

oqs-bot commented Oct 25, 2026

Copy link
Copy Markdown
Contributor

CBMC Results (ML-DSA-87)

* default.

⚠️ Attention Required

Proof DM Solver Status Current Previous Change
**TOTAL** - - ⚠️ 3602s 2151s +67.5%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ⚠️ 276s 19s +1353%
intt_native_aarch64 LP64 bitwuzla ⚠️ 27s 3s +800%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ⚠️ 379s 55s +589%
mld_compute_pack_z LP64 cadical ⚠️ 99s 8s +1138%
mld_ct_memcmp LP64 z3_no_bv_extract ⚠️ 87s 3s +2800%
mld_ntt_butterfly_block LP64 z3_no_bv_extract ⚠️ 168s 24s +600%
ntt_native_aarch64 LP64 bitwuzla ⚠️ 22s 6s +267%
ntt_native_x86_64 LP64 bitwuzla ⚠️ 20s 2s +900%
nttunpack_native_x86_64 LP64 bitwuzla ⚠️ 201s 3s +6600%
pointwise_acc_native_x86_64 LP64 cadical ⚠️ 112s 6s +1767%
pointwise_native_aarch64 LP64 bitwuzla ⚠️ 24s 5s +380%
pointwise_native_x86_64 LP64 bitwuzla ⚠️ 22s 2s +1000%
poly_add LP64 cadical ⚠️ 55s 6s +817%
poly_caddq_c LP64 bitwuzla ⚠️ 21s 3s +600%
poly_caddq_native LP64 bitwuzla ⚠️ 117s 4s +2825%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ⚠️ 36s 3s +1100%
poly_caddq_native_x86_64 LP64 bitwuzla ⚠️ 132s 2s +6500%
poly_challenge LP64 bitwuzla ⚠️ 39s 5s +680%
poly_invntt_tomont_c LP64 bitwuzla ⚠️ 168s 12s +1300%
poly_invntt_tomont_native LP64 bitwuzla ⚠️ 46s 5s +820%
poly_ntt_c LP64 bitwuzla ⚠️ 53s 21s +152%
poly_ntt_native LP64 bitwuzla ⚠️ 30s 3s +900%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ⚠️ 56s 5s +1020%
poly_power2round LP64 bitwuzla ⚠️ 340s 3s +11233%
poly_uniform LP64 bitwuzla ⚠️ 164s 4s +4000%
poly_uniform_eta LP64 bitwuzla ⚠️ 91s 4s +2175%
poly_use_hint LP64 cvc5_mbqi_enum ⚠️ 23s 1s +2200%
poly_use_hint_native LP64 cvc5_mbqi_enum ⚠️ 90s 3s +2900%
poly_use_hint_native_aarch64 LP64 bitwuzla ⚠️ 32s 2s +1500%
polyveck_caddq LP64 cadical ⚠️ 442s 8s +5425%
polyveck_decompose_pack_w1 LP64 cadical ❌ - - -
polyveck_invntt_tomont LP64 cadical ❌ - 9s -
polyveck_ntt LP64 cadical ⚠️ 393s 11s +3473%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ⚠️ 54s 4s +1250%
polyvecl_ntt LP64 cadical ⚠️ 241s 7s +3343%
polyvecl_pointwise_acc_montgomery_native LP64 cvc5_mbqi_enum ⚠️ 185s 3s +6067%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ⚠️ 81s 2s +3950%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ⚠️ 48s 4s +1100%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ⚠️ 50s 5s +900%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ⚠️ 49s 4s +1125%
polyz_unpack_native LP64 bitwuzla ⚠️ 30s 4s +650%
rej_uniform_native LP64 z3_smt_only ⚠️ 22s 8s +175%
sig_unpack_hints LP64 bitwuzla ⚠️ 27s 3s +800%
sign_keypair_internal LP64 z3_no_bv_extract* ⚠️ 22s 6s +267%
sign_pk_from_sk LP64 z3_no_bv_extract* ⚠️ 38s 6s +533%
sign_signature_extmu LP64 cadical ⚠️ 80s 4s +1900%
sign_signature_internal LP64 z3_no_bv_extract* ⚠️ 404s 42s +862%
sign_signature_pre_hash_shake256 LP64 bitwuzla ⚠️ 1782s 6s +29600%
sign_verify_internal LP64 z3_no_bv_extract* ⚠️ 1281s 97s +1221%
sk_s1hat_get_poly LP64 bitwuzla ⚠️ 35s 3s +1067%
sk_s2hat_get_poly LP64 bitwuzla ⚠️ 35s 3s +1067%
sk_t0hat_get_poly LP64 bitwuzla ⚠️ 37s 4s +825%
unpack_sk LP64 cadical ⚠️ 79s 5s +1480%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ⚠️ 92s 2s +4500%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ⚠️ 324s 3s +10700%
unpack_sk_t0hat LP64 cadical ⚠️ 132s 7s +1786%
yvec_get_poly LP64 bitwuzla ⚠️ 41s 4s +925%
Full Results (423 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ⚠️ 3602s 2151s +67.5%
caddq LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 2s 4s -50%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ⚠️ 276s 19s +1353%
decompose LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 3s -33%
fqmul LP64 bitwuzla* ✅ 26s 43s -40%
LP64 z3_smt_only ✅ 21s 43s -51%
fqscale LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3 ✅ 2s 3s -33%
intt_native_aarch64 LP64 bitwuzla ⚠️ 27s 3s +800%
LP64 z3* ✅ 1s 3s -67%
intt_native_rv32im_fastmul ILP32 z3* ✅ 4s - new
LP64 cvc5_mbqi_enum ✅ 10s - new
LP64 z3 ✅ 2s - new
intt_native_rv32im_slowmul ILP32 z3* ✅ 4s - new
LP64 cvc5_mbqi_enum ✅ 7s - new
LP64 z3 ✅ 2s - new
intt_native_x86_64 LP64 bitwuzla ✅ 17s 3s +467%
LP64 z3* ✅ 1s 3s -67%
keccak_absorb LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 4s 3s +33%
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 7s 9s -22%
LP64 cvc5_arrays_exp ✅ 9s 9s +0%
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_no_bv_extract ✅ 2s 1s +100%
keccak_f1600_x1_native_aarch64_v84a LP64 bitwuzla* ✅ 1s 1s +0%
LP64 cvc5_arrays_exp ✅ 1s 1s +0%
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 2s 4s -50%
LP64 z3 ✅ 3s 4s -25%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 5s 3s +67%
LP64 z3_smt_only ✅ 1s 3s -67%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 2s 4s -50%
LP64 z3_smt_only ✅ 2s 4s -50%
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 5s 2s +150%
keccak_finalize LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 4s 1s +300%
keccak_init LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 3s +0%
keccak_squeeze LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 1s 2s -50%
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 5s 4s +25%
LP64 z3 ✅ 3s 4s -25%
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
keccakf1600_permute LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 4s 3s +33%
keccakf1600_permute_native LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 4s 4s +0%
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 3s 3s +0%
LP64 cvc5_arrays_exp ✅ 2s 3s -33%
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_smt_only ✅ 1s 2s -50%
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 2s 2s +0%
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 1s 2s -50%
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 3s 3s +0%
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 13s 23s -43%
LP64 z3* ✅ 11s 23s -52%
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 3s 3s +0%
LP64 cvc5_arrays_exp ✅ 3s 3s +0%
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_no_bv_extract ✅ 3s 3s +0%
make_hint LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 2s 3s -33%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ⚠️ 379s 55s +589%
mld_check_pct LP64 bitwuzla ✅ 7s 16s -56%
LP64 z3* ✅ 5s 16s -69%
mld_compute_pack_z LP64 cadical ⚠️ 99s 8s +1138%
LP64 z3_no_bv_extract* ✅ 4s 8s -50%
mld_ct_abs_i32 ILP32 bitwuzla ✅ 2s 3s -33%
ILP32 cvc5_arrays_exp ✅ 2s 3s -33%
ILP32 z3 ✅ 3s 3s +0%
LP64 bitwuzla ✅ 1s 3s -67%
LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 1s 3s -67%
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 2s 4s -50%
LP64 z3* ✅ 4s 4s +0%
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 1s 3s -67%
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 1s 3s -67%
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_smt_only ✅ 1s 3s -67%
mld_ct_memcmp LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3_no_bv_extract ⚠️ 87s 3s +2800%
mld_ct_sel_int32 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 3s +0%
mld_h LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 3s +0%
mld_invntt_layer LP64 bitwuzla* ✅ 72s 115s -37%
LP64 z3_smt_only ✅ 101s 115s -12%
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 4s -50%
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 3s 7s -57%
LP64 z3* ✅ 4s 7s -43%
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 1s 4s -75%
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 17s 24s -29%
LP64 z3_no_bv_extract ⚠️ 168s 24s +600%
mld_ntt_layer LP64 bitwuzla* ✅ 24s 45s -47%
LP64 z3_no_bv_extract ✅ 2s 45s -96%
mld_polymat_expand_entry LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 6s 4s +50%
LP64 z3* ✅ 3s 4s -25%
mld_sample_pack_s1_s2 LP64 cadical ✅ 95s - new
LP64 z3* ✅ 6s - new
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ✅ 566s - new
LP64 z3* ✅ 6s - new
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 2s - new
LP64 z3* ✅ 2s - new
mld_sign_finish LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 3s - new
mld_sign_resume LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 2s - new
mld_value_barrier_i64 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 1s +200%
mld_value_barrier_u32 LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 4s 2s +100%
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
montgomery_reduce LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 4s 3s +33%
ntt_native_aarch64 LP64 bitwuzla ⚠️ 22s 6s +267%
LP64 z3* ✅ 2s 6s -67%
ntt_native_rv32im_fastmul ILP32 z3* ✅ 6s - new
LP64 cvc5_mbqi_enum ✅ 6s - new
LP64 z3 ✅ 3s - new
ntt_native_rv32im_slowmul ILP32 z3* ✅ 5s - new
LP64 cvc5_mbqi_enum ✅ 7s - new
LP64 z3 ✅ 4s - new
ntt_native_x86_64 LP64 bitwuzla ⚠️ 20s 2s +900%
LP64 z3* ✅ 4s 2s +100%
nttunpack_native_x86_64 LP64 bitwuzla ⚠️ 201s 3s +6600%
LP64 z3* ✅ 1s 3s -67%
pack_sig_c LP64 cvc5_arrays_exp ✅ 3s 4s -25%
LP64 z3* ✅ 4s 4s +0%
pack_sig_h LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3_no_bv_extract* ✅ 1s 4s -75%
pack_sig_z LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3* ✅ 2s 5s -60%
pack_sk_rho_key_tr LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 2s - new
pointwise_acc_native_aarch64 LP64 z3_smt_only* ✅ 5s 6s -17%
pointwise_acc_native_x86_64 LP64 cadical ⚠️ 112s 6s +1767%
LP64 z3_smt_only* ✅ 5s 6s -17%
pointwise_native_aarch64 LP64 bitwuzla ⚠️ 24s 5s +380%
LP64 z3* ✅ 3s 5s -40%
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 3s - new
LP64 cvc5_mbqi_enum ✅ 8s - new
LP64 z3 ✅ 3s - new
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 5s - new
LP64 cvc5_mbqi_enum ✅ 9s - new
LP64 z3 ✅ 3s - new
pointwise_native_x86_64 LP64 bitwuzla ⚠️ 22s 2s +1000%
LP64 z3* ✅ 2s 2s +0%
poly_add LP64 cadical ⚠️ 55s 6s +817%
LP64 z3* ✅ 10s 6s +67%
poly_caddq LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 3s 2s +50%
poly_caddq_c LP64 bitwuzla ⚠️ 21s 3s +600%
LP64 z3* ✅ 4s 3s +33%
poly_caddq_native LP64 bitwuzla ⚠️ 117s 4s +2825%
LP64 z3* ✅ 1s 4s -75%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ⚠️ 36s 3s +1100%
LP64 z3* ✅ 3s 3s +0%
poly_caddq_native_x86_64 LP64 bitwuzla ⚠️ 132s 2s +6500%
LP64 z3* ✅ 6s 2s +200%
poly_challenge LP64 bitwuzla ⚠️ 39s 5s +680%
LP64 z3* ✅ 4s 5s -20%
poly_chknorm LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 3s +0%
poly_chknorm_c LP64 bitwuzla ✅ 11s 15s -27%
LP64 z3* ✅ 7s 15s -53%
poly_chknorm_native LP64 bitwuzla ✅ 8s 4s +100%
LP64 z3* ✅ 2s 4s -50%
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 4s -50%
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
poly_decompose LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 2s 3s -33%
poly_decompose_32_native_aarch64 LP64 cadical ✅ 11s 5s +120%
LP64 z3* ✅ 4s 5s -20%
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
poly_decompose_c LP64 z3* ✅ 3s 5s -40%
poly_decompose_native LP64 cadical ✅ 15s 2s +650%
LP64 z3* ✅ 2s 2s +0%
poly_decompose_native_x86_64 LP64 cadical ✅ 11s 2s +450%
LP64 z3* ✅ 2s 2s +0%
poly_invntt_tomont LP64 bitwuzla ✅ 6s 1s +500%
LP64 z3* ✅ 5s 1s +400%
poly_invntt_tomont_c LP64 bitwuzla ⚠️ 168s 12s +1300%
LP64 z3_smt_only* ✅ 9s 12s -25%
poly_invntt_tomont_native LP64 bitwuzla ⚠️ 46s 5s +820%
LP64 z3* ✅ 3s 5s -40%
poly_ntt LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 2s 3s -33%
poly_ntt_c LP64 bitwuzla ⚠️ 53s 21s +152%
LP64 z3_smt_only* ✅ 12s 21s -43%
poly_ntt_native LP64 bitwuzla ⚠️ 30s 3s +900%
LP64 z3* ✅ 1s 3s -67%
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 4s 3s +33%
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3* ✅ 3s 5s -40%
poly_pointwise_montgomery LP64 bitwuzla ✅ 10s 4s +150%
LP64 z3* ✅ 2s 4s -50%
poly_pointwise_montgomery_c LP64 bitwuzla ✅ 201s 144s +40%
LP64 z3* ✅ 50s 144s -65%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ⚠️ 56s 5s +1020%
LP64 z3* ✅ 3s 5s -40%
poly_power2round LP64 bitwuzla ⚠️ 340s 3s +11233%
LP64 z3* ✅ 4s 3s +33%
poly_reduce LP64 bitwuzla ✅ 10s 2s +400%
LP64 z3* ✅ 2s 2s +0%
poly_shiftl LP64 bitwuzla ✅ 15s 4s +275%
LP64 z3* ✅ 1s 4s -75%
poly_sub LP64 bitwuzla ✅ 13s 3s +333%
LP64 z3* ✅ 4s 3s +33%
poly_uniform LP64 bitwuzla ⚠️ 164s 4s +4000%
LP64 z3* ✅ 4s 4s +0%
poly_uniform_4x LP64 z3* ✅ 8s 13s -38%
poly_uniform_eta LP64 bitwuzla ⚠️ 91s 4s +2175%
LP64 z3* ✅ 3s 4s -25%
poly_uniform_eta_4x LP64 z3* ✅ 9s 11s -18%
poly_uniform_gamma1 LP64 cadical ✅ 4s 4s +0%
LP64 z3* ✅ 3s 4s -25%
poly_uniform_gamma1_4x LP64 cadical ✅ 14s 3s +367%
LP64 z3* ✅ 1s 3s -67%
poly_use_hint LP64 cvc5_mbqi_enum ⚠️ 23s 1s +2200%
LP64 z3* ✅ 3s 1s +200%
poly_use_hint_c LP64 cvc5_enum_inst ✅ 14s 2s +600%
LP64 z3* ✅ 5s 2s +150%
poly_use_hint_native LP64 cvc5_mbqi_enum ⚠️ 90s 3s +2900%
LP64 z3* ✅ 1s 3s -67%
poly_use_hint_native_aarch64 LP64 bitwuzla ⚠️ 32s 2s +1500%
LP64 z3* ✅ 3s 2s +50%
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 31s - new
LP64 z3* ✅ 3s - new
polyeta_pack LP64 bitwuzla ✅ 5s 4s +25%
LP64 z3* ✅ 2s 4s -50%
polyeta_unpack LP64 bitwuzla ✅ 4s 17s -76%
LP64 z3* ✅ 5s 17s -71%
polyt0_pack LP64 bitwuzla ✅ 6s 4s +50%
LP64 z3* ✅ 4s 4s +0%
polyt0_unpack LP64 bitwuzla ✅ 3s 14s -79%
LP64 z3* ✅ 7s 14s -50%
polyt1_pack LP64 bitwuzla ✅ 6s 3s +100%
LP64 z3* ✅ 3s 3s +0%
polyt1_unpack LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 4s 4s +0%
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 128s 324s -60%
polyvec_matrix_expand_serial LP64 z3* ✅ 26s 38s -32%
polyvec_matrix_pointwise_montgomery_row LP64 z3_no_bv_extract* ✅ 1s 3s -67%
polyvec_matrix_pointwise_montgomery_yvec LP64 z3* ✅ 19s 18s +6%
polyveck_caddq LP64 cadical ⚠️ 442s 8s +5425%
LP64 z3* ✅ 3s 8s -62%
polyveck_decompose_pack_w1 LP64 cadical ❌ - - -
LP64 z3* ✅ 6s - new
polyveck_invntt_tomont LP64 cadical ❌ - 9s -
LP64 z3* ✅ 4s 9s -56%
polyveck_ntt LP64 cadical ⚠️ 393s 11s +3473%
LP64 z3* ✅ 5s 11s -55%
polyveck_reduce LP64 cadical ✅ 5s 3s +67%
LP64 z3* ✅ 2s 3s -33%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ⚠️ 54s 4s +1250%
LP64 z3* ✅ 2s 4s -50%
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 18s - new
LP64 z3* ✅ 2s - new
polyvecl_chknorm LP64 z3* ✅ 2s 7s -71%
polyvecl_ntt LP64 cadical ⚠️ 241s 7s +3343%
LP64 z3* ✅ 3s 7s -57%
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 15s 5s +200%
LP64 z3_smt_only* ✅ 3s 5s -40%
polyvecl_pointwise_acc_montgomery_c LP64 z3* ✅ 166s 353s -53%
polyvecl_pointwise_acc_montgomery_native LP64 cvc5_mbqi_enum ⚠️ 185s 3s +6067%
LP64 z3_smt_only* ✅ 3s 3s +0%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ⚠️ 81s 2s +3950%
LP64 z3* ✅ 3s 2s +50%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ⚠️ 48s 4s +1100%
LP64 z3* ✅ 3s 4s -25%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ⚠️ 50s 5s +900%
LP64 z3* ✅ 3s 5s -40%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ⚠️ 49s 4s +1125%
LP64 z3* ✅ 2s 4s -50%
polyw1_pack LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 6s 4s +50%
polyw1_pack_32 LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 4s -50%
polyw1_pack_88 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 3s -33%
polyw1_unpack LP64 bitwuzla ✅ 5s - new
LP64 z3* ✅ 1s - new
polyw1_unpack_32 LP64 bitwuzla ✅ 3s - new
LP64 z3* ✅ 4s - new
polyw1_unpack_88 LP64 bitwuzla ✅ 2s - new
LP64 z3* ✅ 1s - new
polyz_pack LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 2s 5s -60%
polyz_unpack LP64 bitwuzla ✅ 8s 2s +300%
LP64 z3* ✅ 3s 2s +50%
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 3s +0%
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 3s 4s -25%
polyz_unpack_c LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 3s 3s +0%
polyz_unpack_native LP64 bitwuzla ⚠️ 30s 4s +650%
LP64 z3* ✅ 1s 4s -75%
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 19s 3s +533%
LP64 z3* ✅ 2s 3s -33%
power2round LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 4s -50%
reduce32 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
rej_eta LP64 bitwuzla* ✅ 2s 4s -50%
LP64 z3_smt_only ✅ 4s 4s +0%
rej_eta_c LP64 bitwuzla* ✅ 1s 5s -80%
LP64 z3 ✅ 18s 5s +260%
rej_eta_native LP64 bitwuzla* ✅ 2s 6s -67%
LP64 z3_smt_only ✅ 10s 6s +67%
rej_uniform LP64 bitwuzla ✅ 2s 15s -87%
LP64 z3* ✅ 15s 15s +0%
rej_uniform_c LP64 bitwuzla ✅ 2s 19s -89%
LP64 z3* ✅ 14s 19s -26%
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 3s 5s -40%
LP64 z3_smt_only ✅ 1s 5s -80%
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 4s - new
LP64 z3_smt_only* ✅ 2s - new
rej_uniform_native LP64 bitwuzla* ✅ 3s 8s -62%
LP64 z3_smt_only ⚠️ 22s 8s +175%
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 2s 2s +0%
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 3s - new
LP64 z3_smt_only* ✅ 10s - new
shake128_absorb LP64 cvc5_arrays_exp ✅ 3s 4s -25%
LP64 z3* ✅ 2s 4s -50%
shake128_finalize LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
shake128_init LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 1s +200%
shake128_release LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 6s 4s +50%
shake128_squeeze LP64 bitwuzla* ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 3s 2s +50%
shake128x4_absorb_once LP64 bitwuzla* ✅ 3s 5s -40%
LP64 z3_smt_only ✅ 2s 5s -60%
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3 ✅ 3s 3s +0%
shake256 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
shake256_absorb LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
shake256_finalize LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
shake256_init LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 1s 2s -50%
shake256_release LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 4s 3s +33%
shake256_squeeze LP64 bitwuzla* ✅ 4s 2s +100%
LP64 z3 ✅ 3s 2s +50%
shake256x4_absorb_once LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 1s 2s -50%
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 2s 1s +100%
sig_unpack_hints LP64 bitwuzla ⚠️ 27s 3s +800%
LP64 z3* ✅ 18s 3s +500%
sign_keypair LP64 z3* ✅ 4s 4s +0%
sign_keypair_internal LP64 z3_no_bv_extract* ⚠️ 22s 6s +267%
sign_pk_from_sk LP64 z3_no_bv_extract* ⚠️ 38s 6s +533%
sign_signature LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3* ✅ 4s 5s -20%
sign_signature_extmu LP64 cadical ⚠️ 80s 4s +1900%
LP64 z3* ✅ 4s 4s +0%
sign_signature_internal LP64 z3_no_bv_extract* ⚠️ 404s 42s +862%
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 7s 5s +40%
LP64 z3* ✅ 3s 5s -40%
sign_signature_pre_hash_shake256 LP64 bitwuzla ⚠️ 1782s 6s +29600%
LP64 z3* ✅ 5s 6s -17%
sign_verify LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 4s 5s -20%
sign_verify_extmu LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 3s 3s +0%
sign_verify_internal LP64 z3_no_bv_extract* ⚠️ 1281s 97s +1221%
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 3s -33%
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 4s 3s +33%
sk_s1hat_get_poly LP64 bitwuzla ⚠️ 35s 3s +1067%
LP64 z3* ✅ 2s 3s -33%
sk_s2hat_get_poly LP64 bitwuzla ⚠️ 35s 3s +1067%
LP64 z3* ✅ 2s 3s -33%
sk_t0hat_get_poly LP64 bitwuzla ⚠️ 37s 4s +825%
LP64 z3* ✅ 2s 4s -50%
sys_check_capability LP64 cvc5_arrays_exp ✅ 4s 3s +33%
LP64 z3* ✅ 2s 3s -33%
unpack_pk_t1 LP64 bitwuzla ✅ 12s 1s +1100%
LP64 z3* ✅ 2s 1s +100%
unpack_sk LP64 cadical ⚠️ 79s 5s +1480%
LP64 z3* ✅ 7s 5s +40%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ⚠️ 92s 2s +4500%
LP64 z3* ✅ 4s 2s +100%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ⚠️ 324s 3s +10700%
LP64 z3* ✅ 3s 3s +0%
unpack_sk_t0hat LP64 cadical ⚠️ 132s 7s +1786%
LP64 z3* ✅ 2s 7s -71%
use_hint LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 6s 3s +100%
yvec_get_poly LP64 bitwuzla ⚠️ 41s 4s +925%
LP64 z3* ✅ 3s 4s -25%
yvec_init LP64 bitwuzla ✅ 18s 4s +350%
LP64 z3* ✅ 3s 4s -25%

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants