1 | initial version |

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 magicsage: 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.

2 | No.2 Revision |

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' ~~'retract'

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

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.