Selmer groups of finite flat algebras

Selmer groups of finite flat algebras

dual_pairs.selmer_group.selmer_group(A, S, n)

Return the n-Selmer group of A relative to S.

This is a version for étale algebras of the method NumberField.selmer_space().

EXAMPLES:

sage: from dual_pairs import FiniteFlatAlgebra
sage: from dual_pairs.selmer_group import selmer_group
sage: R.<x> = QQ[]
sage: A = FiniteFlatAlgebra(QQ, [x, x^3 - x - 1])
sage: S = [2, 23]
sage: Sel, gens, exp_Sel, log_Sel = selmer_group(A, S, 2)
sage: v = Sel.random_element()
sage: log_Sel(exp_Sel(v)) == v
True

sage: A = FiniteFlatAlgebra(QQ, x^2 - x + 6)
sage: Sel, gens, exp_Sel, log_Sel = selmer_group(A, [], 6)
sage: Sel
Multiplicative Abelian group isomorphic to C6
sage: gens
[3/64*a + 1/32]
sage: log_Sel(gens[0])
f
sage: exp_Sel(Sel.gen(0))
3/64*a + 1/32