Skip to content

Commit bf30822

Browse files
committed
CBMC: Remove unused array parameter
We were informed by the CBMC team that the use of the CBMC flag `--arrays-uf-always` should not be beneficial to our proofs. This commit comments out this CBMC flag. Signed-off-by: Hanno Becker <beckphan@amazon.co.uk>
1 parent 118f091 commit bf30822

File tree

12 files changed

+65
-16
lines changed

12 files changed

+65
-16
lines changed

proofs/cbmc/keccak_squeeze_once/Makefile

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,18 @@ USE_DYNAMIC_FRAMES=1
2727
EXTERNAL_SAT_SOLVER=
2828
CBMCFLAGS=--bitwuzla
2929

30-
CBMCFLAGS += --no-array-field-sensitivity --arrays-uf-always --slice-formula
30+
# For this proof we tell CBMC to
31+
# 1. not decompose arrays into their individual cells
32+
# 2. to model arrays directly as SMT-lib arrays
33+
# 3. to slice constraints that are not in the cone of influence of the proof obligations
34+
# These options simplify them modelling of arrays and produce much more compact
35+
# SMT files, leaving all array-type reasoning to the SMT solver.
36+
#
37+
# For functions that use large and multi-dimensional arrays, this yields
38+
# a substantial improvement in proof performance.
39+
CBMCFLAGS += --no-array-field-sensitivity
40+
# CBMCFLAGS += --arrays-uf-always
41+
CBMCFLAGS += --slice-formula
3142

3243
FUNCTION_NAME = mlk_keccak_squeeze_once
3344

proofs/cbmc/keccak_squeezeblocks/Makefile

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,18 @@ USE_DYNAMIC_FRAMES=1
2727
EXTERNAL_SAT_SOLVER=
2828
CBMCFLAGS=--bitwuzla
2929

30-
CBMCFLAGS += --no-array-field-sensitivity --arrays-uf-always --slice-formula
30+
# For this proof we tell CBMC to
31+
# 1. not decompose arrays into their individual cells
32+
# 2. to model arrays directly as SMT-lib arrays
33+
# 3. to slice constraints that are not in the cone of influence of the proof obligations
34+
# These options simplify them modelling of arrays and produce much more compact
35+
# SMT files, leaving all array-type reasoning to the SMT solver.
36+
#
37+
# For functions that use large and multi-dimensional arrays, this yields
38+
# a substantial improvement in proof performance.
39+
CBMCFLAGS += --no-array-field-sensitivity
40+
# CBMCFLAGS += --arrays-uf-always
41+
CBMCFLAGS += --slice-formula
3142

3243
FUNCTION_NAME = mlk_keccak_squeezeblocks
3344

proofs/cbmc/keccak_squeezeblocks_x4/Makefile

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,18 @@ USE_DYNAMIC_FRAMES=1
2727
EXTERNAL_SAT_SOLVER=
2828
CBMCFLAGS=--bitwuzla
2929

30-
CBMCFLAGS += --no-array-field-sensitivity --arrays-uf-always --slice-formula
30+
# For this proof we tell CBMC to
31+
# 1. not decompose arrays into their individual cells
32+
# 2. to model arrays directly as SMT-lib arrays
33+
# 3. to slice constraints that are not in the cone of influence of the proof obligations
34+
# These options simplify them modelling of arrays and produce much more compact
35+
# SMT files, leaving all array-type reasoning to the SMT solver.
36+
#
37+
# For functions that use large and multi-dimensional arrays, this yields
38+
# a substantial improvement in proof performance.
39+
CBMCFLAGS += --no-array-field-sensitivity
40+
# CBMCFLAGS += --arrays-uf-always
41+
CBMCFLAGS += --slice-formula
3142

3243
FUNCTION_NAME = mlk_keccak_squeezeblocks_x4
3344

proofs/cbmc/keccakf1600_extract_bytes/Makefile

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ USE_DYNAMIC_FRAMES=1
2727
EXTERNAL_SAT_SOLVER=
2828
CBMCFLAGS=--bitwuzla
2929

30-
# CBMCFLAGS += --no-array-field-sensitivity --arrays-uf-always --slice-formula
31-
3230
FUNCTION_NAME = mlk_keccakf1600_extract_bytes
3331

3432
# If this proof is found to consume huge amounts of RAM, you can set the

proofs/cbmc/keccakf1600_permute/Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@ CBMCFLAGS=--smt2
3636
#
3737
# For functions that use large and multi-dimensional arrays, this yields
3838
# a substantial improvement in proof performance.
39-
CBMCFLAGS += --no-array-field-sensitivity --arrays-uf-always --slice-formula
39+
CBMCFLAGS += --no-array-field-sensitivity
40+
# CBMCFLAGS += --arrays-uf-always
41+
CBMCFLAGS += --slice-formula
4042

4143
FUNCTION_NAME = mlk_keccakf1600_permute
4244

proofs/cbmc/keccakf1600x4_extract_bytes/Makefile

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ USE_DYNAMIC_FRAMES=1
2727
EXTERNAL_SAT_SOLVER=
2828
CBMCFLAGS=--bitwuzla
2929

30-
# CBMCFLAGS += --no-array-field-sensitivity --arrays-uf-always --slice-formula
31-
3230
FUNCTION_NAME = mlk_keccakf1600x4_extract_bytes
3331

3432
# If this proof is found to consume huge amounts of RAM, you can set the

proofs/cbmc/keccakf1600x4_permute/Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@ CBMCFLAGS=--smt2
3636
#
3737
# For functions that use large and multi-dimensional arrays, this yields
3838
# a substantial improvement in proof performance.
39-
CBMCFLAGS += --no-array-field-sensitivity --arrays-uf-always --slice-formula
39+
CBMCFLAGS += --no-array-field-sensitivity
40+
# CBMCFLAGS += --arrays-uf-always
41+
CBMCFLAGS += --slice-formula
4042

4143
FUNCTION_NAME = mlk_keccakf1600x4_permute
4244

proofs/cbmc/matvec_mul/Makefile

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@ CBMCFLAGS=--smt2
3535
#
3636
# For functions that use large and multi-dimensional arrays, this yields
3737
# a substantial improvement in proof performance.
38-
CBMCFLAGS += --no-array-field-sensitivity --arrays-uf-always --slice-formula
38+
CBMCFLAGS += --no-array-field-sensitivity
39+
# CBMCFLAGS += --arrays-uf-always
40+
CBMCFLAGS += --slice-formula
3941

4042
FUNCTION_NAME = mlk_matvec_mul
4143

@@ -46,7 +48,7 @@ FUNCTION_NAME = mlk_matvec_mul
4648
# EXPENSIVE = true
4749

4850
# This function is large enough to need...
49-
CBMC_OBJECT_BITS = 8
51+
CBMC_OBJECT_BITS = 10
5052

5153
# If you require access to a file-local ("static") function or object to conduct
5254
# your proof, set the following (and do not include the original source file

proofs/cbmc/poly_permute_bitrev_to_custom/Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@ CBMCFLAGS=--smt2
3535
#
3636
# For functions that use large and multi-dimensional arrays, this yields
3737
# a substantial improvement in proof performance.
38-
CBMCFLAGS += --no-array-field-sensitivity --arrays-uf-always --slice-formula
38+
CBMCFLAGS += --no-array-field-sensitivity
39+
# CBMCFLAGS += --arrays-uf-always
40+
CBMCFLAGS += --slice-formula
3941

4042
FUNCTION_NAME = mlk_poly_permute_bitrev_to_custom
4143

proofs/cbmc/polyvec_add/Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@ CBMCFLAGS=--smt2
3636
#
3737
# For functions that use large and multi-dimensional arrays, this yields
3838
# a substantial improvement in proof performance.
39-
CBMCFLAGS += --no-array-field-sensitivity --arrays-uf-always --slice-formula
39+
CBMCFLAGS += --no-array-field-sensitivity
40+
# CBMCFLAGS += --arrays-uf-always
41+
CBMCFLAGS += --slice-formula
4042

4143
FUNCTION_NAME = mlk_polyvec_add
4244

0 commit comments

Comments
 (0)