LOCALIC DATABASES 1. Locales

advertisement
LOCALIC DATABASES
DAVID I. SPIVAK
1. Locales
1.1. Morphisms between locales of subobjects. Suppose that f : X → Y is a
morphism of simplicial sets. Let X = Sub(X) (respectively Y = Sub(Y )) denote
the locale of subobjects of X (resp. Y ). The map f induces an adjunction
/X : F
f −1 : Y o
W
where F(X 0 ) = (Y 0 ⊂ Y |f −1 (Y 0 ) ⊂ X 0 ). Note that f −1 preserves finite meets,
so F : X → Y denotes a morphism of locales. This morphism further induces an
adjunction between Grothendieck topoi
/ Shv(X ) : F
F ∗ : Shv(Y) o
∗
defined as follows for sheaves A ∈ Shv(X ) and B ∈ Shv(Y). For any U ∈ Sub(X)
we take
(1)
F ∗ B(U ) := B(f (U )),
where f (U ) ∈ Sub(Y ) is the image of U in Y . For any V ∈ Sub(Y ) we take
(2)
F∗ A(V ) := A(f −1 (V )),
where f −1 (V ) is the preimage of V in X.
1.2. Morphisms between locales. We introduced the above ideas using a map
of simplicial sets f : X → Y , but in actuality the definitions of F ∗ and F∗ work
whenever F is a open morphism of locales, as we shall soon see. To get to that point,
however, it is best to start all over, by taking X and Y to be arbitrary locales and
considering an arbitrary adjunction
/X : f
f∗ : Y o
∗
as a morphism F = f∗ of locales. The left adjoint f ∗ induces an adjunction of
Grothendieck topoi denoted
/ Shv(X ) : F
F ∗ : Shv(Y) o
∗
by F∗ , which is given by the formula
(3)
F∗ (A)(V ) := A(f ∗ V ).
The left adjoint F ∗ is easy to understand on representable functors, but in general
is just understandable as a colimit.
We say that F is an open morphism if f ∗ has a left adjoint f! : X → Y satisfying
the “Frobenius identity”
f! (x ∧ f ∗ y) = f! (x) ∧ y
This project was supported in part by the Office of Naval Research.
1
2
DAVID I. SPIVAK
for all x ∈ X and y ∈ Y. In this case, we can do a better job of understanding F ∗ .
Namely, for a sheaf B ∈ Shv(Y) and object U ∈ X , we define
F ∗ B(U ) := B(f! (U ))
(4)
and still
To bring it together, a morphism f : X → Y of simplicial sets always induces an
open morphism of locales. Thus, Equations (1) and (2) becomes Equations (4) and
(3).
2. Elementary localic databases
Let Loc denote the category of locales (see [?]). Recall that a morphism between
locales is an adjunction (f ∗ , f∗ ) for which f ∗ preserves finite meets; such a morphism
is denoted by the right adjoint part.
Definition 2.0.1. A type specification consists of a pair D = (D, Γ), where D is a
category and Γ ∈ Pre(D) is a presheaf on D. A morphism of type specifications,
denoted
(F, F ] ) : D → D0 ,
0
consists of a functor F : D → D and a map of presheaves F ] : F ∗ (Γ) → Γ0 on D0 .
Example 2.0.2. Let D = (Fin ↓ {m, a}) and D0 = (Fin ↓ {F }) be categories.
Given σ : C → {m, a}, let Γ(σ) = Hom(C, R), and similarly given σ 0 : C 0 → {F },
let Γ0 (σ 0 ) = Hom(C 0 , R). There is a morphism of type specifications
(µ, µ] ) : (D, Γ) → (D0 , Γ0 )
given as follows.
First off, the functor µ : D0 → D sends σ 0 : C 0 → {F }, to µ(σ 0 ) := C 0 × {m, a} →
{m, a}. This induces a functor
µ∗ : Pre(D) → Pre(D0 );
∗
X(−) 7→ X(µ(−)).
Now, let µ : µ Γ → Γ denote the map of presheaves on D0 defined as follows
0
for σ : C 0 → {F }. We calculate that µ∗ Γ(σ) = Γ(µ(σ)) = (R × R)C and that
0
Γ0 (C 0 ) = RC . Now define
0
0
µ] : (R × R)C → RC
by composing with the usual multiplication map R × R → R.
This change of type specifications allows one to turn any “mass/accelaration”
table into a “Force” table. We write it as F = ma.
More generally, suppose that x1 , . . . , xm are the variables of D, taking values
in Γ(x1 ), . . . , Γ(xm ) and X1 , . . . , Xn are the “variables” of D0 taking values in
Γ(X1 ), . . . , Γ(Xn ), then we can define Xi in terms of any set of x1 , . . . xm , using any formula. Writing down the variables involved in these formulas constitutes
a map
D0 = (Fin ↓ {X1 , . . . , Xn }) −→ D = (Fin ↓ {x1 , . . . , xm }).
]
0
Definition 2.0.3. Let D = (D, Γ) denote a type specification. A schema on D
consists of a pair (L, σ), where L is a locale and σ : L → Pre(D) preserves colimits
and finite limits. A morphism of schemas is denoted
F = (f∗ , f ] ) : (L, σ) → (L0 , σ 0 ),
/ L : f is a morphism of locales, and f ] : σ ◦ f ∗ → σ 0 is a natural
where f ∗ : L0 o
∗
transformation of functors L0 → Pre(D).
LOCALIC DATABASES
3
Definition 2.0.4. Let D = (D, Γ) denote a type specification, and let X = (L, σ)
denote a schema over D. The universal sheaf on X, denoted UX : Lop → Sets, is
the functor which assigns
` 7→ HomPre(D) (σ(`), Γ)
for ` ∈ L.
It is clearly contravariant and takes joins in L to limits in Sets.
Let X 0 = (L0 , σ 0 ). Given a morphism F = (f, f ] ) : X → X 0 of schemas, there is
an induced morphism UF : UX 0 → F∗ (UX ) given as follows for `0 ∈ L0 :
f]
UL0 (`0 ) = HomPre(D) (σ 0 `0 , Γ) −→ HomPre(D) (σf ∗ `0 , Γ) = F∗ (UL )(`0 ).
Example 2.0.5. Let D = (D, Γ) and D0 = (D0 , Γ0 ) denote type specifications, and let
(F, F ] ) : D → D0 denote a morphism of type specifications. Recall that F : D0 → D
is a functor and F ] : F ∗ Γ → Γ0 is a morphism of presheaves on D0 .
Let X = (L, σ) denote a schema over D, where σ : L → Pre(D). Given ` ∈ L,
the value of the universal sheaf UX at ` is
UX (`) = HomPre(D) (σ(`), Γ).
If we apply the left adjoint F ∗ to both sides and then compose with F ] we obtain
a map
UX (`) = Hom(σ(`), Γ) → Hom(F ∗ σ(`), F ∗ Γ)
→ Hom(F ∗ σ(`), Γ0 )
This may be seen as how databases on D become databases on D0 .
Definition 2.0.6. Let D = (D, Γ) denote a type specification. A database of type
D is a sequence (X, KX , τX ), where X = (L, σ) is a schema, KX ∈ Shv(L) is a
sheaf of sets on L and τX : KX → UX is a morphism of sheaves over the universal
sheaf UX .
A morphism of databases consists of a pair
(F, F ] ) : (X, KX , τX ) −→ (Y, KY , τY ),
where F : X → X 0 is a morphism of schema and F ] : KY → F∗ KX is a morphism
of sheaves on Y , such that the diagram
KY
τY
UF
F]
F∗ KX
/ UY
F∗ τX
/ F ∗ UX
commutes.
3. Theory
There may be issues with the variance of locales. That is, we may be naming
by left adjoints instead of right adjoints. This calls a lot of the following into
question. For now, we are just making a first pass through the space.
Let L be a locale. For an object x ∈ L, we define ix : ↓ x ,→ L to be the
sublocale with objects {y ∈ L|y ≤ x}.
4
DAVID I. SPIVAK
Definition 3.0.7. Suppose given a diagram
L>
>>
σL >
C
M
}}
}
~}} σM
where L and M are locales and C is a category. Define ΓL
M ∈ Shv(L) to be the
sheaf
ΓL
M (x) := {f : ↓ x → M |σM ◦ f = σL ◦ ix }.
L
For locales L, M (in absence of C, σL , σM ) define ΓL
M ∈ Shv(L) by ΓM (x) :=
{f : ↓ x → M }. Clearly, this is the same thing as one gets by taking C = {∗} to be
the terminal category and σL , σM to be the unique functors.
Given a map π : M → L, let Γπ be as defined by the diagram
L?
??
?
id
L
L
}}
}~ } π
M
Definition 3.0.8. Suppose given a diagram
L>
>>
σL >
C
M
}}
}
~}} σM
L
where L and M are locales and C is a category. Define UM
∈ Shv(L) to be the
sheaf whose value on x ∈ L is given by
L
UM
(x) := {(f, f ] )|f : ↓ x → M, f ] : σL (x) → σM ◦ f (x).}
Let D be a locale and Γ a presheaf on D. Given a functor σ : L → Pre(D),
where L is a locale, we have a diagram
{∗}
L HH
HH
tt
t
HH
t
σ
#
ztt Γ
Pre(D)
so we can define UΓL ∈ Shv(L) as above. Tracing through definitions, this sheaf is
simply given on x ∈ L by
UΓL (x) = HomPre(D) (σ(x), Γ),
as expected.
Definition 3.0.9. Let C denote a category. A schema on C is a left exact left
adjoint Γ : M → C, where M is a locale.
Definition 3.0.10. Let Γ : M → C denote a schema on C. A database on Γ consists
of a sequence (σ, K, τ ), where σ : L → C is a schema, K ∈ Shv(L) is a sheaf on L,
and τ : K → UΓσ is a morphism of sheaves.
Let σL : L → C denote a schema and let KL ∈ Shv(L) denote a sheaf. This data
constitutes a schema (σL × KL ) : L → (C × Setsop ).
LOCALIC DATABASES
5
4. Next steps..
• I’d like to study locales given by Sub(S) for a set S. There should be an
Sub /
adjunction Sets o
Loc which I can use. Locales of the form Sub(S)
may turn out to have a particularly easy “grammar” in that the elements
of S serve well as “variables.” There should be some kind of more general
theory of variables, but I think it’s easiest for Sub(S).
• A computer program is data interpreted as instructions. This should be
phraseable in our language. But what is instruction?
Download