Bitstring semantics for logical fragments #
Per [DS18a] §3.2. For a fragment φ : ι → W → Bool, the
bitstring of a formula ψ in the Boolean closure of Set.range φ records, for
each consistent anchor cell, whether that cell entails ψ. This map is a Boolean
isomorphism onto Fin n → Bool (Theorem 1), hence an Aristotelian isomorphism
(Theorem 2).
Main declarations #
bitstringOf— the bitstring map (Definition 7).bitstringOrderIso— the isomorphismclosure (Set.range φ) ≃o (Fin n → Bool).isAtom_anchor— consistent anchor cells are the atoms of the closure.isContradictory_bitstring_iffand siblings — the Aristotelian relations transfer.
Implementation notes #
The closure-membership lemmas need only [Fintype ι] (literal membership needs no
index instances). [DecidableEq ι] enters only with the partition, so the
world-enumeration declarations — which also require [Fintype W] — live in
section WorldEnumeration below.
isAtom_anchor is the partition-cell case of mathlib's atom representation for
finite Boolean algebras (CompleteAtomicBooleanAlgebra.toSetOfIsAtom); the
bitstring isomorphism is its explicit Fin n-indexed form.
Anchor-decidedness #
Lemma 6 for the indexed-family anchor: every closure element is entailed by
an anchor or by its complement ([DS18a]).
Anchor formulas lie in the closure #
Anchor formulas lie in the Boolean closure of Set.range φ — an anchor is the
infimum of its literals, each of which lies in the closure.
Atoms of the closure #
A consistent anchor cell is an atom of closure (Set.range φ): it is below or
disjoint from every closure element (Lemma 6), so once nonzero nothing lies
strictly between it and ⊥.
Converse of isAtom_anchor: every atom of closure (Set.range φ) is a consistent
anchor cell.
The atoms of closure (Set.range φ) are exactly the consistent anchor cells — the
partition-cell ↔ atom correspondence underlying the bitstring representation.
Bitstring representation (Definition 7) #
A positional index for the anchor cells, via partition.equivFin.
Equations
- Aristotelian.anchorIndex φ i = ↑((Aristotelian.partition ι W φ).equivFin.symm i)
Instances For
The bitstring of ψ relative to φ: bit i is true iff anchor i entails
ψ ([DS18a], Definition 7).
Equations
- Aristotelian.bitstringOf φ ψ i = decide (∀ (w : W), Aristotelian.anchor φ (Aristotelian.anchorIndex φ i) w = true → ψ w = true)
Instances For
Each partition cell is consistent: some world satisfies the anchor at index i.
Bitstring evaluation #
If w satisfies anchor i and ψ is in the closure, then bitstringOf φ ψ i
is ψ w.
An anchor index satisfied by w.
Equations
- Aristotelian.worldAnchorIndex φ w = (Aristotelian.partition ι W φ).equivFin ⟨Classical.choose ⋯, ⋯⟩
Instances For
bitstringOf φ ψ at a world's anchor index recovers ψ at that world.
bitstringOf φ is injective on the Boolean closure.
The inverse and round trips #
The supremum of the anchor cells whose bit is true — the inverse of
bitstringOf on the closure.
Equations
- Aristotelian.bitstringInverse φ b = ⨆ (i : Fin (Aristotelian.partition ι W φ).card), if b i = true then Aristotelian.anchor φ (Aristotelian.anchorIndex φ i) else ⊥
Instances For
If w satisfies anchor j, then bitstringInverse φ b w is the j-th bit:
the iSup collapses to the summand at j.
Theorem 1: the Boolean isomorphism #
Theorem 1 ([DS18a]): bitstringOf φ is an order
isomorphism closure (Set.range φ) ≃o (Fin n → Bool), n = |partition|.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Boolean complexity #
The Boolean complexity of a fragment: its bitstring length |partition| = log₂ |𝔹(𝓕)|. By
nonempty_orderIso_closure_iff this is the complete invariant of the Boolean closure up to
order-isomorphism ([DS24]).
Equations
- Aristotelian.boolComplexity φ = (Aristotelian.partition ι W φ).card
Instances For
Theorem 2: Aristotelian transfer #
Each relation transfers along the Boolean isomorphism bitstringOrderIso
([DS18a], Theorem 2).
Classification up to Boolean isomorphism #
Classification of fragments up to Boolean isomorphism ([DS24]): the Boolean closures of two fragments are order-isomorphic iff the fragments have equal Boolean complexity. The complete invariant is thus a single natural number — and fragments of different complexity are never Boolean-isomorphic (the obstruction behind the Keynes–Johnson 7 vs 6).