Hecke.jl
Hecke.jl copied to clipboard
Embeddings vs places
We are a bit sloppy and not really distinguishing embeddings and infinite places. So far this has been fine. For CM types one needs to work with complex embeddings and one needs to distinguish between conjugated ones. In https://github.com/thofma/Hecke.jl/pull/490 I do this by using an infinite place and storing a flag isconjugated::Bool
. But this is awkward. It is also a bit sneaky/questionable that we allow evaluate(a, P)
for an infinite place P
and for it to mean the image under (one of the) embedding(s) and not the image of the absolute valuation (which I believe would be the correct thing).
It really feels strange to now put the embeddings on top of the places. It should be the other way around. We should have embeddings and build the places on top of that.
It could also be that we never actually needed places in the first? It seems that the complex places are not actually used anywhere.
What are your thoughts @fieker?
Here is a proposal if we want to keep places and introduce embeddings properly:
Here is a proposal:
- [x] Implement embeddings "from scratch". By "from scratch" I mean not using the infrastructure for places.
- [ ] Swap the implementation of the places to use embeddings.
- [ ] If
P
is an infinite place,P(a)
will denote|v(a)|
wherev
is an embedding definingP
. Ifv
is an embedding,v(a)
will just be the embedding (what is nowevaluate
).