a Lattice is a partially ordered set in which every two elements have

- a supremum (also called a least upper bound or join) and
- an infimum (also called a greatest lower bound or meet).

Hasse Diagram [1]

- a way of representing finite partially ordered sets

Layer approach

- page 33 - onwards [2] - software for drawing

Generating it in python:

from itertools import chain,combinations,product from collections import defaultdict # from https://docs.python.org/2/library/itertools.html#recipes def powerset(iterable): s = list(iterable) return chain.from_iterable(combinations(s, r) for r in range(len(s)+1)) st = 'abcdef' ps = {''.join(x): set(x) for x in powerset(st)} dep = defaultdict(list) for (s1, s2) in product(ps, ps): if len(s1) + 1 == len(s2) and ps[s1].issubset(ps[s2]): dep[s1].append(s2) def join_quoted(it): return ','.join(['"%s"' % s for s in it]) for d in sorted(dep, key=len): print ' ', '"%s"' % d, '->', join_quoted(dep[d])

Drawing it with dot:

digraph A { node[shape=none, fontsize=10, width=0.3, fixedsize=true] edge[arrowsize=.4,color=grey] nodesep=0.05 "{}" -> "a","c","b","e","d","f" "c" -> "ac","cf","ce","cd","bc" "b" -> "ab","bd","be","bf","bc" "a" -> "ac","ab","ae","ad","af" "e" -> "ae","ef","ce","be","de" "d" -> "ad","cd","bd","df","de" "f" -> "af","ef","cf","bf","df" "ac" -> "abc","acf","ace","acd" "ab" -> "abc","abd","abe","abf" "ae" -> "abe","ade","ace","aef" "ad" -> "abd","adf","ade","acd" "af" -> "abf","adf","acf","aef" "ef" -> "cef","bef","aef","def" "cf" -> "cef","acf","cdf","bcf" "ce" -> "cde","cef","ace","bce" "cd" -> "cde","cdf","bcd","acd" "bd" -> "bde","abd","bdf","bcd" "bf" -> "abf","bdf","bcf","bef" "de" -> "cde","bde","ade","def" "bc" -> "abc","bcd","bce","bcf" "df" -> "adf","bdf","cdf","def" "be" -> "bde","abe","bce","bef" "cde" -> "acde","bcde","cdef" "bef" -> "abef","bdef","bcef" "bde" -> "bdef","abde","bcde" "abc" -> "abcd","abce","abcf" "abd" -> "abcd","abde","abdf" "abe" -> "abef","abde","abce" "abf" -> "abef","abdf","abcf" "adf" -> "acdf","abdf","adef" "ade" -> "acde","abde","adef" "cef" -> "acef","cdef","bcef" "bdf" -> "bcdf","bdef","abdf" "cdf" -> "bcdf","acdf","cdef" "acf" -> "acdf","acef","abcf" "ace" -> "acde","acef","abce" "bcd" -> "bcdf","abcd","bcde" "bce" -> "bcde","bcef","abce" "bcf" -> "bcdf","bcef","abcf" "acd" -> "acde","acdf","abcd" "aef" -> "abef","acef","adef" "def" -> "bdef","cdef","adef" "abef" -> "abdef","abcef" "bdef" -> "abdef","bcdef" "acde" -> "abcde","acdef" "acdf" -> "abcdf","acdef" "acef" -> "abcef","acdef" "abcd" -> "abcde","abcdf" "abde" -> "abcde","abdef" "abdf" -> "abdef","abcdf" "bcef" -> "abcef","bcdef" "bcde" -> "abcde","bcdef" "bcdf" -> "bcdef","abcdf" "cdef" -> "bcdef","acdef" "abce" -> "abcde","abcef" "adef" -> "abdef","acdef" "abcf" -> "abcef","abcdf" "abdef" -> "abcdef" "abcef" -> "abcdef" "bcdef" -> "abcdef" "abcde" -> "abcdef" "abcdf" -> "abcdef" "acdef" -> "abcdef" }