module Compute:
Calculs divers.
type
etat = Etat.t
type
lettre = Alph.t
type
mot = lettre list
val monsyn : etat list ->
((lettre -> string) * (etat -> string)) option ->
(etat, lettre) Automate.automate ->
mot list * mot list *
(lettre, etat option) Monoid.monoid
Calcul du monoide syntaxique à partir d'un automate, avec impression
de la table des tranformation des états induites par chacun des
éléments du monoide, et des règles de réécriture inférées.
val monsyn2 : ((lettre -> string) * (etat -> string)) option ->
(etat, lettre) Automate.automate ->
mot list * mot list *
(lettre, etat option) Monoid.monoid
Calcul du monoide syntaxique à partir d'un automate, avec impression
de la table des tranformation des états induites par chacun des
éléments du monoide, et des règles de réécriture inférées.
val monsyn3 : (etat, lettre) Automate.automate ->
(int -> etat) *
(lettre, etat option) Monoid.monoid
Calcul du monoide syntaxique à partir d'un automate, avec impression
de la table des tranformation des états induites par chacun des
éléments du monoide, et des règles de réécriture inférées.
val clbeta : (lettre, 'a) Monoid.monoid ->
mot -> mot
Réduction d'un mot en un élément du monoide.
val prod : (lettre, 'a) Monoid.monoid ->
mot -> mot -> mot
Produit dans le monoide.
val prodl : (lettre, 'a) Monoid.monoid ->
mot -> mot list -> mot list
Produit d'un mot par un ensemble de mot.
val prodr : (lettre, 'a) Monoid.monoid ->
mot list -> mot -> mot list
Produit d'un ensemble de mots par un mot.
val prodlst : (lettre, 'a) Monoid.monoid ->
mot list -> mot list -> mot list
Produit de deux ensembles de mots.
val star : (lettre, 'a) Monoid.monoid ->
mot list -> mot list
Étoile d'un ensemble de mots : (1+A)^n
, tel que
(1+A)^{n+1}=(1+A)^n
.
val func_g : (lettre, 'a) Monoid.monoid ->
(lettre -> lettre) ->
mot list -> lettre -> mot list
Partie droite de la construction de Ésik et Bernátsky.
val auto_g : (lettre, 'a) Monoid.monoid ->
mot list ->
lettre list ->
(lettre -> lettre) ->
(mot list, lettre) Automate.automate
Partie droite de la construction de Ésik et Bernátsky.
val auto_f : (lettre, 'a) Monoid.monoid ->
mot list ->
mot list ->
lettre list ->
(lettre -> lettre) ->
(mot list * mot list, lettre)
Automate.automate
Construction de Ésik et Bernátsky.
val auto_f_opt : (lettre, 'a) Monoid.monoid ->
mot list ->
mot list ->
lettre list ->
(lettre -> lettre) ->
(mot list * mot list, lettre)
Automate.automate
Construction de Ésik et Bernátsky optimisée.
val auto_f_opt2 : (lettre, 'a) Monoid.monoid ->
mot list ->
mot list ->
lettre list ->
(lettre -> lettre) ->
(mot list * mot list, lettre)
Automate.automate
Construction de Ésik et Bernátsky optimisée.
val auto_f_opt3 : (lettre, 'a) Monoid.monoid ->
mot list ->
mot list ->
lettre list ->
(lettre -> lettre) ->
(mot list * mot list, lettre)
Automate.automate
Construction de Ésik et Bernátsky optimisée.
val cayleyr : (lettre, 'a) Monoid.monoid ->
mot list ->
lettre list ->
(mot, lettre) Automate.automate
Automate de Cayley du monoide