# Service Colonies: A Novel Architectural Style for Developing Software
Systems with Autonomous and Cooperative Services

Thakshila Dilrukshi  The University of MelbourneVictoriaAustralia3010
<EMAIL_ADDRESS>0009-0002-7422-2303 ,  Artem Polyvyanyy  The
University of MelbourneVictoriaAustralia3010<EMAIL_ADDRESS>0000-0002-7672-1643 ,  Rajkumar Buyya  The University of
MelbourneVictoriaAustralia3010<EMAIL_ADDRESS>0000-0001-9754-6496 ,
Colin Fidge  Queensland University of TechnologyQueenslandAustralia
<EMAIL_ADDRESS>0000-0002-9410-7217 and  Alistair Barros  Queensland
University of TechnologyQueenslandAustralia<EMAIL_ADDRESS>0000-0001-8980-6841

(Date: March 2024)

###### Abstract.

This paper presents the concept of a _service colony_ and its characteristics.
A _service colony_ is a novel architectural style for developing a software
system as a group of autonomous software services cooperating to fulfill the
objectives of the system. Each inhabitant service in the colony implements a
specific system functionality, collaborates with the other services, and makes
proactive decisions that impact its performance and interaction patterns with
other inhabitants. By increasing the level of self-awareness and autonomy
available to individual system components, the resulting system is
increasingly more decentralized, distributed, flexible, adaptable,
distributed, modular, robust, and fault-tolerant.

††conference: International Workshop on Software Engineering in 2030; July
2024; Puerto Galinàs (Brazil)

##  1\. Introduction

The architecture of a software system defines its structure and behavior in
the context of the environment in which the system operates. Software system
architectures evolve to be compatible with changing customer demands. For
example, enterprise application architectures have evolved from legacy
mainframe-based software systems and service-oriented architectures to
microservices architectures (Newman, 2015; Lewis and Fowler, 2014; Abrams and
Schulte, 2008). Cloud-based technologies accelerate this transition by
capitalizing on their scalability, flexibility, security, cost-effectiveness,
and monitoring capabilities. The challenges of modern software systems,
however, concern the increasing complexity of managing distributed
architectures in highly dynamic environments. Despite changes occurring in its
environment, a software system must continue to operate reliably and
efficiently, delivering its functionalities to the users. Therefore, it is
desirable to allow systems to adjust their structures and behaviors at runtime
based on the environmental changes to enhance the transparency, elasticity,
resilience, and deployment management (Filho et al., 2021).

Due to substantial investments already made in software systems, manually
migrating them to new architectural styles is often infeasible. Automated
enhancement of existing systems to meet current and future requirements is a
more reasonable and cost-effective alternative. However, ensuring continuous
operation under varying conditions often requires extensive human testing and
supervision, leading to significant costs for configuring, troubleshooting,
and maintaining applications (Banijamali et al., 2020). As a result, there is
an increasing demand for automated management and monitoring of distributed
systems to reduce costs while ensuring their robustness and quality.

Self-adaptive software systems emerged to reduce uncertainty and complexity in
dynamic operating environments (Banijamali et al., 2020). They aim to improve
the reliability, availability, flexibility, and performance of systems
(Mendonça et al., 2021). A self-adaptive autonomous software system monitors
its internal and external states, identifying when and how to reconfigure to
manage new conditions and dynamically adapt the software architecture at
runtime (Mendonça et al., 2021). Developing a self-adaptive software system is
challenging due to conflicting system goals, the need to monitor different
quality of service (QoS) properties, and handling complex mechanisms of
adaptation and their effects (Cheng et al., 2009). Once developed, self-
adaptive systems can perform self-configuring, self-healing, self-optimizing,
and self-protecting functions (Kephart and Chess, 2003; Garlan et al., 2004).

With the increased demand for microservices-based systems, self-adaptive
microservices have gained attention. Even though decentralized decision-making
and structural modifications can increase the system’s adaptability, the often
practiced strategy in this space is a top-down architecture with centralized
monitoring and decision-making components (Krupitzer et al., 2016). This
approach can support the development of agent-based software systems with
improved autonomy in individual sub-systems while achieving the overall
system’s goals (Jennings, 2001, 2000). Existing self-adaptive microservice
systems focus on monitoring and managing the adaptation control loop and self-
healing properties of the system. The prominent adaptation strategy is
reactive adaptation, where the adaptation solution applies when the problem
occurs (Filho et al., 2021). Structural changes in the application layer via
service aggregations and splittings, as well as the introduction and removal
of communication links between system services, would increase the level of
flexibility of self-adaptive systems, providing scope for autonomous
adaptations of the system’s architecture. However, instead of the application
layer, the focus in self-adaptive microservices is often on the management of
the infrastructure layer, aiming to optimize system performance. Additionally,
aspects relevant to the requirements of edge computing and executing systems
under resource-constrained environments (Rahmanian et al., 2022) are essential
characteristics of future software systems to enhance the quality of the
services provided to end users.

This paper introduces _service colonies_ , a software architectural style for
developing systems as groups of autonomous software services that cooperate to
fulfill the global objectives of the overall system, increasing the level of
autonomy and intelligence of the distributed (micro)services-based systems.
Each inhabitant service of a colony fulfills a specific part of the
functionality of the overall system the colony implements. By following
prescribed or acquired through learning rules and by interacting with other
inhabitants, the services demonstrate a swarm-like global intelligence in
adapting the individual services, their deployment in the environment, and the
configuration of communication links between the services and the environment
that ensures continuous effective and efficient performance of the system.
Though individual services can have different roles, no system components are
envisioned to implement centralized control over the behavior and
configuration of the overall system. An inhabitant service of a colony can
interact with other services and the environment. Through interactions of
individual services with the environment, the system interacts with its users
to receive tasks and return results, as well as the hardware, software, and
network infrastructure in which the system is deployed to optimize the
utilization of the available resources. The interactions between the services
ensure complex functions composed of functionalities of the interacting
services can be realized.

By monitoring their behavior and environment, the inhabitant services of a
colony identify their own and the overall system’s performance bottlenecks and
resource constraints and automatically adapt themselves and their
communication links to overcome these issues. Therefore, service colonies
follow a proactive adaptation strategy where the actions are taken before
problems occur. Consequently, a service colony monitors, adapts, and optimizes
its behavior through self-diagnosis and adaptations of individual components
based on environmental conditions. Thus, it self-manages and self-architects
in a dynamic environment. Moreover, it is an autonomous, goal-oriented, and
goal-directed system that aims to enhance the quality of service provided to
its users. In this way, service colonies extend self-adapting software
systems, aiming to reduce the costly human interventions typically required
for continuous monitoring, troubleshooting, and application maintenance.

The remainder of the paper proceeds as follows. Section 2 discusses existing
service-based software architectures. Then, Section 3 presents service
colonies. Section 4 discusses the envisaged benefits of this new architectural
style, while Section 5 identifies challenges associated with the development
of systems as service colonies. Finally, Section 6 concludes the paper.

##  2\. Related Work

In this section, we discuss three areas: (micro)service-oriented architectural
styles (Abrams and Schulte, 2008; Lewis and Fowler, 2014; Newman, 2015), self-
adaptive software systems (Kramer and Magee, 1990, 2007), and self-adaptive
(micro)services-based systems (Glazier and Garlan, 2019; Gomaa and Hashimoto,
2012).

Service-oriented architectures (Abrams and Schulte, 2008) and microservices
(Lewis and Fowler, 2014; Newman, 2015) are software architectural styles that
describe a system as a group of communicating services. Often, such a system
identifies a primary service responsible for communications within the system.
When a system receives a request, it delegates the necessary functions to its
constituent services. While executing a specific functionality, a service can
communicate with other services in the system. The response to the user is
provided by aggregating the results of potentially multiple service calls.

A self-adaptive system architecture is illustrated schematically in Figure 1.
A self-adaptive system can learn by observing the environment in which it is
embedded. It has monitoring and decision-making components that are
illustrated in Figure 1 as the system monitor component and the action
controller component, respectively. The monitor component observes the
environmental changes (Metzger et al., 2024; Mendonça et al., 2021; Weyns et
al., 2018). Once a significant change is identified, the monitor triggers the
reconfiguration request. The action controller component identifies the
required changes based on static rules or dynamically identified
interventions. Subsequently, the action controller can initiate the
reconfiguration of the system. Finally, the reconfigured system is deployed in
the environment. Such self-adaptations are implemented as a repetitive,
ongoing process.

Figure 1. Self-adaptive system architecture

The prominent technique for developing self-adaptive software systems is
through control loop (Cheng et al., 2009), which overviews the main activities
of the system with a feedback cycle that starts with the relevant data
collected from the system environment. The MAPE-K control loop (IBM, 2006;
Kephart and Chess, 2003) monitors, analyzes, plans, and executes self-adaptive
software systems (Gheibi et al., 2020; Malburg et al., 2023; Metzger et al.,
2024). Policy-based adaptations implement a static approach, where system
experts analyze and design a policy repository for condition-triggered
adaptations (Khakpour et al., 2010; Garlan et al., 2009). These include pre-
defined scenarios and corresponding actions to adapt the system. Rainbow
(Garlan et al., 2004), SASSY (Menascé et al., 2011), MUSIC (Hallsteinsen et
al., 2012), and REACT (Pfannemüller et al., 2020) are example frameworks for
software systems with self-adaptation control loops. However, these frameworks
are not tailored towards decentralized systems of communicating services and
require a profound knowledge of self-adaptive systems development
(Pfannemüller et al., 2020). Rainbow specifies an abstract architecture model
to validate runtime properties of the system, evaluate them against the model
of constraint violations, and perform global- and module-level adaptations of
the system (Garlan et al., 2004). SASSY (Self-architecting Software Systems)
is a model-driven framework that, based on pre-defined software adaptation
patterns, aims to accommodate requirement changes in a dynamic environment. It
generates candidate software architectures and selects the one that best
serves stakeholder-defined, scenario-based quality-of-service (QoS) goals
(Menascé et al., 2011). Finally, MUSIC provides a model-driven development
approach combined with middleware that facilitates dynamic and automatic
adaptation based on adaptation concerns (Hallsteinsen et al., 2012). SASSY,
MUSIC, and REACT are all based on the MAPE-K control loop principles.

Self-adaptation in SOA has been discussed in the literature (Gomaa and
Hashimoto, 2012; Gjørven et al., 2008). Existing works propose middleware that
supports cross-layer adaptation of SOA systems by considering the server-side
perspectives (Gjørven et al., 2008). This approach supports the adaptation of
the service interface and application layer. It is based on a common meta-
model of the two layers. Furthermore, dynamic self-adaptation in distributed
service-oriented transactions (Gomaa and Hashimoto, 2012) is an extension of
the SASSY framework (Menascé et al., 2011). This extension proposes dynamic
software adaptations in distributed transactions using a two-phase commit
protocol. Specifically, it defines adaptation patterns and state machine
models for transaction commits.

An automated approach for managing a collection of autonomic systems is based
on the concept of a meta-manager that uses a parameterized adaptation policy
(Glazier et al., 2020; Glazier and Garlan, 2019). In this approach, a system
is seen as composed of multiple constituent systems. Each constituent system
contains a manager that keeps track of system metrics directly related to the
overall system’s quality of service objectives. Each manager selects the
actions that will improve the system’s performance. The approach implements a
hierarchical control strategy that uses control theory to manage the behavior
of the system while outsourcing decision-making responsibility to individual
meta-manager units. However, this approach does not address the problem of
structural changes in the application layer. Instead, it performs
resource/capacity optimizations based on the runtime cost and response time
analysis.

Based on the systematic mapping study (Filho et al., 2021), the state-of-the-
art self-adaptive microservices-based systems focus on infrastructure layer
adaptations (Sampaio et al., 2019; Kehrer and Blochinger, 2018; Magableh and
Almiani, 2019) or multi-layer adaptations (Liu et al., 2018; Gjørven et al.,
2008; Zhang et al., 2019), while no studies address the problem of self-
adaptation strategies in the application layer. Furthermore, there are works
on reactive adaptation strategies, in which adaptations are applied after
problems are identified (Sampaio et al., 2019; Kehrer and Blochinger, 2018;
Magableh and Almiani, 2019). Proactive adaptation strategies have been
proposed for scientific workflows (Nguyen and Nahrstedt, 2017) and IoT
architectures (De Sanctis et al., 2020). Centralized monitoring has been
practiced as the prominent adaptation control mechanism (Sampaio et al., 2019;
Liu et al., 2018; Zhang et al., 2019).

The state-of-the-art studies on self-adaptive systems focus on the areas of
cloud-based services, such as IoT and IaaS, rather than service-based software
systems (Wong et al., 2022). These approaches, which span across various
domains (robotic, IoT, communication, automotive, e-commerce), utilize
centralized monitoring, pre-defined models, and rule-based techniques (Wong et
al., 2022; Krupitzer et al., 2016). The introduction of self-managing and
self-architecting principles in software systems could increase the
sustainability of (micro)service-based architectures.

##  3\. Service Colonies

A _service colony_ is a system composed of software services, or _inhabitants_
, that interact with each other to perform specific functions. The inhabitants
are deployed in a distributed computing environment, such as a cloud, edge
computing infrastructure, or IoT devices. Being intrinsically distributed, a
service colony can exercise different levels of scatter in its control and
decision-making capabilities across individual inhabitants, ranging from
decentralized via divisional or hierarchical to centralized.

An _inhabitant_ of a colony is responsible for performing some dedicated
functionality, a _service_ , within the system and exhibits a degree of
autonomy. Hence, inhabitants within a colony may have diverse characteristics
and capabilities, reflecting their different roles and responsibilities.
Colony inhabitants have goals they aim to achieve and strive to optimize their
performance and the performance of the overall system. Therefore, they are
self- and situationally-aware entities. Inhabitants monitor their performance
relative to their responsibilities, accepted service obligations, and the
environment, and plan actions that ensure the desired quality of service. In
doing so, they can proactively make decisions and take actions, such as
replicating, migrating to another, more performant compute node, splitting
into two entities, and seeking integration with another colony’s inhabitants.
An inhabitant may rely on learning mechanisms to improve their operations and
decision rules based on prior experiences, allowing them to adapt and enhance
their behavior.

An inhabitant can interact with other inhabitants and the environment. An
inhabitant can request services from other inhabitants or provide service to
them. In general, interaction patterns in a service colony can range from
simple message exchanges between two inhabitants to complex collaboration
protocols involving multiple inhabitants and the environment. Through these
interactions, inhabitants coordinate activities, exchange information, and
take inputs from and return outputs of the system to the users.

The environment of a service colony comprises its inhabitants, the computing
infrastructure utilized by the colony, and the communication channels that the
colony inhabitants can exploit. As special components in the environment, we
identify the users of the overall colony system. The users seek to accomplish
tasks and functions by interacting with interface entities of the colony and
receiving results of such requests. The users seek to accomplish tasks and
functions by interacting with interface entities of the colony and receiving
the results of such requests. The environment of a service colony is, thus,
inherently dynamic and stochastic.

As opposed to a self-adaptive system, a service colony has decentralized
monitoring. In this proposed architecture, all the inhabitants act as
autonomous agents. There is no special inhabitant responsible for overall
communication, monitoring, or dynamic adaptations. Instead, each inhabitant
can learn from its behavior and initiate actions to adjust the system
automatically. Each individual inhabitant of a service colony can be
(sub-)optimal, but collectively, they aim to optimize the overall system
performance. Figure 2 sketches an example composition of service inhabitants
in a service colony. Arcs between inhabitants indicate the links used to
support communications between the individuals. Inhabitants can communicate
with other inhabitants, for example, via messages passing through
communication links. Analytical messages and behavioral messages are the two
types of special messages sent to the environment. Each inhabitant can
initiate a change in the colony based on its analysis of itself and the
environment using analytical messages. These can involve an inhabitant
splitting, merging with another inhabitant, or adding or removing
communication links between inhabitants. Furthermore, an inhabitant can send
behavioral messages to the environment, indicating its capabilities or
limitations. Examples of behavioral messages include the availability of more
resources to be occupied by another inhabitant, delays in requests or
responses, or the volume of data in requests or responses.

Figure 2. An example service colony architecture

###  3.1. Inhabitant Characteristics

An inhabitant is the core building element of a service colony system. It
encapsulates a delegated service, part of the functionality of the overall
system, and monitors and proactively optimizes its performance. It is a self-
contained entity. Each inhabitant has a boundary and a designated
functionality that can be clearly distinguished from other inhabitants.
Inhabitants are autonomous agents that can act and react independently.
Inhabitants have a dynamic state that can change over time. Inhabitants have a
state that can change over time. The future actions taken by an inhabitant
depend on its current state. Inhabitants can share their state with other
inhabitants in the colony. It is intended that an inhabitant frequently
communicates and delivers services to other inhabitants. Thus, the current
state of an inhabitant can be influenced by the state of another inhabitant in
the colony and its behavior. Inhabitants are exploratory, and they can learn
and adapt to the environment. They can learn from the environment and adapt
their behavior based on their experience. Therefore, inhabitants can
proactively adjust the system based on their behavior. Each inhabitant has
goals, making it goal-directed and goal-oriented. An inhabitant attempts to
accomplish these goals via its behavior and optimize the individual and
overall system objective via adaptive learning.

###  3.2. Inhabitant Architecture

Figure 3. Inhabitant architecture

Figure 3 depicts the architecture of an inhabitant. Each inhabitant has a
boundary and can send messages to and receive messages from the external
environment. The sub-modules of an inhabitant include system functionality,
communication, knowledge, and decision-making. These sub-modules communicate
based on their responsibilities to provide the functionalities of the
inhabitant.

The _communication_ sub-module manages all interactions of the inhabitant and
serves as its entry and exit point. Messages received from the environment,
including those from other inhabitants, are captured by the communication
module and forwarded to the relevant sub-modules. Messages initiated by the
inhabitant and addressed to the environment are also routed through the
communication sub-module for dissemination to their recipients. Upon receiving
a message, the communication module validates its content to determine which
sub-module is responsible for further processing. For example, functionality-
related messages, such as requests to perform a function, are directed to the
system functionality sub-module. Messages concerning environmental behavior
are forwarded to the knowledge sub-module, while those pertaining to
configurations and adaptations of inhabitants are redirected to the decision
sub-module. Messages sent to the environment are routed to their intended
recipients. Analytical messages can target individual inhabitants, subsets of
inhabitants, or all inhabitants within the service colony. Behavioral messages
are delivered to colony inhabitants based on the communication links within
the topology of the colony.

The service colony has obligatory system functionalities that are distributed
across its inhabitants. The _system functionality_ sub-module is responsible
for executing the inhabitant’s delegated functionalities. Each inhabitant
collaborates with other inhabitants in the service colony to fulfill these
obligations. After completing a delegated function, an inhabitant responds to
the inhabitants or users in the environment who have requested the result of
the function via the communication module. Additionally, it sends log data to
the knowledge sub-module to collect internal behavioral information.

Inhabitants monitor themselves and their environment. The _knowledge_ sub-
module builds the inhabitant’s intelligence that aggregates the experiences of
its monitoring processes. During initialization, an inhabitant collects data
related to the service colony’s structure and behavior. This information
includes the total number of inhabitants, their configurations, and initial
behavioral data of inhabitants. During execution, data and experiences stem
from two sources. Functional data is collected from the system functionality
sub-module. Additionally, an inhabitant gathers behavioral and analytical data
of the service colony via the communication sub-module. The inhabitant does
not accept all the data received from the environment. It filters data based
on quality and relevance. Furthermore, it tracks the origin of the data for
the decision-making process executed by the decision sub-module.

Inhabitants can react to changes in their environment. They learn and take
action based on their behavior and the evolution of the environment. The
_decision_ sub-module handles these learning and decision-making functions.
This sub-module depends on data provided by the knowledge sub-module. Learning
is driven by data available in the knowledge sub-module and previous decisions
made by the decision sub-module. An inhabitant can use adaptive learning to
dynamically adjust to the environment based on the current and past behavior
of the system. Data collected after implementing a decision is used as
feedback for learning. The decision sub-module handles two functions. First,
if data from the inhabitant indicates a relevant behavior, it disseminates
that message to the environment via the communication sub-module. These are
behavioral messages. Second, it analyzes inhabitant and environment data to
identify system operations, such as operations relevant to rearchitecting the
system, and actions for improving performance. Such information is shared with
other inhabitants in the colony via analytical messages. Each inhabitant has
objectives captured as collections of rules within the decision sub-module.
These rules can be updated dynamically via the interface provided to the
decision sub-module. Therefore, during execution, new rules can be added,
while existing rules can be modified or deleted.

###  3.3. Operations

An inhabitant can replicate itself. If an inhabitant experiences a high volume
of requests and no further optimizations of the inhabitant are possible, it
can decide to replicate itself to accommodate the high volume of service
requests.

Figure 4. Service colony after merging

A service colony can change its structure to adapt to the environment and
optimize its communication patterns. Four basic operations are proposed to
support such adaptations: joining two or more inhabitants, splitting an
inhabitant into two or more inhabitants, and adding and removing communication
links between inhabitants. Two or more inhabitants can _join_ to form a single
inhabitant, for example, to simplify the communication structure between
themselves and the rest of the colony during a low system load. Alternatively,
such joining can be triggered to maximize the resource utilization in the
system, hence reducing the operation cost. A complex join of multiple
inhabitants can be implemented as a sequence of atomic joins between pairs of
inhabitants. That is, two inhabitants merge in the first step. Then, another
inhabitant joins with the previously merged inhabitant. An inhabitant can
_split_ into multiple inhabitants via a sequence of atomic splits of one
inhabitant into two inhabitants to distribute its functionality and
responsibilities among multiple system elements. Such splittings can be
initiated based on the identified performance bottlenecks and resource-
intensive functionalities that degrade the quality of the service provided.
Hence, it can split its functionalities to maximize performance, for instance,
by replicating those decomposed services that receive high request loads.
Finally, an inhabitant can establish direct communication links with other
inhabitants, for example, to reduce current communication latency or to
identify peer inhabitants from which to request required services. Moreover,
merging and splitting operations in the system could lead to the addition and
removal of communication links in the colony.

Figure 4 depicts the re-architectured system from Figure 2 after merging
inhabitant 6 with inhabitant 5. This operation leads to redirecting the
communication links of inhabitant 6 to and from the resulting inhabitant 5. An
example splitting of inhabitant 3 is depicted in Figure 5. In this case,
inhabitant 7 is split out of the original inhabitant 3 in the system. In this
example, a communication link is established between the resulting
inhabitants. The inhabitants can use this link to request services from each
other.

One can come up with different strategies for deciding which adaptations of
the system structure to perform. Such strategies can result in the
authoritative execution of the intended adaptation or an adaptation after
confirmation from peers, confirmation from a group of inhabitants, or
confirmation from the entire service colony. Inhabitants execute authoritative
actions without requesting confirmation from other members of the colony.
Alternatively, an inhabitant can negotiate the intended splittings and joins
with other inhabitants to ensure mutual agreement and maximal benefit for all
the negotiators.

Figure 5. Service colony after splitting

Inhabitants can request confirmation from their peers in case the change
affects them. Similarly, if the change affects a group of inhabitants of the
colony, permissions can be requested from the impacted inhabitants. For
instance, if inhabitant 6 from Figure 5 decides to split into two services, it
may require obtaining permission from inhabitants 1, 2, 3, and 5 since they
have direct communication links with inhabitant 6. Execution of an adaptation
decision is initiated by sending a message to the relevant inhabitants to
request permission. Once these requests arrive at the recipients, they
validate the requested change. The validation is based on the knowledge stored
within the decision sub-modules. Once validated, the inhabitants reply with
approvals or rejections of the change. If the change is approved, the
requesting inhabitant executes the change process. At the beginning of this
process, the inhabitant confirms the start of the change to the environment.
After the inhabitant receives a confirmation to start the process, it should
not accept further adaptation requests until the current execution process is
completed and confirmed. Then, the inhabitant executes the change. After
completing the change, it informs the environment by sending the execution
completion message. Then, other inhabitants update their configurations based
on the executed change. These updates can involve adding, removing, or
updating new or existing links between inhabitants.

Figure 6 illustrates an example communication sequence for splitting an
inhabitant in a service colony. An inhabitant requests the environment to
split. After other inhabitants accept the request, the splitting task is
confirmed, and the splitting process is executed. After successful splitting,
the confirmation regarding the successful splitting is sent to the
environment. Then, the relevant inhabitants of the colony update their
knowledge and links. If the inhabitant’s request to split is rejected, no
further actions are taken, and the communication ends. Figure 7 illustrates
the scenario of merging two inhabitants. In this case, inhabitant 2 identifies
the need to merge and acts as the leading inhabitant of the change process.
First, it seeks to get confirmation from inhabitant 1, the inhabitant it
intends to merge with. Once inhabitant 1 accepts the merging request, the next
request from inhabitant 2 to the environment is sent to get approval to merge.
If the environment responds positively, the merging process commences. After
the merging process is completed, the execution confirmation message is sent
to the environment to update relevant configurations.

Figure 6. Splitting request communication sequence Figure 7. Merging request
communication sequence

##  4\. Benefits

Both service-oriented architecture and microservices architecture identify
loosely coupled services that can be deployed separately from the main
application. These individual services can be independently designed,
developed, and tested. Furthermore, using containerization techniques,
services can auto-scale in a cloud-based environment based on their
performance. In general, a self-adapting system handles specific domain
requirements and resource optimizations and adaptations in the infrastructure
layer using reactive error-handling functionality executed in pre-modeled
situations (Wong et al., 2022; Krupitzer et al., 2016). Service colonies,
however, are not restricted by pre-identified or pre-modeled scenarios. A
colony can proactively re-architect itself using a bottom-up approach and
decentralized analysis of the system.

Consider an online shopping system developed as a service-based application.
Assume that user registration and shopping cart actions are developed as two
separate services within the system. In December, due to the festive season,
the system receives a 100% surge in the volume of requests. During this high
workload period, shopping cart services can experience performance
bottlenecks, for example, due to latency in the payment handling process. A
standard way to address this scenario is to increase resources for the entire
shopping cart actions service. If this system is implemented as a service
colony, it can identify that the bottleneck is caused by the payment
transactions and split out this functionality into a new service.
Subsequently, the colony can aim to utilize available resources to scale the
payment transactions, for instance, by replicating the new payment service
while keeping other shopping cart actions within the original service. These
nuanced adaptations can drastically reduce the operating costs of the system.
Moreover, when the system experiences a low volume of requests, the shopping
cart actions and payment handling services can merge back to achieve a smaller
system footprint. Note that within a service colony, such splitting and
merging happen automatically, reducing the costs of maintaining the system.

The benefits of a service colony are, thus, at least the following:

  * •

Extension of Microservices. Service colonies build upon the strengths of
microservice-based architectures, inheriting their flexibility, resilience,
modularity, optimized resource usage, and reduced operational overhead. Since
the industry is moving toward broader adoption of microservice-based systems,
service colonies contribute to this trend, providing more options for
engineering future software systems.

  * •

Enhanced Flexibility. By fostering interactions among individual inhabitants,
a service colony ensures that desired functionalities are delivered flexibly.
For example, multiple inhabitants can deliver the same functionality based on
different service agreement levels or with improved performance by proactively
scaling or migrating the functionality to more productive compute nodes. In
addition, each inhabitant can be developed, deployed, tested, and updated
independently.

  * •

Proactive Fault Tolerance. Each inhabitant in the service colony generates its
own analytics and shares them throughout the colony. The individual and
collaborative analysis of this data supports effective predictions of the
system’s behavior, including potential future faults. Since the analysis is
based on the runtime information of individual services, it can be used to
effectively monitor, predict, and proactively respond to environmental changes
and system faults.

  * •

Continuous Optimization. Through continuous learning from its operations, each
inhabitant, and consequently the entire service colony, evolves into a self-
optimizing entity, constantly refining itself for enhanced performance.

  * •

Goal Orientation. Both the service colony as a whole and its individual
inhabitants have objectives and strive to achieve them. The collaborative
nature of the system fosters iterative improvements toward shared goals.

  * •

Dynamic Service Introduction and Composition. The dynamic introduction and
integration of services within a service colony optimize system performance
and resource utilization, seamlessly adapting to evolving demands and
environmental changes.

  * •

Heterogeneity. A service colony hosts diverse inhabitants, each potentially
utilizing different technologies and implementations. However, adherence to
standard communication protocols ensures effective data dissemination
throughout the ecosystem.

  * •

Scalability. By facilitating individual scalability based on performance
metrics, a service colony can reduce maintenance costs through proactive
decision-making and predictive scaling initiated by its inhabitants.

##  5\. Challenges

The design, implementation, and maintenance of a service colony come with
challenges that are yet to be understood and studied. We initiate this
endeavor by discussing several such challenges below:

  * •

Complex System. A service colony is a dynamic, complex system composed of
interacting components. Without hierarchical control or global coordination,
in general, slight modifications of components and interaction patterns can
have a substantial impact on the overall high-level behavior of the system.
Without hierarchical control or global coordination, even slight modifications
to components and interaction patterns can significantly impact the system’s
overall behavior. This intricate relationship between low-level component
behaviors and high-level system behavior complicates error identification and
troubleshooting. Additionally, if the splitting of inhabitants is not
controlled, the colony can proliferate excessively, increasing system latency.
Although the system aims to optimize for latency, unnecessary adjustments can
result in the opposite effect.

  * •

Verification and Validation. To verify the correctness of a system, it is
essential to test it under different conditions, for example, by simulating
environmental changes. The distributed nature of a service colony complicates
this process due to the vast number of possible scenarios the system can
execute. New tools are required to simulate different workloads and
environmental changes to properly test service colonies. Additionally,
validating the correctness of system decisions before rearchitecting is
challenging due to the system’s dynamic nature, which makes it difficult to
predict outcomes and ensure stability in advance.

  * •

Dynamic Updates. A service colony is a dynamic system. Adjustments within such
a system can lead to temporary unavailability of certain functionalities.
Therefore, sophisticated mechanisms are needed to manage these dynamic
adjustments effectively, ensuring smooth operations during system
rearchitecting.

  * •

Heterogeneity. A service colony can host diverse inhabitants, each implemented
using different technologies. To support this heterogeneity, standard
interfaces and communication protocols must be established. Moreover, the
integration of components implemented using different technologies complicates
system development, testing, and monitoring. Furthermore, such a heterogeneous
system is more vulnerable to security threats.

  * •

Persistence. A service-based system relies on databases and data caching
layers for information storage. These components require non-trivial
adaptations during the reengineering of the system. Dynamic repartitioning and
redesigning of databases can lead to data replication, which may result in
data inconsistencies.

  * •

System Updates and Change Requests. System updates are mandatory to comply
with industry standards, and customer change requests are inevitable.
Implementing these changes in a distributed system is a complex task. A robust
system state management process must be in place to handle updates
effectively. Automatically persisting the system state before and after
adjustments is essential for maintaining system operations. Additionally, a
service colony must be equipped with comprehensive mechanisms for the
automatic deployment of services resulting from the splitting of colony
inhabitants and for managing continuous delivery and integration pipelines.

  * •

Reengineering. Existing systems that wish to benefit from the advantages of
service colony architecture need to be reengineered accordingly. A systematic
process for reengineering software systems into service colonies must be
defined to facilitate the migration of legacy systems to this new
architectural style.

##  6\. Conclusions

This paper introduces the concept of a _service colony_ , a software
architectural style for developing systems as groups of autonomous,
interacting software services. Each inhabitant service in a colony is driven
by its aim to deliver services to its users, either external users of the
system or other inhabitants of the colony. Based on their past performance,
inhabitants can proactively decide to self-replicate, split into multiple
services, or join with other inhabitants to ensure high-quality service
delivery. In this way, the overall service colony system can adapt to changing
workloads by either shrinking its footprint during periods of low workload or
scaling specific high-demand functionality during workload bursts. By
performing such adaptations, the system aims to minimize resource utilization
while maximizing the quality of the delivered services over time. A service
colony is a bottom-up complex system characterized by numerous interacting
components that result in emergent system-level behavior. Consequently,
service colonies aim to inherit the benefits of complex system architectures,
including resilience, robustness, adaptability, scalability, and distributed
control. Future work on service colonies will focus on designing and
evaluating different colony inhabitant architectures and principles of their
interactions to study their effects on the global behavior of the overall
system.

Acknowledgements. This work was in part supported by the Australian Research
Council project DP220101516.

## References

  * (1)
  * Abrams and Schulte (2008) Charles Abrams and Roy W. Schulte. 2008.  Service-oriented Architecture Overview and Guide to SOA Research.  _Gartner Research_ (2008).
  * Banijamali et al. (2020) Ahmad Banijamali, Pasi Kuvaja, Markku Oivo, and Pooyan Jamshidi. 2020.  Kuksa*: Self-adaptive Microservices in Automotive Systems. In _PROFES_ _(LNCS, Vol. 12562)_. Springer, 367–384.
  * Cheng et al. (2009) Betty H. C. Cheng, Rogério de Lemos, Holger Giese, Paola Inverardi, Jeff Magee, Jesper Andersson, Basil Becker, Nelly Bencomo, Yuriy Brun, Bojan Cukic, Giovanna Di Marzo Serugendo, Schahram Dustdar, Anthony Finkelstein, Cristina Gacek, Kurt Geihs, Vincenzo Grassi, Gabor Karsai, Holger M. Kienle, Jeff Kramer, Marin Litoiu, Sam Malek, Raffaela Mirandola, Hausi A. Müller, Sooyong Park, Mary Shaw, Matthias Tichy, Massimo Tivoli, Danny Weyns, and Jon Whittle. 2009\.  _Software Engineering for Self-Adaptive Systems: A Research Roadmap_. LNCS, Vol. 5525.  Springer, 1–26.
  * De Sanctis et al. (2020) Martina De Sanctis, Henry Muccini, and Karthik Vaidhyanathan. 2020.  Data-driven Adaptation in Microservice-based IoT Architectures. In _ICSA Companion_. IEEE, 59–62.
  * Filho et al. (2021) Messias Filho, Eliaquim Pimentel, Wellington Pereira, Paulo Henrique M. Maia, and Mariela I. Cortés. 2021.  Self-Adaptive Microservice-based Systems: Landscape and Research Opportunities.  (2021), 167–178.
  * Garlan et al. (2004) David Garlan, Shang-Wen Cheng, An-Cheng Huang, Bradley R. Schmerl, and Peter Steenkiste. 2004.  Rainbow: Architecture-Based Self-Adaptation with Reusable Infrastructure.  _Computer_ 37, 10 (2004), 46–54.
  * Garlan et al. (2009) David Garlan, Bradley R. Schmerl, and Shang-Wen Cheng. 2009.  Software Architecture-Based Self-Adaptation.  In _Autonomic Computing and Networking_. Springer, 31–55.
  * Gheibi et al. (2020) Omid Gheibi, Danny Weyns, and Federico Quin. 2020.  Applying Machine Learning in Self-adaptive Systems: A Systematic Literature Review.  _ACM Trans. Auton. Adapt. Syst._ 15, 3 (2020), 9:1–9:37.
  * Gjørven et al. (2008) Eli Gjørven, Romain Rouvoy, and Frank Eliassen. 2008.  Cross-layer Self-adaptation of Service-oriented Architectures. In _MW4SOC_. ACM, 37–42.
  * Glazier and Garlan (2019) Thomas J. Glazier and David Garlan. 2019.  An Automated Approach to Management of a Collection of Autonomic Systems. In _FAS*W@SASO/ICAC_. IEEE, 110–115.
  * Glazier et al. (2020) Thomas J. Glazier, David Garlan, and Bradley R. Schmerl. 2020.  Automated Management of Collections of Autonomic Systems. In _ACSOS_. IEEE, 82–91.
  * Gomaa and Hashimoto (2012) Hassan Gomaa and Koji Hashimoto. 2012.  Dynamic Self-adaptation for Distributed Service-oriented Transactions. In _SEAMS_. IEEE Computer Society, 11–20.
  * Hallsteinsen et al. (2012) Svein O. Hallsteinsen, Kurt Geihs, Nearchos Paspallis, Frank Eliassen, Geir Horn, Jorge Lorenzo, Alessandro Mamelli, and George Angelos Papadopoulos. 2012.  A Development Framework and Methodology for Self-adapting Applications in Ubiquitous Computing Environments.  _J. Syst. Softw._ 85, 12 (2012), 2840–2859.
  * IBM (2006) IBM. 2006.  An Architectural Blueprint for Autonomic Computing.  _IBM White Paper_ (2006).
  * Jennings (2000) Nicholas R. Jennings. 2000.  On Agent-based Software Engineering.  _Artif. Intell._ 117, 2 (2000), 277–296.
  * Jennings (2001) Nicholas R. Jennings. 2001.  An Agent-based Approach for Building Complex Software Systems.  _Commun. ACM_ 44, 4 (2001), 35–41.
  * Kehrer and Blochinger (2018) Stefan Kehrer and Wolfgang Blochinger. 2018.  Model-Based Generation of Self-adaptive Cloud Services. In _CLOSER (Selected Papers)_ _(Communications in Computer and Information Science, Vol. 1073)_. Springer, 40–63.
  * Kephart and Chess (2003) Jeffrey O. Kephart and David M. Chess. 2003.  The Vision of Autonomic Computing.  _Computer_ 36, 1 (2003), 41–50.
  * Khakpour et al. (2010) Narges Khakpour, Ramtin Khosravi, Marjan Sirjani, and Saeed Jalili. 2010.  Formal Analysis of Policy-based Self-adaptive Systems. In _SAC_. ACM, 2536–2543.
  * Kramer and Magee (1990) Jeff Kramer and Jeff Magee. 1990.  The Evolving Philosophers Problem: Dynamic Change Management.  _IEEE Trans. Software Eng._ 16, 11 (1990), 1293–1306.
  * Kramer and Magee (2007) Jeff Kramer and Jeff Magee. 2007.  Self-Managed Systems: An Architectural Challenge. In _FOSE_. IEEE Computer Society, 259–268.
  * Krupitzer et al. (2016) Christian Krupitzer, Felix Maximilian Roth, Martin Pfannemüller, and Christian Becker. 2016.  Comparison of Approaches for Self-Improvement in Self-Adaptive Systems. In _ICAC_. IEEE Computer Society, 308–314.
  * Lewis and Fowler (2014) James Lewis and Martin Fowler. 2014.  Microservices: A Definition of This New Architectural Term.  https://martinfowler.com/articles/microservices.html.  Accessed on 7 July 2024.
  * Liu et al. (2018) Peini Liu, Xinjun Mao, Shuai Zhang, and Fu Hou. 2018.  Towards Reference Architecture for a Multi-layer Controlled Self-adaptive Microservice System. In _SEKE_. KSI Research Inc. and Knowledge Systems Institute Graduate School, 236–235.
  * Magableh and Almiani (2019) Basel Magableh and Muder Almiani. 2019.  A Self Healing Microservices Architecture: A Case Study in Docker Swarm Cluster. In _AINA_ _(Advances in Intelligent Systems and Computing, Vol. 926)_. Springer, 846–858.
  * Malburg et al. (2023) Lukas Malburg, Maximilian Hoffmann, and Ralph Bergmann. 2023.  Applying MAPE-K Control Loops for Adaptive Workflow Management in Smart Factories.  _J. Intell. Inf. Syst._ 61, 1 (2023), 83–111.
  * Menascé et al. (2011) Daniel A. Menascé, Hassan Gomaa, Sam Malek, and João Pedro Sousa. 2011.  SASSY: A Framework for Self-Architecting Service-Oriented Systems.  _IEEE Softw._ 28, 6 (2011), 78–85.
  * Mendonça et al. (2021) Nabor Chagas Mendonça, Pooyan Jamshidi, David Garlan, and Claus Pahl. 2021.  Developing Self-Adaptive Microservice Systems: Challenges and Directions.  _IEEE Softw._ 38, 2 (2021), 70–79.
  * Metzger et al. (2024) Andreas Metzger, Clément Quinton, Zoltán Ádám Mann, Luciano Baresi, and Klaus Pohl. 2024.  Realizing self-adaptive systems via online reinforcement learning and feature-model-guided exploration.  _Computing_ 106, 4 (2024), 1251–1272.
  * Newman (2015) Sam Newman. 2015.  _Building Microservices: Designing Fine-grained Systems_.  O’Reilly.
  * Nguyen and Nahrstedt (2017) Phuong Nguyen and Klara Nahrstedt. 2017.  MONAD: Self-Adaptive Micro-Service Infrastructure for Heterogeneous Scientific Workflows. In _ICAC_. IEEE Computer Society, 187–196.
  * Pfannemüller et al. (2020) Martin Pfannemüller, Martin Breitbach, Christian Krupitzer, Markus Weckesser, Christian Becker, Bradley R. Schmerl, and Andy Schürr. 2020.  REACT: A Model-Based Runtime Environment for Adapting Communication Systems.  (2020), 65–74.
  * Rahmanian et al. (2022) Ali Rahmanian, Ahmed Ali-Eldin, Björn Skubic, and Erik Elmroth. 2022.  MicroSplit: Efficient Splitting of Microservices on Edge Clouds. In _SEC_. IEEE, 252–264.
  * Sampaio et al. (2019) Adalberto R. Sampaio, Julia Rubin, Ivan Beschastnikh, and Nelson S. Rosa. 2019.  Improving Microservice-based Applications with Runtime Placement Adaptation.  _J. Internet Serv. Appl._ 10, 1 (2019), 4:1–4:30.
  * Weyns et al. (2018) Danny Weyns, M. Usman Iftikhar, Danny Hughes, and Nelson Matthys. 2018.  Applying Architecture-Based Adaptation to Automate the Management of Internet-of-Things. In _ECSA_ _(LNCS, Vol. 11048)_. Springer, 49–67.
  * Wong et al. (2022) Terence Wong, Markus Wagner, and Christoph Treude. 2022.  Self-adaptive Systems: A Systematic Literature Review Across Categories and Domains.  _Inf. Softw. Technol._ 148 (2022), 106934.
  * Zhang et al. (2019) Shuai Zhang, Mingjiang Zhang, Lin Ni, and Peini Liu. 2019.  A Multi-level Self-adaptation Approach for Microservice Systems. In _ICCCBDA_. IEEE, 498–502.


# A characterization of translated convex bodies

E. Morales-Amaya
Faculty of Mathematics-Acapulco, Autonomous University of Guerrero, Carlos E.
Adame 54, Col. Garita C.P. 39650, Acapulco, Guerrero. Mexico.

(Date: July 16, 2024.)

###### Abstract.

In this work we present a theorem regarding two convex bodies
$K_{1},K_{2}\subset\mathbb{R}^{n}$, $n\geq 3$, and two families of sections of
them, given by two families of tangent planes of two spheres
$S_{i}\subset\operatorname*{int}K_{i}$, $i=1,2$, such that, for every pair
$\Pi_{1}$, $\Pi_{2}$ of parallel supporting planes of $S_{1}$, $S_{2}$,
respectively, which are corresponding (this means, that the outer normal
vectors of the supporting half spaces determined by the two planes have the
same direction), the sections $\Pi_{1}\cap K_{1}$, $\Pi_{2}\cap K_{2}$ are
translated, the theorem claims that if $S_{1}$, $S_{2}$ have the same radius,
the bodies are translated, otherwise, the bodies are also spheres.

This research was supported by the National Council of Humanities Sciences and
Technology of Mexico (CONAHCyT), SNI 21120. This work was done partially
during a sabbatical visit of the author at University College London (UCL).
The author thanks UCL for their hospitality and support.

##  1\. Introduction.

In [11], A. Rogers proved that if every pair of parallel 2-sections of two
convex bodies $K_{1},K_{2}$ passing through two fix points
$p_{1}\in\operatorname*{int}K_{1},p_{2}\in\operatorname*{int}K_{2}$ are
directly homothetics, the convex bodies are directly homothetic. On the other
hand, in [3], G. R. Burton proved the general case
$p_{1},p_{2}\in\mathbb{R}^{n}$. An interesting variation of Roger’s Theorem
was presented in [9], there the two families of sections are not longer given
by concurrent planes, instead L. Montejano consider two families of planes
which, for one hand, varies continuously and, on the other hand, given a
direction $v$, there is only one plane of each family orthogonal to $v$,
however, Montejano restrict himself to consider only translated sections. The
case for homothetic sections was considered in [7]. We can find several
interesting problems and result about the determination of a convex bodies by
families of section given by concurrent hyperplanes in [1], [6] and [10].

In order to present formally our main result, which can be considered either
as generalization of A. Roger’s theorem given in [11] or as geometrical
progress of a conjecture due to J. A. Barker and D. G. Larman [1], we need the
following notation and definitions.

Let $\mathbb{R}^{n}$ be the Euclidean space of dimension $n$ endowed with the
usual inner product
$\langle\cdot,\cdot\rangle:\mathbb{R}^{n}\times\mathbb{R}^{n}\rightarrow\mathbb{R}$.
We take a orthogonal system of coordinates $(x_{1},...,x_{n})$ for
$\mathbb{R}^{n}$. Let $B_{r}(n)=\\{x\in\mathbb{R}^{n}:||x||\leq r\\}$ be the
$n$-ball of radius $r$ centered at the origin, and let
$r\mathbb{S}^{n-1}=\\{x\in\mathbb{R}^{n}:||x||=r\\}$ be its boundary. For each
vector $u\in\mathbb{S}^{n}$, we denote by $H^{+}(u)$ the closed half-space
$\\{x\in\mathbb{R}^{n}:x\cdot u\leq 0\\}$ with unit normal vector $u$, by
$H(u)$ its boundary hyperplane $\\{x\in\mathbb{R}^{n}:\langle
x,u\rangle=0\\}$. For $r\in\mathbb{R}$, we denote by $G(u)$, $rG(u)$ the
affine hyperplanes $u+H(u)$, $ru+H(u)$ and by $E(u)$, $rE(u)$, $F(u)$, $rF(u)$
the half-spaces $u+H^{+}(u)$, $ru+H^{+}(u)$, $u+H^{+}(-u)$, $ru+H^{+}(-u)$,
respectively (See Fig. 1).

Let $S_{1},S_{2}\subset\mathbb{R}^{n}$ be two spheres with centers
$p_{1},p_{2}$ and radius $r_{1},r_{2}$, respectively. The parallel supporting
planes $\Pi_{1},\Pi_{2}$ of $S_{1},S_{2}$, respectively, are said to be
corresponding if there exist $u\in\mathbb{S}^{n-1}$ such that

$\Pi_{i}=p_{i}+r_{i}G(u)\textrm{ }\textrm{ }\textrm{ and }\textrm{ }\textrm{
}S_{i}\subset p_{i}+r_{i}E(u),\textrm{ }i=1,2.\textrm{ }(\textrm{See}\textrm{
}\textrm{Fig.}\textrm{ }\ref{negrita})$

Let $W_{1},W_{2}\subset\mathbb{R}^{n}$ be two convex bodies, i.e, compact
convex sets with non empty interior. The bodies $W_{1},W_{2}$ are said to be
translated if there exists a non-zero vector $u$ such that $W_{2}=u+W_{2}$.

######  Theorem 1.

Let $K_{i}\subset\mathbb{R}^{n}$ be a convex body, $n\geq 3$, and let
$S_{i}\subset\operatorname*{int}K_{i}$ be a sphere with center $p_{i}$ and
radius $r_{i}$, $i=1,2$ . Suppose that, for every pair of corresponding planes
$\Pi_{1},\Pi_{2}$ of $S_{1}$ and $S_{2}$, there exists a translation
$\psi:\mathbb{R}^{n}\rightarrow\mathbb{R}^{n}$ such that

$\psi(\Pi_{2}\cap K_{2})=\Pi_{1}\cap K_{1}.$

If $r_{1}=r_{2}$, then $K_{1},K_{2}$ are translated. If $r_{1}\not=r_{2}$,
then $K_{1}$ and $K_{2}$ are spheres with centers at $p_{1}$ and $p_{2}$,
respectively.

Figure 1.  Figure 2. A pair $\Pi_{1},\Pi_{2}$ of Corresponding planes.

######  Corollary 1.

Let $K\subset\mathbb{R}^{n}$ be a convex body, $n\geq 3$, and let $S\subset K$
be a $(n-1)$-sphere with center $p$. Suppose that: 1) for all supporting
hyperplane $\Pi$ of $S$ the section $\Pi\cap K$ is centrally symmetric and 2)
for all pair of parallel supporting hyperplanes $\Pi_{1},\Pi_{2}$ of $S$ the
sections $\Pi_{1}\cap K$ and $\Pi_{2}\cap K$ are translated. Then $K$ is
centrally symmetric.

###### Proof.

We take a system of coordinates such that $p$ is the origin. We apply Theorem
1, taking $K_{1}=K,K_{2}=-K$ and $S_{1}=S=S_{2}$. Therefore $K$ and $-K$ are
translated. Thus $K$ is centrally symmetric. ∎

This work is organized as follow:

  1. (1)

Introduction.

  2. (2)

Reduction of the Theorem 1 to dimension 3.

  3. (3)

Characterization of the sphere.

  4. (4)

Lemmas for the case $n=3$ and $r_{1}=r_{2}$.

  5. (5)

Proof of the Theorem 1 in dimension 3 for $r_{1}=r_{2}$.

  6. (6)

Lemmas for the case $n=3$, $r_{1}\not=r_{2}$.

  7. (7)

Proof of the Theorem 1 in dimension 3 for $r_{1}\not=r_{2}$.

##  2\. Reduction of Theorem 1 to dimension $n=3$

. For the points $x,y\in\mathbb{R}^{n}$ we will denote by $xy$ the line
determined by $x$ and $y$ and by $[x,y]$ the line segment contained in
$L(x,y)$ with endpoints $x$ and $y$. As usual $\operatorname*{int}K$,
$\operatorname*{bd}K$ will denote the interior and the boundary of the convex
body $K$, respectively. For each vector $u\in\mathbb{S}^{n-1}$, we denote by
$\pi_{u}:\mathbb{R}^{n}\rightarrow H(u)$ the orthogonal projection parallel to
$u$.

Suppose that the bodies $K_{1},K_{2}$ and the spheres $S_{1},S_{2}$ satisfies
the conditions of Theorem 1 for dimension $n,n\geq 4$, and that the Theorem 1
holds in dimension $n-1$. We are going to prove that, for
$u\in\mathbb{S}^{n}$, the bodies $\pi_{u}(K_{1})$, $\pi_{u}(K_{1})$ and the
spheres $\pi_{u}(S_{1})$, $\pi_{u}(S_{2})$ satisfies the condition of the
Theorem 1 in dimension $n-1$. Consequently, either, if $r_{1}=r_{2}$,
$\pi_{u}(K_{1})$, $\pi_{u}(K_{1})$ are translated or, if $r_{1}\not=r_{2}$,
$\pi_{u}(K_{1})$, $\pi_{u}(K_{1})$ are spheres. Thus if all the orthogonal
projections of $K_{1}$ and $K_{2}$ are translated, in virtue of Theorem 1 of
[11], $K_{1}$ and $K_{2}$ are translated, otherwise, $K_{1}$ and $K_{2}$ are
spheres, i.e, the Theorem 1 holds for dimension $n$.

Notice that the conditions of Theorem 1 are invariant under translation,
consequently we can assume that the centres $p_{1},p_{2}$ are at origin of a
system of coordinates. Let $v\in H(u)\cap\mathbb{S}^{n}$. Since $K_{1}\cap
r_{1}G(v)$ is a translated copy of $K_{2}\cap r_{2}G(v)$, i.e., there exists a
vector $\omega\in\mathbb{R}^{n}$ such that

$K_{1}\cap r_{1}G(v)=\omega+[K_{2}\cap r_{2}G(v)],$

then

$\pi_{u}(K_{1}\cap r_{1}G(v))=\pi_{u}(\omega)+\pi_{u}(K_{2}\cap r_{2}G(v)),$

i.e.,

$\pi_{u}(K_{1})\cap\pi_{u}(r_{1}G(v))=\pi_{v}(\omega)+\pi_{u}(K_{2})\cap\pi_{u}(r_{2}G(v)),\textrm{
i.e.},$

$\pi_{u}(K_{1})\cap\pi_{u}(r_{1}G(v))$ is a translated copy of
$\pi_{u}(K_{2})\cap\pi_{u}(r_{2}G(v))$ for every $v\in
H(u)\cap\mathbb{S}^{n}$, that is, the bodies $\pi_{u}(K_{1})$,
$\pi_{u}(K_{1})$ and the spheres $\pi_{u}(B_{1})$, $\pi_{u}(B_{2})$ satisfies
the condition of the Theorem 1 in dimension $n-1$.

##  3\. Characterization of the sphere.

Given a convex body $K\subset\mathbb{R}^{n}$ and a point
$x\in\mathbb{R}^{n}\setminus K$ we denote the cone generated by $K$ with apex
$x$ by $\text{C}(K,x)$, i.e., $\text{C}(K,x):=\\{x+\lambda(y-x):y\in
K,\,\lambda\geq 0\\}.$ The boundary of $\text{C}(K,x)$ is denoted by
$\text{S}(K,x)$, in other words, $\text{S}(K,x)$ is the support cone of $K$
from the point $x$. We denote the _graze_ of $K$ from $x$ by $\Sigma(K,x)$,
i.e., $\Sigma(K,x):=\text{S}(K,x)\cap\operatorname*{bd}K.$ On the other hand,
given a line $L$ (or a vector $u$), we denote by $\text{C}(K,L)$ the cylinder
generated by $K$ and $L$, i.e., the family of all the lines parallel to $L$
and with non empty intersection with $K$. The boundary of $\text{C}(K,L)$ is
denoted by $\text{S}(K,L)$, in other words, $\text{S}(K,L)$ is the support
cylinder of $K$ corresponding to $L$. We denote the _shadow boundary_ of $K$
corresponding to $L$ by $\Sigma(K,L)$, i.e.,
$\Sigma(K,L):=\text{S}(K,L)\cap\operatorname*{bd}K.$

######  Lemma 1.

Let $M_{1},M_{2}\subset\mathbb{R}^{3}$ be convex bodies, let $B$ be an sphere
with $B\subset M_{1}\cap M_{2}$ and let $r$ be a real number, $r>0,r\not=1$.
Suppose that for each supporting plane $\Pi$ of $B$ the sections $\Pi\cap
M_{1}$ and $\Pi\cap M_{2}$ are homothetic, with centre and radius of homothety
$\Pi\cap B$ and $r$, respectively. Then $M_{1}$ and $M_{2}$ are spheres
concentric with $B$.

###### Proof.

We claim that $\operatorname*{bd}M_{1}\cap\operatorname*{bd}M_{2}=\emptyset$.
Suppose that there is a point
$p\in\operatorname*{bd}M_{1}\cap\operatorname*{bd}M_{2}$. Let $\Pi$ be a
supporting plane of $B$, $p\in\Pi$ and it touches the boundary of $B$ in the
point $x$. Since $B\subset M_{1}\cap M_{2}$, we have
$x\in\operatorname*{int}(\Pi\cap M_{1}),\operatorname*{int}(\Pi\cap M_{2})$.
If either $\operatorname*{int}(\Pi\cap
M_{1})\subset\operatorname*{int}(\Pi\cap M_{2})$ or
$\operatorname*{int}(\Pi\cap M_{2})\subset\operatorname*{int}(\Pi\cap M_{1})$,
then either the centre of homothety $y$ which send $\Pi\cap M_{1}$ into
$\Pi\cap M_{2}$ is in a common supporting line of $\Pi\cap M_{2}$ and $\Pi\cap
M_{2}$, and therefore $y\not=x$, or the radius $r$ is equal to 1, but, in the
first case, we contradicts the hypothesis, i.e., $x$ is the centre of
homothety between the sections $\Pi\cap M_{1}$ and $\Pi\cap M_{2}$, on the
other hand, if $r=1$ then $M_{1}=M_{2}$. The case $\operatorname*{int}(\Pi\cap
M_{1})$ not contained in $\operatorname*{int}(\Pi\cap M_{2})$, or viceversa,
implies that the centre of homothety is a point outside of the sections
$\Pi\cap M_{1}$, $\Pi\cap M_{2}$ but again this is in contradiction with the
hypothesis that $x\in\operatorname*{int}M_{1}\cap\operatorname*{int}M_{2}$ is
the centre of homothety between this two sections.

Figure 3.

Thus we can choose the notation such that $B\subset M_{1}\subset M_{2}$. Let
$p\in\operatorname*{bd}M_{2}$. We take one the two components of
$S(B,p)\cap\operatorname*{bd}M_{1}$ and we denote it by $\Phi$. We are going
to show that $\Phi$ is a planar curve contained in a plane parallel to the
plane where $\Sigma(B,p)$ is contained (See Fig. 3). From this, it follows
that $\Phi$ is a circle. Let $v\in\Phi$ and let $\Pi$ be a plane parallel to
the plane of $\Sigma(B,p)$ and $v\in\Pi$. Pick an arbitrary point
$w\in\Phi,w\not=v$. Let $x,y\in\Sigma(B,p)$ be points where the supporting
lines $pv$ and $pw$ of $B$ touches $\operatorname*{bd}B$, respectively. By
virtue of the hypothesis, it is easy to see that $xp/xv=yp/yw=r$ (Taking
supporting planes $\Gamma_{x}$ and $\Gamma_{y}$ of $B$ at $x$ and $y$,
respectively, we have that the sections $\Gamma_{x}\cap M_{1}$,
$\Gamma_{x}\cap M_{2}$ are homothetics with centre and radius of homothety $x$
and $r$, respectively, and the sections $\Gamma_{y}\cap M_{1}$,
$\Gamma_{y}\cap M_{2}$ are homothetics with centre and radius of homothety $y$
and $r$, respectively). Thus the triangles $\triangle xpy$ and $\triangle vpw$
are similar and consequently, the lines $xy$ and $vw$ are parallel. Hence
$w\in\Pi$.

It follows that $M_{1}$ is a sphere concentric with $B$ (also due the more
general statement proved in [2]). Since $M_{1}$ is a sphere all the sections
of $M_{2}$ with planes tangent to $B$ are circles, then, $M_{2}$ is a sphere
concentric with $B$. ∎

##  4\. Lemmas for the case $n=3$ and $r_{1}=r_{2}$.

In this section we will assume that $n=3$ and $r_{1}=r_{2}$. Notice that the
conditions of Theorem 1 are invariant under translations, consequently, we can
assume that $S_{1}=S_{2}$ and that we have a system of coordinates such that
$p_{1}$ is the origin and $r_{1}=1$. Thus $S_{1}=\mathbb{S}^{2}$. For
$u\in\mathbb{S}^{2}$, we denote by $K_{i}(u)$ the section $G(u)\cap
K_{i},i=1,2$. By virtue of the theorem’s hypothesis there exists a map
$\mu:\mathbb{S}^{2}\rightarrow\textrm{T}\mathbb{S}^{2}$ such that $\mu(u)\cdot
u=0$ and $K_{2}(u)=\mu(u)+K_{1}(u)$, where $T\mathbb{S}^{2}$ is the tangent
bundle of $\mathbb{S}^{2}$. From the continuity of the boundaries of $K_{1}$
and $K_{2}$ it follows the continuity of $\mu(u)$. Hence, by virtue of Theorem
27.8 Pag. 141 of [12], there exists $u_{1}\in\mathbb{S}^{2}$ such that

(1) $\displaystyle K_{2}(u_{1})=K_{1}(u_{1}).$

Let $\Omega\subset\mathbb{S}^{2}$ be the collection of vectors $u$ such that
$u\in\Omega$ if

$K_{1}(u)=K_{2}(u)$

and let $\Phi\subset\mathbb{S}^{2}$ the set of vectors such that $u\in\Phi$ if
the line $G(u_{1})\cap G(u)$ is supporting line of $K_{1}(u_{1})$. The curve
$\Phi$ is homeomorphic to $\mathbb{S}^{1}$, then, by the Jordan’s Theorem,
$\mathbb{S}^{2}$ is decomposed by $\Phi$ in two disjoint open sets, say $A,B$
and we choose the notation such that $u_{1}\in A$. In order to prove the
Theorem 1 first, we are going to show now that $\Phi\subset\Omega$ and,
second, that $\Omega=\mathbb{S}^{2}$. Therefore $K_{1}=K_{2}$.

######  Lemma 2.

The set $\Phi$ is contained in $\Omega$.

###### Proof.

Let $u\in\Phi$, i.e., $L(u):=G(u_{1})\cap G(u)$ is supporting line of
$K_{1}(u_{1})$. We are going to show that the sections $K_{1}(u)$ and
$K_{2}(u)$ coincides. We claim that $K_{1}(u)$ and $K_{2}(u)$ are contained in
the same half plane of $G(u)$ of the two determined by $L(u)$. Let $\Psi_{i}$
be a supporting planes of $K_{i}$ containing $L(u)$, $i=1,2$. We denote by
$\Psi^{+}_{i}$, the supporting half spaces determined by $\Psi_{i}$, $i=1,2$.
It is clear that $\mathbb{S}^{2}\subset\Psi^{+}_{1}\cap\Psi^{+}_{2}$, since we
are assuming that $\mathbb{S}^{2}\subset K_{1}\cap K_{2}$. Hence $K_{1}(u)$,
$K_{2}(u)\subset\Psi^{+}_{1}\cap\Psi^{+}_{2}$ and, consequently, $K_{1}(u)$,
$K_{2}(u)$ are contained in the same half plane of $G(u)$ of the two
determined by $L(u)$. On the other hand, we denote by $S$ the intersection
$L(u)\cap K_{1}$. Observe that, since (1) holds, $S$ is equal to $L(u)\cap
K_{2}$. By hypothesis the sections $K_{1}(u)$ and $K_{2}(u)$ are translated,
by virtue that they have a common supporting line, the set $S$ in common and
they are contained in the same half plane determined by $L(u)$, they
coincides. ∎

Let $u,v\in\Phi$ such that $L(u):=G(u)\cap G(u_{1})$ and $L(v):=G(v)\cap
G(u_{1})$ are parallel supporting lines of $K_{1}(u_{1})$. For $u\in\Phi$, we
define the following subset of $\operatorname*{bd}K_{1}$

$S(u):=[E(u)\cap F(v)\cap E(u_{1})]\cap\Sigma(K_{1},L(u)).$

Now we consider the union of the sets $S(u)$ for $u\in\Phi$, i.e.,

(2) $\displaystyle\Sigma:=\bigcup_{u\in\Phi}S(u).$

Figure 4. The set $\Sigma$ is contained in $\operatorname*{bd}K_{2}$.

Let $k$ be an integer, $1\leq k\leq n-1$. An embedding of $\mathbb{S}^{k}$ in
$\mathbb{R}^{n}$ is a map $\alpha:\mathbb{S}^{k}\rightarrow\mathbb{R}^{n}$
such that $\alpha$ is homeomorphism onto its image.

######  Lemma 3.

The set $\Sigma$ is contained in $\operatorname*{bd}K_{2}$.

###### Proof.

Let $p$ be a point in $\Sigma$. Then there are parallel supporting lines
$L(u),L(v)$ of $K_{1}(u_{1})$ such that $p\in S(u)$ for some $u\in\Phi$, i.e.,
there exists $u\in\Phi$ such that $p\in[E(u)\cap F(v)\cap
E(u_{1})]\cap\Sigma(K_{1},L(u))$. First we assume that $p$ is not in
$G(-u_{1})$. We denote by $D$ the central projection of $\mathbb{S}^{2}$ onto
the plane $G(u_{1})$ from the point $p$, i.e., $D:=S(\mathbb{S}^{2},p)\cap
G(u_{1})$. By virtue of the choice of $p$, it follows that
$\Phi\cap\Sigma(\mathbb{S}^{2},p)\not=\emptyset$. Since $p\in[E(u)\cap
F(v)\cap E(u_{1})]\cap\Sigma(K_{1},L(u))$ there exist a supporting line
$L\subset E(u)\cap F(v)\cap E(u_{1})$ of $K_{1}$ through $p$ and parallel to
$L(u)$. Let $G(q_{1}),G(q_{2})$ be the two supporting planes of
$\mathbb{S}^{2}$ containing $L$. Changing the notation if necessary, we can
assume that $q_{1}\in A$ and $q_{2}\in B$ (See Fig. 4). Therefore in each one
of the arcs of $\Sigma(\mathbb{S}^{2},p)$ determined by $q_{1},q_{2}$ there is
a point in $\Phi$, say $w_{1},w_{2}$. Consequently, the figures $D$ and
$K_{1}(u_{1})$ have two common supporting lines, say $L(w_{1}):=G(w_{1})\cap
G(u_{1}),L(w_{2}):=G(w_{2})\cap G(u_{1})$. By Lemma 2,
$K_{i}(w_{i})=K_{2}(w_{i}),i=1,2$. Hence $p\in\operatorname*{bd}K_{2}$. On the
other hand, if $p\in E(-u_{1})$, from the previous case and since the
boundaries of $K_{1},K_{2}$ are closed it follows that $p\in K_{2}$. ∎

######  Lemma 4.

Let $M_{1},M_{2}\subset\mathbb{R}^{2}$ be two translated convex figures and
let $a,b,c,d$ be points which belongs to
$\operatorname*{bd}M_{1}\cap\operatorname*{bd}M_{2}$. If the quadrilateral
$\square abcd$ is not a trapezoid, then
$\operatorname*{bd}M_{1}=\operatorname*{bd}M_{2}$. On the other hand, if the
quadrilateral $\square abcd$ is a trapezoid and
$\operatorname*{bd}M_{1}\not=\operatorname*{bd}M_{2}$, then the pair of
parallel edges of $\square abcd$ are contained in $\operatorname*{bd}M_{1}$
and $\operatorname*{bd}M_{2}$.

###### Proof.

Since the convex figures $M_{1},M_{2}\subset\mathbb{R}^{2}$ are translated
there exists $w\in\mathbb{R}^{2}$ such that $M_{1}=w+M_{2}$.

Let $abcd\subset\mathbb{R}^{2}$ be a quadrilateral which is not a trapezoid.
Let $u\in\mathbb{S}^{1}$ be a unit vector, not parallel to an edge of $abcd$.
Then there exists two vertices of $abcd$, say $b,d$, such that

(3)
$\displaystyle[b+r^{+}(u)]\cap\operatorname*{int}(abcd)\not=\emptyset\textrm{
}\textrm{and }\textrm{
}[d+r^{-}(u)]\cap\operatorname*{int}(abcd)\not=\emptyset$

where $r^{+}(u):=\\{\alpha u:\alpha\in\mathbb{R},\alpha>0\\}$ and
$r^{-}(u):=\\{\alpha u:\alpha\in\mathbb{R},\alpha<0\\}$ are the rays defined
by $u$.

Since
$\operatorname*{int}(abcd)\subset\operatorname*{int}M_{1}\cap\operatorname*{int}K_{2}$,
the relation (3) implies that $w$ is not parallel to $u$. Otherwise, let us
assume that $w$ is parallel to $u$. Then either
$a,a+w,c,c+w,d,b+w\in\operatorname*{bd}K_{1}$ or
$a,a+w,c,c+w,b,d+w\in\operatorname*{bd}K_{1}$. In the first case, by (3), it
follows that $b\in\operatorname*{int}K_{1}$ which contradicts that
$b\in\operatorname*{bd}K_{1}$. In the other case,
$d\in\operatorname*{int}K_{1}$ which contradicts that
$d\in\operatorname*{bd}K_{1}$.

By the previous paragraph, we know that $w$ is parallel to an edge of $abcd$,
say $w$ is parallel to the edge $[a,b]$. If $abcd$ is not a trapezoid, the
edge $[c,d]$ is not parallel to $[a,b]$. Let $L$ be a supporting line of
$K_{1}$ parallel to $w$. Then

(4) $\displaystyle[d+L(u)]\cap\operatorname*{int}(abcd)\not=\emptyset\textrm{
}$

where $L(u):=\\{\alpha u:\alpha\in\mathbb{R}\\}$. By the relation
$K_{1}=w+K_{2}$ it is clear that
$a,b,c,d,a+w,b+w,c+w,d+w\in\operatorname*{bd}K_{1}$. On the other hand, by (4)
either $d+w\in\operatorname*{int}K_{1}$, if $\langle u,w\rangle>0$ or
$d\in\operatorname*{int}K_{1}$, if $\langle u,w\rangle<0$. In order to avoid
the contradiction we must have $w=0$ and, consequently, $K_{1}=K_{2}$.

If $abcd$ is a trapezoid, say the edge $[c,d]$ is parallel to $[a,b]$, since
$a,b,c,d,a+w,b+w,c+w,d+w\in\operatorname*{bd}K_{1}$ and by virtue that
$a,a+w,b,b+w\in L(a,b)$ and $c,c+w,d,d+w\in L(c,d)$, the lines $L(a,b)$ and
$L(c,d)$ are supporting lines of $K_{1}$. Analogously we can see that the
lines $L(a,b)$ and $L(c,d)$ are supporting lines of $K_{2}$. Consequently,
$[ab]$, $[cd]$ are contained in $\operatorname*{bd}M_{1}$ and
$\operatorname*{bd}M_{2}$. ∎

######  Lemma 5.

The set $A$ is contained in $\Omega$.

Figure 5. The set $A$ is contained in $\Omega$.

###### Proof.

Let $u\in A$. Then the line $L(u):=G(u)\cap G(u_{1})$ intersects the interior
of $K_{1}(u_{1})$ (the vectors $u$ which correspond to the lines $L(u)$ which
are supporting lines of $K_{1}(u_{1})$ are those in $\Phi$, on the other hand,
if $u\in B$, the line $L(u)$ does not intersect $K_{1}(u_{1})$). Let
$L(p),L(q)\subset G(u_{1})$ be a pair of supporting lines of $K_{1}(u_{1})$,
parallel to $L(u)$, such that $L(p)\subset E(u)$ and $L(v)\subset F(u)$ and
let $M$ be a supporting line of $G(u)\cap\operatorname*{bd}K_{1}$ parallel to
$L(u)$ and contained in $E(u_{1})$. We pick a point $x\in
M\cap\operatorname*{bd}K_{1}$.

First we suppose that $G(p)\cap G(q)\cap\operatorname*{int}K_{1}=\emptyset$.
It follows that $x\in\Sigma$. Let $a,b$ be the extreme points of the line
segment $G(u_{1})\cap K_{1}(u)$ and let $c,d$ be the extreme points of the
line segment $G(q)\cap K_{1}(u)$. Since $K_{1}(u_{1})=K_{2}(u_{1})$ and
$K_{1}(q)=K_{2}(q)$, notice that
$a,b,c,d\in\operatorname*{bd}K_{1}\cap\operatorname*{bd}K_{2}$. If the
quadrilateral $\square abcd$ is not a trapezoid, then, by Lemma 4,
$K_{1}(u)=K_{2}(u)$. Thus $u\in\Omega$.

If the quadrilateral $\square abcd$ is a trapezoid, by virtue that the
segments $[a,b]$, $[c,d]$ can not belong to the boundary of $K_{1}(u)$, the
segments $[a,c]$, $[b,d]$ are parallel. On the other hand, by virtue that
$x\in\Sigma$, it follows that
$x\in\operatorname*{bd}K_{1}\cap\operatorname*{bd}K_{2}$ and there exists a
supporting line $N$ of $K_{1}(u)$ parallel to $L(u)$. Let $w$ be the outer
normal vector of the supporting half-plane of $K_{1}(u)$ defined by $N$. Since
$K_{1}(u)$ and $K_{2}(u)$ are translated there exists
$\alpha\in\mathbb{R}^{3}$ such that $K_{1}(u)=\alpha+K_{2}(u)$. By virtue that
$N$ is supporting line of $K_{1}(u)$ at $x$ and since
$x\in\operatorname*{bd}K_{2}(u)$ it follows that $w\cdot\alpha\leq 0$. Since
$N$ is supporting line of $K_{1}(u)$ at $x$, $N-\alpha$ is supporting line of
$K_{2}(u)$ at $x-\alpha$ but, since the inequality $w\cdot\alpha\leq 0$ holds,
the line $N-\alpha$ separates the point $x$ from the section $K_{2}(u)$ if
$\alpha\not=0$ and $w\cdot\alpha<0$. Thus if $\alpha\not=0$, then
$w\cdot\alpha=0$, but since $[a,c]$ and $[c,d]$ belongs simultaneously to
$\operatorname*{bd}K_{1}(u)$ and $\operatorname*{bd}K_{2}(u)$ the condition
$w\cdot\alpha=0$ is impossible. Hence $\alpha=0$, i.e., $K_{1}(u)=K_{2}(u)$.

Now we suppose that $G(p)\cap G(q)\cap K_{1}\not=\emptyset$ (See Fig. 5). If
$u$ is such that the relation

$G(u)\cap[E(p)\cap F(q)\cap E(u_{1})]\cap\Sigma(K_{1},L(p))\not=\emptyset$

holds, then we proceed as before and we get to the conclusion $u\in\Omega$. On
the other hand, if $u$ is such that the relation

(5) $\displaystyle G(u)\cap[E(p)\cap F(q)\cap
E(u_{1})]\cap\Sigma(K_{1},L(p))=\emptyset$

is satisfied (See Fig. 5), we proceed as follows. Let $v\in\mathbb{S}^{2}$
such that the line $W:=G(u)\cap G(v)$ is supporting line of $K_{1}(u)$,
parallel to $L(u)$ and $W\subset F(u_{1})$. We claim that

(6) $\displaystyle G(v)\cap[F(p)\cap
E(q)\cap\Sigma(K_{1},L(p))]\not=\emptyset.$

We consider the orthogonal projection, defined by $L(u)$, of the sets

$L(p),L(q),G(p)\cap G(q),G(u_{1}),G(p),G(q),G(u),G(v),\mathbb{S}^{2}$

which will be denoted, respectively, by

$x,y,z,P,Q,R,S,T,J.$

It is clear that $J$ is inscribed in the triangle $\triangle xyz$ and the
condition (5) implies that $S$ intersects the edges $xy$ and $yz$ of the
triangle $\triangle xyz$ (See Fig. 6).

Suppose that relation (6) does not hold, it is equivalent to the fact that $T$
not intersect the edge $xz$ of $\triangle xyz$. Since $T$ intersects the edge
$xy$ the aforesaid implies that $T$ intersects $yz$. By virtue that $G(u)$ and
$G(v)$ are supporting planes of $\mathbb{S}^{2}$, $J$ is contained in the
angle determined by $S$ and $T$. Thus there is not a point of $J$ in the edge
$xz$ but this contradict that $J$ is inscribed in $\triangle xyz$. This
contradiction show that relation (6) holds.

Figure 6. The orthogonal projection, defined by $L(u)$, of the sets
$L(p),L(q),G(p)\cap G(q),G(u_{1}),G(p),G(q),G(u),G(v),\mathbb{S}^{2}$.

From (6) it follows that, for all
$w\in(\mathbb{S}^{2}\cap\operatorname*{lin}\\{u_{1},u\\})$ such that $w\cdot
u_{1}>v\cdot u_{1}$, the relation

(7) $\displaystyle G(w)\cap[F(p)\cap
E(q)\cap\Sigma(K_{1},L(p))]\not=\emptyset.$

From (7), we conclude that $w\in\Omega$ for all
$w\in(\mathbb{S}^{2}\cap\operatorname*{lin}\\{u_{1},u\\})$ such that $w\cdot
u_{1}>v\cdot u_{1}$ (See the proof of Lemma 3). Consequently, the arc
$\operatorname*{bd}K_{1}(u)\cap F(u_{1})$ belongs to
$\operatorname*{bd}K_{2}$. In fact, since $w\in\Omega$ for all
$w\in(\mathbb{S}^{2}\cap\operatorname*{lin}\\{u_{1},u\\})$ such that $w\cdot
u_{1}>v\cdot u_{1}$, by Lemma 3, the points
$G(u)\cap\operatorname*{bd}K_{1}(w)$ belong to $\operatorname*{bd}K_{2}$ as
well. Now varying $w\in\mathbb{S}^{2}$ such that $w\cdot u_{1}>v\cdot u_{1}$
we get to the aforesaid. By virtue that the translated sections $K_{1}(u)$,
$K_{2}(u)$ have the arc $\operatorname*{bd}K_{1}(u)\cap F(u_{1})$ in common
they coincide. Thus $u\in\Omega$. ∎

Let $C$ and $D$ be two convex figures in $\mathbb{R}^{2}$,
$D\subset\operatorname*{int}C$. For every $x\in\operatorname*{bd}C$, we define
a polygonal $P_{D}(x)$, with respect to $C$ and $D$, in the following manner.
We take a supporting line $L$ of $D$ passing through $x=x_{1}$, and we denote
by $x_{2}$ the second intersection of $L=L_{1}$ with $\operatorname*{bd}C$. We
denote now by $L_{2}$ the supporting line of $C$, $L_{2}\not=L_{1}$, passing
through $x_{2}$ and so on. The set of vertices of $P_{D}(x)$ is the set of
points $\\{x_{1},x_{2},x_{3},...,x_{k},...\\}$. Therefore, the edges of
$P_{D}(x)$ are
$\\{\overrightarrow{x_{1}x_{2}},\overrightarrow{x_{2}x_{3}},...,\overrightarrow{x_{i}x_{i+1}},...\\}$.
Given the directed edge $\overrightarrow{x_{i}x_{i+1}}$, we denote by
$E_{i(i+1)}$ and $F_{i(i+1)}$ the two half-plane determined by
$L(x_{i},x_{i+1})$, we choose the notation such that $E_{i(i+1)}$ is the half
supporting plane of $D$. We denote by $u_{i}$ the interior unit normal vector
of $E_{i,(i+1)}$, $i=1,2,...,k,...$. Now we require that the set
$\\{\overrightarrow{x_{i}x_{i+1}},u_{i}\\}$ is a left frame of
$\mathbb{R}^{2}$.

######  Lemma 6.

The relation

(8) $\displaystyle\operatorname*{bd}C\subset\bigcup_{i\in I}F_{i(i+1)}$

holds, where $I$ is a countable set possibly finite.

###### Proof.

Contrary to the statement of Lemma 6, we will assume that (8) does not holds.
It is equivalent to suppose the existence of $x\in\operatorname*{bd}C$ such
that $x_{i}\rightarrow x$, when $i\rightarrow\infty$, and, furthermore,
$x\notin F_{12}$. Notice that
$\operatorname*{length}[x_{i},x_{i+1}]\rightarrow 0$, when
$i\rightarrow\infty$. Since in each $\overrightarrow{x_{i}x_{i+1}}$ there is a
point $z_{i}$ in $\operatorname*{bd}D$, it follows that $z_{i}\rightarrow x$,
when $i\rightarrow\infty$. Thus $x\in D$. However this contradicts that
$D\subset\operatorname*{int}C$. ∎

##  5\. Proof of Theorem 1 in dimension 3 for $r_{1}=r_{2}$.

From Lemma 5 we conclude
$F(u_{1})\cap\operatorname*{bd}K_{1}\subset\operatorname*{bd}K_{2}$.
Analogously, we can see that, for every $u\in\Omega$, the relation

(9) $\displaystyle
F(u)\cap\operatorname*{bd}K_{1}\subset\operatorname*{bd}K_{2}$

holds.

Let $v\in\mathbb{S}^{2}\cap H(u_{1})$. Let $\mu_{1},\mu_{2}$ be two supporting
lines of $K_{1}(u_{1})$ parallel to $v$. We consider the polygonal
$P_{\mathbb{S}^{2}}(x_{1})$ inscribed in $\pi_{v}(K_{1})$, as it was defined
at the Lemma 6, where $x_{1}=\pi_{v}(\mu_{1})$. By Lemma 6

$\operatorname*{bd}\pi_{v}(K_{1})\subset\bigcup_{i\in I(v)}F_{i(i+1)}.$

where $I(v)$ is a numerable set of indices depending of $v$. Hence

(10) $\displaystyle\operatorname*{bd}K_{1}\subset\bigcup_{i\in
I(v)}\pi^{-1}(F_{i(i+1)})$

By virtue that we can find $u_{i}\in\Omega$ such that
$F(u_{i})=\pi^{-1}(F_{i(i+1)})$, from (10) it follows that

(11) $\displaystyle\operatorname*{bd}K_{1}\subset\bigcup_{i\in I(v)}F(u_{i})$

By (9) and (11) it follows that $\operatorname*{bd}K_{1}$ and
$\operatorname*{bd}K_{2}$ coincides in $\bigcup_{i\in I(v)}F(u_{i})$. Varying
$v\in\mathbb{S}^{2}\cap H(u_{1})$ we conclude that
$\operatorname*{bd}K_{1}=\operatorname*{bd}K_{2}$.

##  6\. Lemmas for the case $n=3$ and $r_{1}\not=r_{2}$.

We take a system of coordinates such that $p_{2}$ is the origen and $r_{2}=1$,
i.e., $\mathbb{S}^{2}=S_{2}$. Since the hypothesis of Theorem 1 is invariant
under translations, if we assume that there exists vectors
$u\in\mathbb{S}^{2},z\in\mathbb{R}^{3}$ such that

Figure 7. Conditions (A) and (B).

Figure 8. Conditions (A) and (C).

  * (A)

$G(u)$ is supporting plane of $z+S_{1}$, the sphere $z+S_{1}$ is contained in
$E(u)$ and $K_{2}(u)=G(u)\cap(z+K_{1})$,

then, since $S_{2}\not=z+S_{1}$, one of the following two conditions holds:

  * (B)

$(z+S_{1})\cap S_{2}=u$ and
$(z+S_{1})\backslash\\{u\\}\subset\operatorname*{int}S_{2}$ (See Fig. 7),

  * (C)

there exists a point $p\in G(u)$ such that $C(z+S_{1},p)=C(S_{2},p)$ (See Fig.
8).

In this section we will suppose that the bodies $K_{1},K_{2}$, the points
$p_{1},p_{2}$ and the spheres $S_{1},S_{2}$ are such that there exist vectors
$u\in\mathbb{S}^{2},z\in\mathbb{R}^{3}$ for which the conditions (A) and (C)
holds. We denote the body $z+K_{1}$ by $K_{1}$ and the sphere $z+S_{1}$ by
$S_{1}$.

Let $x\in\mathbb{R}^{3}\backslash(S_{1}\cup S_{2})$. Notice that the
collection of corresponding planes of the supporting planes of $C(S_{2},x)$
are passing through one point, which will be denoted by $\psi(x)$, and,
therefore, they are the envelope of the cone $C(S_{1},\psi(x))$. We denote by
$\Delta$ the family of supporting planes of $C(S_{2},p)$ and by
$\Sigma\subset\mathbb{S}^{2}$ the set of unit vectors such that $u\in\Sigma$
if $G(u)\in\Delta$. For $u\in\Sigma$, we denote by $K_{i}(u)$ the section
$G(u)\cap K_{i},i=1,2$.

######  Lemma 7.

There is no supporting plane $\Pi$ of $K_{1},K_{2}$ such that
$\Pi\notin\Delta$ and
$\operatorname*{dim}[\Pi\cap(K_{1}\cap K_{2})]=2$.

Figure 9. There is no supporting plane $\Pi$ of $K_{1},K_{2}$ such that
$\Pi\notin\Delta$ and $\operatorname*{dim}[\Pi\cap(K_{1}\cap K_{2})]=2$.

###### Proof.

Contrary to the statement of Lemma 7, let suppose that there exists a
supporting plane $\Pi$ of $K_{1},K_{2}$ such that
$\operatorname*{dim}[\Pi\cap(K_{1}\cap K_{2})]=2$, $\Pi\notin\Delta$. We
denote by $A,B$ the sets $\Pi\cap K_{1}$, $\Pi\cap K_{2}$, respectively and
let $D\subset\Pi$ be a disc such that $A\cup B\subset D$. Let $L_{1},L_{2}$ be
a pair of supporting lines of $S_{1},S_{2}$, respectively, such that
$L_{1},L_{2}$ are parallel and $z_{1}:=L_{1}\cap\Pi\notin D$ and
$z_{2}:=(L_{2}\cap\Pi)\in A\cap B$ (See Fig. 9). Let $\Gamma_{1},\Gamma_{2}$
be a pair of corresponding planes of $S_{1},S_{2}$ passing through
$\psi(z_{2})$ and $z_{2}$ such that $\Gamma_{1}\cap D=\emptyset$. By the
hypothesis, there exists $\alpha\in\mathbb{R}^{3}$ such that $\Gamma_{1}\cap
K_{1}=\alpha+(\Gamma_{2}\cap K_{2})$. We claim that $\alpha$ cannot be
parallel to $\Pi$. Otherwise, the equality $(\Gamma_{1}\cap
K_{1})\cap\Pi=\alpha+[(\Gamma_{2}\cap K_{2})\cap\Pi]$ would hold.
Consequently, $\alpha+z_{2}\in(\Gamma_{1}\cap
K_{1})\cap\Pi=\Gamma_{1}\cap(K_{1}\cap\Pi)=\Gamma_{1}\cap A$. By virtue that
$A\subset D$ and $\Gamma_{1}\cap D=\emptyset$ it follows that $\Gamma_{1}\cap
A=\emptyset$. This contradiction proves our claim.

As a corollary we obtain that line segment $\alpha+[(\Gamma_{2}\cap
K_{2})\cap\Pi]$ is contained in $\operatorname*{bd}K_{1}\backslash\Pi$ and it
is parallel to $\Pi$.

By the choice of $z_{1}$ and $z_{2}$ it is possible to take
$\Gamma_{1},\Gamma_{2}$ in such a way that we can construct a family of line
segments (non-degenerated in a point) contained in
$\operatorname*{bd}K_{1}\backslash\Pi$, parallel to $\Pi$ and whose
corresponding set of direction is a planar set in $\mathbb{S}^{2}$ and whose
measure is not zero, however, this contradicts the Theorem 1 of [5]. Such
contradiction shows that our initial assumption is false. From this the Lemma
follows. ∎

Now we suppose that $p\notin K_{2}(u)$. Let $L_{1}\subset G(u)$ be a
supporting line of $K_{2}(u)$, $p\in L_{1}$. In virtue that the points
$q_{1}=G(u)\cap S_{1}$, $q_{2}=G(u)\cap S_{2}$ belongs to
$\operatorname*{int}K_{2}(u)$, $L_{1}$ is not contained in $C(S_{2},p)$. Thus
there exists a supporting plane $G(v)$ of $C(S_{2},p)$ such that $L_{1}\subset
G(v)$ and $G(u)\not=G(v)$.

######  Lemma 8.

The equality

(12) $\displaystyle G(v)\cap K_{1}=G(v)\cap K_{2}$

holds.

###### Proof.

Using the same argument that in the proof of Lemma (2) the equality (12)
follows. ∎

For the sets
$K_{i}^{p}:=(\mathbb{R}^{n}\backslash\operatorname*{int}C(K_{i},p))\cap\operatorname*{bd}K_{i}$,
respectively, $i=1,2$, where the point $p\in\mathbb{R}^{n}$ is given by the
condition (C), we have the following lemma.

######  Lemma 9.

The equality $K_{1}^{p}=K_{2}^{p}$ holds.

###### Proof.

Let $q$ be a point in $L_{1}\cap K_{2}(u)$. We take a line $L_{\tau}\subset
G(u)$ such that $p\in L_{\tau}$ and it has an interior point $\tau$ of
$K_{2}(u)$ in the line segment $[q_{1}q]$, $q_{1}\not=\tau\not=q$. Notice
that, since $q_{1}\in\operatorname*{int}K_{2}$ and since all the points of
$K_{2}(u)\backslash\operatorname*{bd}K_{2}$ are interior points of $K_{2}$,
$\tau\in\operatorname*{int}K_{2}$. The line $L_{\tau}$ is not contained in
$S(K_{2},p)$ thus there exists a supporting plane $G(w)$ of $S(K_{2},p)$ so
that $L_{\tau}\subset G(w)$, $G(w)\not=G(u)$ and $G(w)\not=G(v)$. Then, by
Lemma 8, the sections $K_{1}(w)$ and $K_{2}(w)$ have four points in common,
the points given by the intersection of the lines $L_{\tau}$ and $G(w)\cap
G(v)$ with $\operatorname*{bd}K_{2}$. We denote by $a,b$ and $c,d$ such
points, respectively. By hypothesis there exists a vector $\alpha\in G(w)$
such that $K_{1}(w)=\alpha+K_{2}(w)$. Then either: $\alpha=0$, i.e.,
$K_{1}(w)=K_{2}(w)$ or $\alpha\not=0$. If $\alpha=0$, we finish.

Figure 10. The equality $K_{1}^{p}=K_{2}^{p}$ holds.

On the other hand, we suppose now that $\alpha\not=0$. Then, by Lemma 4, the
quadrilateral $\square abcd$ is a trapezoid and it has one pair of edges
parallel to $\alpha$. If the line segment $ab$ is parallel to $\alpha$, then
$ab\subset\operatorname*{bd}K_{2}$, however it would contradict that $\tau\in
ab$ is an interior point of $K_{2}$. Thus the edges $bc$ and $da$ are parallel
to $\alpha$ and
$bc,da\subset\operatorname*{bd}K_{1}\cap\operatorname*{bd}K_{2}$. We take a
line $L_{\rho}\subset G(u)$ such that $p\in L_{\rho}$ and it has an interior
point $\rho$ of $K_{2}(u)$ in the line segment $q_{1}q$, $\tau\not=\rho$. The
line $L_{\rho}$ is not contained in $S(K_{2},p)$ thus there exists a
supporting plane $G(x)$ of $S(K_{2},p)$ such that $L_{\rho}\subset G(x)$,
$G(x)\not=G(u)$, $G(x)\not=G(v)$ and $G(x)\not=G(w)$. The sections $K_{1}(x)$
and $K_{2}(x)$ are translated and have six points in common, the points given
by the intersection of the lines $L_{\rho}$, $G(x)\cap G(v)$ and $G(x)\cap
G(w)$ with $\operatorname*{bd}K_{1}$. We denote by $a^{\prime},b^{\prime}$,
$c^{\prime},d^{\prime}$ and $e^{\prime},f^{\prime}$ such points, respectively.
Such as we have seen above the segments $a^{\prime},b^{\prime}$,
$c^{\prime},d^{\prime}$ and $e^{\prime},f^{\prime}$ can not be parallel. If
the quadrilateral $\square a^{\prime}b^{\prime}c^{\prime}d^{\prime}$ is a
trapezoid with $a^{\prime}c^{\prime}$ and $b^{\prime}d^{\prime}$ a pair of
edges parallel, then the points $\\{a,a^{\prime},c,c^{\prime}\\}$ and
$\\{b,b^{\prime},d,d^{\prime}\\}$ defined a pair of parallel supporting planes
$\Pi_{1},\Pi_{2}$ of $K_{2}$ and
$\operatorname*{conv}\\{a,a^{\prime},c,c^{\prime}\\},\operatorname*{conv}\\{b,b^{\prime},d,d^{\prime}\\}\subset\operatorname*{bd}K_{1}\cap\operatorname*{bd}K_{2}$
(See Fig. 10). However, according Lemma 7, this is impossible. Thus $\square
a^{\prime}b^{\prime}c^{\prime}d^{\prime}$ is not a trapezoid and,
consequently, $K_{1}(x)=K_{2}(x)$.

As the supporting planes $G(s)$ of $C(S_{2},p)$,
$s\in\textrm{arc}(u,v)\subset\Sigma$ are in correspondence with the points
$t\in[p_{1},q],t\not=\tau$ we get that for every
$s\in\textrm{arc}(u,v)\subset\Sigma$ the equality $G(s)\cap K_{1}=G(s)\cap
K_{2}$ holds.

Finally we can extent the previous argument for all $s\in\Sigma$ (Considering
the second supporting line of $K_{2}(v)$ passing through $p$ we find a vector
$\bar{v}\in\Sigma$ such that $K_{1}(\bar{v})=K_{2}(\bar{v})$ and repeat the
argument from above to $K_{2}(v)$ and $K_{2}(\bar{v})$ and so on until we
cover the set $\Sigma$). Now the proof of Lemma 9 is complete. ∎

######  Lemma 10.

It is not possible the case $K_{1}=K_{2}$ and $S_{1}$ is not contained in
$S_{2}$ in Theorem 1, i.e., there are no convex body $K\subset\mathbb{R}^{3}$,
two spheres $S_{1},S_{2}\subset\operatorname*{int}K$ of radius $r_{1},r_{2}$,
$r_{1}<r_{2}$, $S_{1}$ is not contained in $S_{2}$, such that, for every pair
of corresponding planes $\Pi_{1},\Pi_{2}$ of $S_{1}$ and $S_{2}$, there exists
a translation $\psi:\mathbb{R}^{n}\rightarrow\mathbb{R}^{n}$ such that

$\psi(\Pi_{2}\cap K)=\Pi_{1}\cap K.$

###### Proof.

Contrary to the statement of the Lemma 10, let us assume that there are convex
body $K\subset\mathbb{R}^{3}$, two spheres
$S_{1},S_{2}\subset\operatorname*{int}K$ of radius $r_{1},r_{2}$,
$r_{1}<r_{2}$, $S_{1}$ is not contained in $S_{2}$, such that, for every pair
of corresponding planes $\Pi_{1},\Pi_{2}$ of $S_{1}$ and $S_{2}$, there exists
a translation $\psi:\mathbb{R}^{n}\rightarrow\mathbb{R}^{n}$ such that
$\psi(\Pi_{2}\cap K)=\Pi_{1}\cap K$.

Since the measure of the set of directions parallel to the segments contained
in $\operatorname*{bd}K$ is zero, according with [5], we can fin a direction
$w\in\mathbb{S}^{2}$ and a pair of corresponding planes $\Pi_{1},\Pi_{2}$ such
that there is no a line segment parallel to $u$, contained in
$\operatorname*{bd}K$, and $\Pi_{1}\cap K=w+(\Pi_{2}\cap K)$. Notice that

(13) $\displaystyle\textrm{area}(\Pi_{1}\cap K)=\textrm{area}(\Pi_{2}\cap K),$

where $\textrm{area}(Z)$ denotes the area of the set $Z\subset\mathbb{R}^{2}$.

Let $\Gamma_{1},\Gamma_{2}$ be a pair of corresponding planes with
$\Gamma_{1}$ parallel to $\Pi_{1}$. Thus there exists
$\bar{w}\in\mathbb{S}^{2}$ such that $\Gamma_{1}\cap K=\bar{w}+(\Gamma_{2}\cap
K)$ which implies that

(14) $\displaystyle\textrm{area}(\Gamma_{1}\cap
K)=\textrm{area}(\Gamma_{2}\cap K).$

On the other hand, since the planes $\Pi_{1},\Pi_{2}$ are corresponding there
exist $u\in\mathbb{S}^{3}$ such that

$\Pi_{1}=p_{1}+r_{1}G(u)\textrm{ }\textrm{ }\textrm{ and }\textrm{ }\textrm{
}S_{1}\subset p_{1}+r_{1}E(u)$ $\Pi_{2}=G(u)\textrm{ }\textrm{ }\textrm{ and
}\textrm{ }\textrm{ }S_{2}\subset E(u)$

(notice that $p_{2}$ is the origin and $r_{2}=1$).

First, we assume that $S_{1}\cap S_{2}\not=\emptyset$. Then

(15) $\displaystyle\Pi_{1}\cap K\subset F(u)$

and

(16) $\displaystyle\Gamma_{1}\cap K,\Gamma_{2}\cap K\subset E(u)\textrm{
}\textrm{(See Fig. \ref{end1}).}$

By (13), (15), (16), the choice of $w$ and the Brunn’s inequality for slice
volumes (Theorem 12.2.1 P. 297 of [8])

(17) $\displaystyle\textrm{area}(\Gamma_{1}\cap
K)\not=\textrm{area}(\Gamma_{2}\cap K).$

However (17) contradicts (14).

The case $S_{1}\cap S_{2}=\emptyset$ can be considered analogously. Thus the
proof of Lemma 10 is now complete. ∎

Figure 11. It is not possible the case $K_{1}=K_{2}$ and $S_{1}$ is not
contained in $S_{2}$ in Theorem 1.

##  7\. Proof of Theorem 1 in dimension 3 for $r_{1}\not=r_{2}$.

###  7.1. Condition (A) and (B) are satisfied simultaneously.

We suppose that the bodies $K_{1},K_{2}$ are such that every time we translate
the body $K_{1}$ and in order that the condition (A) holds, then the the
condition (B) holds. This supposition implies that, since the conditions of
the Theorem 1 are invariant under translations, if the spheres $S_{1}$ has its
center at the origin, then, for all $u\in\mathbb{S}^{2}$, it follows that

$K_{2}(u)=(1-r_{1})u+[r_{1}G(u)\cap K_{1}],\textrm{ }\textrm{
}((1-r_{1})u+S_{1})\cap S_{2}=u\textrm{ and }[(1-r_{1})u+S_{1}]\subset S_{2},$

i.e, it is possible to translate $K_{1}$ and $S_{1}$ in order that (A) and (B)
holds for all $u\in\mathbb{S}^{2}$ (See Fig. 12). Let
$\Delta:\mathbb{R}^{3}\rightarrow\mathbb{R}^{3}$ be an homothety with centre
at the origin and radius of homothety $r=r_{1}$. Thus the bodies $K_{1}$ and
$\Delta(K_{2})$ have the following property: for each supporting plane $\Pi$
of $S_{1}$ the sections $\Pi\cap K_{1}$ and $\Pi\cap\Delta(K_{2})$ are
homothetic with centre and radius of homothety $\Pi\cap S_{1}$ and $r$,
respectively, i.e., the bodies $K_{1}$ and $\Delta(K_{2})$ satisfies the
condition of Lemma 1 and, consequently, $K_{1}$ and $\Delta(K_{2})$ are two
concentric spheres. Therefore $K_{1}$ and $K_{2}$ are two concentric spheres.

Figure 12. Condition (A) and (B) are satisfied simultaneously.

###  7.2. The bodies $K_{1},K_{2}$, the points $p_{1},p_{2}$ and the spheres
$S_{1},S_{2}$ are such that there exist vectors
$u\in\mathbb{S}^{2},z\in\mathbb{R}^{3}$ for which the conditions (A) and (C)
holds.

By Lemma 9, the equality $K_{1}^{p}=K_{2}^{p}$ holds, however, by Lemma 10,
$\operatorname*{bd}K_{1}\not=\operatorname*{bd}K_{2}$. Thus there exists a
pair of supporting planes of $\Gamma_{1}$, $\Gamma_{2}$ of $K_{1}$ and $K_{2}$
which are corresponding, close enough to $G(u)$, such that there exists
$\bar{z}\in\mathbb{R}^{3}$ with the properties

  * ($\mathcal{A})$

$\Gamma_{2}\cap K_{2}=\bar{z}+(\Gamma_{1}\cap K_{1})$, $\Gamma_{2}$ is
supporting plane of $\bar{z}+S_{1}$ and the sphere $\bar{z}+S_{1}$ is
contained in $\Gamma^{+}_{2}$, the supporting half-space of $S_{2}$ defined by
$\Gamma_{2}$, ,

  * ($\mathcal{C})$

there exists a point $\bar{p}\in\Gamma_{2}\backslash((\bar{z}+K_{1})\cup
K_{2})$ such that $C(\bar{z}+S_{1},\bar{p})=C(S_{2},\bar{p})$ (See Fig. 8).

Furthermore, by Theorem 1 of [5], we can take the planes $\Gamma_{1}$,
$\Gamma_{2}$ in such a way that

  * ($\mathcal{D}$)

there is no a line segment parallel to $\bar{z}$ and contained neither
$\operatorname*{bd}K_{1}$ nor $\operatorname*{bd}K_{2}$.

We will consider the cylinders

$C:=\\{\lambda\bar{z}+x:x\in\Gamma_{1}\cap K_{1},0\leq\lambda\leq
1\\},C^{-}:=\\{\lambda\bar{z}+x:x\in\Gamma_{1}\cap K_{1},\lambda<0\\},$

the planes $\Gamma_{\lambda}:=\lambda\bar{z}+\Gamma_{1}$,
$\Delta:=\\{x+\lambda\bar{z}:x\in G(u)\cap\Gamma_{2},\lambda\in\mathbb{R}\\}$
and the half-spaces $\Delta^{+},\Delta^{-}$ defined by $\Delta$, we choose the
notation such that $p\in\Delta^{-}$. Furthermore, we establish the notation
$\bar{K}_{1}=K_{1}+\bar{z}$, $\bar{K}_{2}:=K_{2}$,
$\bar{K}^{\bar{p}}_{i}:=[\mathbb{R}^{3}\backslash
C(\bar{K}_{i},\bar{p})]\cap\operatorname*{bd}\bar{K}_{i}$, $i=1,2$.

By Lemma 9, the following relations

(18) $\displaystyle\operatorname*{bd}(\Gamma_{1}\cap K_{1})\cap
F(u)\subset\operatorname*{bd}K_{1},\operatorname*{bd}K_{2}\textrm{ }\textrm{
and }\textrm{ }\operatorname*{bd}(\Gamma_{2}\cap K_{1})\cap
F(u)\subset\operatorname*{bd}K_{1},\operatorname*{bd}K_{2}$

holds. By (9), ($\mathcal{D}$) and the Brunn’s inequality for slice volumes
(Theorem 12.2.1 P. 297 of [8]), the section $\Gamma_{\lambda}\cap K_{1}$ is
such that

(19) $\displaystyle A_{\lambda}:=[\operatorname*{bd}(\Gamma_{\lambda}\cap
K_{1})]\cap\Delta^{+}\subset\mathbb{R}^{3}\backslash C,$

for every $\lambda$, $0<\lambda<1$, and

(20) $\displaystyle C_{\lambda}:=[\operatorname*{bd}(\Gamma_{\lambda}\cap
K_{1})\cap\Delta^{+}]\subset C^{-}\cap\Delta^{+},$

for every $\lambda$, $\lambda<0$ such that
$\Gamma_{\lambda}\cap(K_{1}\cap\Delta^{+})\not=\emptyset$ (See Fig. 13).
Notice that by Lemma 9

(21) $\displaystyle
A_{\lambda}=B_{\lambda}:=[\operatorname*{bd}(\Gamma_{\lambda}\cap
K_{2})]\cap\Delta^{+}\textrm{ and
}C_{\lambda}=D_{\lambda}:=[\operatorname*{bd}(\Gamma_{\lambda}\cap
K_{2})]\cap\Delta^{+}.$

for every $\lambda$, $0<\lambda<1$. From (19) and (21)

(22) $\displaystyle B_{\lambda}\subset\mathbb{R}^{3}\backslash C,$

for every $\lambda$, $0<\lambda<1$, and, on the other hand, from (20) and (21)

(23) $\displaystyle D_{\lambda}\subset C^{-}\cap\Delta^{+},$

for every $\lambda$, $\lambda<0$.

Figure 13.

By (20), for $\epsilon>0$ small enough such that
$\Gamma_{-\epsilon}\cap(K_{1}\cap\Delta^{+})\not=\emptyset$, the relation
$C_{-\epsilon}\subset C^{-}\cap\Delta^{+}$ holds, consequently

(24) $\displaystyle C_{-\epsilon}+\bar{z}\subset C\cap\Delta^{+}.$

Notice that $C_{-\epsilon}+\bar{z}\subset\operatorname*{bd}\bar{K}_{1}$. By
Lemma 9 applied to the bodies $\bar{K}_{1},\bar{K}_{2}$, by virtue that we are
assuming that the conditions ($\mathcal{A})$ and ($\mathcal{C})$ are
satisfied, the equality $\bar{K}^{\bar{p}}_{1}=\bar{K}^{\bar{p}}_{2}$ holds.
Thus $C_{-\epsilon}+\bar{z}\subset\operatorname*{bd}\bar{K}_{2}=K_{2}$. Since
$\Gamma_{-\epsilon}+\bar{z}=\Gamma_{(1-\epsilon)}$ it follows that
$C_{-\epsilon}+\bar{z}=B_{(1-\epsilon)}$. Hence 24 implies

(25) $\displaystyle B_{(1-\epsilon)}\subset C\cap\Delta^{+}.$

By (22)

(26) $\displaystyle B_{(1-\epsilon)}\subset(\mathbb{R}^{3}\backslash C).$

From (25) and (26) we have an absurd. This contradiction was derived by the
assumption that the conditions (A) and (C) holds.

## References

  * [1] J.A. Barker, D.G. Larman: _Determination of convex bodies by certain sets of sectional volumes_. Discrete Mathematics 241 (2001) $79-96$.
  * [2] G. Bianchi and P. Gruber: _Characterization of Ellipsoids_ , Archiv der Math. 49 (1987) $344-350$.
  * [3] G. R. Burton. _Sections of convex bodies_. J. London Math. Soc., Vol 2-12, (1976) $331-336$.
  * [4] H. Busemann, _The geometry of geodesic_ , New York, 1955.
  * [5] G. Ewald, D. G. Larman, C. A. Rogers, _The directions of the line segments and of the $r$-dimensional balls on the boundary of a convex body in Euclidean space_. Mathematika Vol. 17-1,(1970), $1-20$.
  * [6] R. Gardner. _Geometric Tomography_ (Second Edition). Cambridge University Press. USA. 2006.
  * [7] J. Jeronimo-Castro, L. Montejano and E. Morales. _Shaken Roger’s theorem for homothetic sections_. Canadian mathematical bulletin, ISSN 0008-4395, Vol. 52, No. 3 (2009) $403-406$.
  * [8] Matousek. _Lectures on discrete geometry_ (2002). Springer
  * [9] L. Montejano: _Two applications of Topology to Convex Geometry_. Proceedings of the Steklov Institute of Mathematics, Vol. 247 (2004) $164-167$.
  * [10] F. Nasarov, D. Ryabogin, A. Zvavitch. _Non-uniqueness of convex bodies with prescribed volumes of sections and projections_. Mathematika, Vol. 59, Part 1 (2013) $213-221$.
  * [11] C.A. Rogers: _Sections and projections of convex bodies_ , Portugaliae Math. 24 (1965) 99-103.
  * [12] N. Steenrod: _Topology of fibre boundles_. Princeton Landmarks in Mathematics. 1960.