Proposition #
Theory-neutral infrastructure for modeling propositions in formal semantics.
Prop' W is classical (W → Prop); BProp W is decidable (W → Bool).
Propositional conjunction.
Equations
- Core.Proposition.Classical.pand W p q w = (p w ∧ q w)
Instances For
Propositional disjunction.
Equations
- Core.Proposition.Classical.por W p q w = (p w ∨ q w)
Instances For
Propositional implication.
Equations
- Core.Proposition.Classical.pimp W p q w = (p w → q w)
Instances For
Semantic entailment: p entails q iff q is true whenever p is true.
Equations
- Core.Proposition.Classical.entails W p q = ∀ (w : W), p w → q w
Instances For
Propositional equivalence.
Equations
Instances For
Grand conjunction: true at w iff all propositions in X are true at w.
Equations
- Core.Proposition.Classical.bigConj W X w = ∀ φ ∈ X, φ w
Instances For
Grand disjunction: true at w iff some proposition in X is true at w.
Equations
- Core.Proposition.Classical.bigDisj W X w = ∃ φ ∈ X, φ w
Instances For
Consistency: some world satisfies all propositions in X.
Equations
- Core.Proposition.Classical.consistent W X = ∃ (w : W), ∀ φ ∈ X, φ w
Instances For
The always-true proposition.
Equations
Instances For
The always-false proposition.
Equations
Instances For
Propositional conjunction.
Equations
- Core.Proposition.Decidable.pand W p q w = (p w && q w)
Instances For
Propositional disjunction.
Equations
- Core.Proposition.Decidable.por W p q w = (p w || q w)
Instances For
The always-true proposition.
Equations
Instances For
The always-false proposition.
Equations
Instances For
Decidable equivalence given explicit world enumeration.
Equations
- Core.Proposition.Decidable.equiv W worlds p q = (Core.Proposition.Decidable.entails W worlds p q && Core.Proposition.Decidable.entails W worlds q p)
Instances For
Decidable consistency: is there a world satisfying all propositions?
Equations
- Core.Proposition.Decidable.consistent W worlds ps = worlds.any fun (w : W) => ps.all fun (p : BProp W) => p w
Instances For
Count worlds satisfying a proposition.
Equations
- Core.Proposition.Decidable.count W worlds p = (List.filter p worlds).length
Instances For
Get all worlds satisfying a proposition.
Equations
- Core.Proposition.Decidable.filter W worlds p = List.filter p worlds
Instances For
Negation is antitone (DE): if p ≤ q pointwise, then ¬q ≤ ¬p pointwise.
Decidable negation corresponds to Classical negation under coercion.
Decidable conjunction corresponds to Classical conjunction.
Decidable disjunction corresponds to Classical disjunction.
Transfer theorem: DE property of Decidable.pnot implies DE for Classical.pnot.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Core.Proposition.ClassicalNotation.«term⋀» = Lean.ParserDescr.node `Core.Proposition.ClassicalNotation.«term⋀» 1024 (Lean.ParserDescr.symbol "⋀")
Instances For
Equations
- Core.Proposition.ClassicalNotation.«term⋁» = Lean.ParserDescr.node `Core.Proposition.ClassicalNotation.«term⋁» 1024 (Lean.ParserDescr.symbol "⋁")
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Decidable entailment using the FiniteWorlds instance.
Equations
Instances For
Decidable equivalence using the FiniteWorlds instance.
Equations
Instances For
Decidable consistency using the FiniteWorlds instance.
Equations
Instances For
Count satisfying worlds.
Equations
Instances For
Filter satisfying worlds.
Equations
Instances For
Build a FiniteWorlds instance from Fintype + DecidableEq.
Bridges the Mathlib Fintype convention (used by 26+ RSA files) to
the linglib FiniteWorlds convention (used by 47+ files).
Equations
- Core.Proposition.FiniteWorlds.ofFintype = { worlds := Fintype.elems.val.toList.dedup, complete := ⋯ }
Instances For
Convert a FiniteWorlds instance to Fintype.
Bridges in the other direction: linglib FiniteWorlds → Mathlib Fintype.
Uses classical for DecidableEq needed by List.toFinset.
Equations
- Core.Proposition.FiniteWorlds.toFintype = { elems := Core.Proposition.FiniteWorlds.worlds.toFinset, complete := ⋯ }
Instances For
Decidable entailment is sound w.r.t. classical entailment.
Equations
Equations
- Core.Proposition.instBEqWorld4.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
A simple 2-world type (true/false worlds).
Instances For
Equations
- Core.Proposition.instBEqWorld2.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
Equations
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Extension is antitone: more propositions → fewer worlds.
Intension is antitone: fewer worlds → more propositions.
Mathlib Galois connection between Set (Prop' W) and (Set W)ᵒᵈ.
Since extension and intension are both antitone, the adjunction
lives between Set (Prop' W) and the order dual of Set W:
l = toDual ∘ extension, u = intension ∘ ofDual.
The GC condition l A ≤ᵒᵈ b ↔ A ≤ u b unfolds to exactly the
hand-proved galois_connection: Ws ⊆ ext(A) ↔ A ⊆ int(Ws).
Equations
- ⋯ = ⋯
Instances For
Extension (List-based): compute worlds where all propositions hold.
Equations
- Core.Proposition.GaloisConnection.extensionL worlds props = List.filter (fun (w : W) => props.all fun (p : BProp W) => p w) worlds
Instances For
Intension (List-based): filter propositions true at all given worlds.
Equations
- Core.Proposition.GaloisConnection.intensionL worlds props = List.filter (fun (p : BProp W) => worlds.all p) props
Instances For
Extension is antitone (List version).
Intension is antitone (List version).
FiniteWorlds version of extension.
Equations
Instances For
FiniteWorlds version of intension.
Equations
- Core.Proposition.GaloisConnection.intensionFW W worlds props = Core.Proposition.GaloisConnection.intensionL worlds props