Coder Social home page Coder Social logo

jaycech3n / isabelle-hott Goto Github PK

View Code? Open in Web Editor NEW
34.0 8.0 4.0 415 KB

An experimental implementation of homotopy type theory in the interactive proof assistant Isabelle

License: Other

Isabelle 45.33% Standard ML 54.09% OCaml 0.58%
isabelle interactive-theorem-proving homotopy-type-theory type-theory

isabelle-hott's Introduction

Isabelle/HoTT build

Isabelle/HoTT is an experimental implementation of homotopy type theory in the Isabelle interactive theorem prover. It largely follows the development of the theory in the Homotopy Type Theory book, but aims to be general enough to eventually support cubical and other kinds of homotopy type theories.

Work is slowly ongoing to develop the logic into a fully-featured proof environment in which one can formulate and prove mathematical statements, in the style of the univalent foundations school. While Isabelle has provided support for object logics based on Martin-Löf type theory since the beginning, these have largely been ignored in favor of Isabelle/HOL. Thus this project is also an experiment in creating a viable framework, based on dependent type theory, inside the simple type theoretic foundations of Isabelle/Pure.

Caveat prover: This project is under active experimentation and is not yet guaranteed fit for any particular purpose.

References

Usage

Isabelle/HoTT is compatible with Isabelle2021. To use, add the Isabelle/HoTT folder path to .isabelle/Isabelle2021/ROOTS (on Mac/Linux/cygwin installations):

$ echo path/to/Isabelle/HoTT >> ~/.isabelle/Isabelle2021/ROOTS

To-do list

In no particular order.

  • Dedicated type context data
  • Definitional unfolding, better simplification in the typechecker
  • Proper handling of universes
  • Recursive function definitions
  • Inductive type definitions
  • Higher inductive type definitions

isabelle-hott's People

Contributors

jaycech3n avatar larsrh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

isabelle-hott's Issues

Rules are not grouped well for automation

The way the type rules and other derived rules are currently grouped is not optimal for automated proof methods.

At the moment the grouping is by type, e.g. type rules for the Equal type, Sum type etc. are bundled together, wellform rules are bundled together by type, etc.
I have a feeling it would be better to group the rules according to how they behave in proofs, e.g. formation rules should be grouped separately from the elimination/induction rules.

Automatic export of proof terms

Currently, we use schematic_goal to derive proof terms, then copy-paste the proof term in a new definition to be used in further proofs. It would be nice to automatically export derived proof terms, e.g.

schematic_goal my_lemma: "?prf: A"
proof
...
qed

should export the term derived by the schematic goal as my_lemma_prf.

Pure equality vs defined definitional equality

The theory thus far has been written to use the built-in Pure equality as the definitional equality, the idea initially being to take advantage of as much built-in functionality as possible.

However this creates may create differences between the implementation versus the formal type theory as presented in the book, e.g. the Martin-Löf type theory HoTT is based on does not have alpha-conversion, while the Pure equality does. [Edit: The situation is a little unclear. While the informal presentation in the HoTT book does mention alpha-conversion, the formalities in Appendix A2 do not really, and it's unclear how to use the existing judgment forms to express a change of bound variables.]

It would probably might be better to define a separate definitional equality on the object level for maximum compatibility with the theory in the book, though one would need to double check the theory.

ascii-fy notation

Too much Isabelle/jEdit-only readable notation used in the current theory files, should probably change this.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.