Documentation

LeanPool.MatchingLogic.EntryIII.Witnessed

MatchingLogic.EntryIII.Witnessed #

@[instance_reducible]

Local decidable equality used by the witnessed-extension construction.

Equations
Instances For

    A theory is witnessed when every existential it contains has a Henkin implication to one of its capture-avoiding variable instances.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      A witnessed theory whose Henkin name is fresh for every raw occurrence in the existential body. This is the source construction's actual stronger invariant; Witnessed is its interface needed by the basic Truth Lemma.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem MatchingLogic.Provable.swap_not {S : Signature} {Gamma : Set (Pattern S )} {p q : Pattern S } (h : Provable Gamma (p.imp q.nt)) :
        Provable Gamma (q.imp p.nt)

        Propositional contraposition in the shape used by quantifier generalisation below.

        theorem MatchingLogic.LocProvable.not_ex_of_not_fresh {S : Signature} {Gamma : Set (Pattern S )} {y : } {q : Pattern S } (hfresh : pGamma, yFV p) (hnot : LocProvable Gamma q.nt) :

        Local universal generalisation of a negation. The side condition is the source condition that the generalised name is absent from every premise.

        theorem MatchingLogic.locConsistent_insert_captureAvoidingWitness {S : Signature} {Gamma : Set (Pattern S )} {x y : } {p : Pattern S } (hGamma : LocConsistent Gamma) (hyGamma : qGamma, yFV q) (hyp : yp.allVars) :

        Adding one fresh Henkin implication is conservative for local consistency. This is the proof-theoretic heart of the witnessed extension.

        Shared Henkin-stage infrastructure #

        def MatchingLogic.henkinStages {α : Type} (step : List ααList α) (enum : α) (base : List α) :
        List α

        Iterate a witness-adjunction operation along an enumeration.

        Equations
        Instances For
          def MatchingLogic.henkinLimit {α : Type} (stageTheory : List αSet α) (step : List ααList α) (enum : α) (base : List α) :
          Set α

          The union of the theories represented by all finite Henkin stages.

          Equations
          Instances For
            theorem MatchingLogic.henkinStages_mono {α : Type} (stageTheory : List αSet α) (step : List ααList α) (enum : α) (base : List α) (hstep : ∀ (l : List α) (phi : α), stageTheory lstageTheory (step l phi)) :
            Monotone fun (n : ) => stageTheory (henkinStages step enum base n)

            A stage operation that only enlarges represented theories gives a monotone sequence of finite Henkin stages.

            theorem MatchingLogic.henkinLimit_covers_list {α : Type} (stageTheory : List αSet α) (step : List ααList α) (enum : α) (base l : List α) (hstep : ∀ (stage : List α) (phi : α), stageTheory stagestageTheory (step stage phi)) (hl : ql, q henkinLimit stageTheory step enum base) :
            ∃ (n : ), ql, q stageTheory (henkinStages step enum base n)

            Every finite list drawn from a Henkin limit already appears at one common finite stage.

            theorem MatchingLogic.henkinLimit_locConsistent {S : Signature} (stageTheory : List (Pattern S )Set (Pattern S )) (step : List (Pattern S )Pattern S List (Pattern S )) (enum : Pattern S ) (base : List (Pattern S )) (hstep : ∀ (stage : List (Pattern S )) (phi : Pattern S ), stageTheory stagestageTheory (step stage phi)) (hconsistent : ∀ (n : ), LocConsistent (stageTheory (henkinStages step enum base n))) :
            LocConsistent (henkinLimit stageTheory step enum base)

            Local consistency at every finite stage passes to the shared Henkin limit.

            Finite fresh-support stages #

            A binder-free pattern whose allVars contains the variables of every pattern in the list.

            Equations
            Instances For

              Every member's raw-variable support lies in the list support.

              Witnessed Lindenbaum extension #

              theorem MatchingLogic.finite_locConsistent_extend_freshWitnessed_isMCS_of_surjective {S : Signature} (enum : Pattern S ) (henum : Function.Surjective enum) (base : List (Pattern S )) (hbase : LocConsistent {q : Pattern S | q base}) :
              ∃ (Delta : Set (Pattern S )), {q : Pattern S | q base}Delta IsMCS Delta FreshWitnessed Delta

              The finite Henkin construction preserves the raw freshness of the adjoined witness name, not merely the ordinary witnessed property.

              theorem MatchingLogic.finite_locConsistent_extend_witnessed_isMCS_of_surjective {S : Signature} (enum : Pattern S ) (henum : Function.Surjective enum) (base : List (Pattern S )) (hbase : LocConsistent {q : Pattern S | q base}) :
              ∃ (Delta : Set (Pattern S )), {q : Pattern S | q base}Delta IsMCS Delta Witnessed Delta

              Enumeration-parametric ordinary witnessedness follows by forgetting the freshness evidence from the stronger construction.

              theorem MatchingLogic.finite_locConsistent_extend_freshWitnessed_isMCS {S : Signature} [Countable (Pattern S )] (base : List (Pattern S )) (hbase : LocConsistent {q : Pattern S | q base}) :
              ∃ (Delta : Set (Pattern S )), {q : Pattern S | q base}Delta IsMCS Delta FreshWitnessed Delta

              Every locally consistent finite-list theory over a countable pattern language extends to a maximal locally consistent theory with fresh Henkin witnesses.

              theorem MatchingLogic.finite_locConsistent_extend_witnessed_isMCS {S : Signature} [Countable (Pattern S )] (base : List (Pattern S )) (hbase : LocConsistent {q : Pattern S | q base}) :
              ∃ (Delta : Set (Pattern S )), {q : Pattern S | q base}Delta IsMCS Delta Witnessed Delta

              Every locally consistent finite-list theory over a countable pattern language extends to a witnessed maximal locally consistent set.