On Tuesday, 19 December 2017 03:36:51 UTC, Gershom B wrote:
On December 18, 2017 at 5:58:22 PM, Martín Hötzel Escardó 
(escar...@gmail.com) wrote: 
> > 
> > A type D is called injective if for any embedding j:X→Y, every 
> > function f:X→D extends to a map f':Y→D along j. 
> 

> Here is a question: given a local operator (Lawvere-Tierny topology) 
> j, an object D is a sheaf if for any j-dense subobject X >-> Y, every 
> function f : X -> D extends to a map f’ : Y -> D. Is there a way in 
> which we can view injective types as sheafs in some appropriate sense? 


I don't think so, because we don't have the required uniqueness
of the sheaf condition here.

In general, if a type D is injective, many extensions of any
f:X→D along an embedding j:X→Y exist.

In the file
http://www.cs.bham.ac.uk/~mhe/agda-new/InjectiveTypes.html, 
two canonical extensions are shown to exist, a minimal one f\j
using Σ, and a maximal f/j one using Π. 

In fact they are left and right Kan extensions, in the sense that we
have equivalences

 Nat f (g ∘ j) ≃ Nat f∖j  g

and

 Nat g f/j ≃ Nat (g ∘ j) f

of natural transformations involving the "presheaves" g : Y → U and
f\j, f/j : X → U.

Although these two extensions are canonical in the above sense, they are not unique.

Martin