# leafTree -- Construct a LeafTree

## Synopsis

• Usage:
T = leafTree(n,E)
T = leafTree(L,E)
T = leafTree(G)
• Inputs:
• n, an integer, The number of leaves
• L, a list, A list of leaves
• E, a list, A list of lists or sets specifying the internal edges
• G, an instance of the type Graph, A tree

## Description

A LeafTree is specified by listing its leaves, and for each internal edge, the partition the edge induces on the set of leaves. L is the set of leaves, or if an integer n is input then the leaves will be be named 0,...,n-1. E is a list with one entry for each internal edge. Each entry is a partition specified as a List or Set of the leaves in one side of the partition. Thus each edge can be specified in two possible ways.

A LeafTree can also be constructed from a Graph provided the graph has no cycles.

Here we construct the quartet tree which is the tree with 4 leaves and one internal edge.

 i1 : T = leafTree({a,b,c,d},{{a,b}}) o1 = {{a, b, c, d}, {set {a, b}, set {a}, set {b}, set {c}, set {d}}} o1 : LeafTree i2 : leaves T o2 = set {a, b, c, d} o2 : Set i3 : edges T o3 = {set {a, b}, set {a}, set {b}, set {c}, set {d}} o3 : List

Here is a tree with 5 leaves given as a Graph.

 i4 : G = graph{{a,b},{c,b},{b,d},{d,e},{d,f},{f,g},{f,h}} o4 = Graph{a => {b} } b => {a, c, d} c => {b} d => {b, e, f} e => {d} f => {d, g, h} g => {f} h => {f} o4 : Graph i5 : T = leafTree G o5 = {{a, c, e, g, h}, {set {a, c}, set {a, c, e}, set {a}, set {c}, set {e}, ------------------------------------------------------------------------ set {g}, set {h}}} o5 : LeafTree i6 : leaves T o6 = set {a, c, e, g, h} o6 : Set i7 : internalEdges T o7 = {set {a, c}, set {a, c, e}} o7 : List

## Ways to use leafTree :

• leafTree(Graph)
• leafTree(List,List)
• leafTree(ZZ,List)