Zulip Chat Archive
Stream: new members
Topic: How to create element of type `fin 0`
Rui Liu (Dec 07 2020 at 21:53):
I feel there should be an easy way to create element of type fin 0
, since there's only one such function. How to do it?
Yakov Pechersky (Dec 07 2020 at 21:54):
In fact, there are zero such terms, so it is impossible to construct such an "element".
Yakov Pechersky (Dec 07 2020 at 21:54):
If you somehow did have an i : fin 0
, then that can be used to produce a proof of false
.
Bryan Gin-ge Chen (Dec 07 2020 at 21:55):
As Yakov explains, fin 0
is an empty type, but the unique function out of it is docs#fin_zero_elim.
Bryan Gin-ge Chen (Dec 07 2020 at 21:58):
I guess docs#fin.elim0 is the same.
Rui Liu (Dec 07 2020 at 21:58):
Oh no, I was trying to use fin n -> T
in my inductively defined type, since I cannot use vector T n
in an inductive definition as it violates positivity constraints.
How would I do it in inductive type then?
Kevin Buzzard (Dec 07 2020 at 21:59):
There's a function fin 0 -> T
. What are you worried about?
Rui Liu (Dec 07 2020 at 22:03):
Oh right, I guess although fin 0
cannot be constructed, fin 0 -> T
can be constructed? @Kevin Buzzard
Bryan Gin-ge Chen (Dec 07 2020 at 22:07):
variables (T : Type*)
#check (@fin.elim0 (λ _, T) : fin 0 → T)
I think in most cases you should be able to use fin.elim0
or fin_zero_elim
without making the function type explicit.
Eric Wieser (Dec 07 2020 at 22:14):
Note that if T is not empty, you can use the simpler (λ _ : fin 0, some_t)
Last updated: Dec 20 2023 at 11:08 UTC