Documentation

LeanPool.MatchingLogic.EntryIII.WitnessedCollapse

MatchingLogic.EntryIII.WitnessedCollapse #

def MatchingLogic.pointedTheory {S : Signature} (M : Model S) (rho : M.carrier) (u : M.carrier) :

The complete theory of a model at one point under a fixed valuation.

Equations
Instances For
    theorem MatchingLogic.pointedTheory_isMCS {S : Signature} (M : Model S) (rho : M.carrier) (u : M.carrier) :

    Every pointed model theory is a maximal locally consistent set.

    theorem MatchingLogic.pointedTheory_witnessed {S : Signature} (M : Model S) (rho : M.carrier) (u : M.carrier) (hrho : Function.Surjective rho) :

    A surjective valuation gives the pointed theory a name for every semantic existential witness.

    @[reducible, inline]

    The countermodel needs no symbols: variables and existential quantification already separate ordinary witnesses from fresh witnesses.

    Equations
    Instances For
      @[reducible, inline]

      The two-point empty-signature model used for the witness-collapse example.

      Equations
      Instances For

        Variable 0 names true; every other variable names false.

        Equations
        Instances For

          The pointed theory is a genuine maximal locally consistent set.

          Surjectivity of the valuation supplies an ordinary name for every semantic existential witness.

          The existential ∃ 0. var 0 belongs to the pointed theory, but every fresh name denotes false, so no fresh Henkin implication belongs to it.

          A concrete counterexample to the proposed collapse theorem, including the maximality obligation.

          Direct negation of the proposed implication at the counterexample signature.

          The failure is not stable under α-renaming.

          ∃0. var 0 has no fresh witness above: the only variable naming the witnessing element is 0, and 0 occurs in the body, so freshness over allVars rules it out. Its α-variant ∃1. var 1 is a different raw pattern with the same meaning, and for it the name 0 is fresh — so a fresh witness exists.

          This locates ONE cause of the phenomenon: on raw named syntax the choice of bound name can exhaust the supply of usable witnesses, and choosing another representative of the same α-class restores it.

          It does NOT show that α is the whole story, and an earlier version of this docstring said it was. AlphaFreshWitnessed.lean refutes that: there is an MCS that is Witnessed and fails the α-RELAXED condition too, so quotienting by α would not remove the need for the stronger invariant. What does remove it is an infinite supply of usable witnesses — see WitnessSupply.lean.