[Agda] Abstract existential ?

Martin Escardo m.escardo at cs.bham.ac.uk
Wed Feb 6 22:54:20 CET 2019


In HoTT/UF, and in cubical Agda, you can achieve this by considering the 
propositional truncation of a Sigma type

   ||Sigma(x:X), A x||.

This is constructive in the way you wish. Not always can you have

   ||Sigma(x:X), A x|| -> Sigma(x:X) -> A x,

as you would be able to deduce excluded middle if you could do this for 
all X:Set and A:X->Set.

However, sometimes you can, e.g. for f:N->N,

   ||Sigma(n:N), f n = 0|| -> Sigma(n:N), f n = 0.

(If such a function has a root, you can find one.)

I emphasize that this is not Markov's principle

   ¬¬(Sigma(n:N), f n = 0) -> Sigma(n:N), f n = 0,

which is *not* provable. (And so ||-|| is not the same thing as ¬¬(-).)

This is discussed in detail in the paper
"Notions of anonymous existence in Martin-Loef Type Theory"
https://arxiv.org/abs/1610.03346
by Kraus, Escardo, Coquand, Altenkirch.

In terms of setoids, you can think of the propositional truncation of a 
setoid B to be the setoid with the same underlying type, but with the 
given equivalence relation replaced by the the chaotic, or indiscrete, 
equivalence relation that relates any two points.

Martin


On 06/02/2019 21:30, carette at mcmaster.ca wrote:
> Is there a way to encode an existential in Agda where the "exists" part 
> of the dependent pair is abstract/private?  ∃ from the standard library 
> just says that the first part is implicit (i.e. can be uniquely inferred).
> 
> I think I could use the same trick as in Haskell (i.e. use a wrapper 
> where I don't export the constructor but do provide accessor functions 
> that don't leak), but that somehow seems heavy.  Is there something 
> simpler?
> 
> I don't mean a fully non-constructive exists here: I mean (informally!) 
> "a dependent pair where the first projection is abstract and cannot 
> leak". So to build such a thing, a definite type must be used, but once 
> it is created, the 'clients' as it were, cannot find out what that type is.
> 
> Jacques
> 
> _______________________________________________
> Agda mailing list
> Agda at lists.chalmers.se
> https://lists.chalmers.se/mailman/listinfo/agda

-- 
Martin Escardo
http://www.cs.bham.ac.uk/~mhe


More information about the Agda mailing list