Chatzikyriakidis–Cooper–Gregoromichelaki–Sutton 2025: TTR intentional identity #
[CCGS25] §2.3.2 treats [Gea67]'s Hob–Nob puzzle —
"Hob thinks a witch has blighted Bob's mare, and Nob wonders whether she (the
same witch) killed Cob's sow" — following [Ran94]'s belief-context
analysis, recast by [Coo23] with record types in place of contexts: Hob's
and Nob's belief contexts overlap with respect to a shared witch component,
which need not be witnessed. Types, unlike sets of worlds, are individuated
intensionally (Semantics.TypeTheoretic.ext_equiv_not_implies_int_eq), so two
agents' attitudes can concern the same possibly-empty type.
This file formalizes the shared-component core of the account: Hob's and Nob's
contents both have witchType as a meet component while that type is empty.
The full analysis additionally aligns labels across the agents' belief
contexts ("indexed by the same variable in their respective belief contexts"),
giving sameness of discourse referent rather than merely of type; that
refinement awaits dependent record substrate, and without it component-sharing
alone cannot distinguish "the same witch" from "a witch of the same kind" —
the distinction [Ede86]'s asymmetry data make empirically load-bearing.
Main declarations #
Examples.hobNob: Geach's sentence as aLinguisticExamplewitchType,hobContent,nobContent: the Hob–Nob modelSharesComponent: a content hasTas its left meet componentintentional_identity: the contents share the empty witch type yet are intensionally distinctvalidates_hobNob: the model validates the empirical datum
TTR model of the Hob–Nob puzzle #
The shared witch type: empty carrier (no witch exists), individuated intensionally by its name.
Equations
- ChatzikyriakidisEtAl2025.witchType = { carrier := Empty, name := "witch" }
Instances For
"blighted Bob's mare" as a predicate type.
Equations
- ChatzikyriakidisEtAl2025.blightBobsMare = { carrier := Unit, name := "blighted_bobs_mare" }
Instances For
"killed Cob's sow" as a predicate type.
Equations
- ChatzikyriakidisEtAl2025.killCobsSow = { carrier := Unit, name := "killed_cobs_sow" }
Instances For
Hob's belief content: a witch who blighted Bob's mare.
Equations
Instances For
Nob's wonder content: the same witch type, met with killing Cob's sow.
Equations
Instances For
The witch type is empty: no witch exists.
The two contents are intensionally distinct (their event components differ), even though both are empty.
The contents are extensionally equivalent (both carriers are empty) yet
intensionally distinct — the model-level instance of
ext_equiv_not_implies_int_eq. An extensional semantics (Set W-style
contents) identifies the two attitudes; TTR keeps them apart.
Intentional identity, TTR-style: Hob's and Nob's contents share the witch type as a common intensional component, are intensionally distinct contents, and the shared type is empty — both attitudes are "about the same witch-type" although no witch exists.
The model validates Examples.hobNob's key judgment: the discourse is
acceptable although no witch need exist, and the model supplies shared
cross-attitude content built on an empty type.