[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"6VvDmJPQAM":3},"\u003Cimg src=\"https://wakatime.com/badge/user/8d0110fb-6b70-4990-ab86-45c404715c2b/project/a38e0d01-6529-445e-b548-0eaa60613112.svg\" alt=\"wakatime\">\n\n# \u003Cimg src=\".assets/beer.png\" height=\"60px\"> BEer\n\nBEer (**B** **E**ncod**er**) translates Atelier B proof obligation `.pog` files into SMT-LIB v2.7 `.smt` files via a _certified_ higher-order encoding.\nThe tool is implemented in Lean and includes a proof of correctness of the encoding.\n\n> [!WARNING]\n> The tool has been proved correct in an earlier version, pinned in branch `beer-correctness`. Every change in the code from this point is consequently *unverified*.\n\n## Usage\n```\nBEer --in \u003Cinput.pog> [--out \u003Coutput.smt>] [--prelude \u003Cprelude.smt>]\n```\n\n## Build\nClone this repository, install Lean 4, and build using lake.\n```bash\ncd BEer\nlake build BEer\n```\nThis may take about a few minutes, and should produce an executable `.lake/build/bin/BEer`.\n\n## Paper\nAn online version of the paper is available [here](https://vtrelat.github.io/papers/abz25.pdf).\n\n## Cite\n```bib\n@inproceedings{DBLP:conf/zum/Trelat25,\n  author       = {Vincent Tr{\\'{e}}lat},\n  editor       = {Michael Leuschel and\n                  Fuyuki Ishikawa},\n  title        = {Safely Encoding {B} Proof Obligations in {SMT-LIB}},\n  booktitle    = {Rigorous State-Based Methods - 11th International Conference, {ABZ}\n                  2025, D{\\\"{u}}sseldorf, Germany, June 10-13, 2025, Proceedings},\n  series       = {Lecture Notes in Computer Science},\n  volume       = {15728},\n  pages        = {52--69},\n  publisher    = {Springer},\n  year         = {2025},\n  url          = {https://doi.org/10.1007/978-3-031-94533-5\\_4},\n  doi          = {10.1007/978-3-031-94533-5\\_4}\n}\n```\n",1780846772829]