Giter Club home page Giter Club logo

logic-rs's People

Contributors

ixjf avatar

Stargazers

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

Watchers

 avatar  avatar

Forkers

ndrsllwngr

logic-rs's Issues

Cannot detect infinite trees

Since the algorithm doesn't foresee any patterns and always follows the same rules in the same order, some inputs may lead to trees that become stuck in an infinite EQ->UQ cycle. No clue how to solve. Haven't given it much thought yet. I mean, if it ends up in an infinite cycle, then the tree is open. The problem is: how do I know if I'm in an infinite loop?

Specific instances where it fails:

(∀x)(L¹x ⊃ (∃y)(F¹y & (∃z)(T¹z & P³xyz))),
(∃x)(L¹x)
∴ (∃x)(F¹x & (∃y)(T¹y & (∃z)(L¹z & P³zxy)))
{∀x((A¹x & B¹x) ⊃ ∀y(~C¹y ⊃ ∃z(A²zy & B¹z)))}
∀x(S¹x ⊃ (∃y)(F¹y & M²xy)),
F¹b
∴ ∃x(S¹x & H²bx)
∃x(C¹x & ~(∃y)(G¹y & E²xy))

Redundant redraw() in TruthTree::_render?

The call is there because for some reason without it the tree doesn't appear, but it should be unnecessary because the tree is automatically redrawn when resizing the container of the canvas.

Publish on crates.io

& whatever is needed for docs.rs

...and then add docs.rs and crates.io badges to the README.

Add array of examples to serve as integration tests

Take out all the arguments/statement sets/statements that are in the solutions of Meaning and Argument and Formal Logic and have a truth tree or whose validity/consistency/whatever is known to serve as integration tests and examples of how the library works.

Add support for the biconditional

While not a part of Meaning and Argument, it can be handy, writing the same thing twice is not nclean especially if it's a long expression.

Check why algorithm doesn't halt for certain input

∀x∀y(R²xy ⊃ ~R²yx)
∴ ~∀x∀y(R²xy ⊃ R²yx)
∀x((P¹x & B¹x) ⊃ ∀y((P¹y & O¹y) ⊃ H²xy)),
P¹e
∴ ∀x((P¹x & B¹x) ⊃ H²xe)
(∀x)(S¹x ⊃ (∀y)(A¹y ⊃ (∀z)(T¹z ⊃ (S³xyz ⊃ ~F²xz))))                                                    
∴ (∀x)(∀z)((S¹x & ((∃y)(A¹y & T¹z & S³xyz))) ⊃ ~F²xz)
∀x(A ⊃ B)

CSS/JS/fonts sometimes don't load?

  • Sometimes Semantic UI/CodeMirror doesn't load
  • Sometimes the Ionicons font doesn't load in time and thus the truth tree rendering needs to be redrawn.

Replace vis.js with custom renderer?

vis.js currently requires rendering the tree multiple times to position it accurately. It also requires hacks to work for this particular type of tree, and it sometimes overlaps nodes. A custom renderer could easily solve all of these problems.

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.