File: compactification.rules

package info (click to toggle)
polymake 4.14-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 35,888 kB
  • sloc: cpp: 168,933; perl: 43,407; javascript: 31,575; ansic: 3,007; java: 2,654; python: 632; sh: 268; xml: 117; makefile: 61
file content (89 lines) | stat: -rw-r--r-- 3,643 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#  Copyright (c) 1997-2024
#  Ewgenij Gawrilow, Michael Joswig, and the polymake team
#  Technische Universität Berlin, Germany
#  https://polymake.org
#
#  This program is free software; you can redistribute it and/or modify it
#  under the terms of the GNU General Public License as published by the
#  Free Software Foundation; either version 2, or (at your option) any
#  later version: http://www.gnu.org/licenses/gpl.txt.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#-------------------------------------------------------------------------------

declare property_type SedentarityDecoration : c++ (name=>"fan::compactification::SedentarityDecoration", include=>"polymake/fan/compactification.h");

object PolyhedralComplex {

   # @category Combinatorics
   # The Hasse diagram of the compactification of the polyhedral complex.
   #
   # For a simplicial polyhedral complex, this is the cubical compactification
   # (or cubical complex, see [Omid Amini: "The combinatorial Chow ring of
   # products of graphs"]).
   #
   # For tropical varieties, this is the tropical compactification, as in 
   # [Brian Osserman and Joseph Rabinoff: "Lifting nonproper tropical
   # intersections"].
   #
   # The vertices of the compactification correspond to the faces of the
   # original complex that have the same dimension as their recession cone. We
   # call the face corresponding to a vertex the 'realisation' of the vertex.
   #
   # The decoration has four entries:
   # 1. The face in the vertices of the compactification
   # 2. The rank of the face
   # 3. The realisation of the face. This is the union of the realisations of
   #    the new vertices.
   # 4. The sedentarity of the face. This is the intersection of the
   #    sedentarities of the vertices.
   #
   # @example [prefer cdd] The compactification of the positive orthant in three dimensions
   # has the same Hasse diagram as the three dimensional cube.
   # > $pc1 = new PolyhedralComplex(POINTS=>[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]], INPUT_POLYTOPES=>[[0,1,2,3]]);
   # > print $pc1->COMPACTIFICATION->DECORATION;
   # | ({} 0 {} {})
   # | ({0} 1 {0 1 2 3} {1 2 3})
   # | ({1} 1 {0 2 3} {2 3})
   # | ({2} 1 {0 1 3} {1 3})
   # | ({3} 1 {0 1 2} {1 2})
   # | ({4} 1 {0 3} {3})
   # | ({5} 1 {0 2} {2})
   # | ({6} 1 {0 1} {1})
   # | ({7} 1 {0} {})
   # | ({0 1} 2 {0 1 2 3} {2 3})
   # | ({0 2} 2 {0 1 2 3} {1 3})
   # | ({0 3} 2 {0 1 2 3} {1 2})
   # | ({1 4} 2 {0 2 3} {3})
   # | ({1 5} 2 {0 2 3} {2})
   # | ({2 4} 2 {0 1 3} {3})
   # | ({2 6} 2 {0 1 3} {1})
   # | ({3 5} 2 {0 1 2} {2})
   # | ({3 6} 2 {0 1 2} {1})
   # | ({4 7} 2 {0 3} {})
   # | ({5 7} 2 {0 2} {})
   # | ({6 7} 2 {0 1} {})
   # | ({0 1 2 4} 3 {0 1 2 3} {3})
   # | ({0 1 3 5} 3 {0 1 2 3} {2})
   # | ({0 2 3 6} 3 {0 1 2 3} {1})
   # | ({1 4 5 7} 3 {0 2 3} {})
   # | ({2 4 6 7} 3 {0 1 3} {})
   # | ({3 5 6 7} 3 {0 1 2} {})
   # | ({0 1 2 3 4 5 6 7} 4 {0 1 2 3} {})
   # | ({-1} 5 {-1} {})
   property COMPACTIFICATION : Lattice<SedentarityDecoration>;

   rule COMPACTIFICATION.ADJACENCY, COMPACTIFICATION.DECORATION, \
      COMPACTIFICATION.INVERSE_RANK_MAP, COMPACTIFICATION.TOP_NODE, \
      COMPACTIFICATION.BOTTOM_NODE : \
      FAR_VERTICES, VERTICES, HASSE_DIAGRAM.ADJACENCY, \
      HASSE_DIAGRAM.DECORATION, HASSE_DIAGRAM.INVERSE_RANK_MAP, \
      HASSE_DIAGRAM.TOP_NODE, HASSE_DIAGRAM.BOTTOM_NODE \
   {
      $this->COMPACTIFICATION = compactify($this);
   }

}