

Introduction
~~~~~~~~~~~

Welcome to FinITE !

This tool allows a visual exploration of basic concepts and 
transformations related to finite automata, and studied in 
the course.

With FinITE, you will be able to perform various "hands-on" 
exercises:

- Creation of a finite automaton and checking its correctness 
  by "executing" it (simulating its work) on input words of your
  choice. A simple graphical animation will help you to 
  understand what your automaton does at every step. 

- Determinization of non-deterministic automata

- Minimization of finite deterministic automata



How to run the tool?
~~~~~~~~~~~~~~~~~~~

First, look into the attached README file. It contains the 
needed directions on how to install and to run FinITE.

The tool has a convenient and simple interface. No doubt, 
you will quickly learn all operations. You may use for this
purpose the attached demo examples.

But there is also a good on-line help. Use it when you forgot
the meaning of some operation, or the details of its activation.



How to use the tool in the course?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1. Use FinITE to check your solution for relevant questions
   in Mammans. 

   - When you are asked to build a deterministic automaton that
     accepts certain language:

     * define the alphabet
     * draw states and transitions
     * specify which states are accepting
     * simulate and see whether the automaton does what it is 
       expected to do

   - Note that FinITE is unable to simulate non-deterministic 
     automata 

   - For determinization, FinITE produces only the final result 
     (i.e. an equivalent deterministic automaton), but doesn't 
     show the process of the transformation. Remember that in 
     solution of mamman, you have to show and explain all stages 
     of determinization. In this cases:

     * Simulate your solution to get confidence it is correct.

   - For minimization, also only final result is generated. 
     Do the following:

     * Simulate your solution to get confidence it is correct.
     * Simulate also the original automata, and compare its behavior
       with the behavior of your solution; see how the two automata 
       work on the same words (they should produce the same results).
     * Compare your solution with what is generated by FinITE. 
       Pay attention to parameters such as number of states.

     
2. Finite state diagrams build with the tool, can be saved in files.
   These files can be used for several purposes:

   - Exchange these files with your fellow students, manhim and the
     merakez when you have questions to ask; just attach them to 
     your e-mails.

   - Print out the diagrams, and send them as part of Mamman 
     solutions. Don't forget to add all the needed explanation; 
     picture only is not enough. 
     
   - Download solution files from the homepage of the course. 
     Simulate them, compare with your solutions, see where you 
     had mistakes (if any ...).

     Solutions are placed on the homepage by the merakez. This is 
     done 2-3 weeks after Mamman's due date. Prior to that, 
     you should *NOT* send your solution files to the course 
     newsgroup (where they are available to everybody).
     


Short summary of options
~~~~~~~~~~~~~~~~~~~~~~~

- Run the tool
  Double-click on icon "FinITE"

- Draw finite automata (deterministic or non-deterministic)
  * create automata on a given alphabet
  * add/remove states and transitions
  * move states, to arrange your diagram in a readable and clear way
  * modify state properties (accepting/not accepting)
  * change the alphabet

- Animation
  See how your automaton works on words of your choice. The tool 
  supports:
  * "one-shot" running on a given word
  * step-wise execution (current state is highlighted)
  * taking a step back

- Determinization of non-deterministic automata
  * The tool shows the final result of determinization. 
  * Intermediate stages (e.g. elimination of E-transitions) are not 
    shown.
  * Do determinization yourself and compare your result with that 
    of the tool

- Minimization of automata
  * Only the final result is shown
  * Groups of equivalent states are not shown
  * Do minimization yourself and compare your result with that 
    provided by the tool

