# tapes
tape tape1 {
    def correct1:=[ "0", "1", "0", "1", "0", "1" ] 0;
    def fail2:=[ "0", "1", "1", "1", "0", "1","0" ] 0;
    def fail3:=[ "1", "1", "1", "0", "1" ] 0;
    def correct2:=[ "0", "1", "0", "1", "0", "1" ] 0;
    def fail1:=[ "0", "1", "0", "1", "0", "1" ] 0;
} correct1;

# states
state 0 name "start" startstate {
  (tape1=="1") -- tape1("1",0) -> 88 (20);
  (tape1==oot) -- tape1(nothing,0) -> 88 (50);
  (tape1=="0") -- tape1("0",1) -> 10 (20);
}(0,10);

state 10 name "mustBeOne" {
  (tape1=="1") -- tape1("1",1) -> 11 (20);
  (tape1=="0") -- tape1("0",0) -> 88 (20);
  (tape1==oot) -- tape1(nothing,0) -> 88 (50);
}(400,10);

state 11 name "ZeroOrOOT" {
  (tape1=="1") -- tape1("1",0) -> 88 (20);
  (tape1=="0") -- tape1("0",1) -> 10 (20);
  (tape1==oot) -- tape1(nothing,0) -> 99 (20);
}(631,135);

state 88 name "error" endstate { }(165,320);

state 99 name "allOK" endstate { }(400,400);


