Change Log [with latest version and features described at the bottom]
14 January 2003 [Version .01]
Lots missing, just getting started.
16 January 2003 [Version .02]
Cleaned up a bit.
Documented what we've done so far.
Added standalone functions for non-proviso reversible moves and for misere sums.
But still missing important functionality:
1) Reversible move logic -- need to integrate it with misere rewriting rules (how?)
2) Summation formula expansion -- need to integrate it with misere rewriting rules (how?)
See the discussion under 'rethinking evaluation' for what needs to be done next.
17 January 2003 [Version .03]
Started experimenting with dynamic symbol creation for games discovered to be irreducible that aren't
already built in. They're called g$103 (in general g$xxx) and are generated using the Mathematica Unique[] function
Introduced idea of strong simplification, which is the rewriting of a game so that it
1) involves no simplifiable subgames [including itself], and
2) every irreducible subgame is assigned a unique symbol to be used in later computations.
The code for strong simplification isn't complete but the basics are there.
The goal of strong simplification is to unite misere rewriting, reversible move logic
and summation formula expansion into a single, efficient framework for game reduction.
I'm hoping that the number of dynamic symbols created in a particular game's analysis
as the heap size increases will be a good indicator of its inherent complexity, and we'll be able to
find games that have nice subalgebras more easily.
21 January 2003 [Version 0.4]
Pretty good increase in functionality over version 0.3
Brought together previous work on particular games from WW, ONAG, & Allemang
The first version that integrates reversible moves, summation, misere rewriting, and auto symbol introduction.
The first version that handles + versus "MisereSum" in a useful way:
We start with outer MisereSums, and use + to link in shortcut rules
The first version that is capable of confirming results such as Jim Flanigan's complete analysis of .34
The first version that gave us evidence about a potential analysis for a previously unanalyzed game (.123)
The program occasionally runs into the Mathematica $IterationLimit on rewriting, but there is no real
problem (could just bump it up...see Mathematica book, page 354-355)
Doesn't contain
genus calculation algorithm
export mechanism -- write analyses of games to files.
a fully thought-out caching strategy
a reasonable way to cordorn off or "clear" automatically introduced symbols on new analyses
symbols defined in one analysis bleed into other analyses
makes it hard for us to keep all our results together in one notebook
some desirable misere rewriting rules---perhaps for
a[n]-containing games, for 2+, or for all misere games of birthday 4 or less (ONAG)
proviso-dependent reversible move analysis (I seem to need genus calcuation for it?)
comments that truly reflect what is going on in the code.
knowledge about equations such as {a[5], a4[1], n[0]} = a4[1]+n[1]
It might be useful to introduce a5[...]
algorithms for "pretending"
TBD
Fix/analyze the recursion depth problem in Flanigan's .71
27 May 2003: My, I haven't been very good about keeping this up to date. There's a lot more in the package now (too much).
At least we've solved quite a few games.
22 August 2003. Added all kinds of new stuff. Exported it to HTML again as a backup. See our paper "Pretending in Misere Combinatorial Games"
for a more readable version of results calculated using this package.