There is a series of posts at the Timothy Gowers’s blog about software that can “solve mathematical problems” which he has been working on with Mohan Ganesalingam for the last three years. The word “problems” is used here in the way a mathematician would use it – it’s really about software that can support a mathematician trying to write a proof of a theorem. The goal is for the program to write proofs that look like ones produced by a human. The experiment Gowers sets up on his blog presents several theorems with proofs written by two humans (an undergraduate and a graduate student) and one created by the program and asks the readers to guess which proofs are written by whom. The results are truly remarkable – while I, and most of the audience, could have a good guess which proof is written by the software, I believe I could guess it only because I had known one of the three proofs was such. If a student submitted such proof as homework to me, I would have no suspicion at all.
Posts Tagged ‘Haskell’
Gowers and Ganesalingam
May 12, 2013IsarMathLib 1.7.2
July 20, 2011I have released a new version of IsarMathLib. It adds about 50 new lemmas, mostly in group theory and topology, leading to the following characterization of closure in topological groups:
Here, is the collection of neighborhoods of zero (sets whose interior contains the neutral element of the group), and for two sets
we define
as
.
Markov chains
June 5, 2009The approach taken in the Haskell’s probability library makes it especially convenient for modeling Markov chains.
Suppose is a Markov chain on a state space
. Distribution of the process
is determined by the distribution of
and the numbers
,
, called transition probabilities. For simplicity let’s consider only time-homogeneous Markov chains where these numbers don’t depend on
and let’s assume that the initial distribution is a point mass, i.e.
for some
. Then we can define a function
, where for each
the value
is a distribution on
defined by
. Here
denotes the set of finitely supported nonnegative functions on
that sum up to 1. Conceptually,
is the the distribution of the next value of the chain given the current value is
. This is exactly the kind of distribution-valued function that is the right hand side operand of the
operation from the previous post, which corresponds to the Haskell’s
>>= operation in the probability monad. (more…)
Probability monad
May 31, 2009My favourite programming language Haskell has a nice library for doing calculations with probablility distributions, called probability.
The library was originally written by Martin Ewig and Steve Kollmansberger and then extended and packaged for convenient installation by Henning Thieleman. Its main idea for the implementation is to use the fact that “probability distributions form a monad” (from a paper by the authors of the library ). This post aims at translating this claim into standard probability notation and showing how it is used in the library. (more…)