Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit d3c6a47

Browse files
committedAug 27, 2024
remove one more :|
1 parent 87ba973 commit d3c6a47

File tree

1 file changed

+10
-6
lines changed
  • DynamoDbEncryption/dafny/DynamoDbEncryptionTransforms/src

1 file changed

+10
-6
lines changed
 

‎DynamoDbEncryption/dafny/DynamoDbEncryptionTransforms/src/Index.dfy

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ module
1616
import DynamoDbItemEncryptor
1717
import SearchConfigToInfo
1818
import Seq
19+
import SortedSets
1920
import ET = AwsCryptographyDbEncryptionSdkDynamoDbTypes
2021
import SET = AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes
2122
import DDB = ComAmazonawsDynamodbTypes
@@ -119,6 +120,9 @@ module
119120
//# [DynamoDb Item Encryptor](./ddb-table-encryption-config.md)
120121
//# per configured table, using these table encryption configs.
121122
var m' := config.tableEncryptionConfigs;
123+
var mKeys := m'.Keys;
124+
var tableNamesSeq := SortedSets.ComputeSetToSequence(mKeys);
125+
ghost var mKeysSet := mKeys;
122126

123127
ghost var inputConfigsModifies: set<object> := set
124128
tableConfig <- config.tableEncryptionConfigs.Values,
@@ -130,8 +134,9 @@ module
130134
:: o;
131135

132136
var allLogicalTableNames := {};
133-
134-
while m'.Keys != {}
137+
var i := 0;
138+
139+
while i < |tableNamesSeq|
135140
invariant m'.Keys <= config.tableEncryptionConfigs.Keys
136141
invariant forall k <- m' :: m'[k] == config.tableEncryptionConfigs[k]
137142
invariant forall internalConfig <- internalConfigs.Values :: internalConfig.logicalTableName in allLogicalTableNames
@@ -140,10 +145,10 @@ module
140145
invariant AllTableConfigsValid?(internalConfigs)
141146
invariant ValidConfig?(Config(internalConfigs))
142147

143-
decreases m'.Keys
144148
modifies inputConfigsModifies
145149
{
146-
var tableName: string :| tableName in m';
150+
var tableName: string := tableNamesSeq[i];
151+
147152
var inputConfig := config.tableEncryptionConfigs[tableName];
148153
:- Need(inputConfig.logicalTableName !in allLogicalTableNames, E("Duplicate logical table maped to multipule physical tables: " + inputConfig.logicalTableName));
149154

@@ -223,8 +228,7 @@ module
223228
assert ConfigsMatch(tableName, internalConfig, inputConfig);
224229
}
225230

226-
// Pop 'tableName' off the map, so that we may continue iterating
227-
m' := map k' | k' in m' && k' != tableName :: m'[k'];
231+
i := i + 1;
228232
}
229233
assert SearchValidState(DdbMiddlewareConfig.Config(tableEncryptionConfigs := internalConfigs));
230234

0 commit comments

Comments
 (0)
Please sign in to comment.