Code Monkey home page Code Monkey logo

thesy's People

Contributors

corwin-of-amber avatar eytans avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

anny234 hu4i

thesy's Issues

Auto deconstruction of single-constructor types

Types with only one constructor (such as tuples) are just wrappers for other data therefore they should always be expanded by the constructor.
This requires a few technical details to work:

  1. During datatype initialization separate datatypes to later be deconstructed
  2. During rewriting recognize which parameters are of said types
  3. When deconstructing we are essentially creating existentials, so they should be wrapped with a function call to make them unique in regard to the original term or have a unique identifier

See the example victor provided (there should be a branch for it) to start

get_conjectures inefficient

Currently, the runtime is greatly affected by get_conjectures, which might take more than half the runtime.
It seems that using Extractor from egg is inefficient for our case.
Implementation of get_conjectures should have iterations to the depth of known terms (no need to find terms deeper than those generated in the enumeration), although deeper terms exist.

Consider a term of addition, 2 + 2. the depth of the term is 3, 1 for the + and 2 for the number (i.e. S (S 0)).
After rewriting, we get a depth 4 term, 4.
We can ignore most of the graph and focus only on Eclasses that exist inside the id_examples data structure.
This way we can prevent unnecessary computations.

The algorithm should iterate through the nodes in the EGraph building terms:

  1. Create a vector for each EClass, for each node, with its dependencies (i.e. other EClasses).

  2. Remember all edges without dependencies.

  3. For each class remember nodes depending on it.

  4. Iteratively go through all edges with no remaining dependencies:

    • "Free up" all dependant nodes
    • If a node is fully freed add an EClass to the next iteration
    • Keep for each class its minimal representation

Support TPTP in parser

We want to be able to participate in first order solver competitions.
Some of the features might not be supported in TheSy, we should open issues on each and see which are technical limitations and which require further research.

http://www.tptp.org/

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.