A deterministic finite Automata sets limits on its properties and makes sure everything is finite.

formal construction

in particular, must have a finite set of states, a finite Alphabet , an initial state , a subset of accepting states , and a transition function .

the transition function is defined as . this means if reads symbol in state , the resulting state can be determined by calculating .

language

the set of strings over such that accepts is denoted as . if there exists a Language such that , that language is said to be regular.

syntax versus semantics

when we want to talk about the syntax of , this involves a listing of its states , alphabet symbols, transitions, initial state, and accepting states. we can then ask syntactic questions like how many states does have, or if the set of final states is empty.

the semantics of is talking about the language . here, is mathematical set that captures what can compute/solve. we can then ask semantic questions like if a particular string is in , of if the set is empty.

this distinction holds in all of computer science. the syntax of a program is the text corresponding to its code. the semantics of a program is the mathematical function it computes.

Proving its correctness

given a Language described by a mathematical constraint, and a DFA , to prove that :

  1. find precise descriptions of mutually disjoint sets of strings that take the machine from initial state to each corresponding state in . this is in your IH.
  2. language should be union of sets corresponding to final states. for every state, we want to create a mathematical definition that allows us to get there. obviously, they should be mutually exclusive from other states.
  3. prove by induction on string : for all , if is in set , for
    1. base case is proving claim for
    2. IH is assuming that if is in set
    3. finally, inductive step is proving that for each in , it holds true that if is in set . we do a case-by-case analysis from here.