Binomial rings #
In this file we introduce the binomial property as a mixin, and define the multichoose
and choose
functions generalizing binomial coefficients.
According to our main reference [Ell06] (which lists many equivalent conditions), a
binomial ring is a torsion-free commutative ring R
such that for any x ∈ R
and any k ∈ ℕ
, the
product x(x-1)⋯(x-k+1)
is divisible by k!
. The torsion-free condition lets us divide by k!
unambiguously, so we get uniquely defined binomial coefficients.
The defining condition doesn't require commutativity or associativity, and we get a theory with
essentially the same power by replacing subtraction with addition. Thus, we consider any additive
commutative monoid with a notion of natural number exponents in which multiplication by positive
integers is injective, and demand that the evaluation of the ascending Pochhammer polynomial
X(X+1)⋯(X+(k-1))
at any element is divisible by k!
. The quotient is called multichoose r k
,
because for r
a natural number, it is the number of multisets of cardinality k
taken from a type
of cardinality n
.
Definitions #
BinomialRing
: a mixin class specifying a suitablemultichoose
function.Ring.multichoose
: the quotient of an ascending Pochhammer evaluation by a factorial.Ring.choose
: the quotient of a descending Pochhammer evaluation by a factorial.
Results #
- Basic results with choose and multichoose, e.g.,
choose_zero_right
- Relations between choose and multichoose, negated input.
- Fundamental recursion:
choose_succ_succ
- Chu-Vandermonde identity:
add_choose_eq
- Pochhammer API
References #
TODO #
Further results in Elliot's paper:
- A CommRing is binomial if and only if it admits a λ-ring structure with trivial Adams operations.
- The free commutative binomial ring on a set
X
is the ring of integer-valued polynomials in the variablesX
. (also, noncommutative version?) - Given a commutative binomial ring
A
and anA
-algebraB
that is complete with respect to an idealI
, formal exponentiation induces anA
-module structure on the multiplicative subgroup1 + I
.
A binomial ring is a ring for which ascending Pochhammer evaluations are uniquely divisible by
suitable factorials. We define this notion as a mixin for additive commutative monoids with natural
number powers, but retain the ring name. We introduce Ring.multichoose
as the uniquely defined
quotient.
- nsmul_right_injective : ∀ (n : ℕ), n ≠ 0 → Function.Injective fun (x : R) => n • x
Scalar multiplication by positive integers is injective
- multichoose : R → ℕ → R
A multichoose function, giving the quotient of Pochhammer evaluations by factorials.
- factorial_nsmul_multichoose : ∀ (r : R) (n : ℕ), n.factorial • BinomialRing.multichoose r n = (ascPochhammer ℕ n).smeval r
The
n
th ascending Pochhammer polynomial evaluated at any element is divisible byn!
Instances
The multichoose function is the quotient of ascending Pochhammer evaluation by the corresponding
factorial. When applied to natural numbers, multichoose k n
describes choosing a multiset of n
items from a type of size k
, i.e., choosing with replacement.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- Int.instBinomialRing = { nsmul_right_injective := Int.instBinomialRing.proof_1, multichoose := Int.multichoose, factorial_nsmul_multichoose := Int.instBinomialRing.proof_2 }
The binomial coefficient choose r n
generalizes the natural number choose
function,
interpreted in terms of choosing without replacement.
Equations
- Ring.choose r n = Ring.multichoose (r - ↑n + 1) n
Instances For
Alias of Ring.choose_natCast
.
Pochhammer version of Chu-Vandermonde identity
The Chu-Vandermonde identity for binomial rings