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:
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 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.