chop-logic-core - v1.3.2
    Preparing search index...

    chop-logic-core - v1.3.2

    Chop Logic Core

    License: MIT codecov Quality Gate Status Conventional Commits Checked with Biome npm

    Chop Logic Core is a TypeScript library providing core functions for working with symbolic logic. It is part of the broader Chop Logic project and offers essential utilities for logic processing and deduction.

    • ๐Ÿ› ๏ธ Factory methods for building logical symbols, operators, expressions, and well-formed formulas (WFF).
    • ๐Ÿ” Tools for analyzing formulas:
      • Variable extraction
      • Sub-formula extraction
      • Truth table generation
      • Formula evaluation
      • Well-formedness checks
    • โœ๏ธ Inference rules from:
      • Hilbert-style Calculus
      • Natural Deduction Calculus (Introduction & Elimination rules)
    • ๐Ÿงช Utilities for formula validation and consistency checks.
    • ๐Ÿ”ฃ Tokenizer for parsing and handling logical strings.

    You can install chop-logic-core via npm:

    npm install chop-logic-core
    

    Or using yarn:

    yarn add chop-logic-core
    

    The following npm scripts are available for development and maintenance:

    • npm run build โ€“ Build both ESM and CJS versions of the library.
    • npm run prepare โ€“ Run build an husky commands.
    • npm run clean โ€“ Remove the generated lib folder.
    • npm run check โ€“ Run Biome to check for code quality and formatting issues.
    • npm run format โ€“ Format all files.
    • npm run fix โ€“ Format, lint, and organize imports of all files.
    • npm run test โ€“ Run Jest in watch mode.
    • npm run test:ci โ€“ Run Jest in CI mode, allowing zero tests to pass.
    • npm run coverage โ€“ Generate a test coverage report.
    • release:version โ€“ Bumps the version (patch, minor, or major), commits the change, creates a Git tag, and pushes to main. Usage: npm run release:version patch
    import { ChopLogicCore } from 'chop-logic-core';

    const { PropositionalFactory, PropositionalUtils, HilbertCalculus } = ChopLogicCore;
    const { createExpression, createFormula } = PropositionalFactory;
    const { generateTT, convertToString } = PropositionalUtils;

    const expression = createExpression('((A => B) & ~C)');
    const formula = createFormula(expression);
    const truthTable = generateTT(formula);

    const A = createFormula(createExpression('A'));
    const implicationAB = createFormula(createExpression('(A => B)'));

    const consequent = HilbertCalculus.IE([implicationAB, A]);

    const stringView = convertToString(consequent);

    Contributions are welcome! If you find a bug or have an idea for improvement, feel free to open an issue or submit a pull request. Please check the Contribution guide for additional info.

    1. Fork the repository.
    2. Clone your fork.
    3. Create a new feature branch.
    4. Implement and test your changes.
    5. Submit a pull request!

    This project is licensed under MIT. See the LICENSE file for details.


    Let's build better logic tools together! ๐Ÿš€