# Today I Learned

Some of the things I've learned every day since Oct 10, 2016

## 108: Generating Set for the Symmetric Group

February 3, 2017

Posted by on There are many possible choices of a generating set for , the symmetric group. However, one particularly simple one is the set

where is an ordering of the elements being permutated by the elements of , is the permutation ‘shifting’ all these elements to their successor, and is the permutation swapping the first 2 of these.

I won’t provide a formal proof here as it’s a little tedious, but you can easily convince yourself that every permutation of these elements is a combination of these 2 permutations, because alternating between them in succession allows you to move any of the elements to an arbitrary position in the ordering.

## 107: The Order of the Product of 2 Group Elements

February 2, 2017

Posted by on Where is a group, and , it is always the case that

.

That is, we can speak of ‘the’ order of the product of 2 group elements without worrying about which product it is.

## 106: Group Isomorphisms

February 1, 2017

Posted by on In group theory, a **group ****isomorphism **between 2 groups does not simply refer to an ‘isomorphism’ between the underlying sets of , but to a special type of homomorphism between them: one which is bijective. In a sense, isomorphic groups are the same group, just with different symbols representing their elements and operations — something which is not necessarily true if they’re homomorphic or if just their underlying sets are isomorphic.

In particular, if is a group isomorphism, then

- is abelian is abelian
- for all .

## 105: Loitering Objects (Java)

January 31, 2017

Posted by on In Java (and possibly other languages, not sure), **loitering objects** refers to objects in memory which are no longer desired or will no longer be used in the future but still have pointers pointing to them, preventing garbage collection from freeing their place in memory. It’s generally good form to not waste memory in this fashion, but in extreme cases loitering objects can even lead to unwanted program termination due to a .

## 104: Bijectivity of Left- or Right-Multiplication by Group Elements

January 30, 2017

Posted by on Let be a group and be any element of that group. Then the functions

are bijective.

#### Proof:

Consider the function . By the left-cancellation property of groups, if , then . This means that if , then , and it follows that is injective. Since the domain and codomain of are the same (), this means that is in fact bijective.

The proof for bijectivity of is identical, but uses the right-cancellation property instead.

The intuitive significance of this is that left- or right-multiplication by a given element always sends distinct elements to distinct elements, which is pretty neat.

## 103: Dedekind Cuts

January 29, 2017

Posted by on The **Dedekind cut** is a method of constructing from . A cut is first defined to be a partition of into 2 non-empty subsets such that

- if and , then
- if , then there is a such that (meaning has no maximum element)

A cut can be equivalently determined solely by alone, rather than the pair .

Cuts can then be used to construct by defining any to be the cut where is the set of all members of such that . That is, is simply defined as the subset of rationals smaller than itself, and is the set of all such subsets.

## 102: Kernel Space vs. User Space

January 27, 2017

Posted by on **Kernel space** and **user space** are separate regions of virtual memory distinguished from each other in an operating system for purposes of security, stability, and centralizing control. Typically, user space is the space which user applications have direct access to and can work with, while kernel space is a privileged space which only especially stable and trustworthy programs, such as the kernel, can access. This barrier essentially insulates possibly insecure or unstable applications from power, preventing them from doing things like crashing the system or messing with other applications’ memory.

## 101: Non-Commutativity of Symmetric Groups

January 26, 2017

Posted by on In general, the symmetric group (the set of permutations of distinct objects under permutation composition) is non-abelian. The somewhat trivial exception is when .

## 100: Primitive Types vs. Reference Types (Java)

January 25, 2017

Posted by on In the Java programming language, values either have a **primitive type** or a **reference type**. The primitive types are:

- boolean
- byte
- short
- char
- int
- long
- float
- double

All other types not in this list are reference types.

A value with a primitive type stores the information determining the value itself, such as the binary code for a given integer or character. By contrast, a value with a reference type stores the *address* of the location in memory where this information can be found. For instance, after declaring and instantiating a variable

the variable doesn’t store the code for the String itself, but rather a ‘pointer’ to where this code can be found.

This has important consequences for how primitive values are assigned to variables or passed as parameters, as opposed to reference values. A primitive value passed or assigned will have the bits describing the value itself copied to the target, whereas a reference value will merely have the *address* of these bits copied.

## 99: Non-Orientable Surfaces and the Möbius Strip

January 23, 2017

Posted by on The **Möbius strip** is a canonical and minimal example of a non-orientable surface, in the sense that

- a surface is non-orientable if and only if it has the Möbius strip as a topological subspace, and
- the Möbius strip is the
*only*surface with this property.

## Recent Comments