Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is homomorphism exactly?

Tags:

math

haskell

Homo means equal and homomorphism in Haskell is about preserving the structure.

For instance, the fmap function from category functor, preserves the structure.

But what does homomorphism exactly mean?

like image 374
softshipper Avatar asked Feb 12 '19 19:02

softshipper


People also ask

What is meant by homomorphism?

homomorphism, (from Greek homoios morphe, “similar form”), a special correspondence between the members (elements) of two algebraic systems, such as two groups, two rings, or two fields.

What is the example of homomorphism?

For example, a homomorphism f : R → R× satisfies f(x + y) = f(x)f(y) and a homomorphism R× → R satisfies f(xy) = f(x) + f(y). In Section 2 we will see how to interpret many elementary algebraic identities as homomorphisms, involving the groups Z, R, R×, R>0, C, and C×.

What is homomorphism in group theory?

A group homomorphism f:G→H f : G → H is a function such that for all x,y∈G x , y ∈ G we have f(x∗y)=f(x)△f(y). f ( x ∗ y ) = f ( x ) △ f ( y ) . A group isomorphism is a group homomorphism which is a bijection.

What is the importance of homomorphism?

Homomorphisms are as essential to group theory and ring theory as continuous functions are to topology. A homomorphism preserves operation, in order words preserves the structure from one set to another. It plays a similar or analogous role of continuous functions in Topology and rigid movements in Geometry.


1 Answers

According to nLab, a homomorphism is a function between (the underlying sets) of two algebras that preserves the algebraic structure.

What is "algebraic structure?"

Abstract algebra studies algebras defined by laws. For example, monoids embody the ideas of associativity and identity, and groups add the idea of invertibility. The set of axioms and laws of the algebra is also called its "algebraic structure." Confusingly, an algebra itself is also called an "algebraic structure"

An example of a group is the set of integers under addition with the identity being 0 and the inverse being -x. Another example of a group is the set of nonzero rational numbers under multiplication with the identity being 1 and the inverse being 1/x.

Now, let's look at group homomorphisms.

Let (G, *, e) denote a group where G is the carrier set, * is the operation, and e is the identity element. Let F be a group homomorphism from group (G, *, e) to group (G', *', e'), and let f be the underlying function from G to G'.

  • f (a * b) = f a *' f b
  • f e = e'

(Note that the preservation of inverse follows from the above laws.)

This is the meaning of "preserve the structure" for groups.

For rings, the ring structure must be preserved, and so on for other algebraic structures.

See this Math Stack Exchange answer.

Now, what about Haskell?

First, a category consists of objects and morphisms between these objects. These morphisms can be composed associatively, and each object has an identity morphism, the identity element under composition.

A functor is a morphism between categories. In the context of Haskell, a functor is an endofunctor (an endomorphism maps something to itself) from Hask to Hask*. The type constructor maps the objects of Hask (the Haskell types) and fmap maps the morphisms (the Haskell functions). Functors must preserve the category structure of identity and composition, hence the functor laws:

  • fmap (g . f) = (fmap g) . (fmap f)
  • fmap id = id

*Note that Hask fails the laws in the presence of seq, so it isn't actually a category.

like image 110
Del Avatar answered Oct 06 '22 02:10

Del