Finset-typed refinement of the IE substrate #
@cite{fox-2007} @cite{spector-2016}
Finset-typed computable refinement of the canonical Set-side
definitions in Operators/Basic.lean. There is no parallel theory:
Innocent.IsCompatible / IsMCSet are abbrevs over their Set-side
counterparts under the Finset → Set coercion, with bridge iffs
that recover the explicit Finset characterizations + provide the
Decidable instances downstream Excluder.exh needs.
Worlds are an arbitrary [Fintype W] [DecidableEq W]. A proposition
is a Finset W. An alternative collection is a Finset (Finset W).
Architecture #
The Set-side Exhaustification.IsCompatible / IsMCSet / IE
(defined in Operators/Basic.lean) are the canonical specifications.
Here:
asSetOfSets : Finset (Finset W) → Set (Set W)— the obvious coercion (lift each inner Finset to a Set, take the image).Innocent.IsCompatible E := Exhaustification.IsCompatible (asSetOfSets ALT) ↑φ (asSetOfSets E)and similarly forIsMCSet. These areabbrevs, so any Set-side theorem aboutIsCompatible/IsMCSetautomatically applies.- Bridge
iffs to the explicit Finset characterizations:IsCompatible ↔ E ⊆ excludables ∧ φ ∈ E ∧ (E.inf id).Nonempty, etc. Decidableinstances via the bridges (the Finset characterization is decidable by construction).IE/innocentlyExcludableasFinsetfilters using the derivedDecidableinstances.
Standard mathlib pattern for "abstract spec + computable refinement"
(cf. Set.Finite + Set.Finite.toFinset, Set.image +
Finset.image, etc.).
Key definitions #
excludables ALT φ— bound on everyIsCompatiblewitnessIsCompatible ALT φ E— Spector Definition 3.2 (Finset-typed, defined as a Set-side abbrev)IsMCSet ALT φ E— Spector Definition 3.3 (similarly)IE ALT φ— Spector Definition 3.4: alternatives in every MC-setinnocentlyExcludable ALT φ— alternatives whose complement is inIE
The Fox 2007 Excluder packaging lives in
InnocentExclusion.lean (sibling Excluder file, parallel to
Tolerant.lean / Relevance.lean).
Coercion #
Lift a Finset (Finset W) to Set (Set W) by coercing each inner
Finset to a Set.
Equations
- Exhaustification.Innocent.asSetOfSets E = (fun (s : Finset W) => ↑s) '' ↑E
Instances For
↑(univ \ a) = (↑a)ᶜ: Finset complement coerces to Set complement.
Two Finsets are equal iff their Set coercions are equal.
Membership in the Finset inf id (intersection of a family of Finsets).
Excludables: the bound on compatible sets #
Bound on every IsCompatible set: the prejacent plus complements
of every alternative. Every member of any compatible set is either
φ or aᶜ for some a ∈ ALT, so the powerset of this set is the
natural search space.
Equations
- Exhaustification.Innocent.excludables ALT φ = insert φ (Finset.image (fun (a : Finset W) => Finset.univ \ a) ALT)
Instances For
IsCompatible: Spector Def 3.2 #
Defined as a thin specialization of the Set-side IsCompatible under
coercion. The Finset shape is recovered via isCompatible_iff_finset,
which also yields the Decidable instance.
Spector Def 3.2 (Finset-typed). Defined as the Set-side
IsCompatible applied to the coercions of ALT, φ, and E.
Equations
Instances For
Bridge: the abbrev unfolds to the explicit Finset condition.
Equations
- Exhaustification.Innocent.decidableIsCompatible ALT φ E = decidable_of_iff (E ⊆ Exhaustification.Innocent.excludables ALT φ ∧ φ ∈ E ∧ (E.inf id).Nonempty) ⋯
IsMCSet: Spector Def 3.3 #
Spector Def 3.3 (Finset-typed). Defined as the Set-side IsMCSet
on the coercions.
Equations
Instances For
Bridge: equivalent to the explicit Finset MC-set condition (using
excludables.powerset as the bounded search space, which suffices
because every compatible set is bounded by excludables).
Equations
- One or more equations did not get rendered due to their size.
IE: Spector Def 3.4 #
IE is the set of alternatives in every MC-set. On the Finset side it
is a Finset (filter from excludables); membership corresponds to
membership in the Set-side Exhaustification.IE.
Spector Def 3.4: IE = {ψ : ψ is in every MC-set}. Bounded by
excludables, since every MC-set is a subset of excludables.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The innocently-excludable alternatives: a ∈ ALT such that aᶜ ∈ IE.
For each such a, exhaustification negates a (asserts aᶜ).
Equations
- Exhaustification.Innocent.innocentlyExcludable ALT φ = {a ∈ ALT | Finset.univ \ a ∈ Exhaustification.Innocent.IE ALT φ}
Instances For
The prejacent is in every MC-set (it's in every compatible set), hence in IE.
Specialization of Exhaustification.phi_mem_IE to the Finset side.
IsInnocentlyExcludable: bridge + decidability #
The Set-typed Exhaustification.IsInnocentlyExcludable a requires
a ∈ ALT AND aᶜ ∈ IE. The Finset side already has
innocentlyExcludable ALT φ as a Finset (alternatives whose complements
are in IE). Bridge theorem + Decidable instance below.
Bridge: Set-side IsInnocentlyExcludable on the coercion ↔
Finset-side membership in innocentlyExcludable.
IsInnocentlyExcludable is decidable on the Finset side via the
bridge to innocentlyExcludable membership.
Equations
- Exhaustification.Innocent.decidableIsInnocentlyExcludable ALT φ a = decidable_of_iff (a ∈ Exhaustification.Innocent.innocentlyExcludable ALT φ) ⋯
Cell: bridge + decidability #
The Set-typed Exhaustification.cell predicate at world w requires:
w ∈ φ ∧ (∀q IE, w ∉ q) ∧ (∀ r ∈ nonExcludable, w ∈ r). The Finset
version cellFinset enumerates worlds satisfying this; bridge below
recovers the Set predicate from Finset membership.
Finset-side cell witness predicate at a world. Decidable by construction (all quantifications are over Finsets).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Bridge: Finset-side cellFinset membership ↔ Set-side cell
predicate. Lets decide proofs of cell-witness facts on the
Finset side discharge Set-typed cell-witness hypotheses required
by the general substrate theorems
(Operators/InnocentInclusion.lean::mem_II_of_cell_witness,
exhIEII_implies_cell_witnessed_alt, etc.).
Exhaustification.cell on the Finset coercion is decidable via the
bridge to cellFinset membership.
Equations
- Exhaustification.Innocent.decidableCell ALT φ w = decidable_of_iff (w ∈ Exhaustification.Innocent.cellFinset ALT φ) ⋯