Regular Languages and Monoids
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Automata, Semigroups and Duality
Automata, semigroups and duality Mai Gehrke1 Serge Grigorieff2 Jean-Eric´ Pin2 1Radboud Universiteit 2LIAFA, CNRS and University Paris Diderot TANCL’07, August 2007, Oxford LIAFA, CNRS and University Paris Diderot Outline (1) Four ways of defining languages (2) The profinite world (3) Duality (4) Back to the future LIAFA, CNRS and University Paris Diderot Part I Four ways of defining languages LIAFA, CNRS and University Paris Diderot Words and languages Words over the alphabet A = {a, b, c}: a, babb, cac, the empty word 1, etc. The set of all words A∗ is the free monoid on A. A language is a set of words. Recognizable (or regular) languages can be defined in various ways: ⊲ by (extended) regular expressions ⊲ by finite automata ⊲ in terms of logic ⊲ by finite monoids LIAFA, CNRS and University Paris Diderot Basic operations on languages • Boolean operations: union, intersection, complement. • Product: L1L2 = {u1u2 | u1 ∈ L1,u2 ∈ L2} Example: {ab, a}{a, ba} = {aa, aba, abba}. • Star: L∗ is the submonoid generated by L ∗ L = {u1u2 · · · un | n > 0 and u1,...,un ∈ L} {a, ba}∗ = {1, a, aa, ba, aaa, aba, . .}. LIAFA, CNRS and University Paris Diderot Various types of expressions • Regular expressions: union, product, star: (ab)∗ ∪ (ab)∗a • Extended regular expressions (union, intersection, complement, product and star): A∗ \ (bA∗ ∪ A∗aaA∗ ∪ A∗bbA∗) • Star-free expressions (union, intersection, complement, product but no star): ∅c \ (b∅c ∪∅caa∅c ∪∅cbb∅c) LIAFA, CNRS and University Paris Diderot Finite automata a 1 2 The set of states is {1, 2, 3}. b The initial state is 1. b a 3 The final states are 1 and 2. -
Sage 9.4 Reference Manual: Monoids Release 9.4
Sage 9.4 Reference Manual: Monoids Release 9.4 The Sage Development Team Aug 24, 2021 CONTENTS 1 Monoids 3 2 Free Monoids 5 3 Elements of Free Monoids 9 4 Free abelian monoids 11 5 Abelian Monoid Elements 15 6 Indexed Monoids 17 7 Free String Monoids 23 8 String Monoid Elements 29 9 Utility functions on strings 33 10 Hecke Monoids 35 11 Automatic Semigroups 37 12 Module of trace monoids (free partially commutative monoids). 47 13 Indices and Tables 55 Python Module Index 57 Index 59 i ii Sage 9.4 Reference Manual: Monoids, Release 9.4 Sage supports free monoids and free abelian monoids in any finite number of indeterminates, as well as free partially commutative monoids (trace monoids). CONTENTS 1 Sage 9.4 Reference Manual: Monoids, Release 9.4 2 CONTENTS CHAPTER ONE MONOIDS class sage.monoids.monoid.Monoid_class(names) Bases: sage.structure.parent.Parent EXAMPLES: sage: from sage.monoids.monoid import Monoid_class sage: Monoid_class(('a','b')) <sage.monoids.monoid.Monoid_class_with_category object at ...> gens() Returns the generators for self. EXAMPLES: sage: F.<a,b,c,d,e>= FreeMonoid(5) sage: F.gens() (a, b, c, d, e) monoid_generators() Returns the generators for self. EXAMPLES: sage: F.<a,b,c,d,e>= FreeMonoid(5) sage: F.monoid_generators() Family (a, b, c, d, e) sage.monoids.monoid.is_Monoid(x) Returns True if x is of type Monoid_class. EXAMPLES: sage: from sage.monoids.monoid import is_Monoid sage: is_Monoid(0) False sage: is_Monoid(ZZ) # The technical math meaning of monoid has ....: # no bearing whatsoever on the result: it's ....: # a typecheck which is not satisfied by ZZ ....: # since it does not inherit from Monoid_class. -