sig
type ('a, 'b) auto_min = {
etats : 'a list;
initial : 'a;
alphabet : 'b list;
final : 'a -> bool;
trans : 'a -> 'b -> 'a;
}
type 'a mot = 'a list
val exec : ('b, 'a) Automate.auto_min -> 'a Automate.mot -> 'b
type ('a, 'b) automate =
'a list * 'a list * 'a list * 'b list * ('a * 'b * 'a) list
val map :
('a -> 'b) -> ('a, 'c) Automate.automate -> ('b, 'c) Automate.automate
val simpl : ('a, 'b) Automate.automate -> (int, 'b) Automate.automate
val build :
(module Tools.Base with type t = 'a) ->
'a ->
('a -> bool) -> 'b list -> ('a -> 'b -> 'a) -> ('a, 'b) Automate.automate
val build_avec_puit :
(module Tools.Base with type t = 'a) ->
'a ->
('a -> bool) ->
'b list -> ('a -> 'b -> 'a) -> 'a -> ('a, 'b) Automate.automate
val build2 :
(module Tools.Base with type t = 'a) ->
'a ->
('a -> bool) ->
'b list -> ('a -> 'b -> 'a list) -> ('a, 'b) Automate.automate
val build_acc :
(module Tools.Base with type t = 'a) ->
'a ->
('a -> bool) ->
'b list ->
('c -> 'a -> 'b -> 'c * 'a) -> 'c -> ('a, 'b) Automate.automate
val build2_acc :
(module Tools.Base with type t = 'a) ->
'a list ->
('a -> bool) ->
'b list ->
('c -> 'a -> 'b -> 'c * 'a list) -> 'c -> ('a, 'b) Automate.automate
val rev : ('a, 'b) Automate.automate -> ('a, 'b) Automate.automate
val determ :
(module Tools.Base with type t = 'a) ->
(module Tools.Base with type t = 'b) ->
('a, 'b) Automate.automate -> ('a list, 'b) Automate.automate
val determ2 :
(module Tools.Base with type t = 'a) ->
(module Tools.Base with type t = 'b) ->
('a, 'b) Automate.automate -> ('a list, 'b) Automate.automate
val min :
(module Tools.Base with type t = 'a) ->
(module Tools.Base with type t = 'b) ->
('a, 'b) Automate.automate -> ('a list list, 'b) Automate.automate
val min2 :
(module Tools.Base with type t = 'a) ->
(module Tools.Base with type t = 'b) ->
('a, 'b) Automate.automate -> ('a list list, 'b) Automate.automate
val convert :
(module Tools.Base with type t = 'a) ->
(module Tools.Base with type t = 'b) ->
('a, 'b) Automate.automate -> ('a list list option, 'b) Automate.auto_min
val equiv :
(module Tools.Base with type t = 'a) ->
(module Tools.Base with type t = 'b) ->
(module Tools.Base with type t = 'c) ->
('a, 'c) Automate.automate ->
('b, 'c) Automate.automate -> 'c Automate.mot option
val hkequiv :
(module Tools.Base with type t = 'a) ->
(module Tools.Base with type t = 'b) ->
(module Tools.Base with type t = 'c) ->
('a, 'c) Automate.automate ->
('b, 'c) Automate.automate -> 'c Automate.mot option
val access :
(module Tools.Base with type t = 'a) ->
(module Tools.Base with type t = 'b) ->
('a, 'b) Automate.automate -> ('a, 'b) Automate.automate
val coaccess :
(module Tools.Base with type t = 'a) ->
(module Tools.Base with type t = 'b) ->
('a, 'b) Automate.automate -> ('a, 'b) Automate.automate
val puits :
(module Tools.Base with type t = 'a) ->
('a, 'b) Automate.automate -> 'a list
val etats_coaccessibles :
(module Tools.Base with type t = 'a) ->
(module Tools.Base with type t = 'b) ->
('a, 'b) Automate.automate -> 'a list
val etats_non_puit :
(module Tools.Base with type t = 'a) ->
('a, 'b) Automate.automate -> 'a list
val sprint_auto :
('a -> string) -> ('b -> string) -> ('a, 'b) Automate.automate -> string
val print_auto :
Pervasives.out_channel ->
('a -> string) -> ('b -> string) -> ('a, 'b) Automate.automate -> unit
val print_to_file :
string ->
('a -> string) -> ('b -> string) -> ('a, 'b) Automate.automate -> unit
end