Theory NBTA

section ‹Nondeterministic Büchi Transition Automata›

theory NBTA
imports "../Nondeterministic"
begin

  datatype ('label, 'state) nbta = nbta
    (alphabet: "'label set")
    (initial: "'state set")
    (transition: "'label  'state  'state set")
    (accepting: "('state × 'label × 'state) pred")

  global_interpretation nbta: automaton nbta alphabet initial transition accepting
    defines path = nbta.path and run = nbta.run and reachable = nbta.reachable and nodes = nbta.nodes
    by unfold_locales auto
  global_interpretation nbta: automaton_run nbta alphabet initial transition accepting
    "λ P w r p. infs P (p ## r ||| w ||| r)"
    defines language = nbta.language
    by standard

  abbreviation target where "target  nbta.target"
  abbreviation states where "states  nbta.states"
  abbreviation trace where "trace  nbta.trace"
  abbreviation successors where "successors  nbta.successors TYPE('label)"

end