--- /dev/null
+
+from abc import ABC, abstractmethod, abstractproperty
+
+
+__all__ = [
+ 'GeometricObject',
+]
+
+
+class GeometricObject(ABC):
+
+ @abstractproperty
+ def symbols(self):
+ pass
+
+ @property
+ def dimension(self):
+ return len(self.symbols)
+
+ @abstractmethod
+ def aspolyhedron(self):
+ pass
+
+ def asdomain(self):
+ return self.aspolyhedron()