Deleted redundant rule burnBatchAmountProportionalToBalanceReduction

pull/3478/head
Thomas Adams 3 years ago
parent bab9528dc1
commit bdb49654c5
  1. 30
      certora/specs/ERC1155Burnable.spec

@ -46,36 +46,6 @@ rule burnAmountProportionalToBalanceReduction {
"A larger burn must lead to a larger decrease in balance"; "A larger burn must lead to a larger decrease in balance";
} }
/// This rule not needed (because multipleTokenBurnBurnBatchEquivalence)
/// Unimplemented rule to verify monotonicity of burnBatch.
/// Using only burnBatch, possible approach:
/// Token with smaller and larger burn amounts
/// Round one smaller burn
/// Round two larger burn
rule burnBatchAmountProportionalToBalanceReduction { // TODO implement rule or remove
storage beforeBurn = lastStorage;
env e;
address holder; uint256 token;
mathint startingBalance = balanceOf(holder, token);
uint256 smallBurn; uint256 largeBurn;
require smallBurn < largeBurn;
uint256[] tokens; uint256[] smallBurnAmounts; uint256[] largeBurnAmounts;
require tokens.length == 1; require smallBurnAmounts.length == 1; require largeBurnAmounts.length == 1;
require tokens[0] == token; require smallBurnAmounts[0] == smallBurn; require largeBurnAmounts[0] == largeBurn;
// smaller burn amount
burnBatch(e, holder, tokens, smallBurnAmounts) at beforeBurn;
mathint smallBurnBalanceChange = startingBalance - balanceOf(holder, token);
// larger burn amount
burnBatch(e, holder, tokens, largeBurnAmounts) at beforeBurn;
mathint largeBurnBalanceChange = startingBalance - balanceOf(holder, token);
assert smallBurnBalanceChange < largeBurnBalanceChange,
"A larger burn must lead to a larger decrease in balance";
}
/// Two sequential burns must be equivalent to a single burn of the sum of their /// Two sequential burns must be equivalent to a single burn of the sum of their
/// amounts. /// amounts.
/// n.b. This rule holds for `burnBatch` as well due to rules establishing /// n.b. This rule holds for `burnBatch` as well due to rules establishing

Loading…
Cancel
Save