Giter Site home page Giter Site logo

ml-unification-isabelle's Introduction

This formalisation is now part of the AFP. Please refer to https://www.isa-afp.org/entries/ML_Unification.html

ML-Unification

Content

  1. First-order and higher-order pattern [E-unification](https://en.wikipedia.org/wiki/Unification_(computer_science%29#E-unification) and E-matching. While unifiers in Isabelle/ML only consider the alpha-beta-eta-equational theory of the lambda-calculus, unifiers in this article may take an extra background theory, in the form of an equational prover, into account. For example, the unification problem n + 1 = ?m + Suc 0 may be solved by providing a prover for the background theory forall n. n + 1 = n + Suc 0.
  2. Tactics, methods, and attributes with adjustable unifiers (e.g.\ resolution, fact, assumption, OF).
  3. A generalisation of unification hints. Unification hints are a flexible extension for unifiers. Among other things, they can be used for reflective tactics, to provide canonical unification instances, or to simply strengthen the background theory of a unifier in a controlled manner.
  4. Simplifier integration for e-unifiers.
  5. Practical combinations of unification algorithms, e.g. a combination of first-order and higher-order pattern unification.
  6. A hierarchical logger for Isabelle/ML, including per logger configurations with log levels, output channels, message filters. See Logger/README.md for details.

While this entry works with every object logic, some extra setup for Isabelle/HOL and application examples are provided. All unifiers are tested with SpecCheck.

See Examples/ for some application examples.

Build

Requirements:

  1. The Isabelle development version
  2. The AFP development version

Future Tasks

  1. Add higher-order unifier E-unification and matching
  2. tests:
    • adapt tests to work for open terms

ml-unification-isabelle's People

Contributors

kappelmann avatar

Forkers

sofiiadan

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.