{"id":13484673,"url":"https://github.com/EugeneLoy/coq_jupyter","last_synced_at":"2025-03-27T16:31:05.827Z","repository":{"id":33897660,"uuid":"163189275","full_name":"EugeneLoy/coq_jupyter","owner":"EugeneLoy","description":"Jupyter kernel for Coq","archived":false,"fork":false,"pushed_at":"2024-09-03T21:23:12.000Z","size":424,"stargazers_count":96,"open_issues_count":15,"forks_count":8,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-20T09:44:34.661Z","etag":null,"topics":["coq","dependent-types","jupyter","jupyter-extension","jupyter-kernels","jupyter-notebook","kernel","proof-assistant","python-pa","theorem-proving"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EugeneLoy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-12-26T14:40:15.000Z","updated_at":"2025-02-11T20:33:54.000Z","dependencies_parsed_at":"2024-01-27T09:38:22.864Z","dependency_job_id":"1edca48c-71a8-42ec-8fc6-34f4387fcd77","html_url":"https://github.com/EugeneLoy/coq_jupyter","commit_stats":{"total_commits":148,"total_committers":6,"mean_commits":"24.666666666666668","dds":0.25,"last_synced_commit":"ca58efef3fc315c16b339a6b6e609e49efa2a636"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EugeneLoy%2Fcoq_jupyter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EugeneLoy%2Fcoq_jupyter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EugeneLoy%2Fcoq_jupyter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EugeneLoy%2Fcoq_jupyter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EugeneLoy","download_url":"https://codeload.github.com/EugeneLoy/coq_jupyter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245708986,"owners_count":20659625,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coq","dependent-types","jupyter","jupyter-extension","jupyter-kernels","jupyter-notebook","kernel","proof-assistant","python-pa","theorem-proving"],"created_at":"2024-07-31T17:01:29.410Z","updated_at":"2025-03-27T16:31:05.785Z","avatar_url":"https://github.com/EugeneLoy.png","language":"Python","funding_links":[],"categories":["Python","Projects"],"sub_categories":["User Interfaces"],"readme":"![Logo](logo.svg)\n\n[![StandWithUkraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://github.com/vshymanskyy/StandWithUkraine/blob/main/docs/README.md) [![PyPI version](https://badge.fury.io/py/coq-jupyter.svg)](https://badge.fury.io/py/coq-jupyter) [![CI Tests](https://github.com/EugeneLoy/coq_jupyter/actions/workflows/ci-tests.yml/badge.svg)](https://github.com/EugeneLoy/coq_jupyter/actions/workflows/ci-tests.yml) [![Join the chat at https://gitter.im/coq_jupyter/community](https://badges.gitter.im/coq_jupyter/community.svg)](https://gitter.im/coq_jupyter/community?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge) [![badge](https://img.shields.io/badge/launch%20demo-binder-579ACA.svg?logo=data:image/png;base64,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)](https://mybinder.org/v2/gh/EugeneLoy/coq_jupyter_demo/master?filepath=demo.ipynb)\n\nA [Jupyter](https://jupyter.org/) kernel for [Coq](https://coq.inria.fr/).\n\nYou can try it [online in Binder](https://mybinder.org/v2/gh/EugeneLoy/coq_jupyter_demo/master?filepath=demo.ipynb).\n\n## Installation\n\n### Prerequisites\n\nMake sure that CoqIDE (8.6 or newer) is installed and `coqidetop` or `coqidetop.opt` (`coqtop` for Coq versions before 8.9.0) is in your `PATH`. Also, make sure the `python` command is recognized on your machine. If not, you can set up an alias for it e.g. python-is-python3 on Ubuntu.\n\n### Install using pip\n\nInstall with `pip`:\n\n    pip install coq-jupyter\n    python -m coq_jupyter.install\n\nUninstall with `pip`:\n\n    jupyter kernelspec uninstall coq\n    pip uninstall coq-jupyter\n\n### Install using MAKE\n\nAll commands are run from the top level folder of this repo (where `Makefile` is located).\n\nInstall from PyPi:\n\n    make\n\nInstall from locally checked out source code:\n\n    make install-local\n\nUninstall:\n\n    make uninstall\n\n## Backtracking\n\nThere are number of convenience improvements over standard Jupyter notebook behaviour that are implemented to support Coq-specific use cases.\n\nBy default, running cell will rollback any code that was executed in that cell before. If needed, this can be disabled on a per-cell basis (using `Auto rollback` checkbox).\n\nManual cell rollback is also available using `Rollback cell` button (at the bottom of executed cell) or shortcut (`Ctrl+Backspace`).\n\n![Backtracking screenshot](screenshot.png)\n\n## coqtop arguments\n\nUse `--coqtop-args` to supply additional arguments to `coqidetop`/`coqidetop.opt`/`coqtop` when installing kernel. In this case you might also want to set custom kernel name/display name using `--kernel-name`/`--kernel-display-name`.\n\nFor example, to add kernel that instructs `coqidetop` to load `/workspace/init.v` on startup:\n\n    python -m coq_jupyter.install --kernel-name=coq_with_init --kernel-display-name=\"Coq (with init.v)\" --coqtop-args=\"-l /workspace/init.v\"\n\n## Contributing\n\nGive feedback with [issues](https://github.com/EugeneLoy/coq_jupyter/issues) or [gitter](https://gitter.im/coq_jupyter/community), send pull requests. Also check out [CONTRIBUTING.md](CONTRIBUTING.md) for instructions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEugeneLoy%2Fcoq_jupyter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FEugeneLoy%2Fcoq_jupyter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEugeneLoy%2Fcoq_jupyter/lists"}