├── .gitignore ├── 00.Lesson_PreCourse └── README.md ├── 01.Lesson_GettingStarted ├── BankLesson1 │ ├── Bank.sol │ ├── BankFixed.sol │ ├── IntegrityOfDeposit.spec │ ├── Parametric.spec │ ├── README.md │ ├── TotalGreaterThanUser.spec │ └── images │ │ ├── callTraceAndVariables.jpg │ │ └── results.jpg ├── README.md └── RunScriptExample │ ├── README.md │ └── verifyIntegrityOfDeposit.sh ├── 02.Lesson_InvestigateViolations ├── Borda │ ├── Borda.spec │ ├── BordaBug1.sol │ ├── BordaBug2.sol │ ├── BordaBug3.sol │ ├── BordaBug4.sol │ ├── BordaFixed.sol │ ├── IBorda.sol │ ├── README.md │ ├── makefile │ └── run.sh ├── ERC20 │ ├── ERC20.spec │ ├── ERC20Bug1.sol │ ├── ERC20Bug2.sol │ ├── ERC20Bug3.sol │ ├── ERC20Bug4.sol │ ├── ERC20Fixed.sol │ ├── IERC20.sol │ ├── IERC20Metadata.sol │ ├── README.md │ ├── makefile │ └── runERC20.sh ├── MeetingScheduler │ ├── IMeetingScheduler.sol │ ├── MeetingSchedulerBug1.sol │ ├── MeetingSchedulerBug2.sol │ ├── MeetingSchedulerBug3.sol │ ├── MeetingSchedulerBug4.sol │ ├── MeetingSchedulerFixed.sol │ ├── README.md │ ├── makefile │ ├── meetings.spec │ └── runMeetingScheduler.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_GettingFamiliarWithCVT ├── 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 │ ├── Bank │ │ ├── BankFixed.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 │ ├── PopsicleFinance │ ├── ERC20.sol │ ├── Popsicle_Finance_Bug.pdf │ ├── Readme.md │ └── popsicle.sol │ └── SpartanProtocol │ ├── ERC20.sol │ ├── Readme.md │ ├── SpartaProtocolPool.sol │ └── img │ └── table.png ├── 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 │ ├── Borda │ ├── BordaFixed.sol │ └── IBorda.sol │ ├── ERC20 │ ├── ERC20Fixed.sol │ ├── IERC20.sol │ └── IERC20Metadata.sol │ ├── README.md │ └── SpartanProtocol │ ├── ERC20.sol │ ├── SpartaProtocolPool.sol │ └── img │ └── table.png ├── 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 ├── AAVE ├── ERC20 │ ├── bytecode │ │ ├── DoYouTrustMe1.json │ │ ├── DoYouTrustMe2.json │ │ └── verifyBytecode.sh │ ├── demo.spec │ ├── demo2.spec │ ├── erc20.spec │ ├── scripts │ │ ├── verifyBasic.sh │ │ ├── verifyFTT.sh │ │ ├── verifySushi.sh │ │ ├── verifyUSDC.sh │ │ └── verifyUSDT.sh │ └── tokens │ │ ├── ERC20Basic.sol │ │ ├── FTT.sol │ │ ├── IERC20.sol │ │ ├── Sushi.sol │ │ ├── USDC.sol │ │ ├── USDT.sol │ │ ├── demo2.spec │ │ └── erc20.spec ├── 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 │ └── ReserveList │ │ ├── IReserveList.sol │ │ ├── Reserve.spec │ │ ├── ReserveList.sol │ │ ├── answer │ │ ├── Reserve.spec │ │ └── ReserveListFixed.sol │ │ └── runReserve.sh ├── 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 ├── lecture1.pdf └── lecture2.pdf ├── Fixed ├── Bitmasks │ ├── Bitmask.sol │ ├── README.md │ ├── bitmask.spec │ └── makefile ├── DiscountedBuy │ ├── DiscountedBuy.sol │ ├── DiscountedBuy.spec │ ├── README.md │ └── makefile ├── ERC20 │ ├── ERC20.spec │ ├── ERC20bug.sol │ ├── ERC20fixed.sol │ ├── IERC20.sol │ ├── IERC20Metadata.sol │ ├── README.md │ └── makefile └── InsertionSort │ ├── Insertion.spec │ ├── InsertionSort.sol │ ├── README.md │ └── makefile ├── LICENSE ├── Pending ├── Bank │ ├── Bank.sol │ ├── README.md │ ├── TotalGreaterThanBalance.spec │ ├── images │ │ ├── callTraceAndVariables.jpg │ │ └── results.jpg │ └── makefile ├── BytesConversion │ ├── BytesConversion.sol │ ├── BytesConversion.spec │ ├── README.md │ └── makefile ├── DollarSign │ ├── OneDollar.sol │ ├── OneDollar.spec │ ├── README.md │ └── makefile ├── MutualInvariants │ ├── MutualInvariants.sol │ ├── MutualInvariants.spec │ └── makefile └── README.md ├── 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 ├── Manager │ ├── ManagerFullSolution.spec │ └── run.sh └── ReserveList │ ├── Reserve.spec │ └── runCross.sh ├── 09.Lesson_HighLevelProperties └── README.md ├── 10.Lesson_VacuousRules ├── ERCVacuitySolution.spec └── vacuousRules.md └── 11.Lesson_Loops └── verifyBankWithLoops.sh /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/.gitignore -------------------------------------------------------------------------------- /00.Lesson_PreCourse/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/00.Lesson_PreCourse/README.md -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/BankLesson1/Bank.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/01.Lesson_GettingStarted/BankLesson1/Bank.sol -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/BankLesson1/BankFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/01.Lesson_GettingStarted/BankLesson1/BankFixed.sol -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/BankLesson1/IntegrityOfDeposit.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/01.Lesson_GettingStarted/BankLesson1/IntegrityOfDeposit.spec -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/BankLesson1/Parametric.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/01.Lesson_GettingStarted/BankLesson1/Parametric.spec -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/BankLesson1/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/01.Lesson_GettingStarted/BankLesson1/README.md -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/BankLesson1/TotalGreaterThanUser.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/01.Lesson_GettingStarted/BankLesson1/TotalGreaterThanUser.spec -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/BankLesson1/images/callTraceAndVariables.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/01.Lesson_GettingStarted/BankLesson1/images/callTraceAndVariables.jpg -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/BankLesson1/images/results.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/01.Lesson_GettingStarted/BankLesson1/images/results.jpg -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/01.Lesson_GettingStarted/README.md -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/RunScriptExample/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/01.Lesson_GettingStarted/RunScriptExample/README.md -------------------------------------------------------------------------------- /01.Lesson_GettingStarted/RunScriptExample/verifyIntegrityOfDeposit.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/01.Lesson_GettingStarted/RunScriptExample/verifyIntegrityOfDeposit.sh -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/Borda/Borda.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/Borda/Borda.spec -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/Borda/BordaBug1.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/Borda/BordaBug1.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/Borda/BordaBug2.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/Borda/BordaBug2.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/Borda/BordaBug3.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/Borda/BordaBug3.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/Borda/BordaBug4.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/Borda/BordaBug4.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/Borda/BordaFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/Borda/BordaFixed.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/Borda/IBorda.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/Borda/IBorda.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/Borda/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/Borda/README.md -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/Borda/makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/Borda/makefile -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/Borda/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/Borda/run.sh -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/ERC20/ERC20.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/ERC20/ERC20.spec -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/ERC20/ERC20Bug1.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/ERC20/ERC20Bug1.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/ERC20/ERC20Bug2.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/ERC20/ERC20Bug2.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/ERC20/ERC20Bug3.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/ERC20/ERC20Bug3.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/ERC20/ERC20Bug4.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/ERC20/ERC20Bug4.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/ERC20/ERC20Fixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/ERC20/ERC20Fixed.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/ERC20/IERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/ERC20/IERC20.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/ERC20/IERC20Metadata.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/ERC20/IERC20Metadata.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/ERC20/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/ERC20/README.md -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/ERC20/makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/ERC20/makefile -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/ERC20/runERC20.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/ERC20/runERC20.sh -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/MeetingScheduler/IMeetingScheduler.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/MeetingScheduler/IMeetingScheduler.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/MeetingScheduler/MeetingSchedulerBug1.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/MeetingScheduler/MeetingSchedulerBug1.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/MeetingScheduler/MeetingSchedulerBug2.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/MeetingScheduler/MeetingSchedulerBug2.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/MeetingScheduler/MeetingSchedulerBug3.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/MeetingScheduler/MeetingSchedulerBug3.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/MeetingScheduler/MeetingSchedulerBug4.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/MeetingScheduler/MeetingSchedulerBug4.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/MeetingScheduler/MeetingSchedulerFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/MeetingScheduler/MeetingSchedulerFixed.sol -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/MeetingScheduler/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/MeetingScheduler/README.md -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/MeetingScheduler/makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/MeetingScheduler/makefile -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/MeetingScheduler/meetings.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/MeetingScheduler/meetings.spec -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/MeetingScheduler/runMeetingScheduler.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/MeetingScheduler/runMeetingScheduler.sh -------------------------------------------------------------------------------- /02.Lesson_InvestigateViolations/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/02.Lesson_InvestigateViolations/README.md -------------------------------------------------------------------------------- /03.Lesson_SMT/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/03.Lesson_SMT/README.md -------------------------------------------------------------------------------- /03.Lesson_SMT/Z3SMTSolver/AdditionalExerciseForSMT.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/03.Lesson_SMT/Z3SMTSolver/AdditionalExerciseForSMT.pdf -------------------------------------------------------------------------------- /03.Lesson_SMT/Z3SMTSolver/Cheat_Sheet.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/03.Lesson_SMT/Z3SMTSolver/Cheat_Sheet.md -------------------------------------------------------------------------------- /03.Lesson_SMT/Z3SMTSolver/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/03.Lesson_SMT/Z3SMTSolver/README.md -------------------------------------------------------------------------------- /03.Lesson_SMT/Z3SMTSolver/images/Logic_Puzzle1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/03.Lesson_SMT/Z3SMTSolver/images/Logic_Puzzle1.png -------------------------------------------------------------------------------- /03.Lesson_SMT/Z3SMTSolver/images/Logic_Puzzle2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/03.Lesson_SMT/Z3SMTSolver/images/Logic_Puzzle2.png -------------------------------------------------------------------------------- /04.Lesson_Declarations/Methods_Definitions_Functions/Borda/Borda.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-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/morpho-org/morpho-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/morpho-org/morpho-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/morpho-org/morpho-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/morpho-org/morpho-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/morpho-org/morpho-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/morpho-org/morpho-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/morpho-org/morpho-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/morpho-org/morpho-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/morpho-org/morpho-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/morpho-org/morpho-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/morpho-org/morpho-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/morpho-org/morpho-certora-tutorials/HEAD/04.Lesson_Declarations/Methods_Definitions_Functions/MeetingScheduler/meetings.spec -------------------------------------------------------------------------------- /04.Lesson_Declarations/Methods_Definitions_Functions/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/04.Lesson_Declarations/Methods_Definitions_Functions/README.md -------------------------------------------------------------------------------- /04.Lesson_Declarations/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/04.Lesson_Declarations/README.md -------------------------------------------------------------------------------- /05.Lesson_GettingFamiliarWithCVT/BalancerMultiDistributorRules.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/05.Lesson_GettingFamiliarWithCVT/BalancerMultiDistributorRules.sh -------------------------------------------------------------------------------- /05.Lesson_GettingFamiliarWithCVT/OpenZeppelinGovernor.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/05.Lesson_GettingFamiliarWithCVT/OpenZeppelinGovernor.sh -------------------------------------------------------------------------------- /05.Lesson_GettingFamiliarWithCVT/OpenZeppelinSanity.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/05.Lesson_GettingFamiliarWithCVT/OpenZeppelinSanity.sh -------------------------------------------------------------------------------- /05.Lesson_GettingFamiliarWithCVT/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/05.Lesson_GettingFamiliarWithCVT/README.md -------------------------------------------------------------------------------- /05.Lesson_GettingFamiliarWithCVT/ScriptExercise2/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/05.Lesson_GettingFamiliarWithCVT/ScriptExercise2/README.md -------------------------------------------------------------------------------- /05.Lesson_GettingFamiliarWithCVT/ScriptExercise2/images/ComprassingAndUploading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/05.Lesson_GettingFamiliarWithCVT/ScriptExercise2/images/ComprassingAndUploading.png -------------------------------------------------------------------------------- /05.Lesson_GettingFamiliarWithCVT/ScriptExercise2/images/LocalTypeChecking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/05.Lesson_GettingFamiliarWithCVT/ScriptExercise2/images/LocalTypeChecking.png -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/AuctionDemonstration/Auction.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/06.Lesson_ThinkingProperties/AuctionDemonstration/Auction.spec -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/AuctionDemonstration/AuctionBroken.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/06.Lesson_ThinkingProperties/AuctionDemonstration/AuctionBroken.sol -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/AuctionDemonstration/AuctionFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/06.Lesson_ThinkingProperties/AuctionDemonstration/AuctionFixed.sol -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/AuctionDemonstration/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/06.Lesson_ThinkingProperties/AuctionDemonstration/README.md -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/AuctionDemonstration/propertiesList.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/06.Lesson_ThinkingProperties/AuctionDemonstration/propertiesList.md -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/AuctionDemonstration/runBroken.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/06.Lesson_ThinkingProperties/AuctionDemonstration/runBroken.sh -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/AuctionDemonstration/runFixed.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/06.Lesson_ThinkingProperties/AuctionDemonstration/runFixed.sh -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/Categorizing_Properties.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/06.Lesson_ThinkingProperties/Categorizing_Properties.pdf -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/06.Lesson_ThinkingProperties/README.md -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/MeetingScheduler/IMeetingScheduler.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/MeetingScheduler/IMeetingScheduler.sol -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/MeetingScheduler/MeetingSchedulerFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/MeetingScheduler/MeetingSchedulerFixed.sol -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/PopsicleFinance/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/PopsicleFinance/ERC20.sol -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/PopsicleFinance/popsicle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/PopsicleFinance/popsicle.sol -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/README.md -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/TicketDepot/TicketDepot.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/TicketDepot/TicketDepot.sol -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/TicketDepot/sanity.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/TicketDepot/sanity.sh -------------------------------------------------------------------------------- /06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/TicketDepot/sanity.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/06.Lesson_ThinkingProperties/ThinkingPropertiesExercise/TicketDepot/sanity.spec -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/Induction.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/07.Lesson_InductiveReasoning/Induction.pdf -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/InductionLesson/BallGame/BallGame.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/07.Lesson_InductiveReasoning/InductionLesson/BallGame/BallGame.sol -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/InductionLesson/BallGame/BallGame.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/07.Lesson_InductiveReasoning/InductionLesson/BallGame/BallGame.spec -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/InductionLesson/BallGame/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/07.Lesson_InductiveReasoning/InductionLesson/BallGame/run.sh -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/InductionLesson/Manager/Manager.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/07.Lesson_InductiveReasoning/InductionLesson/Manager/Manager.sol -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/InductionLesson/Manager/Manager.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/07.Lesson_InductiveReasoning/InductionLesson/Manager/Manager.spec -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/InductionLesson/Manager/ManagerBug1.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/07.Lesson_InductiveReasoning/InductionLesson/Manager/ManagerBug1.sol -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/InductionLesson/Manager/ManagerBug2.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/07.Lesson_InductiveReasoning/InductionLesson/Manager/ManagerBug2.sol -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/InductionLesson/Manager/ManagerPartialSolution.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/07.Lesson_InductiveReasoning/InductionLesson/Manager/ManagerPartialSolution.spec -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/InductionLesson/Manager/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/07.Lesson_InductiveReasoning/InductionLesson/Manager/run.sh -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/InductionLesson/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/07.Lesson_InductiveReasoning/InductionLesson/README.md -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/Invariants/Bank/BankFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/07.Lesson_InductiveReasoning/Invariants/Bank/BankFixed.sol -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/Invariants/Bank/invariant.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/07.Lesson_InductiveReasoning/Invariants/Bank/invariant.spec -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/Invariants/Bank/runInvariant.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/07.Lesson_InductiveReasoning/Invariants/Bank/runInvariant.sh -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/Invariants/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/07.Lesson_InductiveReasoning/Invariants/README.md -------------------------------------------------------------------------------- /07.Lesson_InductiveReasoning/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/07.Lesson_InductiveReasoning/README.md -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/Manager.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/Manager.sol -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/ManagerBug1.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/ManagerBug1.sol -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/ManagerBug2.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/ManagerBug2.sol -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/ManagerBug3.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/ManagerBug3.sol -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/ManagerBug4.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/ManagerBug4.sol -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/ManagerFullSolution.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/ManagerFullSolution.spec -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/Manager/run.sh -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/README.md -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/ReserveList/IReserveList.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/ReserveList/IReserveList.sol -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/ReserveList/ReserveListBug1.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/ReserveList/ReserveListBug1.sol -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/ReserveList/ReserveListBug2.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/ReserveList/ReserveListBug2.sol -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/ReserveList/ReserveListFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/ReserveList/ReserveListFixed.sol -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/ReserveList/runReserve.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/ReserveList/runReserve.sh -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/InvariantsConcepts/images/Requires_In_Rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/08.Lesson_WorkingWithInvariants/InvariantsConcepts/images/Requires_In_Rule.png -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/08.Lesson_WorkingWithInvariants/README.md -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/WritingRules/PopsicleFinance/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/08.Lesson_WorkingWithInvariants/WritingRules/PopsicleFinance/ERC20.sol -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/WritingRules/PopsicleFinance/Popsicle_Finance_Bug.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/08.Lesson_WorkingWithInvariants/WritingRules/PopsicleFinance/Popsicle_Finance_Bug.pdf -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/WritingRules/PopsicleFinance/Readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/08.Lesson_WorkingWithInvariants/WritingRules/PopsicleFinance/Readme.md -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/WritingRules/PopsicleFinance/popsicle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/08.Lesson_WorkingWithInvariants/WritingRules/PopsicleFinance/popsicle.sol -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/WritingRules/SpartanProtocol/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/08.Lesson_WorkingWithInvariants/WritingRules/SpartanProtocol/ERC20.sol -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/WritingRules/SpartanProtocol/Readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/08.Lesson_WorkingWithInvariants/WritingRules/SpartanProtocol/Readme.md -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/WritingRules/SpartanProtocol/SpartaProtocolPool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/08.Lesson_WorkingWithInvariants/WritingRules/SpartanProtocol/SpartaProtocolPool.sol -------------------------------------------------------------------------------- /08.Lesson_WorkingWithInvariants/WritingRules/SpartanProtocol/img/table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/08.Lesson_WorkingWithInvariants/WritingRules/SpartanProtocol/img/table.png -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/09.Lesson_HighLevelProperties/README.md -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/Asset_ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/Asset_ERC20.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/ERC20.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/IERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/IERC20.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/IFlashLoanReceiver.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/IFlashLoanReceiver.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/IPool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/IPool.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/Pool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/Pool.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/README.md -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/SymbolicFlashLoanReceiver.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/SymbolicFlashLoanReceiver.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/highLevel.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/highLevel.spec -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/propertiesList.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/09.Lesson_HighLevelProperties/SymbolicPoolDemonstration/propertiesList.md -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/Borda/BordaFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/Borda/BordaFixed.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/Borda/IBorda.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/Borda/IBorda.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/ERC20/ERC20Fixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/ERC20/ERC20Fixed.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/ERC20/IERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/ERC20/IERC20.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/ERC20/IERC20Metadata.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/ERC20/IERC20Metadata.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/README.md -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/SpartanProtocol/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/SpartanProtocol/ERC20.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/SpartanProtocol/SpartaProtocolPool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/SpartanProtocol/SpartaProtocolPool.sol -------------------------------------------------------------------------------- /09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/SpartanProtocol/img/table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/09.Lesson_HighLevelProperties/ThinkingPropertiesExercise/SpartanProtocol/img/table.png -------------------------------------------------------------------------------- /10.Lesson_VacuousRules/ERC20/ERC20Bug1.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/10.Lesson_VacuousRules/ERC20/ERC20Bug1.sol -------------------------------------------------------------------------------- /10.Lesson_VacuousRules/ERC20/ERC20Fixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/10.Lesson_VacuousRules/ERC20/ERC20Fixed.sol -------------------------------------------------------------------------------- /10.Lesson_VacuousRules/ERC20/ERCVacuity.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/10.Lesson_VacuousRules/ERC20/ERCVacuity.spec -------------------------------------------------------------------------------- /10.Lesson_VacuousRules/ERC20/IERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/10.Lesson_VacuousRules/ERC20/IERC20.sol -------------------------------------------------------------------------------- /10.Lesson_VacuousRules/ERC20/IERC20Metadata.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/10.Lesson_VacuousRules/ERC20/IERC20Metadata.sol -------------------------------------------------------------------------------- /10.Lesson_VacuousRules/ERC20/runERC20.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/10.Lesson_VacuousRules/ERC20/runERC20.sh -------------------------------------------------------------------------------- /10.Lesson_VacuousRules/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/10.Lesson_VacuousRules/README.md -------------------------------------------------------------------------------- /11.Lesson_Loops/BankLoops/BankWithLoops.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/11.Lesson_Loops/BankLoops/BankWithLoops.sol -------------------------------------------------------------------------------- /11.Lesson_Loops/BankLoops/Loops.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/11.Lesson_Loops/BankLoops/Loops.spec -------------------------------------------------------------------------------- /11.Lesson_Loops/BankLoops/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/11.Lesson_Loops/BankLoops/README.md -------------------------------------------------------------------------------- /11.Lesson_Loops/BankLoops/verifyBankWithLoops.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/11.Lesson_Loops/BankLoops/verifyBankWithLoops.sh -------------------------------------------------------------------------------- /11.Lesson_Loops/LoopsExample/Loops.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/11.Lesson_Loops/LoopsExample/Loops.sol -------------------------------------------------------------------------------- /11.Lesson_Loops/LoopsExample/LoopsUnrolling.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/11.Lesson_Loops/LoopsExample/LoopsUnrolling.spec -------------------------------------------------------------------------------- /11.Lesson_Loops/LoopsExample/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/11.Lesson_Loops/LoopsExample/README.md -------------------------------------------------------------------------------- /11.Lesson_Loops/LoopsExample/verifyLoops.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/11.Lesson_Loops/LoopsExample/verifyLoops.sh -------------------------------------------------------------------------------- /11.Lesson_Loops/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/11.Lesson_Loops/README.md -------------------------------------------------------------------------------- /AAVE/ERC20/bytecode/DoYouTrustMe1.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/ERC20/bytecode/DoYouTrustMe1.json -------------------------------------------------------------------------------- /AAVE/ERC20/bytecode/DoYouTrustMe2.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/ERC20/bytecode/DoYouTrustMe2.json -------------------------------------------------------------------------------- /AAVE/ERC20/bytecode/verifyBytecode.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/ERC20/bytecode/verifyBytecode.sh -------------------------------------------------------------------------------- /AAVE/ERC20/demo.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/ERC20/demo.spec -------------------------------------------------------------------------------- /AAVE/ERC20/demo2.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/ERC20/demo2.spec -------------------------------------------------------------------------------- /AAVE/ERC20/erc20.spec: -------------------------------------------------------------------------------- 1 | // TODO: write ERC20 specifications 2 | 3 | -------------------------------------------------------------------------------- /AAVE/ERC20/scripts/verifyBasic.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/ERC20/scripts/verifyBasic.sh -------------------------------------------------------------------------------- /AAVE/ERC20/scripts/verifyFTT.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/ERC20/scripts/verifyFTT.sh -------------------------------------------------------------------------------- /AAVE/ERC20/scripts/verifySushi.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/ERC20/scripts/verifySushi.sh -------------------------------------------------------------------------------- /AAVE/ERC20/scripts/verifyUSDC.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/ERC20/scripts/verifyUSDC.sh -------------------------------------------------------------------------------- /AAVE/ERC20/scripts/verifyUSDT.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/ERC20/scripts/verifyUSDT.sh -------------------------------------------------------------------------------- /AAVE/ERC20/tokens/ERC20Basic.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/ERC20/tokens/ERC20Basic.sol -------------------------------------------------------------------------------- /AAVE/ERC20/tokens/FTT.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/ERC20/tokens/FTT.sol -------------------------------------------------------------------------------- /AAVE/ERC20/tokens/IERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/ERC20/tokens/IERC20.sol -------------------------------------------------------------------------------- /AAVE/ERC20/tokens/Sushi.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/ERC20/tokens/Sushi.sol -------------------------------------------------------------------------------- /AAVE/ERC20/tokens/USDC.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/ERC20/tokens/USDC.sol -------------------------------------------------------------------------------- /AAVE/ERC20/tokens/USDT.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/ERC20/tokens/USDT.sol -------------------------------------------------------------------------------- /AAVE/ERC20/tokens/demo2.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/ERC20/tokens/demo2.spec -------------------------------------------------------------------------------- /AAVE/ERC20/tokens/erc20.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/ERC20/tokens/erc20.spec -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/ConstantProductPool/ConstantProductPool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/ConstantProductPool/ConstantProductPool.sol -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/ConstantProductPool/ConstantProductPool.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/ConstantProductPool/ConstantProductPool.spec -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/ConstantProductPool/DummyERC20A.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/ConstantProductPool/DummyERC20A.sol -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/ConstantProductPool/DummyERC20B.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/ConstantProductPool/DummyERC20B.sol -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/ConstantProductPool/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/ConstantProductPool/ERC20.sol -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/ConstantProductPool/answer/ConstantProductPool.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/ConstantProductPool/answer/ConstantProductPool.spec -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/ConstantProductPool/answer/ConstantProductPoolFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/ConstantProductPool/answer/ConstantProductPoolFixed.sol -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/ConstantProductPool/answer/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/ConstantProductPool/answer/run.sh -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/ConstantProductPool/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/ConstantProductPool/run.sh -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/Popsicle/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/Popsicle/ERC20.sol -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/Popsicle/Popsicle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/Popsicle/Popsicle.sol -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/Popsicle/Popsicle.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/Popsicle/Popsicle.spec -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/Popsicle/Receiver.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/Popsicle/Receiver.sol -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/Popsicle/answer/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/Popsicle/answer/ERC20.sol -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/Popsicle/answer/PopsicleAnswer.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/Popsicle/answer/PopsicleAnswer.spec -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/Popsicle/answer/PopsicleFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/Popsicle/answer/PopsicleFixed.sol -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/Popsicle/answer/bugExplanation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/Popsicle/answer/bugExplanation.pdf -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/Popsicle/answer/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/Popsicle/answer/run.sh -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/Popsicle/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/Popsicle/run.sh -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/ReserveList/IReserveList.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/ReserveList/IReserveList.sol -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/ReserveList/Reserve.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/ReserveList/Reserve.spec -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/ReserveList/ReserveList.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/ReserveList/ReserveList.sol -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/ReserveList/answer/Reserve.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/ReserveList/answer/Reserve.spec -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/ReserveList/answer/ReserveListFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/ReserveList/answer/ReserveListFixed.sol -------------------------------------------------------------------------------- /AAVE/PracticeBugFinding/ReserveList/runReserve.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/PracticeBugFinding/ReserveList/runReserve.sh -------------------------------------------------------------------------------- /AAVE/SymbolicPool/contracts/Asset_ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/SymbolicPool/contracts/Asset_ERC20.sol -------------------------------------------------------------------------------- /AAVE/SymbolicPool/contracts/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/SymbolicPool/contracts/ERC20.sol -------------------------------------------------------------------------------- /AAVE/SymbolicPool/contracts/Pool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/SymbolicPool/contracts/Pool.sol -------------------------------------------------------------------------------- /AAVE/SymbolicPool/contracts/SymbolicFlashLoanReceiver.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/SymbolicPool/contracts/SymbolicFlashLoanReceiver.sol -------------------------------------------------------------------------------- /AAVE/SymbolicPool/highLevel.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/SymbolicPool/highLevel.spec -------------------------------------------------------------------------------- /AAVE/SymbolicPool/interfaces/IERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/SymbolicPool/interfaces/IERC20.sol -------------------------------------------------------------------------------- /AAVE/SymbolicPool/interfaces/IFlashLoanReceiver.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/SymbolicPool/interfaces/IFlashLoanReceiver.sol -------------------------------------------------------------------------------- /AAVE/SymbolicPool/interfaces/IPool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/SymbolicPool/interfaces/IPool.sol -------------------------------------------------------------------------------- /AAVE/SymbolicPool/mathProperties.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/SymbolicPool/mathProperties.spec -------------------------------------------------------------------------------- /AAVE/SymbolicPool/properties.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/SymbolicPool/properties.md -------------------------------------------------------------------------------- /AAVE/SymbolicPool/scripts/verifyHighLevel.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/SymbolicPool/scripts/verifyHighLevel.sh -------------------------------------------------------------------------------- /AAVE/SymbolicPool/scripts/verifyMathProperties.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/SymbolicPool/scripts/verifyMathProperties.sh -------------------------------------------------------------------------------- /AAVE/lecture1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/lecture1.pdf -------------------------------------------------------------------------------- /AAVE/lecture2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/AAVE/lecture2.pdf -------------------------------------------------------------------------------- /Fixed/Bitmasks/Bitmask.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Fixed/Bitmasks/Bitmask.sol -------------------------------------------------------------------------------- /Fixed/Bitmasks/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Fixed/Bitmasks/README.md -------------------------------------------------------------------------------- /Fixed/Bitmasks/bitmask.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Fixed/Bitmasks/bitmask.spec -------------------------------------------------------------------------------- /Fixed/Bitmasks/makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Fixed/Bitmasks/makefile -------------------------------------------------------------------------------- /Fixed/DiscountedBuy/DiscountedBuy.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Fixed/DiscountedBuy/DiscountedBuy.sol -------------------------------------------------------------------------------- /Fixed/DiscountedBuy/DiscountedBuy.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Fixed/DiscountedBuy/DiscountedBuy.spec -------------------------------------------------------------------------------- /Fixed/DiscountedBuy/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Fixed/DiscountedBuy/README.md -------------------------------------------------------------------------------- /Fixed/DiscountedBuy/makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Fixed/DiscountedBuy/makefile -------------------------------------------------------------------------------- /Fixed/ERC20/ERC20.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Fixed/ERC20/ERC20.spec -------------------------------------------------------------------------------- /Fixed/ERC20/ERC20bug.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Fixed/ERC20/ERC20bug.sol -------------------------------------------------------------------------------- /Fixed/ERC20/ERC20fixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Fixed/ERC20/ERC20fixed.sol -------------------------------------------------------------------------------- /Fixed/ERC20/IERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Fixed/ERC20/IERC20.sol -------------------------------------------------------------------------------- /Fixed/ERC20/IERC20Metadata.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Fixed/ERC20/IERC20Metadata.sol -------------------------------------------------------------------------------- /Fixed/ERC20/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Fixed/ERC20/README.md -------------------------------------------------------------------------------- /Fixed/ERC20/makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Fixed/ERC20/makefile -------------------------------------------------------------------------------- /Fixed/InsertionSort/Insertion.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Fixed/InsertionSort/Insertion.spec -------------------------------------------------------------------------------- /Fixed/InsertionSort/InsertionSort.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Fixed/InsertionSort/InsertionSort.sol -------------------------------------------------------------------------------- /Fixed/InsertionSort/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Fixed/InsertionSort/README.md -------------------------------------------------------------------------------- /Fixed/InsertionSort/makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Fixed/InsertionSort/makefile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/LICENSE -------------------------------------------------------------------------------- /Pending/Bank/Bank.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Pending/Bank/Bank.sol -------------------------------------------------------------------------------- /Pending/Bank/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Pending/Bank/README.md -------------------------------------------------------------------------------- /Pending/Bank/TotalGreaterThanBalance.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Pending/Bank/TotalGreaterThanBalance.spec -------------------------------------------------------------------------------- /Pending/Bank/images/callTraceAndVariables.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Pending/Bank/images/callTraceAndVariables.jpg -------------------------------------------------------------------------------- /Pending/Bank/images/results.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Pending/Bank/images/results.jpg -------------------------------------------------------------------------------- /Pending/Bank/makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Pending/Bank/makefile -------------------------------------------------------------------------------- /Pending/BytesConversion/BytesConversion.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Pending/BytesConversion/BytesConversion.sol -------------------------------------------------------------------------------- /Pending/BytesConversion/BytesConversion.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Pending/BytesConversion/BytesConversion.spec -------------------------------------------------------------------------------- /Pending/BytesConversion/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Pending/BytesConversion/README.md -------------------------------------------------------------------------------- /Pending/BytesConversion/makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Pending/BytesConversion/makefile -------------------------------------------------------------------------------- /Pending/DollarSign/OneDollar.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Pending/DollarSign/OneDollar.sol -------------------------------------------------------------------------------- /Pending/DollarSign/OneDollar.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Pending/DollarSign/OneDollar.spec -------------------------------------------------------------------------------- /Pending/DollarSign/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Pending/DollarSign/README.md -------------------------------------------------------------------------------- /Pending/DollarSign/makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Pending/DollarSign/makefile -------------------------------------------------------------------------------- /Pending/MutualInvariants/MutualInvariants.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Pending/MutualInvariants/MutualInvariants.sol -------------------------------------------------------------------------------- /Pending/MutualInvariants/MutualInvariants.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Pending/MutualInvariants/MutualInvariants.spec -------------------------------------------------------------------------------- /Pending/MutualInvariants/makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Pending/MutualInvariants/makefile -------------------------------------------------------------------------------- /Pending/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Pending/README.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/README.md -------------------------------------------------------------------------------- /Solutions/01.Lesson_GettingStarted/RunScriptsExample/myOwnVerificationScript1.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/01.Lesson_GettingStarted/RunScriptsExample/myOwnVerificationScript1.sh -------------------------------------------------------------------------------- /Solutions/01.Lesson_GettingStarted/RunScriptsExample/myOwnVerificationScript2.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/01.Lesson_GettingStarted/RunScriptsExample/myOwnVerificationScript2.sh -------------------------------------------------------------------------------- /Solutions/02.Lesson_InvestigateViolations/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/02.Lesson_InvestigateViolations/README.md -------------------------------------------------------------------------------- /Solutions/03.Lesson_SMT/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/03.Lesson_SMT/README.md -------------------------------------------------------------------------------- /Solutions/03.Lesson_SMT/images/Logic_Puzzle1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/03.Lesson_SMT/images/Logic_Puzzle1.png -------------------------------------------------------------------------------- /Solutions/03.Lesson_SMT/images/Logic_Puzzle2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/03.Lesson_SMT/images/Logic_Puzzle2.png -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/Borda/Borda.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/04.Lesson_Declarations/Borda/Borda.spec -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/Borda/BordaFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/04.Lesson_Declarations/Borda/BordaFixed.sol -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/Borda/IBorda.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/04.Lesson_Declarations/Borda/IBorda.sol -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/Borda/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/04.Lesson_Declarations/Borda/run.sh -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/ERC20/ERC20.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/04.Lesson_Declarations/ERC20/ERC20.spec -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/ERC20/ERC20Fixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/04.Lesson_Declarations/ERC20/ERC20Fixed.sol -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/ERC20/IERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/04.Lesson_Declarations/ERC20/IERC20.sol -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/ERC20/IERC20Metadata.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/04.Lesson_Declarations/ERC20/IERC20Metadata.sol -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/ERC20/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/04.Lesson_Declarations/ERC20/run.sh -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/MeetingScheduler/IMeetingScheduler.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/04.Lesson_Declarations/MeetingScheduler/IMeetingScheduler.sol -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/MeetingScheduler/MeetingSchedulerFixed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/04.Lesson_Declarations/MeetingScheduler/MeetingSchedulerFixed.sol -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/MeetingScheduler/meetings.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/04.Lesson_Declarations/MeetingScheduler/meetings.spec -------------------------------------------------------------------------------- /Solutions/04.Lesson_Declarations/MeetingScheduler/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/04.Lesson_Declarations/MeetingScheduler/run.sh -------------------------------------------------------------------------------- /Solutions/05.Lesson_GettingFamiliarWithCVT/entireMeetingsMethod.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/05.Lesson_GettingFamiliarWithCVT/entireMeetingsMethod.sh -------------------------------------------------------------------------------- /Solutions/05.Lesson_GettingFamiliarWithCVT/entireMeetingsSendOnly.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/05.Lesson_GettingFamiliarWithCVT/entireMeetingsSendOnly.sh -------------------------------------------------------------------------------- /Solutions/06.Lesson_ThinkingProperties/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/06.Lesson_ThinkingProperties/README.md -------------------------------------------------------------------------------- /Solutions/07.Lesson_InductiveReasoning/InductionLesson/BallGameSolution.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/07.Lesson_InductiveReasoning/InductionLesson/BallGameSolution.spec -------------------------------------------------------------------------------- /Solutions/07.Lesson_InductiveReasoning/InductionLesson/ManagerFullSolution.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/07.Lesson_InductiveReasoning/InductionLesson/ManagerFullSolution.spec -------------------------------------------------------------------------------- /Solutions/08.Lesson_WorkingWithInvariants/Manager/ManagerFullSolution.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/08.Lesson_WorkingWithInvariants/Manager/ManagerFullSolution.spec -------------------------------------------------------------------------------- /Solutions/08.Lesson_WorkingWithInvariants/Manager/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/08.Lesson_WorkingWithInvariants/Manager/run.sh -------------------------------------------------------------------------------- /Solutions/08.Lesson_WorkingWithInvariants/ReserveList/Reserve.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/08.Lesson_WorkingWithInvariants/ReserveList/Reserve.spec -------------------------------------------------------------------------------- /Solutions/08.Lesson_WorkingWithInvariants/ReserveList/runCross.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/08.Lesson_WorkingWithInvariants/ReserveList/runCross.sh -------------------------------------------------------------------------------- /Solutions/09.Lesson_HighLevelProperties/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-certora-tutorials/HEAD/Solutions/09.Lesson_HighLevelProperties/README.md -------------------------------------------------------------------------------- /Solutions/10.Lesson_VacuousRules/ERCVacuitySolution.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morpho-org/morpho-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/morpho-org/morpho-certora-tutorials/HEAD/Solutions/11.Lesson_Loops/verifyBankWithLoops.sh --------------------------------------------------------------------------------