MIT has a very useful course that covers the (often overlooked) basics of discrete math that show up all over computer science, including, as you've seen, in Programming Languages. The free textbook is at https://ocw.mit.edu/courses/6-042j-mathematics-for-computer-science-spring-2015/mit6_042js15_textbook.pdf There are also videos and other materials at https://ocw.mit.edu/courses/6-042j-mathematics-for-computer-science-fall-2010/download/ Some highlights: 1. Immediately relevant to Rocq types and Propositions as Types: Sec 1.4.1, then Chapter 3 until 3.5 2. Logical deductions (Sec 1.4.1) and various kinds of proofs: Sec 1.5--1.9 3. Predicates with quantifiers: 3.6--end of Chapter 3. 4. Induction proofs: Chapter 5. Classic example of an inductive proof "for all natural numbers", Theorem 5.1.2.