Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 13 additions & 9 deletions mldsa/src/cbmc.h
Original file line number Diff line number Diff line change
Expand Up @@ -147,15 +147,19 @@
#define CBMC_CONCAT_(left, right) left##right
#define CBMC_CONCAT(left, right) CBMC_CONCAT_(left, right)

#define array_bound_core(qvar, qvar_lb, qvar_ub, array_var, \
value_lb, value_ub) \
__CPROVER_forall \
{ \
uint32_t qvar; \
((uint32_t) (qvar_lb) <= (qvar) && (qvar) < (uint32_t) (qvar_ub)) ==> \
(((int)(value_lb) <= ((array_var)[(qvar)])) && \
(((array_var)[(qvar)]) < (int)(value_ub))) \
}
/* Use a constant quantifier range so SAT backends can expand it. */
#define array_bound_core(qvar, qvar_lb, qvar_ub, array_var, value_lb, value_ub) \
((uint32_t)(qvar_lb) <= MLDSA_N && \
(uint32_t)(qvar_ub) <= MLDSA_N && \
__CPROVER_forall \
{ \
uint32_t qvar; \
(qvar) < MLDSA_N ==> \
(((uint32_t)(qvar_lb) <= (qvar) && \
(qvar) < (uint32_t)(qvar_ub)) ==> \
((int)(value_lb) <= (array_var)[qvar] && \
(array_var)[qvar] < (int)(value_ub))) \
})

#define array_bound(array_var, qvar_lb, qvar_ub, value_lb, value_ub) \
array_bound_core(CBMC_CONCAT(_cbmc_idx, __COUNTER__), (qvar_lb), \
Expand Down
4 changes: 3 additions & 1 deletion proofs/cbmc/pointwise_acc_native_aarch64/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,9 @@ APPLY_LOOP_CONTRACTS=on
USE_DYNAMIC_FRAMES=1

# Supported CBMC configurations
CBMC_SUPPORTED_CONFIGS = LP64:z3_smt_only
CBMC_SUPPORTED_CONFIGS = \
LP64:z3_smt_only \
LP64:cadical
CBMC_DEFAULT_CONFIG = LP64:z3_smt_only

FUNCTION_NAME = pointwise_acc_native_aarch64
Expand Down
4 changes: 3 additions & 1 deletion proofs/cbmc/poly_uniform_4x/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,9 @@ APPLY_LOOP_CONTRACTS=on
USE_DYNAMIC_FRAMES=1

# Supported CBMC configurations
CBMC_SUPPORTED_CONFIGS = LP64:z3
CBMC_SUPPORTED_CONFIGS = \
LP64:z3 \
LP64:cadical
CBMC_DEFAULT_CONFIG = LP64:z3

FUNCTION_NAME = poly_uniform_4x
Expand Down
4 changes: 3 additions & 1 deletion proofs/cbmc/poly_uniform_eta_4x/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@ APPLY_LOOP_CONTRACTS=on
USE_DYNAMIC_FRAMES=1

# Supported CBMC configurations
CBMC_SUPPORTED_CONFIGS = LP64:z3
CBMC_SUPPORTED_CONFIGS = \
LP64:z3 \
LP64:cadical
CBMC_DEFAULT_CONFIG = LP64:z3

FUNCTION_NAME = poly_uniform_eta_4x
Expand Down
Loading