# central idempotent of a finite dimensional algebra

I tried the following

A=Algebras(QQ).FiniteDimensional().WithBasis().Semisimple().Commutative()

B = FiniteDimensionalAlgebra(QQ, [Matrix([[1,0,0,0,0,0,0,0,0], [0,1,0,0,0,0,0,0,0], [0,0,1,0,0,0,0,0,0],
[0,0,0,1,0,0,0,0,0], [0,0,0,0,1,0,0,0,0], [0,0,0,0,0,1,0,0,0], [0,0,0,0,0,0,1,0,0], [0,0,0,0,0,0,0,1,0], [0,0,0,0,0,0,0,0,1]]), Matrix([[0,1,0,0,0,0,0,0,0], [0,0,1,0,0,0,0,0,0], [1,0,0,0,0,0,0,0,0], [0,0,0,0,1,0,0,0,0], [0,0,0,0,0,1,0,0,0], [0,0,0,1,0,0,0,0,0], [0,0,0,0,0,0,0,0,1], [0,0,0,0,0,0,1,0,0], [0,0,0,0,0,0,0,1,0]]), Matrix([[0,0,1,0,0,0,0,0,0], [1,0,0,0,0,0,0,0,0], [0,1,0,0,0,0,0,0,0], [0,0,0,0,0,1,0,0,0], [0,0,0,1,0,0,0,0,0], [0,0,0,0,1,0,0,0,0], [0,0,0,0,0,0,0,0,1], [0,0,0,0,0,0,1,0,0], [0,0,0,0,0,0,0,1,0]]), Matrix([[0,0,0,1,0,0,0,0,0], [0,0,0,0,1,0,0,0,0], [0,0,0,0,0,1,0,0,0], [0,1,0,0,0,0,1,0,0], [0,0,1,0,0,0,0,1,0], [1,0,0,0,0,0,0,0,1], [2,0,0,0,2,0,0,0,0], [0,2,0,0,0,2,0,0,0], [0,0,2,2,0,0,0,0,0]]), Matrix([[0,0,0,0,1,0,0,0,0], [0,0,0,0,0,1,0,0,0], [0,0,0,1,0,0,0,0,0], [0,0,1,0,0,0,0,1,0], [1,0,0,0,0,0,0,0,1], [0,1,0,0,0,0,1,0,0], [0,2,0,0,0,2,0,1,0], [0,0,2,2,0,0,0,1,0], [2,0,0,0,2,0,0,0,0]]), Matrix([[0,0,0,0,0,1,0,0,0], [0,0,0,1,0,0,0,0,0], [0,0,0,0,1,0,0,0,0], [1,0,0,0,0,0,0,0,1], [0,1,0,0,0,0,1,0,0], [0,0,1,0,0,0,0,1,0], [0,0,2,2,0,0,0,0,0], [2,0,0,0,2,0,0,0,0], [0,2,0,0,0,2,0,0,0]]), Matrix([[0,0,0,0,0,0,1,0,0], [0,0,0,0,0,0,0,1,0], [0,0,0,0,0,0,0,0,1], [2,0,0,0,2,0,0,0,0], [0,2,0,0,0,2,0,0,0], [0,0,2,2,0,0,0,0,0], [0,0,2,2,0,0,0,1,0], [2,0,0,0,2,0,0,0,1], [0,2,0,0,0,2,1,0,0]]), Matrix([[0,0,0,0,0,0,0,1,0], [0,0,0,0,0,0,0,0,1], [0,0,0,0,0,0,1,0,0], [0,2,0,0,0,2,0,0,0], [0,0,2,2,0,0,0,0,0], [2,0,0,0,2,0,0,0,0], [2,0,0,0,2,0,0,0,1], [0,2,0,0,0,2,1,0,0], [0,0,2,2,0,0,0,1,0]]), Matrix([[0,0,0,0,0,0,0,0,1], [0,0,0,0,0,0,1,0,0], [0,0,0,0,0,0,0,1,0], [0,0,2,2,0,0,0,0,0], [2,0,0,0,2,0,0,0,0], [0,2,0,0,0,2,0,0,0], [0,2,0,0,0,2,1,0,0], [0,0,2,2,0,0,0,1,0], [2,0,0,0,2,0,0,0,1]])], category=A)

B.central_orthogonal_idempotents()


The above code gives me error. Could anyone tell me how to fix the code?enter code here

edit retag close merge delete

Hi Rekha

Please, edit your message, select your code and click on the 101 button, just right of the web link button. it will be more readable.

( 2019-08-01 11:02:12 -0500 )edit

Thanks. I edited . I hope its readable now.

( 2019-08-01 17:51:53 -0500 )edit

it seems my comment was irrelevant here. I must admit that the presentation does not really matter in this question Sorry

maybe like that ? :

( 2019-08-02 00:50:31 -0500 )edit

Sort by ยป oldest newest most voted

My analysis is that this method is very broken

• first of all the inital error is because a __hash__ method is "missing" for FiniteDimensionalAlgebraElement
• next, the method central_orthogonal_idempotents assumes that the quasi-idempotents of a commutative algebra are defined over the base ring which is wrong in general (needs the base ring to be algebraically closed...)
• finally, even though we change QQ for QQbar in the definition of B, the subalgebras created along the way do not implement retract/lift so that the product is not working... For the example given in the documentation of central_orthogonal_idempotents it works by some black magic

Here is the black magic:

sage: A4 = SymmetricGroup(4).algebra(QQ)
sage: B4 = A4.submodule([A4.an_element()])
sage: B4.retract
Generic morphism:
From: Symmetric group algebra of order 4 over Rational Field
To:   Free module generated by {0} over Rational Field
sage: B4.lift
Generic morphism:
From: Free module generated by {0} over Rational Field
To:   Symmetric group algebra of order 4 over Rational Field
sage: C = B.submodule([B.an_element()])
sage: C.retract
...
AttributeError: 'SubmoduleWithBasis_with_category' object has no attribute 'retract'


My conclusion is that the code is not written in a way that it works for generic commutative algebra.

more

1

Perhaps there is another solution? It would depend on exactly what problem the OP is trying to solve. If central_orthogonal_idempotents can't be solved in this case it should also say so instead of just giving a useless crash (in this case I get TypeError: <class 'sage.sets.family.TrivialFamily_with_category'> is not hashable and does not implement _cache_key()). So I would definitely consider that a bug.

( 2019-08-07 07:29:43 -0500 )edit

I agree that it is a bug... and more precisely at least three bugs.

( 2019-08-07 09:24:03 -0500 )edit