All Projects → RyanMarcus → vulcan

RyanMarcus / vulcan

Licence: AGPL-3.0 License
A JavaScript propositional logic and resolution library

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to vulcan

fitchjs
Fitch style proof constructor
Stars: ✭ 19 (-66.07%)
Mutual labels:  proof, logic
LPL
📚Solutions to Language, Proof and Logic (2nd Edition)
Stars: ✭ 21 (-62.5%)
Mutual labels:  proof, logic
LPL-solutions
Solutions for the book "Language Proof and Logic".
Stars: ✭ 51 (-8.93%)
Mutual labels:  proof, logic
SMCDEL
A symbolic model checker for Dynamic Epistemic Logic.
Stars: ✭ 31 (-44.64%)
Mutual labels:  logic
theolog-ss2017
Notizen zur TheoLog-Vorlesung mit Begriffen aus Formale Systeme. Hinweis: die Unterlagen sind für die VL in 2017 und können Fehler enthalten
Stars: ✭ 18 (-67.86%)
Mutual labels:  logic
Groth16BatchVerifier
Batch verification proposal for the zkSNARK verification with the same(!) circuit
Stars: ✭ 17 (-69.64%)
Mutual labels:  proof
LogicCircuits.jl
Logic Circuits from the Juice library
Stars: ✭ 39 (-30.36%)
Mutual labels:  logic
consistency
Implementation of models in our EMNLP 2019 paper: A Logic-Driven Framework for Consistency of Neural Models
Stars: ✭ 26 (-53.57%)
Mutual labels:  logic
Planeverb
Project Planeverb is a CPU based real-time wave-based acoustics engine for games. It comes with an integration with the Unity Engine.
Stars: ✭ 22 (-60.71%)
Mutual labels:  proof
react-json-logic
Build and evaluate JsonLogic with React components
Stars: ✭ 21 (-62.5%)
Mutual labels:  logic
Awesome-Neural-Logic
Awesome Neural Logic and Causality: MLN, NLRL, NLM, etc. 因果推断,神经逻辑,强人工智能逻辑推理前沿领域。
Stars: ✭ 106 (+89.29%)
Mutual labels:  logic
gapt
GAPT: General Architecture for Proof Theory
Stars: ✭ 83 (+48.21%)
Mutual labels:  proof
stanford-introduction-to-mathematical-thinking
Keith Devlin's Introduction to Mathematical Thinking course on Coursera (2017 Spring)
Stars: ✭ 70 (+25%)
Mutual labels:  logic
nunchaku
Model finder for higher-order logic
Stars: ✭ 40 (-28.57%)
Mutual labels:  logic
OpenCircuits
A free, open source, online digital circuit/logic designer.
Stars: ✭ 140 (+150%)
Mutual labels:  logic
ipc solver
O(N log N)-space IPC solver in OCaml
Stars: ✭ 46 (-17.86%)
Mutual labels:  logic
switch
Switch is a small logic game that demonstrates usage of Pixar USD and Hydra on Windows.
Stars: ✭ 22 (-60.71%)
Mutual labels:  logic
discrete-math-python-scripts
Python code snippets from Discrete Mathematics for Computer Science specialization at Coursera
Stars: ✭ 98 (+75%)
Mutual labels:  logic
imove
INACTIVE: Move your mouse, generate code from flow chart
Stars: ✭ 3,598 (+6325%)
Mutual labels:  logic
Ejercicios-Practicos
Mejora tu lógica de programación y aprende mucho más resolviendo estos ejercicios.
Stars: ✭ 316 (+464.29%)
Mutual labels:  logic

Vulcan

Codeship Status for RyanMarcus/vulcan

A library for proving statements in propositional logic using resolution.

Vulcan uses a modified version of the excellent lexer and parse from llang.

For examples, see the tests or this blog post.

Simple usage example

// We are using `const` for imports because the reference will never change.`
// See more here: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const

const vulcan = require("vulcan");
const proof = vulcan.prove(["A -> B", // the knowledgebase
                            "B -> C", 
                            "C -> D",
                            "D -> E"],
                            "B -> D"); // the query
                            
console.log(vulcan.isProofComplete(proof)); 
console.log(proof)

Will output:

true
[ { label: 'inital expression', tree: '(A -> B)', idx: 0 },
    { label: 'eliminate implication', tree: '(!A | B)', idx: 1 },
    { label: 'inital expression', tree: '(B -> C)', idx: 2 },
    { label: 'eliminate implication', tree: '(!B | C)', idx: 3 },
    { label: 'inital expression', tree: '(C -> D)', idx: 4 },
    { label: 'eliminate implication', tree: '(!C | D)', idx: 5 },
    { label: 'inital expression', tree: '(D -> E)', idx: 6 },
    { label: 'eliminate implication', tree: '(!D | E)', idx: 7 },
    { label: 'knowledge base clause from 1',
    tree: '(!A | B)',
    idx: 8 },
    { label: 'knowledge base clause from 3',
    tree: '(!B | C)',
    idx: 9 },
    { label: 'knowledge base clause from 5',
    tree: '(!C | D)',
    idx: 10 },
    { label: 'assume for a contradiction', tree: 'B', idx: 12 },
    { label: 'assume for a contradiction', tree: '!D', idx: 13 },
    { label: 'resolve of 9 and 12',
    tree: 'C',
    idx: 22,
    req: [ 9, 12 ] },
    { label: 'resolve of 10 and 13',
    tree: '!C',
    idx: 27,
    req: [ 10, 13 ] },
    { label: 'resolve of 22 and 27',
    tree: false,
    idx: 109,
    req: [ 22, 27 ] } ]
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].