@@ -15,9 +15,10 @@ def setIfBetweenFun : Fun :=
1515 { name := "setIfBetween"
1616 args := ["slot" , "value" , "min" , "max" ]
1717 body :=
18- requireAnd
19- (Expr.gt (v "value" ) (v "min" ))
20- (Expr.lt (v "value" ) (v "max" ))
18+ requireBetween
19+ (v "value" )
20+ (v "min" )
21+ (v "max" )
2122 (sstoreVar "slot" (v "value" ))
2223 ret := none }
2324
@@ -33,7 +34,7 @@ theorem setIfBetween_meets_specR_ok (s : Store) (slot value min max : Nat) :
3334 | _ => False) := by
3435 intro hreq
3536 rcases hreq with ⟨hgt, hlt⟩
36- simp [setIfBetweenSpecR, setIfBetweenFun, requireAnd, require, sstoreVar, v, execFun,
37+ simp [setIfBetweenSpecR, setIfBetweenFun, requireBetween, requireAnd, require, sstoreVar, v, execFun,
3738 execStmt, evalExpr, bindArgs, emptyEnv, updateEnv, updateStore, hgt, hlt]
3839
3940theorem setIfBetween_meets_specR_reverts (s : Store) (slot value min max : Nat) :
@@ -43,16 +44,16 @@ theorem setIfBetween_meets_specR_reverts (s : Store) (slot value min max : Nat)
4344 rcases hrev with hle | hge
4445 · have hnot : ¬ value > min := by
4546 exact Nat.not_lt.mpr hle
46- simp [setIfBetweenSpecR, setIfBetweenFun, requireAnd, require, sstoreVar, v, execFun,
47+ simp [setIfBetweenSpecR, setIfBetweenFun, requireBetween, requireAnd, require, sstoreVar, v, execFun,
4748 execStmt, evalExpr, bindArgs, emptyEnv, updateEnv, updateStore, hnot]
4849 · by_cases hgt : value > min
4950 · have hnotlt : ¬ value < max := by
5051 exact Nat.not_lt.mpr hge
51- simp [setIfBetweenSpecR, setIfBetweenFun, requireAnd, require, sstoreVar, v,
52+ simp [setIfBetweenSpecR, setIfBetweenFun, requireBetween, requireAnd, require, sstoreVar, v,
5253 execFun, execStmt, evalExpr, bindArgs, emptyEnv, updateEnv, updateStore, hgt, hnotlt]
5354 · have hnot : ¬ value > min := by
5455 exact hgt
55- simp [setIfBetweenSpecR, setIfBetweenFun, requireAnd, require, sstoreVar, v,
56+ simp [setIfBetweenSpecR, setIfBetweenFun, requireBetween, requireAnd, require, sstoreVar, v,
5657 execFun, execStmt, evalExpr, bindArgs, emptyEnv, updateEnv, updateStore, hnot]
5758
5859end DumbContracts.Examples
0 commit comments