functor (Etat : Tools.Base) ->
functor (Alph : Tools.Base) ->
sig
type etat = Etat.t
type lettre = Alph.t
type automate =
(Construction.Compute.etat, Construction.Compute.lettre)
Automate.automate
module Rel :
sig
type elt = etat
type t
val empty : t
val id : elt list -> t
val equal : t -> t -> bool
val compare : t -> t -> int
val succ : elt -> t -> elt list
val restr : elt list -> t -> t
val inser : elt * elt -> t -> t
val mem : elt * elt -> t -> bool
val map : (elt * elt -> elt * elt) -> t -> t
val fold : (elt * elt -> 'a -> 'a) -> t -> 'a -> 'a
val to_list : t -> (elt * elt) list
val concatenation : t -> t -> t
val union : t -> t -> t
val refl : elt list -> t -> t
val etoile : elt list -> t -> t
end
module AMap :
sig
type t
val empty : Construction.Compute.AMap.t
val add :
Construction.Compute.lettre ->
Construction.Compute.Rel.t ->
Construction.Compute.AMap.t -> Construction.Compute.AMap.t
val find :
Construction.Compute.lettre ->
Construction.Compute.AMap.t -> Construction.Compute.Rel.t
val add_elt :
Construction.Compute.lettre ->
Construction.Compute.etat * Construction.Compute.etat ->
Construction.Compute.AMap.t -> Construction.Compute.AMap.t
end
val base_rel :
Construction.Compute.automate ->
Construction.Compute.lettre -> Construction.Compute.Rel.t
module MMap :
sig
type t
val empty : Construction.Compute.MMap.t
val add :
Construction.Compute.lettre list ->
Construction.Compute.Rel.t ->
Construction.Compute.MMap.t -> Construction.Compute.MMap.t
val find :
Construction.Compute.lettre list ->
Construction.Compute.MMap.t -> Construction.Compute.Rel.t
val choose :
Construction.Compute.MMap.t ->
Construction.Compute.lettre list * Construction.Compute.Rel.t
val filter :
(Construction.Compute.lettre list ->
Construction.Compute.Rel.t -> bool) ->
Construction.Compute.MMap.t -> Construction.Compute.MMap.t
end
type state = Construction.Compute.MMap.t
val g2 :
(Construction.Compute.lettre -> Construction.Compute.Rel.t) ->
Construction.Compute.etat list ->
(Construction.Compute.lettre -> Construction.Compute.lettre) ->
Construction.Compute.state ->
Construction.Compute.lettre list ->
Construction.Compute.lettre ->
Construction.Compute.state * Construction.Compute.lettre list *
Construction.Compute.Rel.t
val trans_det :
(Construction.Compute.lettre -> Construction.Compute.Rel.t) ->
(Construction.Compute.state ->
Construction.Compute.lettre list ->
Construction.Compute.lettre ->
Construction.Compute.state * Construction.Compute.lettre list *
Construction.Compute.Rel.t) ->
Construction.Compute.state ->
Construction.Compute.etat list * Construction.Compute.lettre list ->
Construction.Compute.lettre ->
Construction.Compute.state *
(Construction.Compute.etat list * Construction.Compute.lettre list)
val auto_f_det :
Construction.Compute.automate ->
(Construction.Compute.lettre -> Construction.Compute.lettre) ->
(Construction.Compute.etat list * Construction.Compute.lettre list,
Construction.Compute.lettre)
Automate.automate
val trans :
(Construction.Compute.lettre -> Construction.Compute.Rel.t) ->
(Construction.Compute.state ->
Construction.Compute.lettre list ->
Construction.Compute.lettre ->
Construction.Compute.state * Construction.Compute.lettre list *
Construction.Compute.Rel.t) ->
Construction.Compute.state ->
Construction.Compute.etat * Construction.Compute.lettre list ->
Construction.Compute.lettre ->
Construction.Compute.state *
(Construction.Compute.etat * Construction.Compute.lettre list) list
val auto_f :
Construction.Compute.automate ->
(Construction.Compute.lettre -> Construction.Compute.lettre) ->
(Construction.Compute.etat * Construction.Compute.lettre list,
Construction.Compute.lettre)
Automate.automate
end