Git Product home page Git Product logo

truthtables's People

Watchers

 avatar  avatar

truthtables's Issues

Feature: Save schema

validation is in a working state, control whether the save button actually fires when it's clicked based on schema validity

part of #8

Feature: generate table columns for valid schema in the editor

When an edit is made in the schema editor, update the display

display a table representing the current schema

For example:

  • when a symbol is added to the editor, add a new column to the schema table
  • when symbols are re-arranged in the editor, update the display automatically
  • when a symbol is removed or the builder is cleared, remove columns

When the schema is invalid display computed truth values until an invalidating symbol is encountered. For all symbols in the schema with indeterminate truth values display a '?'

This work should include logic for both the editor schema and schemataList

Epic: Save schema state

state is an array of objects representing the premises entered in the editor

  • button to clear state
  • save button
  • validation to confirm schema is well-formed

setSchemataList([...schemataList, schema]);

Epic: axioms and theorems

  • in editor, display saved schemata
  • display schema as text instead of cards
  • each schema should have delete and edit button
  • when editing, the editor should enter into edit mode and the save button label should read 'update'
  • a toggle switch will control whether the schema saves as an axiom or a theorem

Feature: sentenceCount State refactor

  • instead of storing the number of sentence letters and using that to generate those letters in the letter picker and schema, store the letters themselves instead. Call this state variable sentenceLetters

  • replace all uses of sentenceCount with sentenceLetters.length

Tech Debt

finalize icons for tables,
add dragging styles for dndelemtnes
kill tutorial is a valid tutorial is saved

remove lib files

this is a react anti pattern, move all componet logic into the components themselves regardless of how bloated they wuill become :(

Feature: keep track of schema type in editor

currently schema state is represented as an array

state should be stored as an object shaped containing the original array and a type attribute that is either P or C

when a schema is saved, it should save as a premise by default or a conclusion if a conclusion is being edited

Feature: shrink table

horizontally collapse table so taht the main op column is the only thing displaying

Feature: TOOLTIPS

Add tooltips:

  • operator picker
  • builder buttons?
  • prem/conclusion table buttons

Epic: Display Component

  • Displays the current schema in real time (the schema in schema editor) #15
  • Displays saved schema as a dnd reorderable list
  • Each list item has option for edit, delete
  • Once a schema is saved, list displays the schema as premise and an empty conclusion
  • Intermediate steps from original schema, step down thru levels of scope, landing at the main operator of the schema

Epic: Tool tips

  • after page is loaded and the mouse enters the editor for the first time, display a dialog pointing to the sentence input
  • when first letter is added in sentence picker, display dialog pointing to letter picker 'click or drag letter to add to the builder'
  • when first letter is added in the sentence picker, display dialog pointing to operator picker
  • when first valid schema is saved, on schema row edit and delete buttons
  • premise vs conclusion toggle?

Feature : Table info

show info about a schema in table

  • implication (logical consequence): (a, b) imply c if there are no instances where a, b are true and ci is false

  • validity: no false interpretations (the values under the main op column are all true)

  • invalidity: at least one false interpretation

  • equivalence: could be hard but.. when two schema have the same truth functionality

  • Satisfiability: at least one interpretation is true

  • Unsatisfiability: all interpretations are false

use a tooltip with a custom template to show info on hvoer?

Spike: tooltips

add tooltips to letter and operator pickers that act as a legend. Display the name of the operator on hover

Feature : Implement schema validation at elType level

letter rules, operator rules, and grouping rules that define a well formed formula

letter:

  • cannot be adjacent to another letter

operator:

  • binary vs unary ('not' is the only unary operator)\
  • check that each binary operator has two args

grouping:

  • each grouping sets a new scope in which default operator precedence is followed, the innermost grouping is where the computation of the schema begins and then cascades outwards into the outer scopes

Spike: refactor display

displayTableLogic and displayTableMarkup are too big.

split apart display logic and markup files and create new components

consider the addition of new property 'mainOpColumn' which will soon be attached to schema data within the app

Feature: schema computation

given a valid schema, compute the truth table and display the values

for editor schema and saved schemata

Release

develop looks good and stable. code is in good shape

Feature: collapse table

add a click handler to the saved tables (maybe the editor table too)

on click just show the headers of the table. hide the rest

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.