├── .gitignore ├── 00.Lesson_PreCourse └── README.md ├── 01.Lesson_GettingStarted ├── ERC20Lesson1 │ ├── .zip-output-url.txt │ ├── ERC20.sol │ ├── ERC20.spec │ ├── ERC20Fixed.spec │ ├── IERC20.sol │ ├── IERC20Metadata.sol │ ├── Parametric.spec │ ├── README.md │ ├── TotalGreaterThanUser.spec │ ├── images │ │ ├── callTraceAndVariables.jpg │ │ └── results.jpg │ └── resource_errors.json ├── README.md └── RunScriptExample │ ├── README.md │ └── verifyERC20.sh ├── 02.Lesson_InvestigateViolations ├── Borda │ ├── Borda.spec │ ├── BordaBug1.sol │ ├── BordaBug2.sol │ ├── BordaBug3.sol │ ├── BordaBug4.sol │ ├── BordaFixed.sol │ ├── IBorda.sol │ ├── README.md │ └── run1.sh ├── ERC20 │ ├── ERC20.spec │ ├── ERC20Bug1.sol │ ├── ERC20Bug2.sol │ ├── ERC20Bug3.sol │ ├── ERC20Bug4.sol │ ├── ERC20Fixed.sol │ ├── IERC20.sol │ ├── IERC20Metadata.sol │ ├── README.md │ ├── runERC20.sh │ └── runERC20Fixed.sh ├── MeetingScheduler │ ├── IMeetingScheduler.sol │ ├── MeetingSchedulerBug1.sol │ ├── MeetingSchedulerBug2.sol │ ├── MeetingSchedulerBug3.sol │ ├── MeetingSchedulerBug4.sol │ ├── MeetingSchedulerFixed.sol │ ├── README.md │ ├── meetings.spec │ └── runMeetingScheduler1.sh └── README.md ├── 03.Lesson_SMT ├── README.md └── Z3SMTSolver │ ├── AdditionalExerciseForSMT.pdf │ ├── Cheat_Sheet.md │ ├── README.md │ └── images │ ├── Logic_Puzzle1.png │ └── Logic_Puzzle2.png ├── 04.Lesson_Declarations ├── Methods_Definitions_Functions │ ├── Borda │ │ ├── Borda.spec │ │ ├── BordaFixed.sol │ │ └── IBorda.sol │ ├── ERC20 │ │ ├── ERC20.spec │ │ ├── ERC20Fixed.sol │ │ ├── IERC20.sol │ │ └── IERC20Metadata.sol │ ├── LessonExamples │ │ ├── BankFixed.sol │ │ ├── Functions_TotalGreaterThenUser.spec │ │ └── Methods_IntegrityOfDeposit.spec │ ├── MeetingScheduler │ │ ├── IMeetingScheduler.sol │ │ ├── MeetingSchedulerFixed.sol │ │ └── meetings.spec │ └── README.md └── README.md ├── 05.Lesson_GettingFamiliarWithProver ├── BalancerMultiDistributorRules.sh ├── OpenZeppelinGovernor.sh ├── OpenZeppelinSanity.sh ├── README.md └── ScriptExercise2 │ ├── README.md │ └── images │ ├── ComprassingAndUploading.png │ └── LocalTypeChecking.png ├── 06.Lesson_ThinkingProperties ├── AuctionDemonstration │ ├── Auction.spec │ ├── AuctionBroken.sol │ ├── AuctionFixed.sol │ ├── README.md │ ├── propertiesList.md │ ├── runBroken.sh │ └── runFixed.sh ├── Categorizing_Properties.pdf ├── README.md └── ThinkingPropertiesExercise │ ├── MeetingScheduler │ ├── IMeetingScheduler.sol │ └── MeetingSchedulerFixed.sol │ ├── PopsicleFinance │ ├── ERC20.sol │ └── popsicle.sol │ ├── README.md │ └── TicketDepot │ ├── TicketDepot.sol │ ├── sanity.sh │ └── sanity.spec ├── 07.Lesson_InductiveReasoning ├── Induction.pdf ├── InductionLesson │ ├── BallGame │ │ ├── BallGame.sol │ │ ├── BallGame.spec │ │ └── run.sh │ ├── Manager │ │ ├── Manager.sol │ │ ├── Manager.spec │ │ ├── ManagerBug1.sol │ │ ├── ManagerBug2.sol │ │ ├── ManagerPartialSolution.spec │ │ └── run.sh │ └── README.md ├── Invariants │ ├── EnglishAuction │ │ ├── EnglishAuction.sol │ │ ├── invariant.spec │ │ └── runInvariant.sh │ └── README.md └── README.md ├── 08.Lesson_WorkingWithInvariants ├── InvariantsConcepts │ ├── Manager │ │ ├── Manager.sol │ │ ├── ManagerBug1.sol │ │ ├── ManagerBug2.sol │ │ ├── ManagerBug3.sol │ │ ├── ManagerBug4.sol │ │ ├── ManagerFullSolution.spec │ │ └── run.sh │ ├── README.md │ ├── ReserveList │ │ ├── IReserveList.sol │ │ ├── ReserveListBug1.sol │ │ ├── ReserveListBug2.sol │ │ ├── ReserveListFixed.sol │ │ └── runReserve.sh │ └── images │ │ └── Requires_In_Rule.png ├── README.md └── WritingRules │ ├── EnglishAuction │ ├── EnglishAuction.sol │ ├── invariant.spec │ └── runInvariant.sh │ └── PopsicleFinance │ ├── ERC20.sol │ ├── Popsicle_Finance_Bug.pdf │ ├── Readme.md │ └── popsicle.sol ├── 09.Lesson_HighLevelProperties ├── README.md ├── SymbolicPoolDemonstration │ ├── Asset_ERC20.sol │ ├── ERC20.sol │ ├── IERC20.sol │ ├── IFlashLoanReceiver.sol │ ├── IPool.sol │ ├── Pool.sol │ ├── README.md │ ├── SymbolicFlashLoanReceiver.sol │ ├── highLevel.spec │ └── propertiesList.md └── ThinkingPropertiesExercise │ ├── EnglishAuction │ ├── EnglishAuction.sol │ ├── Mutations │ │ ├── Crit1_WithdrawAfterEnd.sol │ │ ├── Crit2_WithdrawUncheckedSub.sol │ │ ├── Crit3_HighestIsPayer.sol │ │ ├── Crit4_EndSendsToCaller.sol │ │ ├── Crit5_BidCalcWrongOverCredit.sol │ │ └── CritExample_EndCanBeCalledTwice.sol │ ├── dependencies │ │ ├── DummyERC20A.sol │ │ ├── DummyERC20Impl.sol │ │ ├── DummyERC721A.sol │ │ ├── DummyERC721Impl.sol │ │ └── IERC721Receiver.sol │ ├── erc20.spec │ ├── exampleSpec.spec │ ├── ideas.pdf │ ├── verifyMutations.sh │ └── verifySpec.sh │ └── README.md ├── 10.Lesson_VacuousRules ├── ERC20 │ ├── ERC20Bug1.sol │ ├── ERC20Fixed.sol │ ├── ERCVacuity.spec │ ├── IERC20.sol │ ├── IERC20Metadata.sol │ └── runERC20.sh └── README.md ├── 11.Lesson_Loops ├── BankLoops │ ├── BankWithLoops.sol │ ├── Loops.spec │ ├── README.md │ └── verifyBankWithLoops.sh ├── LoopsExample │ ├── Loops.sol │ ├── LoopsUnrolling.spec │ ├── README.md │ └── verifyLoops.sh └── README.md ├── 12.Lesson_Arrays ├── 1.Basic │ ├── Array.sol │ ├── Array.spec │ ├── ArrayImproved.sol │ └── runArray.sh ├── 2.Intermediate │ ├── ArrayUniqueBug.sol │ ├── ArrayUniqueBug.spec │ └── runArrayUniqueBug.sh ├── 3.Advance-wip │ ├── ArrayWithMap.sol │ ├── ArrayWithMap.spec │ ├── README.md │ └── runArrayWithMap.sh └── README.md ├── 15.Lesson_Harness ├── Borda │ ├── Borda.spec │ ├── BordaFixed.sol │ ├── BordaFixedHarness.sol │ ├── IBorda.sol │ └── run.sh └── README.md ├── 3DayWorkshop ├── ERC20 │ ├── answers │ │ └── erc20Answer.spec │ ├── erc20.spec │ ├── resource_errors.json │ ├── scripts │ │ ├── verifyBasic.sh │ │ ├── verifyDoYouTrustMe.sh │ │ ├── verifyFTT.sh │ │ ├── verifySushi.sh │ │ ├── verifyUSDC.sh │ │ └── verifyUSDT.sh │ └── tokens │ │ ├── ERC20Basic.sol │ │ ├── FTT.sol │ │ ├── Sushi.sol │ │ ├── USDC.sol │ │ ├── USDT.sol │ │ ├── doYouTrustMe1.sol │ │ └── doYouTrustMe2.sol ├── PracticeBugFinding │ ├── ConstantProductPool │ │ ├── ConstantProductPool.sol │ │ ├── ConstantProductPool.spec │ │ ├── DummyERC20A.sol │ │ ├── DummyERC20B.sol │ │ ├── ERC20.sol │ │ ├── answer │ │ │ ├── ConstantProductPool.spec │ │ │ ├── ConstantProductPoolFixed.sol │ │ │ └── run.sh │ │ └── run.sh │ └── Popsicle │ │ ├── ERC20.sol │ │ ├── Popsicle.sol │ │ ├── Popsicle.spec │ │ ├── Receiver.sol │ │ ├── answer │ │ ├── ERC20.sol │ │ ├── PopsicleAnswer.spec │ │ ├── PopsicleFixed.sol │ │ ├── bugExplanation.pdf │ │ └── run.sh │ │ └── run.sh ├── README.md └── SymbolicPool │ ├── contracts │ ├── Asset_ERC20.sol │ ├── ERC20.sol │ ├── Pool.sol │ └── SymbolicFlashLoanReceiver.sol │ ├── highLevel.spec │ ├── interfaces │ ├── IERC20.sol │ ├── IFlashLoanReceiver.sol │ └── IPool.sol │ ├── mathProperties.spec │ ├── properties.md │ └── scripts │ ├── verifyHighLevel.sh │ └── verifyMathProperties.sh ├── LICENSE ├── README.md └── Solutions ├── 01.Lesson_GettingStarted └── RunScriptsExample │ ├── myOwnVerificationScript1.sh │ └── myOwnVerificationScript2.sh ├── 02.Lesson_InvestigateViolations └── README.md ├── 03.Lesson_SMT ├── README.md └── images │ ├── Logic_Puzzle1.png │ └── Logic_Puzzle2.png ├── 04.Lesson_Declarations ├── Borda │ ├── Borda.spec │ ├── BordaFixed.sol │ ├── IBorda.sol │ └── run.sh ├── ERC20 │ ├── ERC20.spec │ ├── ERC20Fixed.sol │ ├── IERC20.sol │ ├── IERC20Metadata.sol │ └── run.sh └── MeetingScheduler │ ├── IMeetingScheduler.sol │ ├── MeetingSchedulerFixed.sol │ ├── meetings.spec │ └── run.sh ├── 05.Lesson_GettingFamiliarWithCVT ├── entireMeetingsMethod.sh └── entireMeetingsSendOnly.sh ├── 06.Lesson_ThinkingProperties └── README.md ├── 07.Lesson_InductiveReasoning └── InductionLesson │ ├── BallGameSolution.spec │ └── ManagerFullSolution.spec ├── 08.Lesson_WorkingWithInvariants ├── EnglishAuction │ └── invariant.spec └── ReserveList │ ├── Reserve.spec │ └── runCross.sh ├── 09.Lesson_HighLevelProperties └── EnglishAuction.spec ├── 10.Lesson_VacuousRules ├── ERCVacuitySolution.spec └── vacuousRules.md ├── 11.Lesson_Loops └── verifyBankWithLoops.sh └── 12.Lesson_Arrays ├── 1.Basic ├── Array.spec ├── ArraySemiFixed.spec └── runArray.sh ├── 2.Intermediate ├── ArrayBugSolution.sol ├── ArrayBugSolution.spec └── runArrayBugSolution.sh └── 3.Advance-wip ├── ArraySolution.sol ├── ArraySolution.spec └── runArraySolution.sh /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/.gitignore -------------------------------------------------------------------------------- /00.Lesson_PreCourse/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/00.Lesson_PreCourse/README.md -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/ERC20Lesson1/.zip-output-url.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/01.Lesson_GettingStarted/ERC20Lesson1/.zip-output-url.txt -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/ERC20Lesson1/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/01.Lesson_GettingStarted/ERC20Lesson1/ERC20.sol -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/ERC20Lesson1/ERC20.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/01.Lesson_GettingStarted/ERC20Lesson1/ERC20.spec -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/ERC20Lesson1/ERC20Fixed.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/01.Lesson_GettingStarted/ERC20Lesson1/ERC20Fixed.spec -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/ERC20Lesson1/IERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/01.Lesson_GettingStarted/ERC20Lesson1/IERC20.sol -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/ERC20Lesson1/IERC20Metadata.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/01.Lesson_GettingStarted/ERC20Lesson1/IERC20Metadata.sol -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/ERC20Lesson1/Parametric.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/01.Lesson_GettingStarted/ERC20Lesson1/Parametric.spec -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/ERC20Lesson1/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/01.Lesson_GettingStarted/ERC20Lesson1/README.md -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/ERC20Lesson1/TotalGreaterThanUser.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/01.Lesson_GettingStarted/ERC20Lesson1/TotalGreaterThanUser.spec -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/ERC20Lesson1/images/callTraceAndVariables.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/01.Lesson_GettingStarted/ERC20Lesson1/images/callTraceAndVariables.jpg -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/ERC20Lesson1/images/results.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/01.Lesson_GettingStarted/ERC20Lesson1/images/results.jpg -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/ERC20Lesson1/resource_errors.json: -------------------------------------------------------------------------------- 1 | { 2 | "topics": [] 3 | } -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/01.Lesson_GettingStarted/README.md -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/RunScriptExample/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/01.Lesson_GettingStarted/RunScriptExample/README.md -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/RunScriptExample/verifyERC20.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/01.Lesson_GettingStarted/RunScriptExample/verifyERC20.sh -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/Borda/Borda.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/Borda/Borda.spec -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/Borda/BordaBug1.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/Borda/BordaBug1.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/Borda/BordaBug2.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/Borda/BordaBug2.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/Borda/BordaBug3.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/Borda/BordaBug3.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/Borda/BordaBug4.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/Borda/BordaBug4.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/Borda/BordaFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/Borda/BordaFixed.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/Borda/IBorda.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/Borda/IBorda.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/Borda/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/Borda/README.md -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/Borda/run1.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/Borda/run1.sh -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/ERC20/ERC20.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/ERC20/ERC20.spec -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/ERC20/ERC20Bug1.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/ERC20/ERC20Bug1.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/ERC20/ERC20Bug2.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/ERC20/ERC20Bug2.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/ERC20/ERC20Bug3.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/ERC20/ERC20Bug3.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/ERC20/ERC20Bug4.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/ERC20/ERC20Bug4.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/ERC20/ERC20Fixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/ERC20/ERC20Fixed.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/ERC20/IERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/ERC20/IERC20.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/ERC20/IERC20Metadata.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/ERC20/IERC20Metadata.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/ERC20/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/ERC20/README.md -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/ERC20/runERC20.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/ERC20/runERC20.sh -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/ERC20/runERC20Fixed.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/ERC20/runERC20Fixed.sh -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/MeetingScheduler/IMeetingScheduler.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/MeetingScheduler/IMeetingScheduler.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/MeetingScheduler/MeetingSchedulerBug1.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/MeetingScheduler/MeetingSchedulerBug1.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/MeetingScheduler/MeetingSchedulerBug2.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/MeetingScheduler/MeetingSchedulerBug2.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/MeetingScheduler/MeetingSchedulerBug3.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/MeetingScheduler/MeetingSchedulerBug3.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/MeetingScheduler/MeetingSchedulerBug4.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/MeetingScheduler/MeetingSchedulerBug4.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/MeetingScheduler/MeetingSchedulerFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/MeetingScheduler/MeetingSchedulerFixed.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/MeetingScheduler/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/MeetingScheduler/README.md -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/MeetingScheduler/meetings.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/MeetingScheduler/meetings.spec -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/MeetingScheduler/runMeetingScheduler1.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/MeetingScheduler/runMeetingScheduler1.sh -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/02.Lesson_InvestigateViolations/README.md -------------------------------------------------------------------------------- /03.Lesson_SMT/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/03.Lesson_SMT/README.md -------------------------------------------------------------------------------- /03.Lesson_SMT/Z3SMTSolver/AdditionalExerciseForSMT.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/03.Lesson_SMT/Z3SMTSolver/AdditionalExerciseForSMT.pdf -------------------------------------------------------------------------------- /03.Lesson_SMT/Z3SMTSolver/Cheat_Sheet.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/03.Lesson_SMT/Z3SMTSolver/Cheat_Sheet.md -------------------------------------------------------------------------------- /03.Lesson_SMT/Z3SMTSolver/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/03.Lesson_SMT/Z3SMTSolver/README.md -------------------------------------------------------------------------------- /03.Lesson_SMT/Z3SMTSolver/images/Logic_Puzzle1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/03.Lesson_SMT/Z3SMTSolver/images/Logic_Puzzle1.png -------------------------------------------------------------------------------- /03.Lesson_SMT/Z3SMTSolver/images/Logic_Puzzle2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/03.Lesson_SMT/Z3SMTSolver/images/Logic_Puzzle2.png -------------------------------------------------------------------------------- /04.Lesson_Declarations/Methods_Definitions_Functions/Borda/Borda.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/04.Lesson_Declarations/Methods_Definitions_Functions/Borda/Borda.spec -------------------------------------------------------------------------------- /04.Lesson_Declarations/Methods_Definitions_Functions/Borda/BordaFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/04.Lesson_Declarations/Methods_Definitions_Functions/Borda/BordaFixed.sol -------------------------------------------------------------------------------- /04.Lesson_Declarations/Methods_Definitions_Functions/Borda/IBorda.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/04.Lesson_Declarations/Methods_Definitions_Functions/Borda/IBorda.sol -------------------------------------------------------------------------------- /04.Lesson_Declarations/Methods_Definitions_Functions/ERC20/ERC20.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/04.Lesson_Declarations/Methods_Definitions_Functions/ERC20/ERC20.spec -------------------------------------------------------------------------------- /04.Lesson_Declarations/Methods_Definitions_Functions/ERC20/ERC20Fixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/04.Lesson_Declarations/Methods_Definitions_Functions/ERC20/ERC20Fixed.sol -------------------------------------------------------------------------------- /04.Lesson_Declarations/Methods_Definitions_Functions/ERC20/IERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/04.Lesson_Declarations/Methods_Definitions_Functions/ERC20/IERC20.sol -------------------------------------------------------------------------------- /04.Lesson_Declarations/Methods_Definitions_Functions/ERC20/IERC20Metadata.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/04.Lesson_Declarations/Methods_Definitions_Functions/ERC20/IERC20Metadata.sol -------------------------------------------------------------------------------- /04.Lesson_Declarations/Methods_Definitions_Functions/LessonExamples/BankFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/04.Lesson_Declarations/Methods_Definitions_Functions/LessonExamples/BankFixed.sol -------------------------------------------------------------------------------- /04.Lesson_Declarations/Methods_Definitions_Functions/LessonExamples/Functions_TotalGreaterThenUser.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/04.Lesson_Declarations/Methods_Definitions_Functions/LessonExamples/Functions_TotalGreaterThenUser.spec -------------------------------------------------------------------------------- /04.Lesson_Declarations/Methods_Definitions_Functions/LessonExamples/Methods_IntegrityOfDeposit.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/04.Lesson_Declarations/Methods_Definitions_Functions/LessonExamples/Methods_IntegrityOfDeposit.spec -------------------------------------------------------------------------------- /04.Lesson_Declarations/Methods_Definitions_Functions/MeetingScheduler/IMeetingScheduler.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/04.Lesson_Declarations/Methods_Definitions_Functions/MeetingScheduler/IMeetingScheduler.sol -------------------------------------------------------------------------------- /04.Lesson_Declarations/Methods_Definitions_Functions/MeetingScheduler/MeetingSchedulerFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/04.Lesson_Declarations/Methods_Definitions_Functions/MeetingScheduler/MeetingSchedulerFixed.sol -------------------------------------------------------------------------------- /04.Lesson_Declarations/Methods_Definitions_Functions/MeetingScheduler/meetings.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/04.Lesson_Declarations/Methods_Definitions_Functions/MeetingScheduler/meetings.spec -------------------------------------------------------------------------------- /04.Lesson_Declarations/Methods_Definitions_Functions/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/04.Lesson_Declarations/Methods_Definitions_Functions/README.md -------------------------------------------------------------------------------- /04.Lesson_Declarations/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/04.Lesson_Declarations/README.md -------------------------------------------------------------------------------- /05.Lesson_GettingFamiliarWithProver/BalancerMultiDistributorRules.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/05.Lesson_GettingFamiliarWithProver/BalancerMultiDistributorRules.sh -------------------------------------------------------------------------------- /05.Lesson_GettingFamiliarWithProver/OpenZeppelinGovernor.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/05.Lesson_GettingFamiliarWithProver/OpenZeppelinGovernor.sh -------------------------------------------------------------------------------- /05.Lesson_GettingFamiliarWithProver/OpenZeppelinSanity.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/05.Lesson_GettingFamiliarWithProver/OpenZeppelinSanity.sh -------------------------------------------------------------------------------- /05.Lesson_GettingFamiliarWithProver/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/05.Lesson_GettingFamiliarWithProver/README.md -------------------------------------------------------------------------------- /05.Lesson_GettingFamiliarWithProver/ScriptExercise2/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/05.Lesson_GettingFamiliarWithProver/ScriptExercise2/README.md -------------------------------------------------------------------------------- /05.Lesson_GettingFamiliarWithProver/ScriptExercise2/images/ComprassingAndUploading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/05.Lesson_GettingFamiliarWithProver/ScriptExercise2/images/ComprassingAndUploading.png -------------------------------------------------------------------------------- /05.Lesson_GettingFamiliarWithProver/ScriptExercise2/images/LocalTypeChecking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/05.Lesson_GettingFamiliarWithProver/ScriptExercise2/images/LocalTypeChecking.png -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/AuctionDemonstration/Auction.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/06.Lesson_ThinkingProperties/AuctionDemonstration/Auction.spec -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/AuctionDemonstration/AuctionBroken.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/06.Lesson_ThinkingProperties/AuctionDemonstration/AuctionBroken.sol -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/AuctionDemonstration/AuctionFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/06.Lesson_ThinkingProperties/AuctionDemonstration/AuctionFixed.sol -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/AuctionDemonstration/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/06.Lesson_ThinkingProperties/AuctionDemonstration/README.md -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/AuctionDemonstration/propertiesList.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/06.Lesson_ThinkingProperties/AuctionDemonstration/propertiesList.md -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/AuctionDemonstration/runBroken.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/06.Lesson_ThinkingProperties/AuctionDemonstration/runBroken.sh -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/AuctionDemonstration/runFixed.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/06.Lesson_ThinkingProperties/AuctionDemonstration/runFixed.sh -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/Categorizing_Properties.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/06.Lesson_ThinkingProperties/Categorizing_Properties.pdf -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/06.Lesson_ThinkingProperties/README.md -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/MeetingScheduler/IMeetingScheduler.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/MeetingScheduler/IMeetingScheduler.sol -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/MeetingScheduler/MeetingSchedulerFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/MeetingScheduler/MeetingSchedulerFixed.sol -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/PopsicleFinance/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/PopsicleFinance/ERC20.sol -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/PopsicleFinance/popsicle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/PopsicleFinance/popsicle.sol -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/README.md -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/TicketDepot/TicketDepot.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/TicketDepot/TicketDepot.sol -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/TicketDepot/sanity.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/TicketDepot/sanity.sh -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/TicketDepot/sanity.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/TicketDepot/sanity.spec -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/Induction.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/07.Lesson_InductiveReasoning/Induction.pdf -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/InductionLesson/BallGame/BallGame.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/07.Lesson_InductiveReasoning/InductionLesson/BallGame/BallGame.sol -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/InductionLesson/BallGame/BallGame.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/07.Lesson_InductiveReasoning/InductionLesson/BallGame/BallGame.spec -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/InductionLesson/BallGame/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/07.Lesson_InductiveReasoning/InductionLesson/BallGame/run.sh -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/InductionLesson/Manager/Manager.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/07.Lesson_InductiveReasoning/InductionLesson/Manager/Manager.sol -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/InductionLesson/Manager/Manager.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/07.Lesson_InductiveReasoning/InductionLesson/Manager/Manager.spec -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/InductionLesson/Manager/ManagerBug1.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/07.Lesson_InductiveReasoning/InductionLesson/Manager/ManagerBug1.sol -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/InductionLesson/Manager/ManagerBug2.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/07.Lesson_InductiveReasoning/InductionLesson/Manager/ManagerBug2.sol -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/InductionLesson/Manager/ManagerPartialSolution.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/07.Lesson_InductiveReasoning/InductionLesson/Manager/ManagerPartialSolution.spec -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/InductionLesson/Manager/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/07.Lesson_InductiveReasoning/InductionLesson/Manager/run.sh -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/InductionLesson/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/07.Lesson_InductiveReasoning/InductionLesson/README.md -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/Invariants/EnglishAuction/EnglishAuction.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/07.Lesson_InductiveReasoning/Invariants/EnglishAuction/EnglishAuction.sol -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/Invariants/EnglishAuction/invariant.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/07.Lesson_InductiveReasoning/Invariants/EnglishAuction/invariant.spec -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/Invariants/EnglishAuction/runInvariant.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/07.Lesson_InductiveReasoning/Invariants/EnglishAuction/runInvariant.sh -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/Invariants/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/07.Lesson_InductiveReasoning/Invariants/README.md -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/07.Lesson_InductiveReasoning/README.md -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/Manager.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/Manager.sol -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/ManagerBug1.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/ManagerBug1.sol -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/ManagerBug2.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/ManagerBug2.sol -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/ManagerBug3.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/ManagerBug3.sol -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/ManagerBug4.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/ManagerBug4.sol -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/ManagerFullSolution.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/ManagerFullSolution.spec -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/run.sh -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/README.md -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/ReserveList/IReserveList.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/ReserveList/IReserveList.sol -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/ReserveList/ReserveListBug1.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/ReserveList/ReserveListBug1.sol -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/ReserveList/ReserveListBug2.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/ReserveList/ReserveListBug2.sol -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/ReserveList/ReserveListFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/ReserveList/ReserveListFixed.sol -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/ReserveList/runReserve.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/ReserveList/runReserve.sh -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/images/Requires_In_Rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/images/Requires_In_Rule.png -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/08.Lesson_WorkingWithInvariants/README.md -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/WritingRules/EnglishAuction/EnglishAuction.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/08.Lesson_WorkingWithInvariants/WritingRules/EnglishAuction/EnglishAuction.sol -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/WritingRules/EnglishAuction/invariant.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/08.Lesson_WorkingWithInvariants/WritingRules/EnglishAuction/invariant.spec -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/WritingRules/EnglishAuction/runInvariant.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/08.Lesson_WorkingWithInvariants/WritingRules/EnglishAuction/runInvariant.sh -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/WritingRules/PopsicleFinance/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/08.Lesson_WorkingWithInvariants/WritingRules/PopsicleFinance/ERC20.sol -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/WritingRules/PopsicleFinance/Popsicle_Finance_Bug.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/08.Lesson_WorkingWithInvariants/WritingRules/PopsicleFinance/Popsicle_Finance_Bug.pdf -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/WritingRules/PopsicleFinance/Readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/08.Lesson_WorkingWithInvariants/WritingRules/PopsicleFinance/Readme.md -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/WritingRules/PopsicleFinance/popsicle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/08.Lesson_WorkingWithInvariants/WritingRules/PopsicleFinance/popsicle.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/README.md -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/Asset_ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/Asset_ERC20.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/ERC20.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/IERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/IERC20.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/IFlashLoanReceiver.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/IFlashLoanReceiver.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/IPool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/IPool.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/Pool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/Pool.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/README.md -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/SymbolicFlashLoanReceiver.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/SymbolicFlashLoanReceiver.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/highLevel.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/highLevel.spec -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/propertiesList.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/propertiesList.md -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/EnglishAuction.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/EnglishAuction.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/Mutations/Crit1_WithdrawAfterEnd.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/Mutations/Crit1_WithdrawAfterEnd.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/Mutations/Crit2_WithdrawUncheckedSub.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/Mutations/Crit2_WithdrawUncheckedSub.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/Mutations/Crit3_HighestIsPayer.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/Mutations/Crit3_HighestIsPayer.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/Mutations/Crit4_EndSendsToCaller.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/Mutations/Crit4_EndSendsToCaller.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/Mutations/Crit5_BidCalcWrongOverCredit.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/Mutations/Crit5_BidCalcWrongOverCredit.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/Mutations/CritExample_EndCanBeCalledTwice.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/Mutations/CritExample_EndCanBeCalledTwice.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/dependencies/DummyERC20A.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/dependencies/DummyERC20A.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/dependencies/DummyERC20Impl.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/dependencies/DummyERC20Impl.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/dependencies/DummyERC721A.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/dependencies/DummyERC721A.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/dependencies/DummyERC721Impl.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/dependencies/DummyERC721Impl.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/dependencies/IERC721Receiver.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/dependencies/IERC721Receiver.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/erc20.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/erc20.spec -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/exampleSpec.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/exampleSpec.spec -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/ideas.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/ideas.pdf -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/verifyMutations.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/verifyMutations.sh -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/verifySpec.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/EnglishAuction/verifySpec.sh -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/README.md -------------------------------------------------------------------------------- /10.Lesson_VacuousRules/ERC20/ERC20Bug1.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/10.Lesson_VacuousRules/ERC20/ERC20Bug1.sol -------------------------------------------------------------------------------- /10.Lesson_VacuousRules/ERC20/ERC20Fixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/10.Lesson_VacuousRules/ERC20/ERC20Fixed.sol -------------------------------------------------------------------------------- /10.Lesson_VacuousRules/ERC20/ERCVacuity.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/10.Lesson_VacuousRules/ERC20/ERCVacuity.spec -------------------------------------------------------------------------------- /10.Lesson_VacuousRules/ERC20/IERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/10.Lesson_VacuousRules/ERC20/IERC20.sol -------------------------------------------------------------------------------- /10.Lesson_VacuousRules/ERC20/IERC20Metadata.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/10.Lesson_VacuousRules/ERC20/IERC20Metadata.sol -------------------------------------------------------------------------------- /10.Lesson_VacuousRules/ERC20/runERC20.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/10.Lesson_VacuousRules/ERC20/runERC20.sh -------------------------------------------------------------------------------- /10.Lesson_VacuousRules/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/10.Lesson_VacuousRules/README.md -------------------------------------------------------------------------------- /11.Lesson_Loops/BankLoops/BankWithLoops.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/11.Lesson_Loops/BankLoops/BankWithLoops.sol -------------------------------------------------------------------------------- /11.Lesson_Loops/BankLoops/Loops.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/11.Lesson_Loops/BankLoops/Loops.spec -------------------------------------------------------------------------------- /11.Lesson_Loops/BankLoops/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/11.Lesson_Loops/BankLoops/README.md -------------------------------------------------------------------------------- /11.Lesson_Loops/BankLoops/verifyBankWithLoops.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/11.Lesson_Loops/BankLoops/verifyBankWithLoops.sh -------------------------------------------------------------------------------- /11.Lesson_Loops/LoopsExample/Loops.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/11.Lesson_Loops/LoopsExample/Loops.sol -------------------------------------------------------------------------------- /11.Lesson_Loops/LoopsExample/LoopsUnrolling.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/11.Lesson_Loops/LoopsExample/LoopsUnrolling.spec -------------------------------------------------------------------------------- /11.Lesson_Loops/LoopsExample/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/11.Lesson_Loops/LoopsExample/README.md -------------------------------------------------------------------------------- /11.Lesson_Loops/LoopsExample/verifyLoops.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/11.Lesson_Loops/LoopsExample/verifyLoops.sh -------------------------------------------------------------------------------- /11.Lesson_Loops/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/11.Lesson_Loops/README.md -------------------------------------------------------------------------------- /12.Lesson_Arrays/1.Basic/Array.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/12.Lesson_Arrays/1.Basic/Array.sol -------------------------------------------------------------------------------- /12.Lesson_Arrays/1.Basic/Array.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/12.Lesson_Arrays/1.Basic/Array.spec -------------------------------------------------------------------------------- /12.Lesson_Arrays/1.Basic/ArrayImproved.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/12.Lesson_Arrays/1.Basic/ArrayImproved.sol -------------------------------------------------------------------------------- /12.Lesson_Arrays/1.Basic/runArray.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/12.Lesson_Arrays/1.Basic/runArray.sh -------------------------------------------------------------------------------- /12.Lesson_Arrays/2.Intermediate/ArrayUniqueBug.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/12.Lesson_Arrays/2.Intermediate/ArrayUniqueBug.sol -------------------------------------------------------------------------------- /12.Lesson_Arrays/2.Intermediate/ArrayUniqueBug.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/12.Lesson_Arrays/2.Intermediate/ArrayUniqueBug.spec -------------------------------------------------------------------------------- /12.Lesson_Arrays/2.Intermediate/runArrayUniqueBug.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/12.Lesson_Arrays/2.Intermediate/runArrayUniqueBug.sh -------------------------------------------------------------------------------- /12.Lesson_Arrays/3.Advance-wip/ArrayWithMap.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/12.Lesson_Arrays/3.Advance-wip/ArrayWithMap.sol -------------------------------------------------------------------------------- /12.Lesson_Arrays/3.Advance-wip/ArrayWithMap.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/12.Lesson_Arrays/3.Advance-wip/ArrayWithMap.spec -------------------------------------------------------------------------------- /12.Lesson_Arrays/3.Advance-wip/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/12.Lesson_Arrays/3.Advance-wip/README.md -------------------------------------------------------------------------------- /12.Lesson_Arrays/3.Advance-wip/runArrayWithMap.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/12.Lesson_Arrays/3.Advance-wip/runArrayWithMap.sh -------------------------------------------------------------------------------- /12.Lesson_Arrays/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/12.Lesson_Arrays/README.md -------------------------------------------------------------------------------- /15.Lesson_Harness/Borda/Borda.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/15.Lesson_Harness/Borda/Borda.spec -------------------------------------------------------------------------------- /15.Lesson_Harness/Borda/BordaFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/15.Lesson_Harness/Borda/BordaFixed.sol -------------------------------------------------------------------------------- /15.Lesson_Harness/Borda/BordaFixedHarness.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/15.Lesson_Harness/Borda/BordaFixedHarness.sol -------------------------------------------------------------------------------- /15.Lesson_Harness/Borda/IBorda.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/15.Lesson_Harness/Borda/IBorda.sol -------------------------------------------------------------------------------- /15.Lesson_Harness/Borda/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/15.Lesson_Harness/Borda/run.sh -------------------------------------------------------------------------------- /15.Lesson_Harness/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/15.Lesson_Harness/README.md -------------------------------------------------------------------------------- /3DayWorkshop/ERC20/answers/erc20Answer.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/ERC20/answers/erc20Answer.spec -------------------------------------------------------------------------------- /3DayWorkshop/ERC20/erc20.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/ERC20/erc20.spec -------------------------------------------------------------------------------- /3DayWorkshop/ERC20/resource_errors.json: -------------------------------------------------------------------------------- 1 | { 2 | "topics": [] 3 | } -------------------------------------------------------------------------------- /3DayWorkshop/ERC20/scripts/verifyBasic.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/ERC20/scripts/verifyBasic.sh -------------------------------------------------------------------------------- /3DayWorkshop/ERC20/scripts/verifyDoYouTrustMe.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/ERC20/scripts/verifyDoYouTrustMe.sh -------------------------------------------------------------------------------- /3DayWorkshop/ERC20/scripts/verifyFTT.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/ERC20/scripts/verifyFTT.sh -------------------------------------------------------------------------------- /3DayWorkshop/ERC20/scripts/verifySushi.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/ERC20/scripts/verifySushi.sh -------------------------------------------------------------------------------- /3DayWorkshop/ERC20/scripts/verifyUSDC.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/ERC20/scripts/verifyUSDC.sh -------------------------------------------------------------------------------- /3DayWorkshop/ERC20/scripts/verifyUSDT.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/ERC20/scripts/verifyUSDT.sh -------------------------------------------------------------------------------- /3DayWorkshop/ERC20/tokens/ERC20Basic.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/ERC20/tokens/ERC20Basic.sol -------------------------------------------------------------------------------- /3DayWorkshop/ERC20/tokens/FTT.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/ERC20/tokens/FTT.sol -------------------------------------------------------------------------------- /3DayWorkshop/ERC20/tokens/Sushi.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/ERC20/tokens/Sushi.sol -------------------------------------------------------------------------------- /3DayWorkshop/ERC20/tokens/USDC.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/ERC20/tokens/USDC.sol -------------------------------------------------------------------------------- /3DayWorkshop/ERC20/tokens/USDT.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/ERC20/tokens/USDT.sol -------------------------------------------------------------------------------- /3DayWorkshop/ERC20/tokens/doYouTrustMe1.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/ERC20/tokens/doYouTrustMe1.sol -------------------------------------------------------------------------------- /3DayWorkshop/ERC20/tokens/doYouTrustMe2.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/ERC20/tokens/doYouTrustMe2.sol -------------------------------------------------------------------------------- /3DayWorkshop/PracticeBugFinding/ConstantProductPool/ConstantProductPool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/PracticeBugFinding/ConstantProductPool/ConstantProductPool.sol -------------------------------------------------------------------------------- /3DayWorkshop/PracticeBugFinding/ConstantProductPool/ConstantProductPool.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/PracticeBugFinding/ConstantProductPool/ConstantProductPool.spec -------------------------------------------------------------------------------- /3DayWorkshop/PracticeBugFinding/ConstantProductPool/DummyERC20A.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/PracticeBugFinding/ConstantProductPool/DummyERC20A.sol -------------------------------------------------------------------------------- /3DayWorkshop/PracticeBugFinding/ConstantProductPool/DummyERC20B.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/PracticeBugFinding/ConstantProductPool/DummyERC20B.sol -------------------------------------------------------------------------------- /3DayWorkshop/PracticeBugFinding/ConstantProductPool/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/PracticeBugFinding/ConstantProductPool/ERC20.sol -------------------------------------------------------------------------------- /3DayWorkshop/PracticeBugFinding/ConstantProductPool/answer/ConstantProductPool.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/PracticeBugFinding/ConstantProductPool/answer/ConstantProductPool.spec -------------------------------------------------------------------------------- /3DayWorkshop/PracticeBugFinding/ConstantProductPool/answer/ConstantProductPoolFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/PracticeBugFinding/ConstantProductPool/answer/ConstantProductPoolFixed.sol -------------------------------------------------------------------------------- /3DayWorkshop/PracticeBugFinding/ConstantProductPool/answer/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/PracticeBugFinding/ConstantProductPool/answer/run.sh -------------------------------------------------------------------------------- /3DayWorkshop/PracticeBugFinding/ConstantProductPool/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/PracticeBugFinding/ConstantProductPool/run.sh -------------------------------------------------------------------------------- /3DayWorkshop/PracticeBugFinding/Popsicle/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/PracticeBugFinding/Popsicle/ERC20.sol -------------------------------------------------------------------------------- /3DayWorkshop/PracticeBugFinding/Popsicle/Popsicle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/PracticeBugFinding/Popsicle/Popsicle.sol -------------------------------------------------------------------------------- /3DayWorkshop/PracticeBugFinding/Popsicle/Popsicle.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/PracticeBugFinding/Popsicle/Popsicle.spec -------------------------------------------------------------------------------- /3DayWorkshop/PracticeBugFinding/Popsicle/Receiver.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/PracticeBugFinding/Popsicle/Receiver.sol -------------------------------------------------------------------------------- /3DayWorkshop/PracticeBugFinding/Popsicle/answer/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/PracticeBugFinding/Popsicle/answer/ERC20.sol -------------------------------------------------------------------------------- /3DayWorkshop/PracticeBugFinding/Popsicle/answer/PopsicleAnswer.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/PracticeBugFinding/Popsicle/answer/PopsicleAnswer.spec -------------------------------------------------------------------------------- /3DayWorkshop/PracticeBugFinding/Popsicle/answer/PopsicleFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/PracticeBugFinding/Popsicle/answer/PopsicleFixed.sol -------------------------------------------------------------------------------- /3DayWorkshop/PracticeBugFinding/Popsicle/answer/bugExplanation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/PracticeBugFinding/Popsicle/answer/bugExplanation.pdf -------------------------------------------------------------------------------- /3DayWorkshop/PracticeBugFinding/Popsicle/answer/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/PracticeBugFinding/Popsicle/answer/run.sh -------------------------------------------------------------------------------- /3DayWorkshop/PracticeBugFinding/Popsicle/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/PracticeBugFinding/Popsicle/run.sh -------------------------------------------------------------------------------- /3DayWorkshop/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/README.md -------------------------------------------------------------------------------- /3DayWorkshop/SymbolicPool/contracts/Asset_ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/SymbolicPool/contracts/Asset_ERC20.sol -------------------------------------------------------------------------------- /3DayWorkshop/SymbolicPool/contracts/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/SymbolicPool/contracts/ERC20.sol -------------------------------------------------------------------------------- /3DayWorkshop/SymbolicPool/contracts/Pool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/SymbolicPool/contracts/Pool.sol -------------------------------------------------------------------------------- /3DayWorkshop/SymbolicPool/contracts/SymbolicFlashLoanReceiver.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/SymbolicPool/contracts/SymbolicFlashLoanReceiver.sol -------------------------------------------------------------------------------- /3DayWorkshop/SymbolicPool/highLevel.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/SymbolicPool/highLevel.spec -------------------------------------------------------------------------------- /3DayWorkshop/SymbolicPool/interfaces/IERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/SymbolicPool/interfaces/IERC20.sol -------------------------------------------------------------------------------- /3DayWorkshop/SymbolicPool/interfaces/IFlashLoanReceiver.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/SymbolicPool/interfaces/IFlashLoanReceiver.sol -------------------------------------------------------------------------------- /3DayWorkshop/SymbolicPool/interfaces/IPool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/SymbolicPool/interfaces/IPool.sol -------------------------------------------------------------------------------- /3DayWorkshop/SymbolicPool/mathProperties.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/SymbolicPool/mathProperties.spec -------------------------------------------------------------------------------- /3DayWorkshop/SymbolicPool/properties.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/SymbolicPool/properties.md -------------------------------------------------------------------------------- /3DayWorkshop/SymbolicPool/scripts/verifyHighLevel.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/SymbolicPool/scripts/verifyHighLevel.sh -------------------------------------------------------------------------------- /3DayWorkshop/SymbolicPool/scripts/verifyMathProperties.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/3DayWorkshop/SymbolicPool/scripts/verifyMathProperties.sh -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/README.md -------------------------------------------------------------------------------- /Solutions/01.Lesson_GettingStarted/RunScriptsExample/myOwnVerificationScript1.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/01.Lesson_GettingStarted/RunScriptsExample/myOwnVerificationScript1.sh -------------------------------------------------------------------------------- /Solutions/01.Lesson_GettingStarted/RunScriptsExample/myOwnVerificationScript2.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/01.Lesson_GettingStarted/RunScriptsExample/myOwnVerificationScript2.sh -------------------------------------------------------------------------------- /Solutions/02.Lesson_InvestigateViolations/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/02.Lesson_InvestigateViolations/README.md -------------------------------------------------------------------------------- /Solutions/03.Lesson_SMT/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/03.Lesson_SMT/README.md -------------------------------------------------------------------------------- /Solutions/03.Lesson_SMT/images/Logic_Puzzle1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/03.Lesson_SMT/images/Logic_Puzzle1.png -------------------------------------------------------------------------------- /Solutions/03.Lesson_SMT/images/Logic_Puzzle2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/03.Lesson_SMT/images/Logic_Puzzle2.png -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/Borda/Borda.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/04.Lesson_Declarations/Borda/Borda.spec -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/Borda/BordaFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/04.Lesson_Declarations/Borda/BordaFixed.sol -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/Borda/IBorda.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/04.Lesson_Declarations/Borda/IBorda.sol -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/Borda/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/04.Lesson_Declarations/Borda/run.sh -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/ERC20/ERC20.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/04.Lesson_Declarations/ERC20/ERC20.spec -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/ERC20/ERC20Fixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/04.Lesson_Declarations/ERC20/ERC20Fixed.sol -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/ERC20/IERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/04.Lesson_Declarations/ERC20/IERC20.sol -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/ERC20/IERC20Metadata.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/04.Lesson_Declarations/ERC20/IERC20Metadata.sol -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/ERC20/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/04.Lesson_Declarations/ERC20/run.sh -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/MeetingScheduler/IMeetingScheduler.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/04.Lesson_Declarations/MeetingScheduler/IMeetingScheduler.sol -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/MeetingScheduler/MeetingSchedulerFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/04.Lesson_Declarations/MeetingScheduler/MeetingSchedulerFixed.sol -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/MeetingScheduler/meetings.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/04.Lesson_Declarations/MeetingScheduler/meetings.spec -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/MeetingScheduler/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/04.Lesson_Declarations/MeetingScheduler/run.sh -------------------------------------------------------------------------------- /Solutions/05.Lesson_GettingFamiliarWithCVT/entireMeetingsMethod.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/05.Lesson_GettingFamiliarWithCVT/entireMeetingsMethod.sh -------------------------------------------------------------------------------- /Solutions/05.Lesson_GettingFamiliarWithCVT/entireMeetingsSendOnly.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/05.Lesson_GettingFamiliarWithCVT/entireMeetingsSendOnly.sh -------------------------------------------------------------------------------- /Solutions/06.Lesson_ThinkingProperties/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/06.Lesson_ThinkingProperties/README.md -------------------------------------------------------------------------------- /Solutions/07.Lesson_InductiveReasoning/InductionLesson/BallGameSolution.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/07.Lesson_InductiveReasoning/InductionLesson/BallGameSolution.spec -------------------------------------------------------------------------------- /Solutions/07.Lesson_InductiveReasoning/InductionLesson/ManagerFullSolution.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/07.Lesson_InductiveReasoning/InductionLesson/ManagerFullSolution.spec -------------------------------------------------------------------------------- /Solutions/08.Lesson_WorkingWithInvariants/EnglishAuction/invariant.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/08.Lesson_WorkingWithInvariants/EnglishAuction/invariant.spec -------------------------------------------------------------------------------- /Solutions/08.Lesson_WorkingWithInvariants/ReserveList/Reserve.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/08.Lesson_WorkingWithInvariants/ReserveList/Reserve.spec -------------------------------------------------------------------------------- /Solutions/08.Lesson_WorkingWithInvariants/ReserveList/runCross.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/08.Lesson_WorkingWithInvariants/ReserveList/runCross.sh -------------------------------------------------------------------------------- /Solutions/09.Lesson_HighLevelProperties/EnglishAuction.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/09.Lesson_HighLevelProperties/EnglishAuction.spec -------------------------------------------------------------------------------- /Solutions/10.Lesson_VacuousRules/ERCVacuitySolution.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/10.Lesson_VacuousRules/ERCVacuitySolution.spec -------------------------------------------------------------------------------- /Solutions/10.Lesson_VacuousRules/vacuousRules.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Solutions/11.Lesson_Loops/verifyBankWithLoops.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/11.Lesson_Loops/verifyBankWithLoops.sh -------------------------------------------------------------------------------- /Solutions/12.Lesson_Arrays/1.Basic/Array.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/12.Lesson_Arrays/1.Basic/Array.spec -------------------------------------------------------------------------------- /Solutions/12.Lesson_Arrays/1.Basic/ArraySemiFixed.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/12.Lesson_Arrays/1.Basic/ArraySemiFixed.spec -------------------------------------------------------------------------------- /Solutions/12.Lesson_Arrays/1.Basic/runArray.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/12.Lesson_Arrays/1.Basic/runArray.sh -------------------------------------------------------------------------------- /Solutions/12.Lesson_Arrays/2.Intermediate/ArrayBugSolution.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/12.Lesson_Arrays/2.Intermediate/ArrayBugSolution.sol -------------------------------------------------------------------------------- /Solutions/12.Lesson_Arrays/2.Intermediate/ArrayBugSolution.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/12.Lesson_Arrays/2.Intermediate/ArrayBugSolution.spec -------------------------------------------------------------------------------- /Solutions/12.Lesson_Arrays/2.Intermediate/runArrayBugSolution.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/12.Lesson_Arrays/2.Intermediate/runArrayBugSolution.sh -------------------------------------------------------------------------------- /Solutions/12.Lesson_Arrays/3.Advance-wip/ArraySolution.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/12.Lesson_Arrays/3.Advance-wip/ArraySolution.sol -------------------------------------------------------------------------------- /Solutions/12.Lesson_Arrays/3.Advance-wip/ArraySolution.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/12.Lesson_Arrays/3.Advance-wip/ArraySolution.spec -------------------------------------------------------------------------------- /Solutions/12.Lesson_Arrays/3.Advance-wip/runArraySolution.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Certora/Tutorials/HEAD/Solutions/12.Lesson_Arrays/3.Advance-wip/runArraySolution.sh --------------------------------------------------------------------------------