[Agda] Fin n -> Fin n extensional?
Neelakantan Krishnaswami
n.krishnaswami at cs.bham.ac.uk
Mon Feb 23 16:38:02 CET 2015
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello,
Definitional equality including Axiom K (uniqueness of identity proofs)
remains decidable.
The reason is that you can split the implementation of judgemental
into two alternating phases -- weak-head normalization and
type-directed eta-expansion. Just as with eta for unit, this means
that when you compare terms at equality type, you can simply succeed.
Concretely, if you have proofs p and q at type Id[X](e,e') such that
p,q : Id[X](e,e'), then you can eta-expand to p ==> refl and
q ==> refl, and then refl will be judged to be equal to itself.
If you restrict "computation" to mean beta-reduction, then equality
proofs do not all have to *reduce* to refl. However, they all can
*eta-expand* to refl.
IMO, a very good reference on this is Andreas Abel's habilitation
thesis. If you're in a hurry, then his FOSSACS 2011 paper with Gabriel
Scherer "On Irrelevance and Algorithmic Equality in Predicative Type
Theory" was a relatively accessible introduction to this approach.
Best,
Neel
On 19/02/15 20:54, Abhishek Anand wrote:
> Thanks Jason. Your argument is convincing. Already at the second
> line, (\_ → 0) and (\_ → 1) being definitionally equal
> contradicts my understanding of Coq's definitional equality. Are
> your assumptions valid in Agda with K? In other words, is it true
> that in Agda with K, any proof of equality (Id) of closed terms
> computes down to refl?
>
>
> Thanks, -- Abhishek http://www.cs.cornell.edu/~aa755/
>
> On Wed, Feb 18, 2015 at 12:06 PM, Jason Gross
> <jasongross9 at gmail.com> wrote:
>
>> Here's one, I think, for showing impossibility of inhabiting the
>> type (f g : Void → ℕ) → Id f g: Assuming the type theory is
>> strongly normalizing on terms of identity type, the only closed
>> proof of equality of two closed functions must be refl. Thus, if
>> (\_ → 0) and (\_ → 1) are equal, they must be definitionally
>> equal in a strongly normalizing type theory. From (Id f g), we
>> can obtain (x : Void) → Id (f x) (g x); it's behavior is to send
>> refl to refl. Thus, when we plug in refl : Id (\_ → 0) (\_ → 1),
>> we get a proof of Void → Id 0 1 which reduces to \_ → refl. But
>> this is a contradiction, for refl does not prove Id 0 1.
>>
>> On Wed, Feb 18, 2015 at 11:37 AM, Abhishek Anand <
>> abhishek.anand.iitg at gmail.com> wrote:
>>
>>> Unprovability of void-ext has been known to be the reason why
>>> one cannot (in Coq) code up natural numbers as W Types.
>>>
>>> Here is a quote : "This is because one cannot prove that there
>>> is only a unique function from the empty set to the set of
>>> natural numbers without using extensional equality." from
>>> https://coq.inria.fr/cocorico/WTypeInsteadOfInductiveTypes
>>>
>>> However, I don't know a formal (meta-theoretical) proof of
>>> unprovability of void-ext. I'd be grateful if someone can point
>>> us to such a proof.
>>>
>>>
>>> -- Abhishek http://www.cs.cornell.edu/~aa755/
>>>
>>> On Wed, Feb 18, 2015 at 11:20 AM, Dan Licata <drl at cs.cmu.edu>
>>> wrote:
>>>
>>>> Can you even do this (without otherwise assuming function
>>>> extensionality)?
>>>>
>>>> For example, for Fin 0, isn't it the same as saying "any
>>>> function from 0 to A is abort":
>>>>
>>>> data Id {A : Set} (a : A) : A → Set where refl : Id a a
>>>>
>>>> data Void : Set where
>>>>
>>>> abort : {A : Set} → Void → A abort ()
>>>>
>>>> void-ext : {A : Set} → (f : Void → A) → Id f abort void-ext f
>>>> = {!!}
>>>>
>>>> (void-ext is sufficient; is it necessary?) and if so, can you
>>>> prove that? I don't see how off the top of my head.
>>>>
>>>> -Dan
>>>>
>>>> On Feb 18, 2015, at 10:47 AM, João Paulo Pizani Flor <
>>>> J.P.PizaniFlor at uu.nl> wrote:
>>>>
>>>> Not yet (couldn't find it anywhere), but I will probably need
>>>> it for my Ph.D project, so maybe it will come in some
>>>> time...
>>>>
>>>> Cheers,
>>>>
>>>> João Pizani, M.Sc <j.p.pizaniflor at uu.nl> Promovendus -
>>>> Departement Informatica Faculteit Bètawetenschappen -
>>>> Universiteit Utrecht
>>>>
>>>> On Wed, Feb 18, 2015 at 3:25 PM, Jacques Carette
>>>> <carette at mcmaster.ca> wrote:
>>>>
>>>>> Does anyone have a proof in Agda that functions at type
>>>>> (Fin n -> Fin n) are extensional? Jacques
>>>>> _______________________________________________ Agda
>>>>> mailing list Agda at lists.chalmers.se
>>>>> https://lists.chalmers.se/mailman/listinfo/agda
>>>>>
>>>>
>>>> _______________________________________________ Agda mailing
>>>> list Agda at lists.chalmers.se
>>>> https://lists.chalmers.se/mailman/listinfo/agda
>>>>
>>>>
>>>>
>>>> _______________________________________________ Agda mailing
>>>> list Agda at lists.chalmers.se
>>>> https://lists.chalmers.se/mailman/listinfo/agda
>>>>
>>>>
>>>
>>> _______________________________________________ Agda mailing
>>> list Agda at lists.chalmers.se
>>> https://lists.chalmers.se/mailman/listinfo/agda
>>>
>>>
>>
>
>
>
> _______________________________________________ Agda mailing list
> Agda at lists.chalmers.se
> https://lists.chalmers.se/mailman/listinfo/agda
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)
iQIbBAEBAgAGBQJU60laAAoJEFHmop5RZGmSfJcP91HMj9P8+iiF344OtyF+Pfv1
IUk+w4IndUMQcDPFys0GCX9VyMeg5W3ezwV1eYYLNlSghtR/rWAVtKRlDH/PQ8Hp
Q9RJhpEo3gNMW1cBSHWTM7HpmcI2z8ttualtE/1+yK4XPRC0vXw6V6mOHv4KmDES
xjhsKy4ut8Ah4pTXvb0+MkTvI46F7dpBlkpQmAFygpfOtNz7ahZ4+bQjlmdPMu6B
DG9jwtA9HuEBoxR84Fni0w9gA5da+Ew7cF0mcuG777RK3M6NnuB+jnyk18w7qUKv
bQ9s4Is0YZ4KHkDmNe6tVnTbDaivzQfN6rBTFPfrRPHCo0b4cU3Dpos7dQdOf56a
qvlmC8hoB60KGaLYx+SqjAHfEudHsTPzpDQUHZE0T+zlqLBI1g8y9my20rd5PN3t
S4sapKOVsVibd+XnNbGDhoRDA4Uy1KccO0O9Yt8w1/yTpJqik4DfB8g7tEIzsgc+
137F+WnUfNiilpukOWrhzSRmxpmOgGZaA96o4tsq6eZjf8w9OSZeYFzEqn+pCtci
gClqrFGIdbBXHEcOMnJ5K+Y1y+1himsvfM8XavdE0tTfv2+aGknpwm9qRs6SG7+w
gNV18wNhkL6BqdDTnEIJ6y1PvK/IDmi6D9Ar9eL8nvcELzzsEbDFLFWkm/ElSzZ6
OC285Dst5uKeClsp238=
=qT5j
-----END PGP SIGNATURE-----
More information about the Agda
mailing list