Definitions Index#
This page lists the canonical definitions used throughout the book and where they appear.
Reading Guide
Some concepts appear in two forms:
Symbolic AST form (
Var,Lam,App) for proof traces.Executable Church/Python form for computation experiments.
Core Lambda Syntax (AST)#
Introduced in:
notebooks/01_lambda_basicsCanonical implementation:
lc_core.pyNames:
Var,Lam,Appvariable analysis:
free_vars,all_varsalpha-renaming:
alpha_renamecapture-avoiding substitution:
subst
Reduction Engines#
Canonical implementation:
lc_core.pyNames:
beta-step reducers:
beta_step_normal,beta_step_applicativenormalization:
normalize,nf,trace_reduceeta:
eta_step,eta_nf
Interactive traces + diffs:
lc_interactive.py
Church Booleans and Logic#
Introduced in:
notebooks/03_church_booleans_logicCanonical implementation:
church_core.pyNames:
TRUE,FALSE,IF,IF_THUNKAND,OR,NOT,IMPLIEShelpers:
to_bool
Church Numerals and Arithmetic#
Introduced in:
notebooks/05_church_numeralsCanonical implementation:
church_core.pyNames:
numerals and conversions:
church,to_int,from_intarithmetic:
succ,add,mul,pred,subpredicates:
is_zero,leq_church,eq_churchpairs:
pair,fst,snd
Fixpoints and Recursion#
Introduced in:
notebooks/06_recursion_fixpointsCanonical implementation:
Zis exported bychurch_core.py(used across Chapters 6-9)Yappears only as a reference (not executed in eager Python)
Recursive Church examples (
FACT,POW):notebooks/06_recursion_fixpoints
Logic as Types (STLC)#
Introduced in:
notebooks/04_propositional_logicCanonical implementation:
stlc_core.pyNames:
type constructors:
Arrow,And,Or,Unit,Voidtyping:
type_of
Induction Proof Objects#
Chapter 8 symbolic proof scripts (beta/eta/alpha-aware equality):
notebooks/08_inductionChapter 9 witness objects and theorem iterators:
theorem1_forall,theorem2_forall,theorem3_forall,theorem4_forall,theorem5_forallnotebooks/09_induction_arithmetic
Fast Verification Layer (Chapter 9)#
Decoded equality/order helpers (
eq,leq,lt):notebooks/09_induction_arithmeticFast modulo helper
mod(withmod 0undefined):notebooks/09_induction_arithmetic
Advanced Modules (Chapters 12-16)#
Chapters 12-16 rely on small prototype modules under advanced/:
NbE prototype:
advanced/stlc_nbe.pyDependent-types toy code:
advanced/dependent_codes.pySequent calculus search/extraction:
advanced/sequent_imp.pyControl operators:
advanced/classical_control.pySystem F core:
advanced/systemf_core.py
Scope Note
Chapter 4 is intuitionistic propositional logic (Curry-Howard in STLC). Chapters 1-3 and 5-9 primarily use untyped lambda encodings and meta-level proof tooling.