The number of immune defense and counter-defense systems sustained in the arms race between procaryotes and viruses
Abstract
Prokaryotes have evolved various mechanisms to counter viruses, which in their turn developed numerous strategies to avoid defenses of the hosts. Dozens of such defense and counter-defense mechanisms have recently been discovered, yet the number of such systems held by a given virus or its host is limited. Here, we present numerical and theoretical arguments for the existence of the maximal number of ecologically and evolutionary sustainable defense and counter-defense systems maintained by both sides at any time of the never-ending evolutionary arms race. We find that the number of such systems is of the order of 10 for a broad range of assumptions about the costs and benefits of defense and counter-defense mechanisms and their specificity. This optimum in the number of defense and counter-defense systems appears as a result of a compromise between the metabolic and autoimmune costs of adding a new layer of defense and the benefits it conveys.
Significance statement
Almost all living creatures are either predators or prey (and many are both). At all scales of life, from single cells to largest mammals, prey evolve defenses against predators and predators in their turn evolve counter-defense mechanisms. As a result of this ever-lasting arms race, each organism usually possesses multilayer defense and counter-defense arsenals. Is there a limit to the size of these arsenals? In this work we present a proof-of- principle argument that such a limit indeed exists. Using for definity an example of prokaryotes as the prey and their viruses as predators, we show that the number of distinct defense and counter-defense system that the prey and predators possess is limited by a number of the order of 10 and is only weakly dependent on the ecology of predator-prey interactions. Similar principles and limits likely emerge universally in various antagonistic conflicts such as crime and law enforcement or real arms race.
1 Introduction
Prokaryotes are involved in a constant conflict with mobile genetic elements, most prominently, with viruses (phages). Individual encounters between the parties of the conflict often result in elimination of either or both sides. The conflict, lasting for billions of years, is driven by an arms race with hosts evolving immune defenses to protect themselves against the viruses, while the latter developing counter-defenses to bypass the host defences. As a result, a typical prokaryotic cell (in the following referred to as a ”cell” for brevity) possesses a wide repertoire of defense systems that, among others, prevent viral adsorption, degrade foreign nucleic acids injected inside the cell, deplete infected cells of essential molecules, induce dormancy and death of infected cells, or synthesize molecules that inhibit viral replication [Hampton et al., 2020, Agapov et al., 2024, Millman et al., 2022, Wang et al., 2023]. Viruses, in their turn, have evolved various counter-defense strategies that allow them to bypass host cells defenses [Safari et al., 2020]. The diversity of available defense and counter-defense systems requires a certain level of redundancy both in the immune arsenal a cell possesses and in the collection of viral counter-defense strategies. Thus, it is interesting to examine how many layers of immune defense systems and counter-immune strategies cells and viruses can evolve in total? And how many of such strategies does a given cell or virus typically possess? Recent estimates of the number of mechanistically distinct defense systems that a typical prokaryotic cell carries is between 5 and 6 [Agapov et al., 2024, Millman et al., 2022], which is an order of magnitude less than the total number of such systems discovered to date, with many more systems remaining to be discovered. Furthermore, the experimental evidence suggests that the diversity of counter-defense systems constrains the arms race dynamics, making it less probable or even preventing the evolution of their reciprocal defense systems [Castledine et al., 2022]. These characteristics of defense and counter-defense arsenals are essential to understanding the ecology of coexistence of prokaryotes and their viruses that essentially shapes the Earth’s biosphere.
The existing theoretical and numerical analysis of population dynamics of cells and phages are mostly focused on explaining sustainability of their coexistence by the emergent spatial structures [Eriksen et al., 2020], diversification of viral strategies [Kimchi et al., 2024b], and synergistic effects of various defense systems of cells [Arias et al., 2022, Wu et al., 2024]. To the best of our knowledge, only the recent work [Kimchi et al., 2024a] (posted on bioRxiv after the main part of our analysis was completed) analyzes the effect of various layers of defense and counter-defense systems on bacterial and viral population dynamics.
Here, we attempt to provide conceptual arguments for the existence of an upper limit in the number of such layers. Under a broad range of assumptions, such limits appear as a result of a compromise between the benefits provided by adding new defense mechanisms and their metabolic and self-immune costs. These limits exist both for cells, where at some point an addition of a new level of defense becomes detrimental, and for viruses, where the cost of a new evasion strategy exceeds its benefit. Using a generic Lotka-Volterra description for population dynamics of interacting cells and viruses, we show that these limits universally exist for various dependencies of the costs on the number of defenses and counter-defense strategies. We first present simulations where defense and counter-defense mechanisms are nonspecific. This example reveals the upper limit on the number of defense system a cell can evolve under given ecological conditions and metabolic costs of these systems. It is followed by a model that describes more common settings where each defense system can be counteracted only by a specific counter-defense. The defense and counter-defense systems are assumed to be available from a commonly accessible pool via, e.g., horizontal gene transfer or random mutation. We compare the maximal number of sustainable defense layers in both models and show how variations in costs, such as metabolic load and reduction in attack rates, affect the ecological sustainability of these mechanisms. Finally, we offer a theoretical estimate of the maximal number of immune layers, which almost perfectly agrees with our simulation results.
2 Model
2.1 Population dynamics
Consider a community populated by strains of cells and viruses, distinct only in the repertoires of their defense and counter-defense systems. The community is well-mixed and has no spatial structure, so at each time point its ecological state is completely characterized by population densities of cellular and viral strains and . Different strains of cells are labeled by the number of their immune defense systems , while the label of a viral strain is the number of defense evasion mechanisms it encodes. In the following, the defense systems and defense evasion mechanisms are also referred to as defense and counter-defense layers. Later, the labels of cellular and viral strains will also indicate the specific types of defense and counter-defense systems those strains possess.
The dynamics of populations and are assumed to be given by a Lotka-Volterra system of equations,
(1) | |||
Here is a per capita reproduction rate of cells that depends on the number of immune defense layers , is the environmental carrying capacity, and is the attack rate at which the viral strain infects the cellular strain . The attack rate depends not only on the number of immune defense layers but also on the number of counter-defense mechanisms of the virus. The summation runs over all viral strains , which reflects that in principle any of those strains can attack the cellular strain . In the second line, the per capita reproduction rate of the virus includes the factor , which comprises the burst size and the rate at which the viral offspring are produced during a successful infection. This rate, and consequently , decreases with the number of defense evasion mechanisms of the virus due to their metabolic cost. All viruses have an identical per capita death rate .
The main feature of our model are the dependencies of , , and on and .
2.2 Cellular growth rate
The metabolic and autoimmune cost of maintaining a certain number of immune defense layers results in a slower growth. Hence, is a decreasing function of . There are two simple possibilities to define this decrease. First is additive, so that each new layer slows down the growth rate by a constant,
(2) |
with and being parameters. Because the reproduction rate has to be positive, the choice of this form of artificially sets a limit on the maximal number of immune defense layers, . Hence, in all meaningful scenarios must stay below this limit.
Another possibility is to define the growth rate penalty multiplicatively: each new layer decreases the birth rate by a constant multiplicative factor
(3) |
This form in principle allows a cellular strain to evolve unlimited number of defense layers.
We will analyze Eq. (1) using both these forms.
2.3 Viral growth rate
Similarly to the case of cells, an addition of a immune avoidance mechanism slows viral growth. So must also be a decreasing function of , and similarly to cellular growth rate, it could be defined both in additive and multiplicative ways,
(4) |
or
(5) |
2.4 The attack rate
Unlike the two previous cases, the attack rate (or the level of protection by an immune mechanism) is always multiplicative: it is well-established that a successful immune defense system reduces the number of infected cells by a certain factor (e.g., measured as a ”protection level” in [Kirillov et al., 2022]). We assume that different immune protection systems act independently, so that the protection level offered by several independent systems is the product of protection levels offered by each system separately. We also assume that each immune avoidance mechanism works perfectly against its immune system and allows a virus to restore the attack rate to the pre-immune level. This suggests the following form for the attack rate,
(6) |
where is a step function,
(7) |
In other words, (6) means that a virus does not gain any increase in attack rate if it evolves an avoidance mechanism against the immune system that the cellular strain it attacks does not possess. It is also assumed in (6) that the immune systems and avoidance mechanisms are non-specific, so the net effect of immune layers and avoidance mechanisms depends only on , but not on specific pairings between them. A sketch that illustrates this scenario is presented in the left panel of Supplementary Figure 1.
2.5 Simulations
We perform two types of simulations:
In an ecological-only variant, all cellular and viral strains are seeded at a small initial density,
(8) |
and are allowed to evolve according to Eqs. (1) in a totally deterministic way.
In the second variant that mimics evolution, the simulation is initiated with small densities of cell without immune defenses and viruses without avoidance mechanisms,
(9) |
With the frequency proportional to its density, a given strain produces a new (mutant) strain that either loses or gains one defense (or counter-defense) system. Specifically, an event occurs when the time integral of the sum of all population densities reaches a certain threshold (usually set equal to 500) and then an ancestral strain is chosen with the probability proportional to its population. Mutational events that produce already existing strains are ignored as their contributions to already existing populations are negligible. Strains with population below a certain limit (equal to or ) are declared extinct and their densities are set to zero.
The parameters used in first set of simulations are shown in Table 1.
Parameter | Value | Meaning |
---|---|---|
10 | Cellular birth rate amplitude | |
0.1 | Cellular birth coefficient | |
1 | Environmental carrying capacity | |
0.1 | Attack rate amplitude | |
0.3 | Attack rate coefficient | |
5 | Viral birth rate amplitude | |
0.1 | Viral birth rate coefficient | |
1 | Viral death rate | |
Initial density of cells | ||
Initial viral density |
In the subsequent examples we will show the quantitative effects of varying , and . The phenomenology that we describe below is very robust and is reproducible for a wide range of parameters.
3 Results
We start with ecological simulations (8) and first examine all four possible combinations of multiplicative and additive costs for viruses and cells. Our intention is to show that the existence of a limit on the number of defense and counter-defense layers is universal. Indeed, for the parameters listed in Table 1, the additive costs for the cells (2) and viruses (4) limit the number of layers to 4, top row in Fig. 1,

while the less steep multiplicative costs (3,5) allow the evolution of 6 such layers, bottom row in Fig. 1.
In ”mixed” scenarios with multiplicative costs for cells and additive for viruses and vice versa, shown in Supplementary Fig. 2, 5 layers of defense and counter-defense are sustained.
Simulations with evolutionary scenario defined by Eqs. (9) and illustrated in Fig 2 predict the same maximal number of levels of immune defenses and avoidance mechanisms as their ecological counterparts. Yet the evolutionary simulations may also result in the extinction of strains of cells with intermediate numbers of immune layers (such as and in Fig. 2).

The generally smaller number of sustainable layers observed for the additive costs is not surprising as the additive costs increase faster with the number of layers than the multiplicative ones,
(10) |
Next we show how the variation of costs and affects the maximal number of layers. As expected, an increase in costs from 0.1 to 0.15 reduces the number of defense layers and avoidance mechanisms with additive costs to 2 (first row in Fig. 3), and with multiplicative costs to 3 (first row in Supplementary Fig. 3.

Reciprocally, a reduction in costs from 0.1 to 0.05 results in a noticeable increase in the number of sustainable immune and counter-immune systems. In second row in Fig. 3, the population dynamics of 11 cellular strains sustaining up to 10 level of immune defense and 10 viral strains with up to 9 avoidance mechanisms are shown.
An increase in from 0.3 to 0.5, which translates into a greater reduction in attack rate with each additional layer, also results in an increase in the number of layers even if the cost of the layers in maintained high (equal to 0.15). Supplementary Fig. 4 shows that such an increase allows cells to sustain up to 4 layers of immune defense, up from 3 sustainable for . However, viruses were able to sustain only 3 layers of avoidance mechanisms, similarly to the reference case with .
When the metabolic cost of an immune system is less than the cost of an avoidance mechanism, an extra layer of protection above the previous maximal number of immune defense strategies may evolve, Supplementary Fig. 5. However, in reverse scenario when the cost for cells is higher than that for viruses, fewer layers are sustained, Supplementary Fig. 6.
4 An estimate for the maximal number of layers
A simple estimate allows us to quite accurately predict the maximal number of sustainable defense layers. It is based on the adaptive dynamics derivation (see, for example, [Dieckmann and Law, 1996], adjusted to the discrete nature of the main evolutionary variables, the number of layers and .
Consider a resident cellular strain with levels of defense coexisting with a resident viral strain with the same number () of avoidance mechanisms. The resident strains are assumed to be in an ecological equilibrium or at steady state population levels. As it follows from the figures above, the population dynamics does necessarily converge to a steady state. Nevertheless, in the idealized case of one cell and one viral strain, it is well known that the Lotka-Volterra population dynamics converges to the steady state for any finite carrying capacity . The steady population densities are given by the solution of the system of equations obtained from (1) by setting the left-hand sides equal to zero,
(11) |
The solution reads
(12) |
Now consider the per capita growth rate of a rare cell mutant with layers of immune defense in the presence of resident cell and viral strains and . When the growth rate is negative, the strain will not evolve more defense layers, so becomes the maximal number of sustainable immune defense layers. (Note that the rare viral mutant will always have a negative growth rate as its reproduction rate will be less than that of by a factor , and the reproduction rate of equals its death rate at the steady state.)
(13) |
Substitution of (12) in (13) yields
(14) |
For the multiplicative costs (3,5) the solution of (14) is particularly simple,
(15) |
which yields the estimate for the maximal number of sustainable immune defense layers,
(16) |
This simple estimate works surprisingly well and produces values of that round up to the observed values () in all cases that we have considered, see Table 2.
5 Specific defense and counter-defense mechanisms
5.1 Definition of specific immunity and counter-immune defense
So far, we have analyzed the scenario where each defense level offered universal protection, and each counter-defense mechanism worked against any defense system. This simplistic approach sets the upper limit on the maximal number of defense and counter-defense layers: each additional defense mechanism protects the cell strain against all viruses, and each additional counter-defense layer allows a virus to overcome all existing defense mechanisms. We expect that the specificity of defense and counter-defense mechanisms will decrease the sustainable number of these layers. This is so because an addition of a new defense system does not necessarily protect against all viral strains with their specific counter-defenses and thus brings less benefits than in the universal case, while the costs are identical. Here we demonstrate it with a model where only a specific counter-defense mechanism can overcome a particular immune defense.
Assume that there exists a pool of distinct immune defense systems and the same number of viral counter-defense mechanisms each specific to its “cognate” defense system. A cellular strain is now labeled with several subscripts that describe its repertoire of immune defenses. The number of such subscripts can be any integer from zero to . For example, the population has immune systems, the first, the second, and the fourth. Similarly, viral strains are labeled by their counter-defense mechanisms: for example, the population has two such mechanisms, the second and the third. When a cell has an immune system and the virus that attacks it does not possess the corresponding counter-defense, the attack rate is reduced by the factor . This rule replaces the previously assumed form of the attack rate given by Eq. (6). So in our example the attack rate of virus on the cell is since the virus does not have counter-defense against the first and the fourth immune systems. A sketch of the specific defense – counter-defense scenario is presented in the right panel of Supplementary Figure 1. The additive metabolic costs of each immune defense and counter-defense layer are assumed to be independent of the nature of these systems and are given by Eqs. (2, 4) as before.
In this setting the ecological simulation appears more relevant: the cellular and viral strains with all possible combinations of defenses and counter-defenses are present at small densities from the beginning. Subsequent population dynamics of the strains are defined by Eqs. (1).
The simulations confirm our qualitative prediction that taking into account the specificity of immune defenses and counter-defenses reduces the maximal number of such layers that are sustained by cells and viruses. Fig. 4 shows the results for the maximal number of defense and counter-defense layers and other parameters taken from the Table 1. It follows that surviving strains have at most 2 defense layers, while in the non-specific simulations the number of both defense and counter-defense layers was 4, Fig. 1.

5.2 Combinatorial arguments
Here we explain why the specificity of immune defenses and counter-defenses reduces the maximal number of such layers compared to the simplified scenario of universal layers. Consider the particular example of distinct defense and counter-defense systems and weigh the benefits and costs for a cell to acquire the third defense mechanism on top of the already existing two, . We assume that strains of cells, each possessing a distinct combination of two defense layers, coexist in the system. Because all defense mechanisms have the same efficiency and metabolic costs, the population densities of these 6 strains are the same. We also assume that cells of each strain have counterpart viruses of the strain with the corresponding counter-defense mechanisms. Populations densities of these 6 viral strains are also equal as their ecological parameters are identical. The attack rate on a cell of any resident strain originating from all 6 viral strains is
where is the net population of all viral strains. The first term in the square brackets originates from attacks of the viral strain with the counter-defense mechanisms perfectly matching the set of defenses, the second term describes the attacks from viral strains with one mismatch between the defense and counter-defense mechanisms, while the third term accounts for the viral strain with the mismatches in both counter-defenses. Now assume that one of the cellular strains, let it be without loss of generality, produces a mutant , acquiring the third defense mechanism. The attack rate on the mutant cell from all resident viral strains is
Three first terms result from the attacks from viruses and that have to overcome one defense layer, while the last term describes the attacks from viruses and that have to overcome two defense layers. The mutation brings in the reduction in the attack rate
Yet the reduction in the attack rate in the simple model (Sec. 2) with non-specific defense and counter-defense mechanism is twice larger,
At the same time, the costs of an additional defense systems are identical in both model and are expressed as a decrease in the birth rate given by (2). This explains why the more realistic consideration that takes into account the differences between various immune defense systems and specificity of each counter-defense mechanism predicts fewer sustainable defense and counter-defense layers.
6 Discussion
We presented a proof of the principle that the numbers of defense systems of any cell and counter-defense strategies of any virus are finite: an addition of a new defense or counter-defense system above a certain threshold carries the metabolic and self-immune costs that are higher than the benefits it conveys.
There are two main conclusions. In the first part of our study that mimics innate immunity, where the defense and counter-defense systems are non-specific, an addition of a new defense system makes the cell strain immune against all existing viral strains (until one of them evolves the counter-defense strategy). Thus, it estimates the maximal number of defense systems that are evolvable under given ecological parameters and metabolic costs of defenses. In the second part of our study where specificity is introduced, such that each counter-defense allows a virus to overcome only a particular defense system, the number of defense and counter-defense layers sustainable in the long term is less than in the non-specific case. This model mimics the scenario of acquisition of defense and counter-defense systems by adding spacers to a CRISPR array and explains the observation that a cell employs significantly fewer defense systems that are known to exist, [Millman et al., 2022, Wang et al., 2023].
We also found that both ecological and evolutionary simulations predict similar limits on the number of defense and counter-defense layers, with the latter often exhibiting extinction of strains with intermediate numbers of defense layers. Furthermore, variations in metabolic costs play a critical role in determining the maximal number of layers. Predictably, a lower cost leads to an increase in number of sustainable layers, while a higher cost limits the system to fewer defense and counter-defense systems.
A key numerical takeaway from our findings is that the number of sustainable layers of immune defense or counter-defense systems is of the order of 10. The analytic estimate we provide for the maximal number of sustainable layers, which is confirmed by our simulations, offers a simple explanation for this limit: The maximal number of sustainable levels depends only weakly, that is, logarithmically, on the metabolic and autoimmune costs.
Our study is limited by the explicit assumption that the community is well-mixed: there is no geographic diversity and no migration. In many naturally occurring environments, such as soils, the transport and mixing is slow, yet the cellular and viral co-evolution remains fast. That inevitably leads to the geographical separation (or spatial independence) of parallel evolutionary scenarios, which can produce distinct sets of defense and counter-defense systems. Thus, due to spatially-segregated evolution, the number of currently existing defense systems and evasion strategies can substantially exceed the simple estimates made using our models. We plan to consider the effects of spatial segregation and migration in the future.
Another interesting effect we have noticed is that two strains of cells, with no defense systems and with the maximal sustainable number of such systems, often have the largest population densities. In the future, we plan to assess whether this effect is an artifact of our rather schematic simulation or is a real feature of the arms race.
The implications of our findings could be quite general. Scenarios where two or more counterparts are engaged in antagonistic interactions that result in a buildup of defenses and counter-defenses abound in nature at all levels. In addition to the conflict between prokaryotic cells and their viruses analyzed here, such scenarios include interactions between various pathogens and immune systems of more complex organisms, cells that produce toxic substances such as antibiotics and cells that are sensitive to the action of these substences, and, more generally, all predator-prey type interactions. Furthermore, various social conflicts including crime and law enforcement, and even the actual arms race in between conflicting states also obey the principles that we modeled in this work: each new defense level adds protection against a hostile action or a threat of the antagonistic counterpart while a counter-defense layer of the counterpart eliminates or reduces this protection. Since both defense and counter-defense carry costs and bearers of various numbers of layers are inevitably engaged in some form of competition, at some level it becomes detrimental rather than beneficial to add more defense or counter-defense layers. It will be interesting to adapt our model to more specific biological and social scenarios and quantitatively probe these speculations.
After completion of the main part of this study, we became aware of the publication that analyzes the dynamics of populations engaged in antagonistic interactions, albeit in a somewhat different way, [Kimchi et al., 2024a]. It is assuring to see that that work essentially comes to conclusions similar to ours, even though several assumptions are quite different.
7 Acknowledgments
AL acknowledges the support of the program ”Prioritet-2030” and would like to thank the Department of Physics at the University of Santiago of Chile for hospitality and the Moscow Institute of Physics and Technology for support.
References
- [Agapov et al., 2024] Agapov, A., Baker, K. S., Bedekar, P., Bhatia, R. P., Blower, T. R., Brockhurst, M. A., Brown, C., Chong, C. E., Fothergill, J. L., Graham, S., et al. (2024). Multi-layered genome defences in bacteria. Current Opinion in Microbiology, 78:102436.
- [Arias et al., 2022] Arias, C. F., Acosta, F. J., Bertocchini, F., Herrero, M. A., and Fernández-Arias, C. (2022). The coordination of anti-phage immunity mechanisms in bacterial cells. Nature communications, 13(1):7412.
- [Castledine et al., 2022] Castledine, M., Sierocinski, P., Inglis, M., Kay, S., Hayward, A., Buckling, A., and Padfield, D. (2022). Greater phage genotypic diversity constrains arms-race coevolution. Frontiers in Cellular and Infection Microbiology, 12:834406.
- [Dieckmann and Law, 1996] Dieckmann, U. and Law, R. (1996). The dynamical theory of coevolution: a derivation from stochastic ecological processes. Journal of mathematical biology, 34:579–612.
- [Eriksen et al., 2020] Eriksen, R. S., Mitarai, N., and Sneppen, K. (2020). Sustainability of spatially distributed bacteria-phage systems. Scientific reports, 10(1):3154.
- [Hampton et al., 2020] Hampton, H. G., Watson, B. N., and Fineran, P. C. (2020). The arms race between bacteria and their phage foes. Nature, 577(7790):327–336.
- [Kimchi et al., 2024a] Kimchi, O., Meir, Y., and Wingreen, N. S. (2024a). Bacterial defense and phage counter-defense lead to coexistence in a modeled ecosystem. bioRxiv, pages 2024–07.
- [Kimchi et al., 2024b] Kimchi, O., Meir, Y., and Wingreen, N. S. (2024b). Lytic and temperate phage naturally coexist in a dynamic population model. The ISME Journal, 18(1).
- [Kirillov et al., 2022] Kirillov, A., Morozova, N., Kozlova, S., Polinovskaya, V., Smirnov, S., Khodorkovskii, M., Zeng, L., Ispolatov, Y., and Severinov, K. (2022). Cells with stochastically increased methyltransferase to restriction endonuclease ratio provide an entry for bacteriophage into protected cell population. Nucleic acids research, 50(21):12355–12368.
- [Millman et al., 2022] Millman, A., Melamed, S., Leavitt, A., Doron, S., Bernheim, A., Hör, J., Garb, J., Bechon, N., Brandis, A., Lopatina, A., et al. (2022). An expanded arsenal of immune systems that protect bacteria from phages. Cell host & microbe, 30(11):1556–1569.
- [Safari et al., 2020] Safari, F., Sharifi, M., Farajnia, S., Akbari, B., Karimi Baba Ahmadi, M., Negahdaripour, M., and Ghasemi, Y. (2020). The interaction of phages and bacteria: the co-evolutionary arms race. Critical reviews in biotechnology, 40(2):119–137.
- [Wang et al., 2023] Wang, Y., Fan, H., and Tong, Y. (2023). Unveil the secret of the bacteria and phage arms race. International Journal of Molecular Sciences, 24(5):4363.
- [Wu et al., 2024] Wu, Y., Garushyants, S. K., van den Hurk, A., Aparicio-Maldonado, C., Kushwaha, S. K., King, C. M., Ou, Y., Todeschini, T. C., Clokie, M. R., Millard, A. D., et al. (2024). Bacterial defense systems exhibit synergistic anti-phage activity. Cell Host & Microbe, 32(4):557–572.
Supplementary figures













