Zulip Chat Archive

Stream: new members

Topic: Ones vector inner product


Ashley Blacquiere (Oct 06 2022 at 05:36):

I'm trying to formalize the following:

x∥₁ = 1,x  1∥₂  x∥₂ = nx∥₂

where 1 is the all-ones vector <1, 1, ...> of length |x|

I've tried defining the all-ones vector and the inequality as follows, but I'm not sure that what I've done is doing what I think it's doing...

import analysis.inner_product_space.basic

def ones_vector (l : ) : vector  l := vector.repeat 1 l

lemma one_vector_prod (n : ) (x : vector  n) [inner_product_space  (vector  n)]: ones_vector n, x_ℝ  ones_vector n * x := real_inner_le_norm (ones_vector n) x

Is this sensible, or am I going off the deep-end here?

Eric Wieser (Oct 06 2022 at 05:54):

The all-ones vector would normally be spelt (1 : fin n → ℝ)

Eric Wieser (Oct 06 2022 at 05:55):

docs#vector in mathlib is only ever used in the C++ sense of the word, not the usual mathematical meaning.

Matt Diamond (Oct 06 2022 at 06:08):

I had no idea you could coerce a number to a function... is there anything in the docs about that?

Junyan Xu (Oct 06 2022 at 06:09):

I think it's the docs#pi.has_one instance

Ashley Blacquiere (Oct 06 2022 at 06:26):

Eric Wieser said:

The all-ones vector would normally be spelt (1 : fin n → ℝ)

Eric Wieser said:

docs#vector in mathlib is only ever used in the C++ sense of the word, not the usual mathematical meaning.

So, if I'm understanding correctly, I shouldn't really be using docs#vector in the sense above - I should be doing something more like this (barring the fact that this isn't a working example, since the types on the left of the inequality don't agree):

lemma one_vector_prod (x : F) : (1 : fin n  ), x_ℝ  (1 : fin n  ) * x := real_inner_le_norm x x

Eric Wieser (Oct 06 2022 at 07:07):

I suspect you actually want 1 : euclidean_space (fin n) ℝ

Eric Wieser (Oct 06 2022 at 07:08):

Since that has the norm structure that you want, as opposed to fin n → ℝ which has the inf-norm


Last updated: Dec 20 2023 at 11:08 UTC