Safe Haskell | None |
---|---|
Language | Haskell2010 |
Exterior algebra where the variable set
looks like {x_1, x_2, ... , x_N}
Synopsis
- newtype ExtAlg (coeff :: *) (var :: Symbol) (n :: Nat) = ExtAlg (FreeMod coeff (Ext var n))
- unExtAlg :: ExtAlg c v n -> FreeMod c (Ext v n)
- polyVar :: KnownSymbol var => ExtAlg c var n -> String
- nOfExtAlg :: KnownNat n => ExtAlg c var n -> Int
- type ZExtAlg = ExtAlg Integer
- type QExtAlg = ExtAlg Rational
- embed :: (Ring c, KnownNat n, KnownNat m) => ExtAlg c v n -> ExtAlg c v m
- newtype Ext (var :: Symbol) (n :: Nat) = Ext Integer
Documentation
newtype ExtAlg (coeff :: *) (var :: Symbol) (n :: Nat) Source #
An exterior polynomial in with a given coefficient ring.
It is also indexed by the (shared) name of the variables and the number of
variable. For example ExtAlgn Rational "x" 3
the type of polynomials in the
variables x1, x2, x3
with rational coefficients.
Instances
embed :: (Ring c, KnownNat n, KnownNat m) => ExtAlg c v n -> ExtAlg c v m Source #
You can always increase the number of variables; you can also decrease, if don't use the last few ones.
This will throw an error if you try to eliminate variables which are in fact used. To do that, you can instead substitute 1 or 0 into them.
newtype Ext (var :: Symbol) (n :: Nat) Source #
Exterior monomials of the variables x1,x2,...,xn
. The internal representation is
a bit vector encoded as an Integer