Typed Neuro-Symbolic Program Synthesis for the Typed Lambda Calculus
Links
- introductory slides
- the accompanying paper, my AI master thesis at UvA
- the Neuro-Symbolic Program Synthesis paper I'm building on top of
- spreadsheet used a bit in design
Usage
You can build and run this project using Cabal.
Note that for version control merging purposes,
the augmented model is stored at the synthesis
branch,
whereas the original NSPS model is at the vanilla
branch.
# cabal
ghcup install latest
ghcup set latest
./setup-cabal.sh
cabal update
source setenv
cd synthesis
cabal install
# basic commands
cabal build
cabal test
cabal repl lib:synthesis
cabal run generator -- --help
cabal run generator -- --crashOnError --maxHoles=1
cabal run synthesizer -- --help
# Generate documentation.
cabal build --enable-documentation
# running specific tests
cabal test --test-options='-p "TypeGen"'
# Profile
cabal build --enable-profiling --ghc-options="-fno-prof-auto"
`cabal exec which generator` +RTS -hr -hcB
# viz profiling
cabal install ghc-prof-flamegraph
ghc-prof-flamegraph generator.prof
cabal install profiterole
profiterole generator.prof
# plot synthesis results
cd plotting/
pip install -r requirements.txt
cd ../
python plotting/plot.py
# makes plots for ./run-results/*.csv