Truthmaker Semantics @cite{fine-2017} @cite{bondarenko-elliott-2026} @cite{jago-2026} #
State-based propositions grounded in Core/Mereology.lean. Propositions are
sets of verifying states, where states form a join-semilattice (the same
SemilatticeSup infrastructure used for events and plural individuals).
Files in this directory #
Basic.lean(this file) — unilateral and bilateral propositions, fusion-based connectives, content parthood (Down/Up/full), bilateral pairs with exclusivity/exhaustivity, subject-matter.Inexact.lean— inexact truthmaking and exact/inexact entailment.Closure.lean— closed/convex/regular closure operators (Jago Def 4), built onMereology.AlgClosureandMereology.convexClosure.Entailment.lean— analytic entailment (AC), FDE-style consequence, bridges.
Part I: Unilateral propositions #
The first part formalizes the unilateral fragment needed by
@cite{bondarenko-elliott-2026}: propositions as sets of verifiers,
conjunction via fusion, content parthood (Down clause), and attitude
distribution. Both halves of Jago's conjunctive parthood are exposed
(IsSubsumedBy, Subserves, IsContentPart).
Part II: Bilateral propositions #
The second part formalizes Fine's full bilateral conception: propositions as pairs (V, F) of verifier and falsifier sets, with negation as the swap operation. The duality between conjunction and disjunction at the verification/falsification level:
| Connective | Verified by | Falsified by |
|---|---|---|
| A ∧ B | fusion (⊔) | union (∨) |
| A ∨ B | union (∨) | fusion (⊔) |
| ¬A | falsifiers | verifiers |
Key ideas #
Conjunction via fusion: p ∧ q is verified by the fusion s₁ ⊔ s₂ of verifiers of p and q (not by set intersection). This makes conjunction mereologically structured.
Disjunction via union: p ∨ q is verified by any verifier of either p or q. This is purely set-theoretic — no mereological structure.
Content parthood (Jago Def 5): q is a content part of p when both the Down clause holds (every verifier of p has a part verifying q) AND the Up clause holds (every verifier of q is part of some verifier of p). The Down-only relation
IsSubsumedByis the relation @cite{bondarenko-elliott-2026} use for monotonicity arguments.Bilateral propositions: Propositions are (V, F) pairs. Negation swaps them; conjunction fuses verifiers but unions falsifiers; disjunction unions verifiers but fuses falsifiers.
Exclusivity/Exhaustivity: No verifier is compatible with a falsifier (exclusivity); every possible state is compatible with a verifier or falsifier (exhaustivity).
Subject-matter: σ(A) = the fusion of all verifiers and falsifiers of A. Two sentences can be logically equivalent but differ in subject-matter; crucially, σ(¬A) = σ(A) (negation invariance).
Citation discipline #
- The encyclopedia survey @cite{jago-2026} is the entry point; specific
technical claims trace back to Fine's two-part Truthmaker Content
series (which are in Journal of Philosophical Logic 46(6), not the
Wiley Companion chapter
fine-2017). Section/page numbers internal to those papers are flaggedUNVERIFIEDuntil checked against PDFs. - @cite{bondarenko-elliott-2026} definitions/theorem numbers are flagged
UNVERIFIEDsince the manuscript has not been cross-checked.
A truthmaker proposition: a set of verifying states.
A state s verifies p iff p s holds.
Equations
- Semantics.Truthmaker.TMProp S = (S → Prop)
Instances For
Disjunction via union.
s verifies p ∨ q iff s verifies p or s verifies q.
Set-theoretic — no mereological structure.
Equations
- Semantics.Truthmaker.tmOr p q s = (p s ∨ q s)
Instances For
Conjunction via fusion (@cite{fine-2017}; @cite{bondarenko-elliott-2026}).
s verifies p ∧ q iff s = s₁ ⊔ s₂ for some s₁ verifying p
and s₂ verifying q.
The key departure from classical conjunction (set intersection).
Equations
- Semantics.Truthmaker.tmAnd p q s = ∃ (s₁ : S) (s₂ : S), p s₁ ∧ q s₂ ∧ s = s₁ ⊔ s₂
Instances For
Down clause of conjunctive parthood (@cite{jago-2026} Def 5;
@cite{bondarenko-elliott-2026} content parthood):
every verifier of p has a part verifying q.
Re-export of Mereology.IsSubsumedBy — the Down clause is a generic
poset relation, not truthmaker-specific.
The Down-only relation suffices for @cite{bondarenko-elliott-2026}'s monotonicity arguments.
Equations
Instances For
Up clause of conjunctive parthood (@cite{jago-2026} Def 5):
every verifier of q is part of some verifier of p.
Re-export of Mereology.Subserves. The Up clause is more delicate:
Subserves p (tmAnd p q) requires q to be inhabited (you need a
witness to fuse with) — a deliberate departure from the Fine
convention that propositions are nonempty.
Equations
Instances For
Full conjunctive parthood (@cite{jago-2026} Def 5):
q is a content part of p iff both the Down and Up clauses hold.
Re-export of Mereology.IsContentPart. Written q ≤ p in Jago's
notation.
Equations
Instances For
p is subsumed by p ∧ q (Down clause).
If s verifies p ∧ q, then s = s₁ ⊔ s₂ with p s₁,
so s₁ ≤ s is the required part.
q is subsumed by p ∧ q (symmetric to tmAnd_left).
p subserves p ∧ q provided q is inhabited (Up clause).
Take any s verifying p; pick a witness s₂ verifying q;
then s ⊔ s₂ verifies p ∧ q and s ≤ s ⊔ s₂.
p is a content part of p ∧ q whenever q is inhabited (full Jago Def 5).
q is a content part of p ∧ q whenever p is inhabited.
An attitude holds when the agent's total information state has a
verifier-part for the proposition.
σ : E → S maps agents to their total information states.
Equations
- Semantics.Truthmaker.attHolds σ p x = ∃ (s : S), p s ∧ s ≤ σ x
Instances For
Converse direction: if the agent's state has parts verifying both
p and q, their fusion verifies p ∧ q and is also a part of σ x.
Full conjunction-distribution biconditional for upward-monotone attitudes (@cite{bondarenko-elliott-2026}, monotonicity-via-mereology theorem).
Disjunction does NOT generally satisfy content parthood.
tmOr p q is verified by any verifier of p or q (set union).
A verifier of p ∨ q that verifies only p need not have a part
verifying q — so q is not generally subsumed by p ∨ q.
Concrete witness over Nat with p = (· = 0) and q = (· = 1).
A bilateral proposition: separate sets of verifiers and falsifiers.
Per @cite{fine-2017}, a bilateral model assigns each atom a pair
(V, F) of a verification set V and a falsification set F.
The unilateral TMProp is recovered by BilProp.toTM.
- ver : S → Prop
States that verify (make true) the proposition.
- fal : S → Prop
States that falsify (make false) the proposition.
Instances For
Conjunction: verified by fusion, falsified by union.
Defined via tmAnd / tmOr so the duality is structurally explicit:
conjunction fuses verifiers but unions falsifiers.
Equations
- p.conj q = { ver := Semantics.Truthmaker.tmAnd p.ver q.ver, fal := Semantics.Truthmaker.tmOr p.fal q.fal }
Instances For
Disjunction: verified by union, falsified by fusion.
Exact dual of conj.
Equations
- p.disj q = { ver := Semantics.Truthmaker.tmOr p.ver q.ver, fal := Semantics.Truthmaker.tmAnd p.fal q.fal }
Instances For
Negation is involutive (mathlib-flavored restatement of neg_neg).
BilProp S carries an InvolutiveNeg structure — the same mathlib
abstraction satisfied by Theories/Semantics/Dynamic/Bilateral/Basic.lean's
BilateralDen. The two bilateral frameworks (state-based truthmaker,
update-based dynamic) are unified at the swap-pair level by being
instances of InvolutiveNeg.
Equations
- Semantics.Truthmaker.BilProp.instInvolutiveNeg = { neg := Semantics.Truthmaker.BilProp.neg, neg_neg := ⋯ }
Fine-style truthmaker BilProp is a paraconsistent bilateral logic
(Core.Logic.Bilateral.IsBilateral). The BilProp value IS the
formula; ver/fal are field projections; neg swaps them by
definition. Both axioms reduce to rfl. Cross-references the
InvolutiveNeg instance above and BilateralDen.isBilateral
(BUS) — three frameworks share the substrate.
The set of possible states within a state space, packaged as a
LowerSet S from mathlib: the carrier is a downward-closed set
(P.lower : IsLowerSet ↑P), capturing Fine's requirement that any
part of a possible state is itself possible.
Possibility S = LowerSet S is just an alias to make the
truthmaker-semantic role visible.
Equations
- Semantics.Truthmaker.Possibility S = LowerSet S
Instances For
Two states are compatible iff their fusion is possible (@cite{fine-2017}). Incompatible states represent conflicting information — e.g., a state verifying "it's cold" and a state verifying "it's hot" are incompatible because their fusion is impossible.
Equations
- Semantics.Truthmaker.compatible P s t = (s ⊔ t ∈ P)
Instances For
Compatibility is symmetric.
Exclusivity (@cite{fine-2017}): no verifier is compatible with a falsifier. One direction of bivalence: verification and falsification are mutually incompatible.
Equations
- Semantics.Truthmaker.Exclusive P A = ∀ (s t : S), A.ver s → A.fal t → ¬Semantics.Truthmaker.compatible P s t
Instances For
Exhaustivity (@cite{fine-2017}): every possible state is compatible with a verifier or a falsifier. The other direction of bivalence: no possible state is undecided about A.
NOTE: this is the compatibility-based formulation in Fine 2017;
a parthood-based variant ("every possible state is part of a
verifier or falsifier") also appears in the literature and is
related but not identical — added as ExhaustivePart if needed.
Equations
- Semantics.Truthmaker.Exhaustive P A = ∀ s ∈ P, (∃ (t : S), A.ver t ∧ Semantics.Truthmaker.compatible P s t) ∨ ∃ (t : S), A.fal t ∧ Semantics.Truthmaker.compatible P s t
Instances For
Negation preserves exclusivity.
Negation preserves exhaustivity.
If A and B are both exclusive, then A ∧ B is exclusive.
Sketch: if s verifies A ∧ B then s = s₁ ⊔ s₂ with
A.ver s₁, B.ver s₂. If t falsifies A ∧ B then t falsifies
A or B. Either way, the down-closure of possibility under parts
contradicts exclusivity of A (or B).
Subject-matter of a unilateral proposition: the fusion of all its verifiers (@cite{jago-2026} p. 5; cf. @cite{fine-2017}'s Truthmaker Content series in JPL 46(6) for the original presentation).
Equations
- p.subjectMatter = sSup {s : S | p s}
Instances For
Subject-matter of a bilateral proposition: the fusion of both verifiers and falsifiers (@cite{jago-2026} p. 5).
This is the formulation that makes subjectMatter invariant under
negation — the headline structural property that distinguishes
truthmaker subject-matter from naive verifier-only "thick content".
See BilProp.subjectMatter_neg.
Equations
- A.subjectMatter = sSup ({s : S | A.ver s} ∪ {s : S | A.fal s})
Instances For
Negation invariance of subject-matter (@cite{jago-2026} p. 5):
σ(¬A) = σ(A). The headline structural property of bilateral
subject-matter, falling out structurally because BilProp.neg
swaps ver and fal and Set.union_comm does the rest.
"A is about B" iff A's subject-matter is a part of B's (@cite{jago-2026}). Mereological account of aboutness: "It's raining" is about the weather; "It's raining and 2+2=4" is about the weather AND arithmetic.
Equations
- A.isAbout B = (A.subjectMatter ≤ B.subjectMatter)
Instances For
Equations
- Semantics.Truthmaker.instDecidableEqTwoAtom x✝ y✝ = if h : Semantics.Truthmaker.TwoAtom.ctorIdx✝ x✝ = Semantics.Truthmaker.TwoAtom.ctorIdx✝ y✝ then isTrue ⋯ else isFalse ⋯
The load-bearing claim of the framework (@cite{jago-2026}, @cite{fine-2017}). Two bilateral propositions can be pointwise equivalent on verifiers (= classically equivalent at every world) yet have distinct subject-matters (= mereologically different content).
Witness over Set TwoAtom: A and B share the same verifier
{a}, but differ in falsifier — A has none, B has {b}.
A.subjectMatter = sSup ({{a}} ∪ ∅) = {a} while B.subjectMatter = sSup ({{a}} ∪ {{b}}) = {a, b}. The two are classically equivalent
on verifiers but truthmaker-distinct in subject-matter — exactly the
distinction PW semantics cannot make.