βSemantics involves giving meaning to logical constants in a formal way. When we talk about truth table semantics, weβre talking about a way to formally interpret (or give meaning to) sentences in the logical language using truth tables. Similarly, algebraic semantics does the same, but using algebras. Proof-theoretic semantics attempts to give meaning in terms of proof rather than truth conditions.β

βTeach Yourself Logic: A Study Guideβ

βLogic mattersβ

βforallx: Cambridge book - Covers both truth-functional logic and first-order logic, introducing students to semantics and to a Fitch-style natural deduction system.

βThe Haskell Road to Logic, Math and Programmingβ

βHoare Logic: Introduction to separation logicβ

βGreat resources on learning logicβ

βMany-valued logic (HN)

βAn Introduction to Non-Classical Logic bookβ

βData Abstraction and Relational Program Logic (2020)β

βReinventing Formal Logic (2012)β

βUnivalence as a Principle of Logic (2016)β