Skip to content

Milestones

List view

  • We want to support First order logic on a basic level. This means: - Be able to parse a FOL formula and solve it - For this you will need a FOL lexer/parser and interpreter (= solver) - Include existing capabilites e.g. formula generator

    No due date
  • We want to support Process Algebra to a certain, primitive extent. From a theoretical point of view, Process Algebra is about a set of mathematical properties of a distributed system. These properties/formulas can be understood as a high-level, algrebraic description of the the bahavior of a system/a process when interacting or interleaving with other such systems/processes. Said properties may be used to reason about a system's observability as well as its divergence or equivalence in comparison with another one (by performing (bi)simulation). The general semantical model of Process Algebra is called LTS (Labelled Transition System), which in essence is a "simplified" finite automaton that does not have an explicit language (i.e., it has no final states). The main goal of this milestone is to introduce a functionality which can translate an automata definition (or to be precise, the definition of an LTS) into a set of formulas which describe the system's behavior by adhering to the rules of Process Algebra. For an introduction, see https://en.wikipedia.org/wiki/Process_calculus.

    No due date
  • We want to be able support user algorithms written in C++. For this, we need: - Method stubs that communicate with our REST front end (like done in Java here: https://github.com/danielbinder/LogiVis/blob/main/src/algorithmTester/YourImplementation.java) - A class structure in C++ that implements Finite Automata as a Set of States (like done in Java here: https://github.com/danielbinder/LogiVis/blob/main/src/model/finite/FiniteAutomaton.java) - Also add a sample implementation of the algorithms, to verify that it is doable - Also add convenience methods on top of the necessary methods to give implementers a choice :)

    No due date
  • We want to be able support user algorithms written in Python. For this, we need: - Method stubs that communicate with our REST front end (like done in Java here: https://github.com/danielbinder/LogiVis/blob/main/src/algorithmTester/YourImplementation.java) - A class structure in Python that implements Finite Automata as a Set of States (like done in Java here: https://github.com/danielbinder/LogiVis/blob/main/src/model/finite/FiniteAutomaton.java) - Also add a sample implementation of the algorithms, to verify that it is doable - Also add convenience methods on top of the necessary methods to give implementers a choice :)

    No due date
  • We want to support Regular Expressions on a basic level. This means: - Convert RegEx to a finite automaton and vice versa and find a convenient way to display it in the front end - Be able to determine if a certain input is in a language described by RegEx - Be able to generate the language for an automaton (add some safe guard for infinite and large languages - e.g. stop at 100 generated words) - Integrate with existing functionality (e.g. add an option to generate a Regex similar to generating Kripke Structures and Finite Automatons) Possibly: - Be able to check for a language type (e.g. regular language)

    No due date