Skip to content

Commit de80b7f

Browse files
committed
Remove --no-array-field-sensitivity for all proofs
1. Remove --no-array-field-sensitivty from all per-function Makefiles 2. Update Makefile.common to: a. Reject --slice-formula if specified in a per-function Makefile, since it is already added by default in Makefile.common now. b. Reject --no-array-field-sensitivity if specified in a per-function Makefile Signed-off-by: Rod Chapman <rodchap@amazon.com>
1 parent 5384987 commit de80b7f

13 files changed

Lines changed: 14 additions & 103 deletions

File tree

proofs/cbmc/Makefile.common

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -538,13 +538,26 @@ PROOF_GOTO ?= $(GOTODIR)/$(PROOF)
538538
SPACE :=$() $()
539539
COMMA :=,
540540

541+
################################################################
542+
# CBMC team recommend that --no-array-field-sensitivity should never be used
543+
# with CBMC 6.9.0 and above when --slice-formula has been specified
544+
ifeq ($(findstring --no-array-field-sensitivity,$(CBMCFLAGS)),--no-array-field-sensitivity)
545+
$(error CBMC option --no-array-field-sensitivity must not be used with CBMC 6.9.0 and above)
546+
endif
547+
548+
################################################################
549+
# CBMC team recommend that --slice-formula should _always_ be used
550+
# so we reject it here if it is already specified in a per-function Makefile
551+
ifeq ($(findstring --slice-formula,$(CBMCFLAGS)),--slice-formula)
552+
$(error CBMC option --slice-formula is set by default in Makefile.common, so should not be specified in a function-specific Makefile)
553+
endif
554+
541555
################################################################
542556
# CBMC flags common to all proofs
543557
CBMCFLAGS += $(CBMC_FLAG_FLUSH)
544558
CBMCFLAGS += --object-bits $(CBMC_OBJECT_BITS)
545559
CBMCFLAGS += --slice-formula
546560

547-
548561
################################################################
549562
# Set C compiler defines
550563
DEFINES += -DCBMC=1

proofs/cbmc/keccak_squeeze_once/Makefile

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,6 @@ USE_DYNAMIC_FRAMES=1
2929
EXTERNAL_SAT_SOLVER=
3030
CBMCFLAGS=--bitwuzla
3131

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

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

proofs/cbmc/keccak_squeezeblocks/Makefile

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,6 @@ USE_DYNAMIC_FRAMES=1
2929
EXTERNAL_SAT_SOLVER=
3030
CBMCFLAGS=--bitwuzla
3131

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

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

proofs/cbmc/keccak_squeezeblocks_x4/Makefile

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,6 @@ USE_DYNAMIC_FRAMES=1
2929
EXTERNAL_SAT_SOLVER=
3030
CBMCFLAGS=--bitwuzla
3131

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

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

proofs/cbmc/keccakf1600_permute/Makefile

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,6 @@ USE_DYNAMIC_FRAMES=1
2828
EXTERNAL_SAT_SOLVER=
2929
CBMCFLAGS=--smt2
3030

31-
# For this proof we tell CBMC to
32-
# - not decompose arrays into their individual cells
33-
# - 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-
4131
FUNCTION_NAME = mlk_keccakf1600_permute
4232

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

proofs/cbmc/keccakf1600_permute_c/Makefile

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,6 @@ USE_DYNAMIC_FRAMES=1
2828
EXTERNAL_SAT_SOLVER=
2929
CBMCFLAGS=--smt2
3030

31-
# For this proof we tell CBMC to
32-
# - not decompose arrays into their individual cells
33-
# - 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-
4131
FUNCTION_NAME = mlk_keccakf1600_permute_c
4232

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

proofs/cbmc/keccakf1600x4_permute/Makefile

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,6 @@ USE_DYNAMIC_FRAMES=1
2828
EXTERNAL_SAT_SOLVER=
2929
CBMCFLAGS=--smt2
3030

31-
# For this proof we tell CBMC to
32-
# - not decompose arrays into their individual cells
33-
# - 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-
4131
FUNCTION_NAME = mlk_keccakf1600x4_permute
4232

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

proofs/cbmc/matvec_mul/Makefile

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

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

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

proofs/cbmc/polymat_permute_bitrev_to_custom/Makefile

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

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

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

proofs/cbmc/polyvec_add/Makefile

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

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

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

0 commit comments

Comments
 (0)