Mirror of https://github.com/leanprover/lean2 in case it ever disappears
691893258d
The new hash code has the property that given expr_cell * c1 and expr_cell * c2, if c1 != c2 then there is a high propbability that c1->hash_alloc() != c2->hash_alloc(). The structural hash code hash() does not have this property because we may have c1 != c2, but c1 and c2 are structurally equal. The new hash code is only compatible with pointer equality. By compatible we mean, if c1 == c2, then c1->hash_alloc() == c2->hash_alloc(). This property is obvious because hash_alloc() does not have side-effects. The test tests/lua/big.lua exposes the problem fixed by this commit. Signed-off-by: Leonardo de Moura <leonardo@microsoft.com> |
||
---|---|---|
doc | ||
examples/lean | ||
script | ||
src | ||
tests | ||
.gitignore | ||
.travis.osx.yml | ||
.travis.windows.yml | ||
.travis.yml | ||
LICENSE | ||
README.md |
Ubuntu | OS X | Windows | Coverage | Builds / UnitTests / Dynamic Analyses |
---|---|---|---|---|
http://build.leanprover.net |
About
Requirements
- C++11 compatible compiler: g++ (version >= 4.8.1), or clang++ (version >= 3.3)
- CMake
- GMP (GNU multiprecision library)
- MPFR (GNU MPFR Library)
- Lua 5.2 or 5.1, or LuaJIT 2.0
- (optional) gperftools
Installing required packages at
Build Instructions
Miscellaneous
- Testing and Code Coverage
- Building Doxygen Documentation:
doxygen src/Doxyfile
- Coding style
- Git Commit Convention
- Automatic builds