Zulip Chat Archive

Stream: new members

Topic: Tensor Products


Zhangir Azerbayev (Jul 05 2020 at 23:17):

Hi everyone. I'm trying to do some basic stuff with tensor products.

import tactic
import data.real.basic
import linear_algebra.basic
import linear_algebra.finite_dimensional
import linear_algebra.tensor_product

universe u
open tensor_product

variables (K V : Type u) [field K] [add_comm_group V] [module K V]
[finite_dimensional K V]
variables v w : V

#check V ⊗ₜ[K] V
#check  v ⊗ₜ[K] w

The error message I'm getting is

failed to synthesize type class instance for
K V : Type u,
...
 add_comm_group (Type u)

Does anyone know what add_comm_group (Type u) means?

Mario Carneiro (Jul 05 2020 at 23:19):

It's trying to infer an instance of add_comm_group for Type, which doesn't have one because the universe is not a group

Mario Carneiro (Jul 05 2020 at 23:20):

This sometimes happens when you write things like nat + int

Mario Carneiro (Jul 05 2020 at 23:21):

The issue appears to be that ⊗ₜ is tensor_group.tmul, which is the multiplication of vectors inside the tensor product. It is not the tensor product type itself

Mario Carneiro (Jul 05 2020 at 23:23):

The notation for the type itself is V ⊗[K] V although it is in a locale that you have to open first

open_locale tensor_product
#check (v ⊗ₜ[K] w : V [K] V)

Zhangir Azerbayev (Jul 05 2020 at 23:28):

I see, thank you @Mario Carneiro . What is the difference between a namespace and a locale?

Mario Carneiro (Jul 05 2020 at 23:29):

open_locale and localized are mathlib notions (not part of lean core) for simulating namespaced notation


Last updated: Dec 20 2023 at 11:08 UTC