You are on page 1of 7

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/282354907

Calculational Solutions to Combinatorial Problems

Conference Paper · September 2015


DOI: 10.1109/ColumbianCC.2015.7333400

CITATION READS
1 528

1 author:

Jaime Bohorquez
Universidad del Rosario
9 PUBLICATIONS   28 CITATIONS   

SEE PROFILE

All content following this page was uploaded by Jaime Bohorquez on 01 October 2015.

The user has requested enhancement of the downloaded file.


Calculational Solutions to Combinatorial Problems
Soluciones Calculatorias a Problemas Combinatorios

Jaime A. Bohórquez V.
Escuela Colombiana of Ingenierı́a,
AK 45 # 205 - 59, Bogotá, Colombia
Email: jbohorqu@escuelaing.edu.co

Abstract—Many numerical identities are proved applying clever illustrate how to obtain a recursive definition for the solution
but informal combinatorial arguments. A way of proving these of a counting problem, which amounts to a formal derivation
identities by a formal representation that closely follows these of a recursive algorithm to solve the problem.
arguments is presented. Operationals, the main formal tool we
use for this purpose, are basically, an abstract and axiomatic The formal tool used for this purpose is called an operational.
generalization of the Sigma (Σ) notation used to express and It is basically, an abstract and axiomatic generalization of the
manipulate summations and counts. Operationals are endowed Sigma (Σ) notation used to express and manipulate summa-
with algebraic properties that allow performing various natural tions and counts [GKP94]. Due to their algebraic properties,
operations that have a combinatorial significance. In this paper, operationals allow performing various natural operations that
we give a formal version of the typical combinatorial proof of the have a combinatorial significance. Among these algebraic
Inclusion-Exclusion theorem and some more examples showing properties are: a way of splitting summations taking into
how to formally interpret, in a practical way, combinatorial
arguments used in the literature.
account different criteria for disjoint separation (an action that
in [BQ03] is called conditioning), and a possibility of mapping
Abstract—Muchas identidades numéricas se demuestran apli- or transforming the elements counted (basically, the indices in
cando argumentos combinatorios ingeniosos pero informales. Se a count or summation) through a bijection onto a different set
presenta una manera de probar estas identidades mediante una of elements (the essence of a combinatorial argument [Sta12]).
representación formal que sigue de cerca estos raciocinios. Las Usually, combinatorial arguments are expressed in terms of
operatorias, el principal instrumento formal que usamos para este
propósito, constituyen una abstracción axiomática de la notación
counting graphical, symbolic, and material objects such as
Sigma (Σ) utilizada para expresar y manipular sumatorias y con- paths along the edges of a grid, “mountain ranges”, matched
teos. Las operatorias tiene propiedades algebraicas que permiten parentheses, tilings of grids with blocks, necklaces formed by
realizar variadas operaciones con significado combinatorio. En beads, and so on. To formalize these concepts, we will model
este artı́culo, presentamos una versión formal de la demostración these objects with discrete mathematical structures such as
que usualmente se da del teorema de Inclusión-Exclusión y finite sets of numbers, strings of bits, and finite sequences of
también, algunos ejemplos que ilustran como interpretar for- numbers (possibly considered as circular).
malmente y de forma práctica los argumentos combinatorios que
aparecen en la literatura. Besides providing a formal support for expressing and reason-
ing about combinatorial ideas and proofs, this formal device
I. I NTRODUCTION allows the deduction of recursive functions defining solutions
to counting problems. This method may be generalized to
Combinatorial proofs of numerical identities consist of, either produce formal derivations of recursive algorithmic solutions
showing in two different ways that both sides of the given by stepwise refinement from given specifications. We also
equation count the same kind of objects, or exhibiting a find feasible to use this approach for easing automated proof-
bijection between the sets shown to be counted by each side checking of combinatorial proofs.
of the equation. Therefore, the two expressions must be equal
to each other. This type of argument is the dream of most II. P RELIMINARIES
combinatorialists when they prove identities. In general, such
Throughout this text, a one-argument function application over
arguments are of an informal nature, and, it is probably safe
a variable or a constant is denoted by an infix dot ‘.’. To denote
to say that they are of an ad hoc character lacking a unified
multiplications, generally, we will avoid the usual juxtaposition
formal foundation.
convention by using an explicit infix dot sign (·) due to the
This article shows a way of proving these identities by a formal confusion caused by naming variables with more than one
representation that closely follows the corresponding combi- letter. By true and f alse , we denote, besides the boolean
natorial arguments. After presenting the formal notations and values, the obvious 0-ary constant predicates. The following
their basic algebraic transformations, we show how to formally logical connectives are listed in order of decreasing binding
interpret, in a practical way, combinatorial arguments used in power (those listed as a pair have the same precedence): ¬
the literature to prove selected identities involving binomial denotes negation, ∨ and ∧ denote disjunction and conjunction
coefficients and permutations. In particular, we give a formal respectively, and ≡ and 6≡ denote equivalence and discrep-
version of the typical combinatorial proof of the Inclusion- ancy respectively. As usual, the symbols ∀ and ∃ denote the
Exclusion theorem. In addition, some of these calculations also universal and the existential quantifier respectively.
978-1-4673-9461-1/15/$31.00
c 2015 IEEE
The following list summarizes the notations we will use for Any occurrence of index i in the expressions P.i and R.i
types of discrete structures and its attributes. above, are said to be bound by the operational. Strictly, index
i should be always annotated with a type to indicate the
N OTATION M EANING
range of values it may assume; however, to avoid cumbersome
repetitions, we may state just once the type of a certain index in
set A Type defining the subsets of (finite) set A.
the context of a calculation. In addition, the range is sometimes
|A| Cardinal of (finite) set A.
omitted when it is refers to the entire domain of variation of i;
[a : b] {z ∈ Z | a ≤ z ≤ b} for a, b integers.
formally, this correspond to have the predicate true as a range.
[n] abbreviation of [1 : n] for n positive integer.
In this case the form of the operational is
[a : b) {z ∈ Z | a ≤ z < b} for a, b integers.
s ∈ set[a : b] Declares that s is a subset of [a : b]. (⊕ i ∈ D :: P.i).
s ⊆ [a : b] Abbreviation of s ∈ set[a : b].
sq A Finite sequences containing elements in set A. One more thing, the counting operational is somewhat differ-
bit(n) Sequences of length n with elements in {0, 1}. ent from the others. We introduce it as follows.
pm[n] Non-repeating sequences of all elements in [1 : n]. (#i ∈ D : R.i : F.i)
[] The empty sequence
|s| Length of sequence s. could be considered ‘syntactic sugar’ for
hai sequence consisting of just element a.
(Σi ∈ D : R.i ∧ F.i : 1)
s.k Element of sequence s in position k . (A sequence
may be thought as function defined on [1 : |s|] ) Similarly, (#i ∈ D :: R.i) is defined as (Σi ∈ D : R.i : 1) or
sa t Concatenation of sequences s and t. |{i ∈ D | R.i}| (the cardinal of the set of elements in D that
s[a : b] Segment of s covering positions in [a : b]. fulfill property R).
If a > b, s[a : b] = [ ].
s[a : b) Segment of s covering positions in [a : b). B. Some algebraic properties of operationals.
For set operations, we use the usual symbols for union (∪), The unifying effect of operationals does not restrict to notation.
intersection (∩), membership (∈) and inclusion (⊆). All other In consonance with the calculational style, it is possible to
notations will be defined in the place where they are used. give an abstract treatment to operationals in order to ease their
algebraic manipulation [Bac03], [GS93]. The fact that oper-
A. Operationals ationals are defined as iterated applications of an associative
and commutative binary operator allows for the generaliza-
Summations may be interpreted as iterations of the addition
tion of properties usually just ascribed to summations. These
operation. This view of iterated sums can be generalized to
properties are fulfilled whenever the operationals are well
any associative and commutative operator ⊕ with advantages
defined even if they involve an infinite number of operands.
of unified notation and calculation through their generalized
For instance, in the case of summations, if they converge.
axiomatic description. The expression
Being ⊕ an arbitrary associative commutative binary operator
(⊕ i ∈ D : R.i : P.i). defined and taking values on a domain D, the following
denotes the iteration of ⊕ over the values of the expression properties are valid for operationals of the form (⊕i : R : T )
P.i for all the values of i belonging to the domain (or type) (with R, S Boolean expressions, and T an expression taking
D and satisfying the range condition R.i. We call this kind values on D). In the following, we suppose as understood that
of expression an operational on ⊕. These expressions are also indices i, j take all their values on D.
known as quantifications [GS93], [Bac03], [BM06]. Observe
that in order to avoid an accumulation of parenthesis, we Splitting. (⊕i : R∨S : T ) = (⊕i : R : T ) ⊕ (⊕i : S : T )
sometimes write (when it does not lead to confusion) R.i to whenever ranges R and S are disjoint. Formally, R 6≡ S.
denote application of expression R (considered as a function) Mapping.
to argument i. (⊕i ∈ D : R : T ) = (⊕j ∈ E : R[i := f.j] : T [i := f.j])
whenever f is a bijective function from E to D such that
Conventional Notation As an operational i = f.j (and then j = f −1 (i)) for all i in D fulfilling R.
Nesting. (⊕i, j : R∧S : T ) = (⊕i : R : (⊕j : S : T )).
Σni=1 i2 (+i : 1 ≤ i ≤ n : i2 ) This requires index j not appearing in R as a free (unbound)
Πni=1 (x+i) (·i : 1 ≤ i ≤ n : x+i) variable.
maxni=1 i2 (↑ i : 1 ≤ i ≤ n : i2 ) Empty Range. (⊕i : f alse : T ) = u. This rule requires ⊕ to
Sn S
S ( i : 1 ≤ i ≤ n : S.i) have an identity element u.
Tni=1 i T One Point. (⊕i : i = K : T ) = T [i := K], where T [i := K] is
i=1 Si ( i : 1 ≤ i ≤ n : S.i)
the expression obtained from substituting K for all
In order to keep some resemblance with the traditional notation occurrences of i in T .
we allow to write (Σi∈D : R.i : P.i) instead of (+i ∈ D : R.i :
P.i) and (Πi ∈ D : R.i : P.i) instead of (· i ∈ D : R.i : P.i). To For the counting operational fulfills similar properties, here
deal with a false range R.i, it becomes necessary that operator R, S, T must be Boolean expressions.
⊕ has an identity in addition to the symmetry and associativity
properties. The table above illustrates the unifying effect of this Splitting. (#i : R∨S : T ) = (#i : R : T ) + (#i : S : T )
notation. whenever ranges R and S are disjoint.
Mapping. (Σi : i ∈ [n] : (#t :: t ∈ pm(n−1)))
(#i ∈ D : R : T ) = (#j ∈ E : R[i := f.j] : T [i := f.j]) = h definition of P i
whenever f is a bijective function from E to D such that (Σi : i ∈ [n] : Pn−1 )
i = f.j (and then j = f −1 (i)) for all i in D fulfilling R. = h constant term i
Nesting. (#i, j : R∧S : T ) = (Σi : R : (#j : S : T )). This n·Pn−1 .
requires index j not appearing in R as a free (unbound)
variable. Observing the obtained recursive equation, we conclude that
Empty Range. (#i : f alse : T ) = 0. Pn = n! for n > 1. We have proved the following proposition.
One Point. (#i : i = K : T ) = ν(T [i := K]), where
ν(T [i := K]) equal 1 or 0 depending on the truth of Proposition 1: (#p :: p ∈ pm[n]) = n! , for n ≥ 1.
T [i := K].
B. Binomial Coefficients
n

III. F ORMAL V ERSIONS OF SOME C OMBINATORIAL We define the arithmetic function k as the only solution to
P ROOFS the functional equation on X as

In this section we present different examples of calculational  0, if k > n
X(n, k) = 1, if k = 0 ∨ k = n (0)
proofs of numerical identities inspired by the corresponding  X(n−1, k) + X(n−1, k−1), if 0 < k < n
combinatorial proofs as they appear in the literature. For
the sake of easing human reading, these proofs are rigorous It is not hard to prove that nk corresponds to the number

but not entirely formal. For instance, the mention of the of subsets of size k, of a set of n elements (for instance [n],
axioms for operationals in the explanations for each step of the set of integers from 1 to n). This shows the existence of
our calculations just hint the main ideas to justify them. In a solution, its uniqueness is easily proved by induction.
particular, we leave to the reader to justify that in the mapping
Proposition 2: nk = (#s ∈ set[n] :: |s| = k).

steps, the corresponding transformations are in fact bijections
from one range of values to the other. Proof : Let C(n, k) = (#s ∈ set[n] :: |s| = k) . Considering the
cases defining equation (0), we note that the cases k > n, k = 0
A. Counting Permutations and k = n are pretty simple, since in those cases, there is just
one subset or none at all.
We define Pn as the number of permutations of the elements
in [n]. Formally, we represent a permutation in pm[n] as a We just study the case 0 < k < n:
non-repeating sequence q in sq[n] of length n, that encodes a
bijection mapping any i ∈ [n] to q.i. Consequently, we define C(n, k)
pm[n] as {s ∈ sq[n] | nrep.s ∧ |s| = n}, where nrep.s means = h by definition i
that the sequence s does not repeat its elements. (#s ∈ set[n] :: |s| = k)
= h considering cases n ∈ s and n 6∈ s i
For the sake of easy manipulation of permutations, we define, (#s ∈ set[n] : n ∈ s : |s| = k) +
for a (finite) sequence s of integers, its normalization with (#s ∈ set[n] : n 6∈ s : |s| = k)
respect to the deletion of its element in position i, nrm(s, i) = h map s to c = s−{n} i
(i : 1 ≤ i ≤ |s|), as follows (#c ∈ set[n−1] :: |c| = k−1) + (#s ∈ set[n] : n 6∈ s : |s| = k)
nrm(s, i) = sb1(s[1 : i), s.i)a sb1(s[i+1 : |s|], s.i), = h definition ; n 6∈ s ∧ s ∈ set[n] ≡ s ∈ set[n−1] i
C(n−1, k−1) + (#s ∈ set[n−1] :: |s| = k)
meaning that s.i is removed from s, elements of s less than s.i = h by definition of C i
are left unchanged, and elements bigger than s.i are subtracted C(n−1, k−1) + C(n−1, k)
by 1. Here, t = sb1(s, m), with m a value not occurring at s,
is equivalent to the formal expression This proves that C(n, k) is a solution for X in equation (0),
and therefore, nk = C(n, k).
(∀k : 1 ≤ k ≤ |s| : (s.k < m∧t.k = s.k)∨(s.k > m∧t.k = s.k−1)).
To remove an element of a permutation p of the elements The two previous propositions show how to formally obtain
of [n] in position i implies to shift, one position to the left, a recursive definition for the solution of a counting problem.
the elements to the right of the element removed, as well as Next proposition correspond to Identity 167 in [BQ03].
subtracting 1 from all the elements bigger than it. This way, Proposition 3: (Σk ∈ [0 : n] :: (−1)k · nk ) = 0

we bijectively obtain a permutation of [n−1].
Proof :
Expressing Pn as (#p :: p ∈ pm[n]), it is easy to calculate.
(Σk ∈ [0 : n] :: (−1)k · nk )

Clearly P1 = 1. For n > 1 we have
= h splitting into even and  odd cases for k i
(Σk ∈ [0 : n] : even.k : nk ) − (Σk ∈ [0 : n] : odd.k : nk )

Pn
= h definition of P i = h Proposition 2 i
(#p :: p ∈ pm(n)) (Σk ∈ [0 : n] : even.k : (#s ∈ set[0 : n] :: |s| = k)) −
= h split considering the value of p.n i (Σk ∈ [0 : n] : odd.k : (#s ∈ set[n] :: |s| = k))
(Σi : i ∈ [n] : (# p ∈ pm(n) :: p.n = i)) = h nesting ; counting operation i
h map p to t where t = nrm(p, i) i
(Σs ∈ set[n] :: (#k ∈ [0 : n] : k = |s| : even.k)) − Even for a collection of boolean variables {pi } with 1 ≤ i ≤ n,
(Σs ∈ set[n] :: (#k ∈ [0 : n] : k = |s| : odd.k)) it is easy to show that
= h one-point rule i
(#s ∈ set[n] :: even.|s|) − (#s ∈ set[n] :: odd.|s|) ν(∀i ∈ [n] :: pi ) = (Πi ∈ [n] :: ν.pi ). (2)
= h map s to t = s−{n}, if n ∈ s; t = s∪{n}, otherwise i
(#t ∈ set[n] :: odd.|t|) − (#s ∈ set[n] :: odd.|s|) However, finding a direct expression (not involving the use of
= h index renaming i equation (2)) for ν(∃i ∈ [n] :: pi ) in terms of the ν.pi ’s is more
0 challenging. The following lemma presents and proves such
an expression.

C. Counting Derangements Lemma 1: If {pi } (i : 1 ≤ i ≤ n) is a finite collection of


boolean variables then ν(∃i ∈ [n] :: pi ) =
A derangement of length n > 0 may be defined as a
permutation having no fixed points, of the elements in the (Σi ∈ [n] :: (−1)i+1 ·(Σs ⊆ [n] : |s| = i : ν(∀e ∈ s :: pe ))). (3)
set [n]. We define d.n as the number of derangements of
length n. Formally, d.n = (#s ∈ pm[n] :: nf p.s), where Proof : We prove that both sides of (3) take the same value
nf p.s ≡ (∀i ∈ [n] :: s.i 6= i). regardless of the values taken by the pi ’s. For instance, if all
The following calculation [vLW01], shows how to obtain a the pi ’s are false, clearly both sides of the equation are equal
recursive definition for d.n which may be seen as a a formal to 0.
derivation of a recursive algorithm to solve the corresponding Now, we show that in any other case, both sides of the equation
counting problem. are equal to 1. For that, suppose that exactly k (1 ≤ k ≤ n) of
Trivially, d.n = 1 if n = 1 or n = 2. For n ≥ 3, we have these variables take the value true. In other words, there is a
set s∗ contained in [n] with |s∗ | = k and such that e ∈ s∗ ≡ pe .
d.n That is to say that e belongs to s∗ equivales to the fact that
= h definition of d i the value pe is true. Then, in this case
(#p ∈ pm[n] :: nf p.p)
= h split considering whether p.n = p−1 (n) i (Σs ⊆ [n] : |s| = i : ν(∀e ∈ s :: pe )) = k

. (4)
(#p ∈ pm[n] : p.n = p−1 (n) : nf p.p)+ i

(#p ∈ pm[n] : p.n 6= p−1 (n) : nf p.p) Let us see


= h split considering the value of p.n (nfp.p implies
p.n 6= n) i (Σs ⊆ [n] : |s| = i : ν(∀e ∈ s :: pe ))
(Σi ∈ [n−1] :: (#p ∈ pm[n] : i = p.n = p−1 (n) : nf p.p) + = h identity (2) i
(#p ∈ pm[n] : i = p.n 6= p−1 (n) : nf p.p)) (Σs ⊆ [n] : |s| = i : (Πe ∈ [n] :: ν(pe )))
= h map p to t = sb1(p[1 : i) a p[i+1 : n), i) i = h by definition of s∗ : s ⊆ s∗ ≡ (Πe ∈ [n] :: ν(pe )) = 1 i
(Σi ∈ [n−1] :: (#t ∈ pm[n−2] :: nf p.t)+ (Σs ⊆ s∗ : |s| = i : 1)
(#p ∈ pm[n] : i = p.n 6= p−1 (n) : nf p.p)) = h counting operational i
= h map p to u = nrm(p, i) i (#s ⊆ s∗ :: |s| = i)
(Σi ∈ [n−1] :: (#t ∈ pm[n−2] :: nf p.t) + = h |s∗ | = k ; Proposition 2 i
(#u ∈ pm[n−1] :: nf p.u)) k
= h definition of d i i

(Σi ∈ [n−1] :: d(n−2) + d(n−1))


This being so, we have
= h constant term i
(n−1)·(d(n−2) + d(n−1))
(Σi ∈ [n] :: (−1)i+1 ·(Σs ⊆ [n] : |s| = i : ν(∀e ∈ s :: pe )))
= h equation (4) i
This shows that d.n is a (unique by inductive proof) solution
(Σi ∈ [n] :: (−1)i+1 · ki )

of the following functional recursive equation:
= h Proposition 3 i
 k
1, if n = 1 ∨ n = 2 0
Xn = (1) = h Proposition 2 i
(n−1)·(Xn−1 + Xn−2 ) , if n > 2
1
D. The Inclusion-Exclusion theorem
The proof of this lemma is inspired by the usual combinatorial
Consider the following valuation for boolean values argument used to prove the Inclusion-Exclusion Theorem
ν : {true, f alse} → {0, 1} defined as [Aig07], [Bón07], [vLW01], [Tuc95]. We use this valuation
to give a calculational definition for the cardinal of a finite
 set.
0, if p
ν.p =
1, if ¬p Definition 1 (Cardinal of a finite set): For a given finite uni-
versal set X, and A any of its subsets, the cardinal of a A
It is easy to realize that for p, q boolean variables (namely, |A|), is defined as

ν(¬p) = 1−ν.p, ν(p∧q) = ν.p·ν.q, ν(p∨q) = ν.p+ν.q −ν.p·ν.q (Σx ∈ X :: ν(x ∈ A)).
(Σs ⊆ [n] : |s| = k : |( e ∈ s :: Ne )|)
T
Theorem 1 (Inclusion-Exclusion): Consider a collection of
finite sets {Ai |1 ≤ i ≤ n} then, the cardinal of its union = h intersection of the Ne s i
(Σs ⊆ [n] : |s| = k : (#p ∈ pm[n] :: (∀e ∈ s :: p.e = e)))
|( i ∈ [n] :: Ai )| = h map p to q, obtained from p by removing all of its
S
fixed points and normalizing i
is equal to the sum (Σs ⊆ [n] : |s| = k : (#q :: q ∈ pm[n−k]))
(Σk ∈ [n] :: (−1)k+1 ·(Σs ⊆ [n] : |s| = k : |( e ∈ s :: Ae )|))
T = h constant term ; counting operational i
(#q :: q ∈ pm[n−k]) · (#s ⊆ [n] :: |s| = k)
Proof : Let X be a finite set containing all of the Ai ’s then, = h propositions 1 and 2 i
(n−k)! · nk

the following calculation proves this equality.

IV. C ONCLUSIONS
S
|( i ∈ [n] :: Ai )|
= h definition of cardinal
S i Our purpose has been to show how to give formal content
(Σx ∈ X :: ν(x ∈ ( i ∈ [n] :: Ai ))) to combinatorial arguments which, we think we have ac-
= h element of a union i complished. We did this, considering to find ways to make
(Σx ∈ X :: ν((∃i ∈ [n] :: x ∈ Ai ))) their automated proof-checking easier. We do not propose this
= h Lemma 1: taking pe ≡ x ∈ Ae i formalizations as an alternative method of proof to replace
(Σx ∈ X :: (Σk ∈ [n] :: informal arguments. In fact, we believe that these formal proofs
(−1)k+1 ·(Σs ⊆ [n] : |s| = k : ν(∀e ∈ s :: x ∈ Ae )))) are only easy to read by keeping in mind the informal ideas
= h element of an intersection i that inspired their original counter-parts.
(Σx ∈ X :: (Σk ∈ [n] ::
(−1)k+1 ·(Σs ⊆ [n] : |s| = k : ν(x ∈ ( e ∈ s :: Ae ))))
T
= h nesting i V. P REVIOUS AND RELATED WORK
(Σk ∈ [n] :: (−1)k+1 ·(Σs ⊆ [n] :: |s| = k :: T It seems that the concept of operational used in this paper
(Σx ∈ X :: ν(x ∈ ( e ∈ s :: Ae ))))) appears for the first time (by the name of composition) in
= h definition of cardinal i the first section of the first chapter of the volume Algebra
(Σk ∈ [n] :: (−1)k+1 ·(Σs ⊆ [n] : |s| = k : |( e ∈ s :: Ae )|))
T
of Bourbaki’s Elements of Mathematics [Bou70]. This con-
cept is one substantial element of the calculational style of
We conclude showing how to solve functional recursive equa- mathematical writing and proving [vG90], which is due to
tion (1) in terms of factorials by applying the Inclusion- Edsger W. Dijkstra and the members and adherents of the
Exclusion theorem. schools of Eindhoven (ETAC) and Austin (ATAC) [Dij85]. A
For n > 0 and e ∈ [n], let Ne = |{ p ∈ pm[n] | p.e = e}|. careful axiomatic development of the concept of operationals
can be found in [Gri97]. The splendid work done by Benjamin
d.n and Quinn in [BQ03] has been an important influence and
= h definition of d i inspiration for pursuing this kind of work.
(#p ∈ pm[n] :: nf p.p)
= Th definition of Ne i ACKNOWLEDGMENTS
|( e ∈ [n] :: pm[n]−Ne )|
The author would like to thank the anonymous referees for
= h algebra S of sets i suggestions to improve the presentation of this paper.
|pm[n]−( e ∈ [n] :: (Ne ))|
= h A⊆X S implies |X −A| = |X|−|A| i
|pm[n]|−|( e ∈ [n] :: (Ne ))| R EFERENCES
= h Proposition 1 ; Inclusion-Exclusion theorem i [Aig07] Martin Aigner. Discrete Mathematics. American Mathematical
n! − (Σk ∈ [n] :: Society, Providence, RI, 2007. Translated from the 2004 German
(−1)k+1 ·(Σs ⊆ [n] : |s| = k : |( e ∈ s :: Ne )|)) original by David Kramer.
T
= h adjusting signs i [Bac03] Roland Backhouse. Program Construction: Calculating Implemen-
n!+(Σk ∈ [n] :: (−1)k·(Σs ⊆ [n] : |s| = k : |( e ∈ s :: Ne )|))
T tations from Specifications. Willey, 2003.
= h (†) (see below) i [BM06] Roland Backhouse and Diethard Michaelis. Exercises in quantifier
n
 manipulation. In Tarmo Uustalu, editor, MPC, volume 4014 of
n! + (Σk ∈ [n] :: (−1)k ·(n−k)!· k ) Lecture Notes in Computer Science, pages 69–81. Springer, 2006.
= h reversing the split ; n0 = 1 i

[Bón07] Miklós Bóna. Introduction to Enumerative Combinatorics. Walter
(Σk ∈ [0 : n] :: (−1)k ·(n−k)!· nk ) Rudin Student Series in Advanced Mathematics. McGraw Hill
= h binomial coefficients formula ; factoring i Higher Education, Boston, MA, 2007. With a foreword by Richard
k Stanley.
n!·(Σk ∈ [0 : n] :: (−1)
k! ) [Bou70] Nicolas Bourbaki. Éléments de mathématique. Algèbre. Chapitres
1 à 3. Hermann, Paris, 1970.
The expression of binomial coefficients in terms of factorials [BQ03] Arthur T. Benjamin and Jennifer J. Quinn. Proofs that Really
could be obtained with these same methods, by reasons of Count, volume 27 of The Dolciani Mathematical Expositions.
space we chose not to do it. The step labeled by (†) is explained Mathematical Association of America, Washington, DC, 2003. The
by the following calculation: art of combinatorial proof.
[Dij85] E. W. Dijkstra. The ATAC ( = Austin Tuesday Afternoon Club).
EWD 927 in The writings of Edsger W. Dijkstra, 2000. URL
http://www.cs.utexas.edu/users/EWD, 1985.
[GKP94] Ronald L. Graham, Donald E. Knuth, and Oren Patashnik. Con-
crete Mathematics: A Foundation for Computer Science. Addison-
Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2nd
edition, 1994.
[Gri97] David Gries. Foundations for calculational logic. In Manfred Broy
and Birgit Schieder, editors, Mathematical Methods in Program
Development, volume 158 of NATO ASI Series, pages 83–126.
Springer Berlin Heidelberg, 1997.
[GS93] David Gries and Fred B. Schneider. A Logical Approach to
Discrete Math. Texts and Monographs in Computer Science.
Springer Verlag, 1993.
[Sta12] Richard P. Stanley. Enumerative Combinatorics. Volume 1, vol-
ume 49 of Cambridge Studies in Advanced Mathematics. Cam-
bridge University Press, Cambridge, second edition, 2012.
[Tuc95] Alan Tucker. Applied Combinatorics. John Wiley & Sons, Inc.,
New York, third edition, 1995.
[vG90] A. J. M. van Gasteren. On the Shape of Mathematical Arguments,
volume 445 of Lecture Notes in Computer Science. Springer, 1990.
[vLW01] J. H. van Lint and R. M. Wilson. A Course in Combinatorics.
Cambridge University Press, Cambridge, second edition, 2001.

View publication stats

You might also like