Power basis #
This file defines a structure PowerBasis R S, giving a basis of the
R-algebra S as a finite list of powers 1, x, ..., x^n.
For example, if x is algebraic over a ring/field, adjoining x
gives a PowerBasis structure generated by x.
Definitions #
PowerBasis R A: a structure containing anxand annsuch that1, x, ..., x^nis a basis for theR-algebraA(viewed as anR-module).finrank (hf : f ≠ 0) : Module.finrank K (AdjoinRoot f) = f.natDegree, the dimension ofAdjoinRoot fequals the degree offPowerBasis.lift (pb : PowerBasis R S): ify : S'satisfies the same equations aspb.gen, this is the mapS →ₐ[R] S'sendingpb.gentoyPowerBasis.equiv: if two power bases satisfy the same equations, they are equivalent as algebras
Implementation notes #
Throughout this file, R, S, A, B ... are CommRings, and K, L, ... are Fields.
S is an R-algebra, B is an A-algebra, L is a K-algebra.
Tags #
power basis, powerbasis
pb : PowerBasis R S states that 1, pb.gen, ..., pb.gen ^ (pb.dim - 1)
is a basis for the R-algebra S (viewed as R-module).
This is a structure, not a class, since the same algebra can have many power bases.
For the common case where S is defined by adjoining an integral element to R,
the canonical power basis is given by {Algebra,IntermediateField}.adjoin.powerBasis.
- gen : S
- dim : ℕ
- basis : Module.Basis (Fin self.dim) R S
Instances For
Cannot be an instance because PowerBasis cannot be a class.
Construct a power basis from a basis consisting of powers of an element.
Equations
- B.PowerBasis e hx = { gen := x, dim := Fintype.card ι, basis := B.reindex e, basis_eq_pow := ⋯ }
Instances For
pb.minpolyGen is the minimal polynomial for pb.gen.
Equations
- pb.minpolyGen = Polynomial.X ^ pb.dim - ∑ i : Fin pb.dim, Polynomial.C ((pb.basis.repr (pb.gen ^ pb.dim)) i) * Polynomial.X ^ ↑i
Instances For
pb.lift y hy is the algebra map sending pb.gen to y,
where hy states the higher powers of y are the same as the higher powers of pb.gen.
See PowerBasis.liftEquiv for a bundled equiv sending ⟨y, hy⟩ to the algebra map.
Equations
Instances For
pb.liftEquiv states that roots of the minimal polynomial of pb.gen correspond to
maps sending pb.gen to that root.
This is the bundled equiv version of PowerBasis.lift.
If the codomain of the AlgHoms is an integral domain, then the roots form a multiset,
see liftEquiv' for the corresponding statement.
Equations
- One or more equations did not get rendered due to their size.
Instances For
pb.liftEquiv' states that elements of the root set of the minimal
polynomial of pb.gen correspond to maps sending pb.gen to that root.
Equations
- pb.liftEquiv' = pb.liftEquiv.trans ((Equiv.refl B).subtypeEquiv ⋯)
Instances For
There are finitely many algebra homomorphisms S →ₐ[A] B if S is of the form A[x]
and B is an integral domain.
Equations
- PowerBasis.AlgHom.fintype pb = Fintype.ofEquiv { y : B // y ∈ (minpoly A pb.gen).aroots B } pb.liftEquiv'.symm
Instances For
pb.equivOfRoot pb' h₁ h₂ is an equivalence of algebras with the same power basis,
where "the same" means that pb is a root of pb's minimal polynomial and vice versa.
See also PowerBasis.equivOfMinpoly which takes the hypothesis that the
minimal polynomials are identical.
Equations
- pb.equivOfRoot pb' h₁ h₂ = AlgEquiv.ofAlgHom (pb.lift pb'.gen h₂) (pb'.lift pb.gen h₁) ⋯ ⋯
Instances For
pb.equivOfMinpoly pb' h is an equivalence of algebras with the same power basis,
where "the same" means that they have identical minimal polynomials.
See also PowerBasis.equivOfRoot which takes the hypothesis that each generator is a root of the
other basis' minimal polynomial; PowerBasis.equivOfRoot is more general if A is not a field.
Equations
- pb.equivOfMinpoly pb' h = pb.equivOfRoot pb' ⋯ ⋯
Instances For
Useful lemma to show x generates a power basis:
the powers of x less than the degree of x's minimal polynomial are linearly independent.
PowerBasis.map pb (e : S ≃ₐ[R] S') is the power basis for S' generated by e pb.gen.