CMSI 585
Midterm Preparation

When

Last 20 minutes of class on Monday, July 27, 2026.

Everyone takes the exam at the same time.

Scope

Logic, Foundations of Mathematics, Set Theory, Type Theory. While this exam claims to be a midterm, the questions are multiple choice, short answer, and matching, and do not require any deep thought. It is more like a quiz that assesses knowledge you should have readily available. The exam only counts as a midterm since it reaches back a little in time, with 25% of the exam hitting material you’ve already been quizzed on (logic and math).

Ground Rules

You will take the exam on paper. There is a 20 minute time limit.

You may bring three sheets of paper with notes written on both sides of each.

Preparation Checklist

Do each of the following to maximize your preparation:

Were you able to check off every box?

Things to Know

The learning objectives for the course up to this point in time include you having developed a familiarity with, and an ability to discuss everything about logic appearing on the course notes.

Outline of Course Content

The fact that active recall is better for acquiring long-term knowledge does not mean that outlines and concept maps are not useful. Learners should use multiple techniques—think “both and” rather than “either or.”

Logic
    Outlined in the preparation for Quiz 2
Mathematics for Computation
    Outlined in the preparation for Quiz 3
Set Theory
    What is a set?
    Why use sets for foundations?
    History
        Frege
        Russell (Russell's Paradox)
        Different formalizations
            ZFC - the big one
            NBG - introduced classes
            NF - stratified comprehension
        Basic notation
            element of (∈)
            subset of (⊆)
        Axioms of ZFC
            Empty set (∅)
            Extensionality
            Pairing
            Union
            Power set
            Infinity
            Foundation
            Replacement
            Separation
            Choice
        Encodings of mathematical objects
            Natural numbers
                generated as in the Axiom of Infinity
            Booleans
                false is 0
                true is 1
                The set of all booleans is 2
            Ordered pairs
                (a,b) = { {a}, {a,b} }
            Tuples
                (are really nested ordered pairs)
            Relations
                encoded as sets of ordered pairs
                from domain and codomain
                subset of powerset of the product of domain and codomain
                ambiguity of R² = R o R vs. R² = R x R
            Functions
                relations with the functional property
                Injections
                Surjections
                Bijections
            Sequences
                functions with domain the natural numbers
            Lists
                empty list is the empty set
                non-empty list is a pair of an element and a list
            Characters
                encoded as the code point of the character
            Strings
                list of characters
            Maps
                functions
            Integers
                sets of pairs of natural numbers with the same difference
            Rational numbers
                set of pairs of integers with the same ratio
                    denominator must be positive
            Real numbers
                defined as Dedekind cuts of rational numbers
        Cardinals
            Finite vs. Infinite
            Diagonalization
            Countable vs. Uncountable
            Cantor’s Theorem
        Ordinals
            Von Neumann ordinals
Type Theory (Part 1)
    What is it
    Characteristic notation x:t
    Logic emerges from type theory
    Inductive definitions
        Booleans
        Natural numbers
        Integers
        Rationals
        Fixed size numbers
        Products (pairs)
        Unit
        List
        Unicode
        More custom types
        String
        Option
        Void
    Function types (NON-INDUCTIVE)
        Notation
        Matching syntax
        Naming functions
        Examples from arithmetic and logic
        Composition of functions
        Integers
        The cond function (important for the exam)
        Sugar
        List functions
        Type inference
        Polymorphism
        Partial functions
    Subtypes
    Unions
    Intersections
    Sums, products, and exponents
    Sets
    Equality
        Not for free in Type Theory
    Real numbers
    How the formation rules have to be restricted to avoid paradoxes

About the Problems

This is a mini-quiz which tests for immediate understanding of topics and not your ability to work out problems over an extended duration of time. There is a strict time limit so that your immediate fluency is tested rather than your ability to search the web (or worse, ask a chatbot), since these things take time. There will be 5–10 questions. Some may be multiple choice, multi-select, matching, and very short answer.

All content on the assigned readings is fair game for questions, so do not neglect the readings, and by all means do the recall questions!