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?