ProofChecker: an accessible environment for automata theory correctness proofs

  • Authors:
  • Matthias F. Stallmann;Suzanne P. Balik;Robert D. Rodman;Sina Bahram;Michael C. Grace;Susan D. High

  • Affiliations:
  • North Carolina State University;North Carolina State University;North Carolina State University;North Carolina State University;North Carolina State University;North Carolina State University

  • Venue:
  • Proceedings of the 12th annual SIGCSE conference on Innovation and technology in computer science education
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

ProofChecker is a graphical program based on the notion of formal correctness proofs that allows students, both sighted and visually impaired, to draw a deterministic finite automaton (DFA) and determine whether or not it correctly recognizes a given language. Sighted students use the mouse and graphical controls to draw and manipulate the DFA. Keyboard shortcuts, together with the use of a screen reader to voice the accessible descriptions provided by the program, allow visually impaired students to do the same. Because the states of a DFA partition thelanguage over its alphabet into equivalence classes, each state has a language associated with it. Conditions that describe the language of each state are entered by the student in the form of conditional expressions with function calls and/or regular expressions. A brute-force approach is then used to check that each state's condition correctly describes all of the strings in its language and that none of the strings in a state's language meet the condition for another state. Feedback is provided that either confirms that the DFA correctly meets thegiven conditions or alerts the student to a mismatch between the conditions and the DFA. A student's DFA can be saved in an XML file and submitted for grading. An automated checking tool, known as ProofGrader, can be used to compare a student's DFA with the correct DFA for a given language, thus greatly speeding up the grading of student assignments.