Zulip Chat Archive
Stream: new members
Topic: vec.cons in chapter 2
Kritixi Lithos (Dec 07 2019 at 16:47):
Hi, from chapter 2, vec.cons is defined as constant cons : Π {α : Type u} {n : ℕ}, α → vec α n → vec α (n + 1)
(I made the args optional). Trying #check cons 5
works as expected, but doing #check cons 5 (vec nat 10)
gives an error
error: type mismatch at application cons 5 (vec ℕ 10) term vec ℕ 10 has type Type : Type 1 but is expected to have type vec ?m_1 ?m_2 : Type ?
What is it that I am doing wrong?
Marc Huisinga (Dec 07 2019 at 17:01):
the definition of cons
should be read as follows: given a value of type α
and a value of type vec α n
, you get a value of type vec α (n + 1)
. you are passing vec nat 10
, which is a type itself, not a value of type vec α n
(similar to how ℕ is a type while 5 is a value of type ℕ).
an example that would work is #check cons 5 empty
, for instance.
Kritixi Lithos (Dec 07 2019 at 17:09):
Thank you, I understand better now. So then to test with my own examples, I'd have to create vectors using these elementary functions
Last updated: Dec 20 2023 at 11:08 UTC