Homomorphisms of Languages

In summary, the conversation discusses the concept of homomorphisms of languages and how it can be seen as a generalization in various contexts, such as group theory and ring theory. The conversation also explores the idea of using different types of functions, such as finite state transducers, as mappings between languages and the preservation of structure in these mappings. Additionally, there is a mention of the relationship between homomorphisms and the notions of kernel and quotient.
  • #1
mXSCNT
315
1
Hey, I was thinking of this generalization of homomorphisms. You have a language [itex]L_1 = (A, B)[/itex] where [itex]A[/itex] is a set of symbols and [itex]B[/itex] is a set of sequences of symbols in [itex]A[/itex]. Given languages [itex]L_1 = (A, B)[/itex] and [itex]L_2 = (C, D)[/itex] a function [itex]f: A \rightarrow C[/itex] is defined to be a homomorphism of languages if, given any sequence [itex]a_1 a_2 ... a_n \in B[/itex], we have [itex]f(a_1) f(a_2) ... f(a_n) \in D[/itex].

This is seen as a generalization. For example, if [itex]A[/itex] is a set of group elements, and [itex]B[/itex] is a set of sentences of the form "[itex]a_1 a_2 a_3[/itex]" (the multiplication table, [itex]a_1 * a_2 = a_3[/itex]), then every homomorphism of languages from [itex]A[/itex] to the alphabet of another language set up like this corresponds to a group homomorphism.

Another example: if [itex]A[/itex] is a set of ring elements together with special elements * + =, and [itex]B[/itex] is a set of sentences of the form "[itex]a_1 * a_2 = a_3[/itex]" (the multiplication table), unioned with a set of sentences of the form "[itex]a_1 + a_2 = a_3[/itex]" (the addition table), then homomorphisms of languages that map * to * and + to + and = to = correspond to ring homomorphisms.

To look at it in general, [itex]A[/itex] is a set of objects, and [itex]B[/itex] is a set of true statements about elements of [itex]A[/itex]. A homomorphism of languages [itex]f : A \rightarrow C[/itex] induces a map from statements in [itex]B[/itex] to corresponding statements in [itex]D[/itex] that "maps truth to truth" (doesn't generate false statements, i.e. strings outside of [itex]D[/itex]).What do you think? Have you heard of this?
 
Last edited:
Mathematics news on Phys.org
  • #2
If I'm not mistaken, this is related to the notion of a homomorphism as it appears in model theory.
 
  • #3
economicsnerd said:
If I'm not mistaken, this is related to the notion of a homomorphism as it appears in model theory.

Yeah, it is just like that. Thanks!

Another note. [itex]f : A \rightarrow C[/itex] induces a map [itex]h : B \rightarrow D[/itex]. Specifically, [itex]h[/itex] takes in a string in [itex]B[/itex] and maps each character in the string to another single character, such that the result is always in [itex]D[/itex]. I wonder if we can generalize further, to other kinds of functions [itex]h[/itex]. For instance, maybe there is something interesting if we consider functions [itex]h : B \rightarrow D[/itex] where the mapping of [itex]h[/itex] is given by an arbitrary finite state transducer (with outputs always in [itex]D[/itex]). What parts of the structure of [itex]B[/itex] would such a mapping preserve?
 
  • #4
I think of the idea of "homomorphism" as implicitly involving the ideas of "kernel" and "quotient". If we have a mapping between "things" that "preserves" operations but the things don't necessarily have an implementation of an "identity" thing, is there a name for such a mapping other than "homomorphism"? (I suppose one could resort to the "functor" of category theory.)
 
  • #5


This is an interesting concept and definitely a useful generalization of homomorphisms. I have not specifically heard of this before, but it seems to have applications in various areas of mathematics and computer science. For example, in linguistics, this could potentially be used to study the relationships between different languages and their structures. In computer science, this could be useful for analyzing and comparing programming languages. Overall, this is a valuable tool for understanding and studying the relationships between different languages and their structures.
 

What is a homomorphism of languages?

A homomorphism of languages is a function that maps strings from one language to another language. It preserves the structure of the languages, meaning that it maintains the relationships between the symbols in the strings.

What is the purpose of using homomorphisms in language theory?

Homomorphisms are useful in language theory because they allow us to study the properties and relationships between languages. They also help us to define and prove theorems about languages and their structures.

How do homomorphisms differ from isomorphisms?

While homomorphisms preserve the structure of languages, isomorphisms preserve both the structure and the size of languages. This means that isomorphisms are bijections, or one-to-one and onto mappings, while homomorphisms can be many-to-one mappings.

Can homomorphisms be used to compare languages?

Yes, homomorphisms can be used to compare languages. If a homomorphism exists between two languages, it means that one language can be mapped to the other, demonstrating a relationship between the two. This can help us to understand the similarities and differences between languages.

Is it possible for a language to have multiple homomorphisms?

Yes, a language can have multiple homomorphisms. This is because a homomorphism is a many-to-one mapping, meaning that one language can be mapped to multiple other languages. However, a language may also have no homomorphisms or only one homomorphism.

Similar threads

Replies
1
Views
1K
  • General Math
Replies
8
Views
2K
  • Calculus and Beyond Homework Help
Replies
9
Views
1K
  • Introductory Physics Homework Help
Replies
1
Views
949
  • Linear and Abstract Algebra
Replies
10
Views
2K
Replies
7
Views
4K
  • Linear and Abstract Algebra
Replies
2
Views
1K
  • General Math
Replies
6
Views
1K
  • Calculus and Beyond Homework Help
Replies
5
Views
1K
Back
Top