== Lambda = P_4 (1-2-3-4); Gamma = P_4 ==
  Lambda edges: [(1, 2), (2, 3), (3, 4)]
  Gamma  edges: [(1, 3), (1, 4), (2, 4)]
  Lambda connected: True | chordal: True | dominating vertices of Lambda (= isolated vertices of Gamma): []
  maximal cliques: {'A': ['1', '2'], 'B': ['2', '3'], 'C': ['3', '4']}  r = 3  genus >= 2r = 6
  vertex sets not contained in a join of Gamma: 4; minimal: [['2', '3']]
  clique tree #1: edges [('A', 'B'), ('B', 'C')]
     territories: {'1': 'A', '2': 'AB', '3': 'BC', '4': 'C'}
     pairs: {'nested': ['12', '34'], 'disjoint': ['13', '14', '24'], 'overlap': ['23']}
     fact (i) for all 4 sets: True ; fact (ii): True
     curve c_AB misses territories of ['1', '3', '4'] -> contained in a join of Gamma: True
     curve c_BC misses territories of ['1', '2', '4'] -> contained in a join of Gamma: True
     curve inside piece P_A misses territories of ['3', '4'] -> in a join: True ; with one private vertex of the piece added (['1']): True
     curve inside piece P_B misses territories of ['1', '4'] -> in a join: True ; with one private vertex of the piece added ([]): True
     curve inside piece P_C misses territories of ['1', '2'] -> in a join: True ; with one private vertex of the piece added (['4']): True
  number of clique trees: 1 

== Lambda = P_5 (1-2-3-4-5); Gamma = house ==
  Lambda edges: [(1, 2), (2, 3), (3, 4), (4, 5)]
  Gamma  edges: [(1, 3), (1, 4), (1, 5), (2, 4), (2, 5), (3, 5)]
  Lambda connected: True | chordal: True | dominating vertices of Lambda (= isolated vertices of Gamma): []
  maximal cliques: {'A': ['1', '2'], 'B': ['2', '3'], 'C': ['3', '4'], 'D': ['4', '5']}  r = 4  genus >= 2r = 8
  vertex sets not contained in a join of Gamma: 4; minimal: [['2', '3', '4']]
  clique tree #1: edges [('A', 'B'), ('B', 'C'), ('C', 'D')]
     territories: {'1': 'A', '2': 'AB', '3': 'BC', '4': 'CD', '5': 'D'}
     pairs: {'nested': ['12', '45'], 'disjoint': ['13', '14', '15', '24', '25', '35'], 'overlap': ['23', '34']}
     fact (i) for all 4 sets: True ; fact (ii): True
     curve c_AB misses territories of ['1', '3', '4', '5'] -> contained in a join of Gamma: True
     curve c_BC misses territories of ['1', '2', '4', '5'] -> contained in a join of Gamma: True
     curve c_CD misses territories of ['1', '2', '3', '5'] -> contained in a join of Gamma: True
     curve inside piece P_A misses territories of ['3', '4', '5'] -> in a join: True ; with one private vertex of the piece added (['1']): True
     curve inside piece P_B misses territories of ['1', '4', '5'] -> in a join: True ; with one private vertex of the piece added ([]): True
     curve inside piece P_C misses territories of ['1', '2', '5'] -> in a join: True ; with one private vertex of the piece added ([]): True
     curve inside piece P_D misses territories of ['1', '2', '3'] -> in a join: True ; with one private vertex of the piece added (['5']): True
  number of clique trees: 1 

== Lambda = chair/spider tree (deg z = 3) ==
  Lambda edges: [('w', 'y'), ('x1', 'z'), ('x2', 'z'), ('y', 'z')]
  Gamma  edges: [('w', 'x1'), ('w', 'x2'), ('w', 'z'), ('x1', 'x2'), ('x1', 'y'), ('x2', 'y')]
  Lambda connected: True | chordal: True | dominating vertices of Lambda (= isolated vertices of Gamma): []
  maximal cliques: {'A': ['w', 'y'], 'B': ['x1', 'z'], 'C': ['x2', 'z'], 'D': ['y', 'z']}  r = 4  genus >= 2r = 8
  vertex sets not contained in a join of Gamma: 8; minimal: [['y', 'z']]
  clique tree #1: edges [('A', 'D'), ('C', 'B'), ('B', 'D')]
     territories: {'w': 'A', 'x1': 'B', 'x2': 'C', 'y': 'AD', 'z': 'BCD'}
     pairs: {'disjoint': ['wx1', 'wx2', 'wz', 'x1x2', 'x1y', 'x2y'], 'nested': ['wy', 'x1z', 'x2z'], 'overlap': ['yz']}
     fact (i) for all 8 sets: True ; fact (ii): True
     curve c_AD misses territories of ['w', 'x1', 'x2', 'z'] -> contained in a join of Gamma: True
     curve c_CB misses territories of ['w', 'x1', 'x2', 'y'] -> contained in a join of Gamma: True
     curve c_BD misses territories of ['w', 'x1', 'x2', 'y'] -> contained in a join of Gamma: True
     curve inside piece P_A misses territories of ['x1', 'x2', 'z'] -> in a join: True ; with one private vertex of the piece added (['w']): True
     curve inside piece P_B misses territories of ['w', 'x2', 'y'] -> in a join: True ; with one private vertex of the piece added (['x1']): True
     curve inside piece P_C misses territories of ['w', 'x1', 'y'] -> in a join: True ; with one private vertex of the piece added (['x2']): True
     curve inside piece P_D misses territories of ['w', 'x1', 'x2'] -> in a join: True ; with one private vertex of the piece added ([]): True
  clique tree #2: edges [('A', 'D'), ('B', 'C'), ('C', 'D')]
     territories: {'w': 'A', 'x1': 'B', 'x2': 'C', 'y': 'AD', 'z': 'BCD'}
     pairs: {'disjoint': ['wx1', 'wx2', 'wz', 'x1x2', 'x1y', 'x2y'], 'nested': ['wy', 'x1z', 'x2z'], 'overlap': ['yz']}
     fact (i) for all 8 sets: True ; fact (ii): True
     curve c_AD misses territories of ['w', 'x1', 'x2', 'z'] -> contained in a join of Gamma: True
     curve c_BC misses territories of ['w', 'x1', 'x2', 'y'] -> contained in a join of Gamma: True
     curve c_CD misses territories of ['w', 'x1', 'x2', 'y'] -> contained in a join of Gamma: True
     curve inside piece P_A misses territories of ['x1', 'x2', 'z'] -> in a join: True ; with one private vertex of the piece added (['w']): True
     curve inside piece P_B misses territories of ['w', 'x2', 'y'] -> in a join: True ; with one private vertex of the piece added (['x1']): True
     curve inside piece P_C misses territories of ['w', 'x1', 'y'] -> in a join: True ; with one private vertex of the piece added (['x2']): True
     curve inside piece P_D misses territories of ['w', 'x1', 'x2'] -> in a join: True ; with one private vertex of the piece added ([]): True
  clique tree #3: edges [('A', 'D'), ('B', 'D'), ('C', 'D')]
     territories: {'w': 'A', 'x1': 'B', 'x2': 'C', 'y': 'AD', 'z': 'BCD'}
     pairs: {'disjoint': ['wx1', 'wx2', 'wz', 'x1x2', 'x1y', 'x2y'], 'nested': ['wy', 'x1z', 'x2z'], 'overlap': ['yz']}
     fact (i) for all 8 sets: True ; fact (ii): True
     curve c_AD misses territories of ['w', 'x1', 'x2', 'z'] -> contained in a join of Gamma: True
     curve c_BD misses territories of ['w', 'x1', 'x2', 'y'] -> contained in a join of Gamma: True
     curve c_CD misses territories of ['w', 'x1', 'x2', 'y'] -> contained in a join of Gamma: True
     curve inside piece P_A misses territories of ['x1', 'x2', 'z'] -> in a join: True ; with one private vertex of the piece added (['w']): True
     curve inside piece P_B misses territories of ['w', 'x2', 'y'] -> in a join: True ; with one private vertex of the piece added (['x1']): True
     curve inside piece P_C misses territories of ['w', 'x1', 'y'] -> in a join: True ; with one private vertex of the piece added (['x2']): True
     curve inside piece P_D misses territories of ['w', 'x1', 'x2'] -> in a join: True ; with one private vertex of the piece added ([]): True
  number of clique trees: 3 

== Lambda = claw K_{1,3} ==
  Lambda edges: [('x1', 'z'), ('x2', 'z'), ('x3', 'z')]
  Gamma  edges: [('x1', 'x2'), ('x1', 'x3'), ('x2', 'x3')]
  Lambda connected: True | chordal: True | dominating vertices of Lambda (= isolated vertices of Gamma): ['z']
  -> Theorem B does not apply (Gamma has an isolated vertex); handled by Proposition 4.6.

== Lambda = spider S(2,2,2) (deg z = 3, 7 vertices) ==
  Lambda edges: [('a1', 'a2'), ('a1', 'z'), ('b1', 'b2'), ('b1', 'z'), ('c1', 'c2'), ('c1', 'z')]
  Gamma  edges: [('a1', 'b1'), ('a1', 'b2'), ('a1', 'c1'), ('a1', 'c2'), ('a2', 'b1'), ('a2', 'b2'), ('a2', 'c1'), ('a2', 'c2'), ('a2', 'z'), ('b1', 'c1'), ('b1', 'c2'), ('b2', 'c1'), ('b2', 'c2'), ('b2', 'z'), ('c2', 'z')]
  Lambda connected: True | chordal: True | dominating vertices of Lambda (= isolated vertices of Gamma): []
  maximal cliques: {'A': ['a1', 'a2'], 'B': ['a1', 'z'], 'C': ['b1', 'b2'], 'D': ['b1', 'z'], 'E': ['c1', 'c2'], 'F': ['c1', 'z']}  r = 6  genus >= 2r = 12
  vertex sets not contained in a join of Gamma: 8; minimal: [['a1', 'b1', 'c1', 'z']]
  clique tree #1: edges [('A', 'B'), ('C', 'D'), ('D', 'B'), ('B', 'F'), ('E', 'F')]
     territories: {'a1': 'AB', 'a2': 'A', 'b1': 'CD', 'b2': 'C', 'c1': 'EF', 'c2': 'E', 'z': 'BDF'}
     pairs: {'nested': ['a1a2', 'b1b2', 'c1c2'], 'disjoint': ['a1b1', 'a1b2', 'a1c1', 'a1c2', 'a2b1', 'a2b2', 'a2c1', 'a2c2', 'a2z', 'b1c1', 'b1c2', 'b2c1', 'b2c2', 'b2z', 'c2z'], 'overlap': ['a1z', 'b1z', 'c1z']}
     fact (i) for all 8 sets: True ; fact (ii): True
     curve c_AB misses territories of ['a2', 'b1', 'b2', 'c1', 'c2', 'z'] -> contained in a join of Gamma: True
     curve c_CD misses territories of ['a1', 'a2', 'b2', 'c1', 'c2', 'z'] -> contained in a join of Gamma: True
     curve c_DB misses territories of ['a1', 'a2', 'b1', 'b2', 'c1', 'c2'] -> contained in a join of Gamma: True
     curve c_BF misses territories of ['a1', 'a2', 'b1', 'b2', 'c1', 'c2'] -> contained in a join of Gamma: True
     curve c_EF misses territories of ['a1', 'a2', 'b1', 'b2', 'c2', 'z'] -> contained in a join of Gamma: True
     curve inside piece P_A misses territories of ['b1', 'b2', 'c1', 'c2', 'z'] -> in a join: True ; with one private vertex of the piece added (['a2']): True
     curve inside piece P_B misses territories of ['a2', 'b1', 'b2', 'c1', 'c2'] -> in a join: True ; with one private vertex of the piece added ([]): True
     curve inside piece P_C misses territories of ['a1', 'a2', 'c1', 'c2', 'z'] -> in a join: True ; with one private vertex of the piece added (['b2']): True
     curve inside piece P_D misses territories of ['a1', 'a2', 'b2', 'c1', 'c2'] -> in a join: True ; with one private vertex of the piece added ([]): True
     curve inside piece P_E misses territories of ['a1', 'a2', 'b1', 'b2', 'z'] -> in a join: True ; with one private vertex of the piece added (['c2']): True
     curve inside piece P_F misses territories of ['a1', 'a2', 'b1', 'b2', 'c2'] -> in a join: True ; with one private vertex of the piece added ([]): True
  clique tree #2: edges [('A', 'B'), ('B', 'D'), ('C', 'D'), ('D', 'F'), ('E', 'F')]
     territories: {'a1': 'AB', 'a2': 'A', 'b1': 'CD', 'b2': 'C', 'c1': 'EF', 'c2': 'E', 'z': 'BDF'}
     pairs: {'nested': ['a1a2', 'b1b2', 'c1c2'], 'disjoint': ['a1b1', 'a1b2', 'a1c1', 'a1c2', 'a2b1', 'a2b2', 'a2c1', 'a2c2', 'a2z', 'b1c1', 'b1c2', 'b2c1', 'b2c2', 'b2z', 'c2z'], 'overlap': ['a1z', 'b1z', 'c1z']}
     fact (i) for all 8 sets: True ; fact (ii): True
     curve c_AB misses territories of ['a2', 'b1', 'b2', 'c1', 'c2', 'z'] -> contained in a join of Gamma: True
     curve c_BD misses territories of ['a1', 'a2', 'b1', 'b2', 'c1', 'c2'] -> contained in a join of Gamma: True
     curve c_CD misses territories of ['a1', 'a2', 'b2', 'c1', 'c2', 'z'] -> contained in a join of Gamma: True
     curve c_DF misses territories of ['a1', 'a2', 'b1', 'b2', 'c1', 'c2'] -> contained in a join of Gamma: True
     curve c_EF misses territories of ['a1', 'a2', 'b1', 'b2', 'c2', 'z'] -> contained in a join of Gamma: True
     curve inside piece P_A misses territories of ['b1', 'b2', 'c1', 'c2', 'z'] -> in a join: True ; with one private vertex of the piece added (['a2']): True
     curve inside piece P_B misses territories of ['a2', 'b1', 'b2', 'c1', 'c2'] -> in a join: True ; with one private vertex of the piece added ([]): True
     curve inside piece P_C misses territories of ['a1', 'a2', 'c1', 'c2', 'z'] -> in a join: True ; with one private vertex of the piece added (['b2']): True
     curve inside piece P_D misses territories of ['a1', 'a2', 'b2', 'c1', 'c2'] -> in a join: True ; with one private vertex of the piece added ([]): True
     curve inside piece P_E misses territories of ['a1', 'a2', 'b1', 'b2', 'z'] -> in a join: True ; with one private vertex of the piece added (['c2']): True
     curve inside piece P_F misses territories of ['a1', 'a2', 'b1', 'b2', 'c2'] -> in a join: True ; with one private vertex of the piece added ([]): True
  clique tree #3: edges [('A', 'B'), ('B', 'F'), ('C', 'D'), ('D', 'F'), ('E', 'F')]
     territories: {'a1': 'AB', 'a2': 'A', 'b1': 'CD', 'b2': 'C', 'c1': 'EF', 'c2': 'E', 'z': 'BDF'}
     pairs: {'nested': ['a1a2', 'b1b2', 'c1c2'], 'disjoint': ['a1b1', 'a1b2', 'a1c1', 'a1c2', 'a2b1', 'a2b2', 'a2c1', 'a2c2', 'a2z', 'b1c1', 'b1c2', 'b2c1', 'b2c2', 'b2z', 'c2z'], 'overlap': ['a1z', 'b1z', 'c1z']}
     fact (i) for all 8 sets: True ; fact (ii): True
     curve c_AB misses territories of ['a2', 'b1', 'b2', 'c1', 'c2', 'z'] -> contained in a join of Gamma: True
     curve c_BF misses territories of ['a1', 'a2', 'b1', 'b2', 'c1', 'c2'] -> contained in a join of Gamma: True
     curve c_CD misses territories of ['a1', 'a2', 'b2', 'c1', 'c2', 'z'] -> contained in a join of Gamma: True
     curve c_DF misses territories of ['a1', 'a2', 'b1', 'b2', 'c1', 'c2'] -> contained in a join of Gamma: True
     curve c_EF misses territories of ['a1', 'a2', 'b1', 'b2', 'c2', 'z'] -> contained in a join of Gamma: True
     curve inside piece P_A misses territories of ['b1', 'b2', 'c1', 'c2', 'z'] -> in a join: True ; with one private vertex of the piece added (['a2']): True
     curve inside piece P_B misses territories of ['a2', 'b1', 'b2', 'c1', 'c2'] -> in a join: True ; with one private vertex of the piece added ([]): True
     curve inside piece P_C misses territories of ['a1', 'a2', 'c1', 'c2', 'z'] -> in a join: True ; with one private vertex of the piece added (['b2']): True
     curve inside piece P_D misses territories of ['a1', 'a2', 'b2', 'c1', 'c2'] -> in a join: True ; with one private vertex of the piece added ([]): True
     curve inside piece P_E misses territories of ['a1', 'a2', 'b1', 'b2', 'z'] -> in a join: True ; with one private vertex of the piece added (['c2']): True
     curve inside piece P_F misses territories of ['a1', 'a2', 'b1', 'b2', 'c2'] -> in a join: True ; with one private vertex of the piece added ([]): True
  number of clique trees: 3 

== Lambda = co-half-graph of height 3 (Gamma = bipartite half-graph H_3: a_i ~ b_j iff i <= j) ==
  Lambda edges: [('a1', 'a2'), ('a1', 'a3'), ('a2', 'a3'), ('a2', 'b1'), ('a3', 'b1'), ('a3', 'b2'), ('b1', 'b2'), ('b1', 'b3'), ('b2', 'b3')]
  Gamma  edges: [('a1', 'b1'), ('a1', 'b2'), ('a1', 'b3'), ('a2', 'b2'), ('a2', 'b3'), ('a3', 'b3')]
  Lambda connected: True | chordal: True | dominating vertices of Lambda (= isolated vertices of Gamma): []
  maximal cliques: {'A': ['a1', 'a2', 'a3'], 'B': ['a2', 'a3', 'b1'], 'C': ['a3', 'b1', 'b2'], 'D': ['b1', 'b2', 'b3']}  r = 4  genus >= 2r = 8
  vertex sets not contained in a join of Gamma: 32; minimal: [['a2', 'b1'], ['a3', 'b1'], ['a3', 'b2']]
  clique tree #1: edges [('A', 'B'), ('B', 'C'), ('C', 'D')]
     territories: {'a1': 'A', 'a2': 'AB', 'a3': 'ABC', 'b1': 'BCD', 'b2': 'CD', 'b3': 'D'}
     pairs: {'nested': ['a1a2', 'a1a3', 'a2a3', 'b1b2', 'b1b3', 'b2b3'], 'disjoint': ['a1b1', 'a1b2', 'a1b3', 'a2b2', 'a2b3', 'a3b3'], 'overlap': ['a2b1', 'a3b1', 'a3b2']}
     fact (i) for all 32 sets: True ; fact (ii): True
     curve c_AB misses territories of ['a1', 'b1', 'b2', 'b3'] -> contained in a join of Gamma: True
     curve c_BC misses territories of ['a1', 'a2', 'b2', 'b3'] -> contained in a join of Gamma: True
     curve c_CD misses territories of ['a1', 'a2', 'a3', 'b3'] -> contained in a join of Gamma: True
     curve inside piece P_A misses territories of ['b1', 'b2', 'b3'] -> in a join: True ; with one private vertex of the piece added (['a1']): True
     curve inside piece P_B misses territories of ['a1', 'b2', 'b3'] -> in a join: True ; with one private vertex of the piece added ([]): True
     curve inside piece P_C misses territories of ['a1', 'a2', 'b3'] -> in a join: True ; with one private vertex of the piece added ([]): True
     curve inside piece P_D misses territories of ['a1', 'a2', 'a3'] -> in a join: True ; with one private vertex of the piece added (['b3']): True
  number of clique trees: 1 

