Zulip Chat Archive
Stream: new members
Topic: Creating values in EuclideanSpace
Dominic Steinitz (Mar 06 2025 at 14:18):
I naively thought that
def x := (![1, 0] : EuclideanSpace ℝ (Fin 2))
would create a value of EuclideanSpace ℝ (Fin 2)
but the type shown on x
is x : Fin (Nat.succ 1) → ℝ
so after a bit more searching I found
But if I try this
noncomputable
def q := (!₂[1, 0] : EuclideanSpace ℝ (Fin 2))
I see the type of q
is q : WithLp 2 (Fin 2 → ℝ)
.
So how do I get a type of EuclideanSpace ℝ (Fin 2)
?
Eric Wieser (Mar 06 2025 at 14:21):
EuclideanSpace
is an abbreviation for WithLp
, so the !₂
spelling is fine and it really is of the type you want
Robin Arnez (Mar 06 2025 at 15:24):
def x := (![1, 0] : EuclideanSpace ℝ (Fin 2))
creates a term of a type that's definitionally equivalent to what you want (EuclideanSpace ℝ (Fin 2)
), if you want to make it stricter you can do show EuclideanSpace ℝ (Fin 2) from ![1, 0]
which should give you the right one but perhaps you'd rather want to use !₂
to avoid defeq abuse.
Eric Wieser (Mar 06 2025 at 17:51):
What you care about is whether it's reducibly definitionally equal, which the ![
spelling is not
Eric Wieser (Mar 06 2025 at 17:52):
You will find that none of the theorems work the way you want to if you use that incorrect spelling.
Last updated: May 02 2025 at 03:31 UTC