Tag. subobject

Notes (7)

Definition. Proper and maximal sieves proper-maximal-sieve

The representable 𝗒π‘₯ is itself a sieve on π‘₯. A sieve on π‘₯ is proper when it is not equal to the representable.

Say that a proper sieve is maximal when it contains all other proper sieves as a sub-sieve.

Definition. Sieves sieve

A sieve on an object π‘₯ of π’žοΈ€ is a subobject of the representable presheaf 𝗒π‘₯: a presheaf 𝑆 with a monic morphism 𝑆↣𝗒π‘₯. Sieves are a generalization from the notion of ideal found in ring theory to category theory.

A morphism 𝑓:𝑦→π‘₯ belongs to 𝑆, written π‘†βˆ‹π‘“, when 𝑓 lies in the image of the inclusion at 𝑦. Because 𝑆 is a presheaf and the inclusion is natural, membership is closed under precomposition:

π‘†βˆ‹π‘“β‡’π‘†βˆ‹π‘”β‹†π‘“for every 𝑔:𝑧→𝑦.

A sieve is thus a β€œdownward closed” collection of morphisms into π‘₯.

Sieves on π‘₯ are ordered by refinement: π‘†βŠ†π‘‡ when every morphism belonging to 𝑆 belongs to 𝑇.

Theorem. Maximality of the strict downset among proper sieves strict-downset-maximal

Call a direct structure reflecting when every morphism between objects of equal degree is a split epimorphism. In a reflecting direct category, every non-invertible-in-degree morphism strictly raises degree, and the strict downset is as large as a proper sieve can be:

If the direct structure is reflecting, then every proper sieve 𝑆 on π‘₯ refines into the strict downset:

π‘†βŠ†π–²π—π—‹π—‚π–Όπ—π–£π—ˆπ—π—‡(π‘₯).

Suppose π‘“βˆˆπ‘† with 𝑓:𝑦→π‘₯ of equal degree. By reflection 𝑓 has a section 𝑠, and closure under precomposition gives 𝑠⋆𝑓=𝗂𝖽π‘₯βˆˆπ‘†, contradicting properness.

So every morphism in 𝑆 strictly raises degree. That is, every morphism in 𝑆 is also a member of π–²π—π—‹π—‚π–Όπ—π–£π—ˆπ—π—‡(π‘₯).

Definition. The strict downset sieve of a direct category strict-downset-sieve

Let π’žοΈ€ carry a direct structure. The strict downset π–²π—π—‹π—‚π–Όπ—π–£π—ˆπ—π—‡(π‘₯) of an object π‘₯ is the presheaf of morphisms into π‘₯ from strictly lower objects:

π–²π—π—‹π—‚π–Όπ—π–£π—ˆπ—π—‡(π‘₯)(𝑦)={𝑓:𝑦→π‘₯βˆ£π‘¦β‰Ίπ‘₯},

with restriction by precomposition β€” well defined since degrees are non-decreasing, so precomposing can only stay strictly below.

The evident inclusion π–²π—π—‹π—‚π–Όπ—π–£π—ˆπ—π—‡(π‘₯)β†£γ‚ˆπ‘₯ makes π–²π—π—‹π—‚π–Όπ—π–£π—ˆπ—π—‡(π‘₯) a sieve on π‘₯. It is moreover a proper sieve, as it exlcudes the identity.

Definition. Subobject subobject

In a category π’žοΈ€, a subobject of 𝑐 is an isomorphism class of monomorphisms into 𝑐.

Definition. Subobject Classifier subobject-classifier

Subsets 𝐴 of a set 𝑋 may classically be identified with a characteristic map πœ’π΄:π‘‹β†’π–»π—ˆπ—ˆπ—…. Intuitively, for every π‘₯:𝑋, πœ’π΄ gives a truth value to the statement β€œπ‘₯ is in the subset 𝐴”. In this manner, the domain of the characteristic map, π–»π—ˆπ—ˆπ—…, classifies the subsets of 𝑋.

Generalizing over this principle, in a category π’žοΈ€ an object Ξ© is a subobject classifier if maps into it from some object 𝑐 likewise uniquely identify a subobject of 𝑐.

We can understand Ξ© to behave like an object of truth values that are not necessarily boolean valued. A morphism 𝑝:𝑐→Ω can be thought of like a predicate on 𝑐. If 𝑐 were a set, this would precisely be the characteristic function on it. However, this idea can generalize beyond sets. For instance in the category of graphs, Ξ© is a cleverly constructed graph such that any graph homomorphism 𝑔→Ω into it picks out a unique subgraph of 𝑔.

There are always two (suggestively named) disjoint β€œpoints” of Ξ©, thought of as morphisms out of the terminal object π—π—‹π—Žπ–Ύ,π–Ώπ–Ίπ—…π—Œπ–Ύ:βŠ€β†’Ξ©. I think if we’re being careful, π—π—‹π—Žπ–Ύ may properly be the β€œsubobject classifier” but I always use the term to refer to Ξ© itself.

A subobject πœ™:𝑑β†ͺ𝑐 induces a unique characteristic morphism π‘πœ™:𝑐→Ω such that

π‘πœ™βˆ˜πœ™=π—π—‹π—Žπ–Ύβˆ˜!𝑑

Moreover, the appropriate square must be a pullback.

Subobject Classifier in Dependent Lambek Calculus subobject-classifier-for-grammars

Previously in Agda we had constructed equalizers in Lambek𝙳 using sigma types. Further, equalizers form subobjects, which may be comprehended as maps from a type into a subobject classifier.

I believe in our formalization we want to generalize this idea to a broader class of subobjects, maybe even all of them. That is, we could define a subobject classifying grammar Ξ©. Then we can internally define any predicate on a grammar 𝑔 via a term 𝑝:π‘”βŠ’Ξ©.

That is, forall 𝑀:String we have ⟦Ω⟧(𝑀)β‰”π—π–―π—‹π—ˆπ—‰, and

βŸ¦π—Œπ—Žπ–»π—€π—‹π–Ίπ—†π—†π–Ίπ—‹(𝑔)(𝑝)⟧(𝑀)β‰”βˆ‘π‘₯:βŸ¦π‘”βŸ§(𝑀)βŸ¦π‘βŸ§(π‘₯)

The code for this is nearly identical to the definition of equalizers as sigma types, and I have even built a translation of the equalizers code that is defined with this as its foundation. I have not yet tested if either implementation is preferable.

It isn’t yet clear how to best expose this sort of construct syntactically. I suppose you could assume some subobject classifying grammar, but then I don’t know if you can then reap the benefits of the propositions internally. That is, how do you reflect the proposition that two terms are equal in the internal language of propositions rather than the external one?

If nothing else, this code gives me a reusable interface to axiomatize smaller, sandboxed ways in which I’d like to internalize certain types of propositions (such as β€œtwo terms are equal” or β€œdoes not begin with the character 𝑐”).

The hope for this code is that it lets me inductively prove the follow last soundness of Kleene star.

tag-subobject tag