Documentation

LeanPool.DomainTheory.Neighborhood.Lemma615

Lecture VI — Lemma 6.15 (Scott 1981, PRG-19): the converse of Proposition 6.12 #

Proposition 6.12 says a subdomain relation DE yields a projection pair i : DE, j : ED with j ∘ i = I_D and i ∘ j ⊆ I_E. Lemma 6.15 is the converse: any projection pair — between two neighbourhood systems D and E over possibly different token types — exhibits D as (isomorphic to) a subdomain of E. Scott writes DE as short for "D ≅ D' for some D' ◁ E."

Lemma 6.15. If there exist approximable maps i : DE and j : ED with j ∘ i = I_D and i ∘ j ⊆ I_E, then DE.

The construction (cleaner than Scott's, fully relational) #

Scott's proof works with the ideal elements (filters) and shows that i carries finite (principal) elements to finite elements. We avoid the filter-by-filter argument by isolating one relational predicate:

IsGen i j X Y := X i Y ∧ Y j X ("Y generates i(↑X)").

Everything follows from three relational facts:

The image system Dprime i j has Y as a neighbourhood iff Y generates some XD; its master is E's master. isGen_inter makes it a neighbourhood system and gives the crucial inter_closed clause of (consistency inherited from E), so Dprime i j ◁ E. The order-isomorphism DDprime i j is x ↦ {Y ∣ ∃ X ∈ x, IsGen i j X Y} with inverse y ↦ {X ∣ ∃ Y ∈ y, IsGen i j X Y}, the inverse laws and order-reflection coming from generator uniqueness.

Everything is built at the level of Definition 2.1 relations, so the whole development is choice-free (#print axioms ⊆ {propext, Quot.sound}).

Scott's (the prose before Lemma 6.15). DE means D ≅ D' for some subdomain D' ◁ E: D embeds as a subdomain of E.

Equations
Instances For

    Scott's (the prose before Lemma 6.15). DE means D ≅ D' for some subdomain D' ◁ E: D embeds as a subdomain of E.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def Domain.Neighborhood.IsGen {α : Type u_1} {β : Type u_2} {D : NeighborhoodSystem α} {E : NeighborhoodSystem β} (i : ApproximableMap D E) (j : ApproximableMap E D) (X : Set α) (Y : Set β) :

      The generator predicate: Y generates i(↑X). Relationally, X i Y and Y j X.

      Equations
      Instances For
        theorem Domain.Neighborhood.isGen_master {α : Type u_1} {β : Type u_2} {D : NeighborhoodSystem α} {E : NeighborhoodSystem β} (i : ApproximableMap D E) (j : ApproximableMap E D) :

        The masters generate each other: IsGen Δ_D Δ_E (from i.master_rel, j.master_rel).

        theorem Domain.Neighborhood.isGen_exists {α : Type u_1} {β : Type u_2} {D : NeighborhoodSystem α} {E : NeighborhoodSystem β} (i : ApproximableMap D E) (j : ApproximableMap E D) (hji : j.comp i = ApproximableMap.idMap D) {X : Set α} (hX : D.mem X) :
        ∃ (Y : Set β), IsGen i j X Y

        Generators exist (uses j ∘ i = I_D). Every D-neighbourhood X has a generator: apply j ∘ i = I_D to the identity relation X I_D X.

        theorem Domain.Neighborhood.isGen_mono {α : Type u_1} {β : Type u_2} {D : NeighborhoodSystem α} {E : NeighborhoodSystem β} (i : ApproximableMap D E) (j : ApproximableMap E D) (hji : j.comp i = ApproximableMap.idMap D) {X X' : Set α} {Z W : Set β} (h : IsGen i j X Z) (h' : IsGen i j X' W) (hZW : Z W) :
        X X'

        The generator correspondence is monotone (uses j ∘ i = I_D): if Y, Y' generate X, X' and Y ⊆ Y', then X ⊆ X'. (Widen X i Y to X i Y' by mono, compose with Y' j X', and read off X ⊆ X' from j ∘ i = I_D.)

        theorem Domain.Neighborhood.isGen_mono' {α : Type u_1} {β : Type u_2} {D : NeighborhoodSystem α} {E : NeighborhoodSystem β} (i : ApproximableMap D E) (j : ApproximableMap E D) (hij : i.comp j ApproximableMap.idMap E) {X X' : Set α} {Z W : Set β} (h : IsGen i j X Z) (h' : IsGen i j X' W) (hXX' : X X') :
        Z W

        The generator correspondence is monotone, other direction (uses i ∘ j ⊆ I_E): if Z, W generate X, X' and X ⊆ X', then Z ⊆ W. (Widen Z j X to Z j X' by mono, compose with X' i W, and read off Z ⊆ W from i ∘ j ⊆ I_E.)

        theorem Domain.Neighborhood.isGen_fst_unique {α : Type u_1} {β : Type u_2} {D : NeighborhoodSystem α} {E : NeighborhoodSystem β} (i : ApproximableMap D E) (j : ApproximableMap E D) (hji : j.comp i = ApproximableMap.idMap D) {X X' : Set α} {Y : Set β} (h : IsGen i j X Y) (h' : IsGen i j X' Y) :
        X = X'

        Generators are unique in the first argument (isGen_mono both ways).

        theorem Domain.Neighborhood.isGen_snd_unique {α : Type u_1} {β : Type u_2} {D : NeighborhoodSystem α} {E : NeighborhoodSystem β} (i : ApproximableMap D E) (j : ApproximableMap E D) (hij : i.comp j ApproximableMap.idMap E) {X : Set α} {Y Y' : Set β} (h : IsGen i j X Y) (h' : IsGen i j X Y') :
        Y = Y'

        Generators are unique in the second argument (isGen_mono' both ways).

        theorem Domain.Neighborhood.isGen_inter {α : Type u_1} {β : Type u_2} {D : NeighborhoodSystem α} {E : NeighborhoodSystem β} (i : ApproximableMap D E) (j : ApproximableMap E D) {X X' : Set α} {Y Y' : Set β} (h : IsGen i j X Y) (h' : IsGen i j X' Y') (hE : E.mem (Y Y')) :
        IsGen i j (X X') (Y Y')

        Generators are closed under intersection. If Y, Y' generate X, X' and Y ∩ Y' ∈ E, then Y ∩ Y' generates X ∩ X'. Needs only mono/inter_right of i and j (the hypothesis E.mem (Y ∩ Y') is what licenses the j.mono steps).

        The image subdomain D'. A β-set Y is a neighbourhood iff it generates some D-neighbourhood; the master is E's master. isGen_inter supplies condition (ii).

        Equations
        Instances For
          @[simp]
          theorem Domain.Neighborhood.mem_Dprime {α : Type u_1} {β : Type u_2} {D : NeighborhoodSystem α} {E : NeighborhoodSystem β} (i : ApproximableMap D E) (j : ApproximableMap E D) {Y : Set β} :
          (Dprime i j).mem Y ∃ (X : Set α), IsGen i j X Y
          theorem Domain.Neighborhood.Dprime_subsystem {α : Type u_1} {β : Type u_2} {D : NeighborhoodSystem α} {E : NeighborhoodSystem β} (i : ApproximableMap D E) (j : ApproximableMap E D) :
          Dprime i j E

          D' ◁ E. Same master (rfl); D' ⊆ E since a generator's Y is an E-neighbourhood; and the consistency clause inter_closed is exactly isGen_inter.

          def Domain.Neighborhood.toEl {α : Type u_1} {β : Type u_2} {D : NeighborhoodSystem α} {E : NeighborhoodSystem β} (i : ApproximableMap D E) (j : ApproximableMap E D) (hji : j.comp i = ApproximableMap.idMap D) (x : D.Element) :

          Forward map of the isomorphism D ≅ D'. x ↦ {Y ∣ ∃ X ∈ x, IsGen i j X Y} — the generators of the members of x. (Needs j ∘ i = I_D for upward closure, via isGen_mono.)

          Equations
          Instances For
            def Domain.Neighborhood.ofEl {α : Type u_1} {β : Type u_2} {D : NeighborhoodSystem α} {E : NeighborhoodSystem β} (i : ApproximableMap D E) (j : ApproximableMap E D) (hji : j.comp i = ApproximableMap.idMap D) (hij : i.comp j ApproximableMap.idMap E) (y : (Dprime i j).Element) :

            Inverse map of the isomorphism D ≅ D'. y ↦ {X ∣ ∃ Y ∈ y, IsGen i j X Y}. (Needs both laws: j ∘ i = I_D for generator existence and i ∘ j ⊆ I_E for isGen_mono'.)

            Equations
            Instances For

              The domain isomorphism D ≅ D' (Scott's "inclusion-preserving one-one correspondence"). Built from toEl/ofEl; the inverse laws and order-reflection come from generator uniqueness.

              Equations
              Instances For

                Lemma 6.15 (Scott 1981, PRG-19). A projection pair i : DE, j : ED with j ∘ i = I_D and i ∘ j ⊆ I_E exhibits D as a subdomain of E: DE. This is the converse of Proposition 6.12 (Subsystem.projectionPair).

                theorem Domain.Neighborhood.Subsystem.trianglelefteq {α : Type u_1} {D E : NeighborhoodSystem α} (h : D E) :
                D E

                Proposition 6.12 + Lemma 6.15 packaged. A subdomain relation DE is in particular a witness of DE (take D' = D). Together with trianglelefteq_of_projectionPair, this shows DE holds iff there is a projection pair DE.