Formal methods 6 - elements of algebra
-
Upload
vlad-patryshev -
Category
Education
-
view
378 -
download
1
description
Transcript of Formal methods 6 - elements of algebra
Formal Methods in Software
Lecture 6. Elements of Algebra
Vlad PatryshevSCU2014
In This Lecture● monoid● group● groupoid● category
MonoidAn object X (e.g. a set, a type in programming language),binary operation Op,nullary operation Zero;Laws:● Op is associative● Zero is neutral re: Op
Monoid: examples● Real numbers ℝ and multiplication; 1. is neutral element● Natural numbers ℕ, max, 0● Sets and union; ∅ is neutral● Lists, concatenation, empty list● Predicates, conjunction, TRUE● Given an X, functions: X → X, their composition, idX as neutral
Mappings of MonoidsGiven monoids (A,opa,za) and (B,opb,zb), define a mapping f that preserves structure:● f: A → B - that is, defined on elements of A, mapping them to B● f(x opa y) = f(x) opb f(y)● f(za) = zb
E.g. ● exp: (ℝ,+,0) → (ℝ,*,1)● sum: List[Int] → (Int,+,0)
Monoid of EndomorphismsDefinition. Endomorphism is a function f:X → X
Endomorphisms form a monoid, ({f:X → X}, ∘, idx)
If X is a finite set, the size is |X||X|, so we denote this monoid XX.
Example: id ā b̄ swap
a a a b b
b b a b a
GroupGroup is a monoid (A,op,0) where each element has an inverse:
∀x∈A ∃y∈A ((x op y) = 0) ∧ ((y op x) = 0)
Notation: y = x-1, or y = inv(x)
E.g.● (ℤ,+,0); inv(x) = -x
Group of IsomorphismsIn monoid ({f:X → X}, ∘, idx) take only such functions that have an inversethey are called isomorphisms.
f is an isomorphism if ∃g:X→X (f∘g = idx) ∧ (g∘f = idx)
It is also known a bijection in the case when X is a set.
Examples: (_+7):ℝ→ℝ; (-3.4*_):ℝ→ℝ
Group of PermutationsTake a set of n elements, {0,1,2,...,n}, and its isomorphic endomorphismsThey are called permutations.
The group of all permutations on n elements is called An.|An| = n!
Sorting n elements amounts to finding the right one out of n! elements.With no extra knowledge, binary search gives an estimate O(log(n!))=O(n log(n))
0 1 2
po p1 p2
(p0,p1,p2)
What if there’s more than one X?Have a bunch of objects, (X1,X2,...,Xn)take all isomorphisms between them:invertible functions of kind f:Xi→XjIt is not a group, and not a monoid: 1. composition is only allowed between f:Xi→Xj and g:Xj→Xk2. no common neutral element, but idi:Xi→Xi
Still, have associativity, neutrality, inverses.It is called Groupoid
Examples of Groupoids● a group is a groupoid● X and Y are objects. Iso(X,X) ∪ Iso(Y,Y) is a
groupoid●● Set A, and an identity on each element - this makes a
discrete groupoid
What If Not Only IsomorphismsHave a bunch of objects, (X1,X2,...,Xn)take functions between them, so that:1. idi:Xi→Xi included, for each i;2. if f:Xi→Xj and g:Xj→Xk are present, so is g∘f:Xi→Xk
Have associativity, have neutrality; inverses optional.It is called Category
Examples of Categories● Every monoid is a category (with just one object)● Every groupoid is a category (all functions invertible)● Category of all sets and their functions● Category of all monoids and their functions● Tiny things, like
○ Category 1 =
○ Category 1+1 =
○ Category 2 =
○ Category 3 =
Java as a CategoryObjects (Xi): all types and classes (Integer, String, java.util.Date, Map<X,Y>)Functions: all imaginable static functions, plus methods, plus identities
E.g.toString: Integer → String
It is not an isomorphism: some strings are not results of toString.But it is an injection; injection is called monomorphism in Category Theory.
Integer.parseInt: String → Integer - not even a function.Either have to restrict to representations of integers, or redefine “function”.
Referenceshttps://docs.google.com/presentation/d/1M0ozs06eLh9GWvi-RhPvah6YBzQ2lclqbPGUADpg0H4/edit?usp=sharinghttp://www.amazon.com/Category-Computer-Scientists-Foundations-Computing/dp/0262660717Wikipedia