Documentation

Linglib.Core.Logic.Team.Definability

Definability and expressive completeness for team-semantic logics #

[Ant25]

A team property over a point type α is a class of teams, Set (Finset α) — the same object Team/Closure.lean calls a "team-set". A formula φ defines the team property consisting of all teams that support it. The organizing theorem for the team-semantic family ([Ant25]) is expressive completeness: the class of properties a logic can define equals a class fixed by closure conditions (downward closure, union closure, convexity, the empty-team property) — plus invariance under bounded bisimulation in the modal case.

This file is the substrate for that program. It defines definability and the definable class over an abstract support relation s : Form → Finset α → Prop, so every logic — bilateral or unilateral, modal or propositional — instantiates it with its own support M. It does not import any logic: each logic's expressive-completeness theorem lives with the logic and consumes definableClass_subset here.

The reusable bridge is definableClass_subset: a per-logic closure theorem (supClosed_support, isLowerSet_support, …, proved in each logic's file) becomes the soundness half of expressive completeness (definable class ⊆ closure class) by one application. The hard converse half — every property in the class is definable, via normal forms — is the per-logic work the roadmap tracks.

Main definitions #

Main results #

Roadmap #

This file is phase 1 of the team-semantics family roadmap; see Core/Logic/Modal/README.md. The closure predicates it packages come from Team/Closure.lean (themselves mathlib Order/ predicates).

Team properties and definability #

@[reducible, inline]
abbrev Core.Logic.Team.TeamProperty (α : Type u_3) :
Type u_3

A team property over points α is a class of teams. A formula defines the property consisting of all teams in which it is true. Identical to the "team-set" T : Set (Finset α) of Team/Closure.lean; the alias marks the role in the expressive-completeness program.

Equations
Instances For
    def Core.Logic.Team.definedBy {α : Type u_1} {Form : Type u_2} (s : FormFinset αProp) (φ : Form) :

    The team property defined by φ under support relation s: the class of all teams supporting φ.

    Equations
    Instances For
      def Core.Logic.Team.Definable {α : Type u_1} {Form : Type u_2} (s : FormFinset αProp) (P : TeamProperty α) :

      P is definable under s if some formula defines it.

      Equations
      Instances For
        def Core.Logic.Team.definableClass {α : Type u_1} {Form : Type u_2} (s : FormFinset αProp) :
        Set (TeamProperty α)

        The class of team properties definable under s — written ⟦L⟧ in [Ant25] for a logic L with support relation s. Expressive completeness is the statement definableClass s = C.

        Equations
        Instances For
          @[simp]
          theorem Core.Logic.Team.mem_definableClass {α : Type u_1} {Form : Type u_2} {s : FormFinset αProp} {P : TeamProperty α} :
          P definableClass s ∃ (φ : Form), P = definedBy s φ
          def Core.Logic.Team.ExpressivelyCompleteFor {α : Type u_1} {Form : Type u_2} (s : FormFinset αProp) (C : Set (TeamProperty α)) :

          A logic, given by its support relation s, is expressively complete for a class C of team properties iff the definable properties are exactly C.

          Equations
          Instances For
            def Core.Logic.Team.SoundFor {α : Type u_1} {Form : Type u_2} (s : FormFinset αProp) (C : Set (TeamProperty α)) :

            s is sound for C: every definable property lies in C. The easy half of expressive completeness, supplied by the per-logic closure theorems via definableClass_subset.

            Equations
            Instances For
              theorem Core.Logic.Team.definableClass_subset {α : Type u_1} {Form : Type u_2} {s : FormFinset αProp} {C : TeamProperty αProp} (h : ∀ (φ : Form), C (definedBy s φ)) :
              definableClass s {P : TeamProperty α | C P}

              The soundness bridge. If every formula's support set has closure property C, then every definable property does. Apply with a per-logic closure theorem — e.g. definableClass_subset (fun φ => supClosed_support M φ) yields the soundness half of BSML's expressive completeness.

              theorem Core.Logic.Team.ExpressivelyCompleteFor.soundFor {α : Type u_1} {Form : Type u_2} {s : FormFinset αProp} {C : Set (TeamProperty α)} (h : ExpressivelyCompleteFor s C) :

              Expressive completeness implies soundness.

              Fragment-relative definability #

              Some logics have no unconditional closure cell — only a fragment of the language does. The leading case is QBSML ([AvO23]), whose support is flat only for NE-free formulas (Proposition 4.1 / Fact 2). For such logics the soundness statement is definableClassWhere s Q ⊆ C, where Q carves out the fragment.

              def Core.Logic.Team.definableClassWhere {α : Type u_1} {Form : Type u_2} (s : FormFinset αProp) (Q : FormProp) :
              Set (TeamProperty α)

              The team properties definable under s by a formula satisfying Q. definableClass s = definableClassWhere s (fun _ => True); the fragment predicate Q restricts to a sublanguage (e.g. the NE-free fragment).

              Equations
              Instances For
                theorem Core.Logic.Team.definableClassWhere_subset {α : Type u_1} {Form : Type u_2} {s : FormFinset αProp} {Q : FormProp} {C : TeamProperty αProp} (h : ∀ (φ : Form), Q φC (definedBy s φ)) :
                definableClassWhere s Q {P : TeamProperty α | C P}

                Fragment-relative soundness bridge. If every Q-formula's support set has closure property C, every Q-definable property does. The fragment analogue of definableClass_subset.

                Closure cells #

                The classes of team properties the expressive-completeness theorems characterise logics against. The "cell" a logic occupies (see the cell map in Core/Logic/Modal/README.md) is an intersection of these: BSML is convexPropertiesunionClosedProperties, ML(⊆) and BSML⊘ are unionClosedPropertiesemptyTeamProperties, dependence and inquisitive logic are downwardClosedPropertiesemptyTeamProperties.

                The class of downward-closed (persistent) team properties.

                Equations
                Instances For

                  The class of convex team properties (Set.OrdConnected under ).

                  Equations
                  Instances For

                    The class of team properties with the empty-team property.

                    Equations
                    Instances For
                      def Core.Logic.Team.unionClosedProperties {α : Type u_1} [DecidableEq α] :
                      Set (TeamProperty α)

                      The class of union-closed team properties.

                      Equations
                      Instances For

                        The flat team properties: downward-closed ∩ union-closed ∩ empty-team (Anttila Proposition 2.2.2, via Team/Closure.lean's isFlat_iff).

                        Equations
                        Instances For