functor (X : Alphabet.T) ->
sig
type t =
Letter of X.t
| Union of Automaton.Regexp.t * Automaton.Regexp.t
| Empty
| Concat of Automaton.Regexp.t * Automaton.Regexp.t
| Singl
| Star of Automaton.Regexp.t
val letter : X.t -> Automaton.Regexp.t
val union :
Automaton.Regexp.t -> Automaton.Regexp.t -> Automaton.Regexp.t
val empty : Automaton.Regexp.t
val concat :
Automaton.Regexp.t -> Automaton.Regexp.t -> Automaton.Regexp.t
val star : Automaton.Regexp.t -> Automaton.Regexp.t
val unions : Automaton.Regexp.t list -> Automaton.Regexp.t
val to_string : Automaton.Regexp.t -> string
val simpl : Automaton.Regexp.t -> Automaton.Regexp.t
module Series :
sig
type t = Field.Int.t Weak.t ref * (int -> Field.Int.t)
val eq : t -> t -> 'a
val get : t -> int -> Field.Int.t
val coeff : t -> int -> Field.Int.t
val to_string : t -> string
val make : (int -> Field.Int.t) -> t
val zero : t
val one : t
val var : t
val add : t -> t -> t
val sub : t -> t -> t
val mul : t -> t -> t
val expn : t -> int -> t
val hadamard : t -> t -> t
val cmul : Field.Int.t -> t -> t
val neg : t -> t
val star : t -> t
val inv : t -> t
module Polynomial :
sig
type t = Field.Int.t array
val length : t -> int
val degree : t -> int
val eq : t -> t -> bool
val compact : t -> t
val coeff : t -> int -> Field.Int.t
val init : int -> (int -> Field.Int.t) -> t
val add : t -> t -> t
val zero : 'a array
val cmul : Field.Int.t -> t -> t
val neg : t -> t
val sub : t -> t -> t
val mul : t -> t -> t
val one : Field.Int.t array
val to_string : t -> string
val monomial : Field.Int.t -> int -> Field.Int.t array
end
val polynomial : Polynomial.t -> t
module RationalFractions :
sig
module Polynomial :
functor (F : Field.T) ->
sig
type t = Ring.Polynomial(F).t
val eq : t -> t -> bool
val add : t -> t -> t
val zero : t
val neg : t -> t
val mul : t -> t -> t
val one : t
val to_string : t -> string
val div : t -> t -> t * t
end
type t = Polynomial(Field.Int).t * Polynomial(Field.Int).t
val gcd :
Polynomial(Field.Int).t ->
Polynomial(Field.Int).t -> Polynomial(Field.Int).t
val canonize : t -> t
val eq : t -> t -> bool
val add : t -> t -> t
val zero : t
val neg : t -> t
val mul : t -> t -> t
val one : t
val inv : t -> t
val to_string : t -> string
end
val rational : RationalFractions.t -> t
end
val series : Automaton.Regexp.t -> Automaton.Regexp.Series.t
end