⟨ Index | Module Moore
{-# OPTIONS --safe  #-}

open import Level
open import Data.Nat
open import Data.Fin
open import Data.Maybe
open import Data.Sum
open import Data.List
open import Function.Base
open import Data.Product

open import Auxiliary-Definitions

module Moore { : Level} (I O : Set ) where

record Moore-Automaton : Set  where
  field
    states : 

  Q : Set
  Q = Fin states

  field
    initial : Q
    δ : Q  I  Q
    output : Q  O

  ⟦_/_⟧ : Q  List I  O
   q / []  = output q
   q / (x  w)  =
     q / w 

  L[_] : List I  O
  L[_] w =  initial / w