Cooper (2023) — the TTR apparatus #
The book's type-theoretic DSL, shared by the chapter files. TTR's
metatheory is the ambient type theory: the judgment a : T is Lean's
native typing, record types are structures, subtyping is Coe, truth
is inhabitation, meet and join are Prod and Sum. This file keeps
the book's names for that identification plus the apparatus with
genuinely Cooper-specific content: intensional named types (IType,
§1.3), parametric — presuppositional — content (Parametric, §4.3),
and the compositional entries of §3.4 and §5.6.
Truth as inhabitation (§1.5) #
A TTR type is "true" (inhabited). §1.5.
Equations
- Cooper2023.TTR.IsTrue T = Nonempty T
Instances For
A TTR type is "false" (empty).
Equations
- Cooper2023.TTR.IsFalse T = IsEmpty T
Instances For
Truth and falsity are exclusive.
Lift a proposition to a type. Alias for PLift.
Equations
- Cooper2023.TTR.propT p = PLift p
Instances For
Intensional types (§1.3) #
Types are intensional: "there is nothing which prevents two types from
being associated with exactly the same set of objects". A name-tagged
wrapper makes the identity-beyond-extension explicit — the
groundhog ~ woodchuck distinction: same animals, different types.
An intensional type: a named type that carries identity beyond its extension (§1.3).
- carrier : Type
The underlying Lean type (extension carrier)
- name : String
Intensional identity tag (e.g., a predicate name)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Cooper2023.TTR.instReprIType = { reprPrec := Cooper2023.TTR.instReprIType.repr }
Two ITypes are intensionally identical when both name and carrier match.
Equations
- T₁.intEq T₂ = (T₁ = T₂)
Instances For
Core TTR thesis: extensional equivalence does not entail intensional identity — types are not sets.
Meet and join types (§2.3.3, Def 97) #
Meet type: a : T₁ ∧ T₂ iff a : T₁ and a : T₂ — Lean's Prod.
Equations
- Cooper2023.TTR.MeetType T₁ T₂ = (T₁ × T₂)
Instances For
Join type: a : T₁ ∨ T₂ iff a : T₁ or a : T₂ — Lean's Sum.
Equations
- Cooper2023.TTR.JoinType T₁ T₂ = (T₁ ⊕ T₂)
Instances For
Record-type subtyping (§1.4.3.5, ex 53) #
A record type with more fields is a subtype of one with fewer fields
(more constraints, fewer witnesses); the projection is the
extends-generated forgetful map.
Modal type systems (Def 54) #
A modal type system: for each possibility and predicate, whether the predicate has witnesses. Def 54; structurally a Kripke model.
Equations
- Cooper2023.TTR.ModalTypeSystem W Pred = (W → Pred → Bool)
Instances For
Compositional semantics (§3.4) #
The semantic type hierarchy: Ppty and Quant are the TTR analogues
of Montague's ⟨e,t⟩ and ⟨⟨e,t⟩,t⟩.
A property type: maps an individual to a type of situations. §3.4, ex (30).
Equations
- Cooper2023.TTR.Ppty E = (E → Type)
Instances For
A quantifier type: maps a property to a type. §3.4.
Equations
- Cooper2023.TTR.Quant E = (Cooper2023.TTR.Ppty E → Type)
Instances For
Common noun content: wrap a predicate as a property. §3.4, ex (30).
Equations
Instances For
Proper name content as a generalized quantifier. §3.4, ex (33).
Equations
- Cooper2023.TTR.semPropName a P = P a
Instances For
The existential witness record type. §3.4, ex (37).
- individual : E
- restrWit : restr self.individual
- scopeWit : scope self.individual
Instances For
Indefinite article content: maps a restrictor property to a quantifier. §3.4, ex (37).
Equations
- Cooper2023.TTR.semIndefArt restr scope = Cooper2023.TTR.ExistWitness E restr scope
Instances For
Copula "be" for predicate nominal constructions. §3.4, ex (78).
Equations
- Cooper2023.TTR.semBe Q x = Q fun (y : E) => Cooper2023.TTR.propT (x = y)
Instances For
Existential quantification as property-extension overlap. §3.4, ex (55).
Equations
- Cooper2023.TTR.existPQ P Q = ∃ (a : E), Nonempty (P a) ∧ Nonempty (Q a)
Instances For
Universal quantifier as a type. §5.6.
Equations
- Cooper2023.TTR.semUniversal restr scope = ((x : E) → restr x → scope x)
Instances For
Parametric content (§4.2–4.3) #
Content that depends on a context: a background type (the presupposition) paired with a foreground function from satisfying contexts to content.
Parametric property: context-dependent property.
Equations
Instances For
A trivial parametric content: no presupposition (bg = Unit).
Equations
- Cooper2023.TTR.Parametric.trivial c = { Bg := Unit, fg := fun (x : Unit) => c }
Instances For
A trivial parametric content yields the same value for any context.
Assignments (§4.6) #
Variable assignment: maps natural-number indices to individuals.
Equal to PartialAssign ℕ E; the alias name is retained because
the book's prose uses 𝔰/𝔩/𝔯/𝔴/𝔤 as named "assignments" rather than
as partial functions, and the inheritance carries the
valued/valued_update_at simp set into this file's consumers.
Equations
- Cooper2023.TTR.Assgnmnt E = PartialAssign ℕ E
Instances For
An assignment with at least n bindings (all indices < n defined).
Equations
- g.hasBindings n = ∀ (i : ℕ), i < n → (g i).isSome = true
Instances For
Merge with empty on the left returns the right assignment.
Propositional context.