Zulip Chat Archive

Stream: Is there code for X?

Topic: Finitely generated algebras, etc


Winston Yin (Jul 15 2021 at 15:14):

What's the best way to define k-algebras generated by, say, 2 elements x and y? What should I use as x and y?

Johan Commelin (Jul 15 2021 at 15:17):

You can add an assumption subalgebra.adjoin {x,y} = \top. (Thanks for the fix, Eric!)

Eric Wieser (Jul 15 2021 at 15:17):

Except subalgebra.span is called docs#algebra.adjoin. We also have docs#submodule.span and docs#monoid.closure as names for the analogous things, so it's always confusing.

Adam Topaz (Jul 15 2021 at 15:18):

You can also ask for a surjective morphism from the free algebra on fin 2 or bool or any other type with two elements

Adam Topaz (Jul 15 2021 at 15:18):

We probably don't have the equivalence between these two approaches, but that would be a nice PR

Eric Wieser (Jul 15 2021 at 15:19):

You might even want an alg_equiv to free_algebra R (fin 2) depending on what you mean by 2 elements

Winston Yin (Jul 15 2021 at 15:20):

fin 2 is what I needed, thanks! In cases where x and y come from something else, I will use alg_equiv. Thanks!

Winston Yin (Jul 15 2021 at 15:21):

I'm not sure I understood the algebra.adjoin approach from Johan

Adam Topaz (Jul 15 2021 at 15:21):

alg_equiv with the free algebra is too strong if you just want something generated by two elements

Riccardo Brasca (Jul 15 2021 at 15:23):

You can also work with mv_polynomial, as in docs#algebra.finite_type.iff_quotient_mv_polynomial and friends

Adam Topaz (Jul 15 2021 at 15:24):

I'm assuming algebras need not be commutative in this case? If so, then polynomials aren't a good choice

Eric Wieser (Jul 15 2021 at 15:24):

Johan's approach lets you specify the generators more directly as x y : X, as opposed to using F (free_algebra.ι R X 0) and F (free_algebra.ι R X 1) (where F is the morphism Adam describes)

Riccardo Brasca (Jul 15 2021 at 15:24):

Ah yes, I was thinking about the commutative case.

Eric Wieser (Jul 15 2021 at 15:25):

Everyone always does!

Kevin Buzzard (Jul 15 2021 at 15:28):

A lot of the mathematicians here read research papers where ring := comm_ring

Adam Topaz (Jul 15 2021 at 15:29):

import data.matrix.notation
import algebra.free_algebra

variables (A : Type*) [comm_semiring A] (R : Type*) [semiring R] [algebra A R]

def is_generated_by (x y : R) : Prop := function.surjective (free_algebra.lift A ![x,y])

Adam Topaz (Jul 15 2021 at 15:29):

Just a mild abuse of matrix notation

Adam Topaz (Jul 15 2021 at 15:32):

@Kevin Buzzard I agree that ring = comm_ring but in my mind algebra still implies potentially non-commutative.

Johan Commelin (Jul 15 2021 at 16:47):

Wait... do noncommutative rings exist? I thought this was an open conjecture...

Kevin Buzzard (Jul 15 2021 at 16:59):

They're parametrised by an H^2 IIRC

Kevin Buzzard (Jul 15 2021 at 17:00):

and I guess examples are known when the H^2 is Q/Z so they must exist

Adam Topaz (Jul 15 2021 at 17:14):

I don't even know what to say about docs#non_unital_semiring ...

Johan Commelin (Jul 15 2021 at 17:16):

Better known as a rg.

Yakov Pechersky (Jul 15 2021 at 17:17):

You're still assuming associativity...

Adam Topaz (Jul 15 2021 at 17:19):

Do we have docs#non_unital_non_associative_semiring ?

Yakov Pechersky (Jul 15 2021 at 17:20):

docs#non_unital_non_assoc_semiring

Adam Topaz (Jul 15 2021 at 17:23):

docs#non_unital_non_assoc_non_distrib_semiring (phew!)

Yakov Pechersky (Jul 15 2021 at 17:26):

Are all Cayley-Dickson constructions distributive?

Kevin Buzzard (Jul 15 2021 at 17:32):

I think that by the time it's non-distrib the operations may as well just be f1 and f2


Last updated: Dec 20 2023 at 11:08 UTC