Documentation

LeanPool.DomainTheory.Neighborhood.Exercise118

Exercise 1.18 (Scott 1981, PRG-19, §1) — consistent subsets and filter #

intersections

Scott calls a subset C ⊆ 𝒟 consistent iff every finite subset of C is consistent in 𝒟. This file formalizes (representing finite subsets as finite sequences drawn from C):

Constructive ([propext, Quot.sound]) except the counterexample's finite case-analysis.

def Domain.Neighborhood.appendSeq {α : Type u_1} (X1 : Set α) (n1 : ) (X2 : Set α) :
Set α

Concatenation of two finite sequences: the first n1 entries are X1 0, …, X1 (n1-1), then X2 0, X2 1, ….

Equations
Instances For
    theorem Domain.Neighborhood.appendSeq_mem {α : Type u_1} {C : Set (Set α)} {X1 : Set α} {n1 : } {X2 : Set α} {n2 : } (h1 : i < n1, X1 i C) (h2 : i < n2, X2 i C) (i : ) :
    i < n1 + n2appendSeq X1 n1 X2 i C

    Each entry of appendSeq X1 n1 X2 below n1 + n2 is drawn from C.

    The finite intersection is contained in the master neighbourhood (its first factor).

    theorem Domain.Neighborhood.NeighborhoodSystem.interUpTo_appendSeq_left {α : Type u_1} (V : NeighborhoodSystem α) (X1 : Set α) (n1 : ) (X2 : Set α) {k : } :
    k n1V.interUpTo (appendSeq X1 n1 X2) k = V.interUpTo X1 k

    For a prefix length k ≤ n1, interUpTo of the appended sequence agrees with interUpTo of the first sequence.

    theorem Domain.Neighborhood.NeighborhoodSystem.interUpTo_appendSeq {α : Type u_1} (V : NeighborhoodSystem α) (X1 : Set α) (n1 : ) (X2 : Set α) {j : } :
    V.interUpTo (appendSeq X1 n1 X2) (n1 + j) = V.interUpTo X1 n1 V.interUpTo X2 j

    The key identity: ⋂_{i<n1+n2} (X1 ++ X2)ᵢ = (⋂_{i<n1} X1ᵢ) ∩ (⋂_{i<n2} X2ᵢ).

    Finite consistency. #

    Exercise 1.18 — consistent subset. C ⊆ 𝒟 is finitely consistent iff every finite sequence drawn from C is Consistent in 𝒟.

    Equations
    Instances For

      Intersection of a non-empty family of filters (Scott's last claim). #

      Exercise 1.18 — the intersection of a non-empty family of filters is a filter. sInf F = {X ∣ ∀ x ∈ F, X ∈ x}.

      Equations
      • V.sInf F hF = { mem := fun (X : Set α) => xF, x.mem X, sub := , master_mem := , inter_mem := , up_mem := }
      Instances For
        theorem Domain.Neighborhood.NeighborhoodSystem.sInf_le {α : Type u_1} (V : NeighborhoodSystem α) (F : Set V.Element) (hF : F.Nonempty) {x : V.Element} (hx : x F) :
        V.sInf F hF x

        sInf F ⊑ x for every x ∈ F.

        theorem Domain.Neighborhood.NeighborhoodSystem.le_sInf {α : Type u_1} (V : NeighborhoodSystem α) (F : Set V.Element) (hF : F.Nonempty) (y : V.Element) (h : xF, y x) :
        y V.sInf F hF

        sInf F is the greatest lower bound of F.

        The least filter containing a consistent C. #

        def Domain.Neighborhood.NeighborhoodSystem.leastFilter {α : Type u_1} (V : NeighborhoodSystem α) (C : Set (Set α)) (hCsub : XC, V.mem X) (hC : V.FinitelyConsistent C) :

        Exercise 1.18 — the least filter containing a consistent C. leastFilter C = {Y ∈ 𝒟 ∣ ⋂_{i<n} Xᵢ ⊆ Y for some finite sequence ⟨Xᵢ⟩ from C}. The intersection law concatenates two finite sequences (interUpTo_appendSeq) and uses finite consistency to keep their combined intersection in 𝒟.

        Equations
        Instances For
          theorem Domain.Neighborhood.NeighborhoodSystem.subset_leastFilter {α : Type u_1} (V : NeighborhoodSystem α) (C : Set (Set α)) (hCsub : XC, V.mem X) (hC : V.FinitelyConsistent C) {W : Set α} (hW : W C) :
          (V.leastFilter C hCsub hC).mem W

          C ⊆ leastFilter C: every member of C is in the least filter.

          theorem Domain.Neighborhood.NeighborhoodSystem.leastFilter_le {α : Type u_1} (V : NeighborhoodSystem α) (C : Set (Set α)) (hCsub : XC, V.mem X) (hC : V.FinitelyConsistent C) (z : V.Element) (hz : WC, z.mem W) :
          V.leastFilter C hCsub hC z

          Exercise 1.18 — leastFilter is least. Any filter z with C ⊆ z contains leastFilter C.

          A 3-element pairwise-consistent but not consistent set. #

          All non-empty subsets of Δ = {0,1,2} (a positive neighbourhood system).

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

            Every pair of members of family has non-empty intersection, hence (in the all-non-empty system triSys) every pair is consistent.

            Exercise 1.18 — family is pairwise consistent but not consistent. Its full triple has empty intersection, so no Z ∈ 𝒟 (i.e. no non-empty Z) lies below it.