Skip to main content
Log in

On the Decision Tree Complexity of Threshold Functions

  • Published:
Theory of Computing Systems Aims and scope Submit manuscript

Abstract

In this paper we study decision tree models with various types of queries. For a given function it is usually not hard to determine the complexity in the standard decision tree model (each query evaluates a variable). However in more general settings showing tight lower bounds is substantially harder. Threshold functions often have non-trivial complexity in such models and can be used to provide interesting examples. Standard decision trees can be viewed as a computational model in which each query depends on only one input bit. In the first part of the paper we consider natural generalization of standard decision tree model: we address decision trees that are allowed to query any function depending on two input bits. We show the first lower bound of the form no(n) for an explicit function (namely, the majority function) in this model. We also show that in the decision tree model with AND and OR queries of arbitrary fan-in the complexity of the majority function is n − 1. In the second part of the paper we address parity decision trees that are allowed to query arbitrary parities of input bits. There are various lower bound techniques for parity decision trees complexity including analytical techniques (degree over \(\mathbb {F}_{2}\), Fourier sparsity, granularity) and combinatorial techniques (generalizations of block sensitivity and certificate complexity). These techniques give tight lower bounds for many natural functions. We give a new inductive argument tailored specifically for threshold functions. A combination of this argument with granularity lower bound allows us to provide a simple example of a function for which all previously known lower bounds are not tight.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Ben-Asher, Y., Newman, I.: Decision trees with boolean threshold queries. J. Comput. Syst Sci. 51(3), 495–502 (1995)

    Article  MathSciNet  MATH  Google Scholar 

  2. Bernasconi, A., Codenotti, B.: Spectral analysis of boolean functions as a graph eigenvalue problem. IEEE Trans. Comput. 48(3), 345–351 (1999)

    Article  MathSciNet  MATH  Google Scholar 

  3. Boyar, J., Find, M.G.: The relationship between multiplicative complexity and nonlinearity. In: Mathematical Foundations of Computer Science 2014 - 39th International Symposium, MFCS 2014, Budapest, Hungary, August 25-29, 2014. Proceedings, Part II, pp. 130–140 (2014)

  4. Boyar, J., Peralta, R: Tight bounds for the multiplicative complexity of symmetric functions. Theor. Comput. Sci. 396(1-3), 223–246 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  5. Buhrman, H., de Wolf, R.: Complexity measures and decision tree complexity: A survey. Theor. Comput. Sci. 288(1), 21–43 (2002)

    Article  MathSciNet  MATH  Google Scholar 

  6. Eppstein, D., Hirschberg, D.S.: From discrepancy to majority. Algorithmica 80(4), 1278–1297 (2018)

    Article  MathSciNet  MATH  Google Scholar 

  7. Gopalan, P., O’Donnell, R., Servedio, R.A., Shpilka, A., Wimmer, K: Testing fourier dimensionality and sparsity. SIAM J. Comput. 40(4), 1075–1100 (2011)

    Article  MathSciNet  MATH  Google Scholar 

  8. Gröger, H D, Turän, G: On linear decision trees computing boolean functions. In: Automata, Languages and Programming, 18th International Colloquium, ICALP91, Madrid, Spain, July 8-12, 1991, Proceedings, pp. 707–718 (1991)

  9. Hatami, H., Hosseini, K., Lovett, S.: Structure of protocols for XOR functions. In: IEEE 57th Annual Symposium on Foundations of Computer Science, FOCS 2016, 9-11 October 2016, Hyatt Regency, New Brunswick, New Jersey, USA, pp. 282–288 (2016)

  10. Hatami, P., Kulkarni, R., Pankratov, D: Variations on the sensitivity conjecture. Theor. Comput. Grad. Surv. 4, 1–27 (2011)

    Google Scholar 

  11. Huang, H.: Induced subgraphs of hypercubes and a proof of the sensitivity conjecture. arXiv:1907.0084 (2019)

  12. Jukna, S.: Boolean Function Complexity - Advances and Frontiers, volume 27 of Algorithms and Combinatorics. Springer (2012)

  13. Knop, D., Pilipczuk, M., Wrochna, M.: Tight complexity lower bounds for integer linear programming with few constraints. In: 36th International Symposium on Theoretical Aspects of Computer Science, STACS 2019, March 13-16, 2019, Berlin, Germany, pp. 44:1–44:15 (2019)

  14. Kojevnikov, A., Kulikov, A.S.: Circuit complexity and multiplicative complexity of boolean functions. In: Ferreira, F, Löwe, B, Mayordomo, E, Gomes, LM (eds.) Programs, Proofs, Processes, 6th Conference on Computability in Europe, CiE 2010, Ponta Delgada, Azores, Portugal, June 30 - July 4, 2020. Proceedings, volume 6158 of Lecture Notes in Computer Science, pp. 239–245. Springer (2010)

  15. Kolesnikov, V., Schneider, T.: Improved garbled circuit: Free XOR gates and applications. In: Automata, Languages and Programming, 35th International Colloquium, ICALP 2008, Reykjavik, Iceland, July 7-11, 2008, Proceedings, Part II - Track B: Logic, Semantics, and Theory of Programming & Track C: Security and Cryptography Foundations, pp. 486–498 (2008)

  16. Kulikov, A.S.: Personal communication

  17. Kushilevitz, E., Nisan, N.: Communication Complexity. Cambridge University Press (1997)

  18. Lovász, L, Saks, M.E.: Lattices Möbius functions and communication complexity. In: 29th Annual Symposium on Foundations of Computer Science, White Plains, New York, USA, 24-26 October 1988, pp 81–90 (1988)

  19. O’Donnell, R.: Analysis of Boolean Functions. Cambridge University Press (2014)

  20. O’Donnell, R., Wright, J., Zhao, Y., Sun, X., Tan, L.-Y.: A composition theorem for parity kill number. In: IEEE 29th Conference on Computational Complexity, CCC 2014, Vancouver, BC, Canada, June 11-13, 2014, pp. 144–154 (2014)

  21. Posobin, G.: Computing majority with low-fan-in majority queries. arXiv:1711.10176 (2017)

  22. Saks, M.E., Werman, M.: On computing majority by comparisons. Combinatorica 11(4), 383–387 (1991)

    Article  MathSciNet  MATH  Google Scholar 

  23. Shpilka, A., Tal, A., Volk, B.L.: On the structure of boolean functions with small spectral norm. In: Innovations in Theoretical Computer Science, ITCS’14, Princeton, NJ, USA, January 12-14, 2014, pagesp. 37–48 (2014)

  24. Tsang, H.Y., Wong, C.H., Xie, N., Zhang, S.: Fourier sparsity, spectral norm, and the log-rank conjecture. In: 54th Annual IEEE Symposium on Foundations of Computer Science, FOCS 2013, 26-29 October, 2013, Berkeley, CA, USA, pp. 658–667 (2013)

  25. Tsang, H.Y., Xie, N., Zhang, S.: Fourier sparsity of GF(2) polynomials. In: Computer Science - Theory and Applications - 11th International Computer Science Symposium in Russia, CSR 2016, St. Petersburg, Russia, June 9-13, 2016, Proceedings, pp. 409–424 (2016)

  26. Vaikuntanathan, V: Computing blindfolded: New developments in fully homomorphic encryption. In: Ostrovsky, R. (ed.) IEEE 52nd Annual Symposium on Foundations of Computer Science, FOCS 2011, Palm Springs, CA, USA, October 22-25, 2011, pp. 5–16. IEEE Computer Society (2011)

  27. Yao, P: Parity decision tree complexity and 4-party communication complexity of xor-functions are polynomially equivalent. Chicago J. Theor. Comput. Sci., 2016 (2016)

  28. Zhang, Z., Shi, Y.: On the parity complexity measures of boolean functions. Theor. Comput. Sci. 411(26-28), 2612–2618 (2010)

    Article  MathSciNet  MATH  Google Scholar 

Download references

Acknowledgments

We would like to thank Alexander Kulikov for letting us know about the connection between parity decision trees and multiplicative complexity and for permission to add the proof to the paper. We also would like to thank Alexander for drawing our attention to the connection of parity decision tree complexity to the degree over \(\mathbb {F}_{2}\).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Vladimir V. Podolskii.

Additional information

Publisher’s Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

The results presented in Section 3 are supported by Russian Science Foundation (21-11-00318). The results presented in Section 4 were prepared within the framework of the HSE University Basic Research Program. The preliminary version of the paper has appeared in the proceedings of CSR 2020 conference.

Appendix:

Appendix:

1.1 A.1 Proof of Theorem 1

We start with an upper bound. The following lemma is a simple adaptation of the folklore algorithm (see, e.g. [22]).

Lemma 11

$$ \mathsf{D}_{\oplus}(\text{{MAJ}}_{n}) \leq n - \mathsf{B}(n)+1. $$

Proof

Our parity decision tree will mostly make queries of the form yz for a pair of variables. Note that such a query basically checks whether y and z are equal.

Our algorithm will maintain splitting of input variables into blocks of two types. We will maintain the following properties:

  • the size of each block is a power of 2;

  • all variables in each block of type 1 are equal;

  • blocks of type 2 are balanced, that is they have equal number of ones and zeros.

In the beginning of the computation each variable forms a separate block of size one. During each step the algorithm will merge two blocks into a new one. Thus, after k steps the number of blocks is nk.

The algorithm works as follows. On each step we pick two blocks of type 1 of equal size. We pick one variable from each block and query the parity of these two variables. If the variables are equal, we merge the blocks into a new block of type 1. If the variables are not equal, the new block is of type 2. The process stops when there are no blocks of type 1 of equal size.

It is easy to see that all of the properties listed above are maintained. In the end of the process we have some blocks of the second type (possibly none of them) and some blocks of the first type (possibly none of them) of pairwise non-equal size. Note that the value of the majority function is determined by the value of variables in the largest block of type 1. Indeed, all blocks of type 2 are balanced and the largest block of type 1 has more variables then all other blocks of type 1 in total. Thus, to find the value of MAJn it remains to query one variable from the largest block of type 1. Note, that the case when there are no blocks of type 1 in the end of the process correspond to balanced input (and even n). In this case we can tell that the output is − 1 without any additional queries.

Note that the sum of sizes of all blocks is equal to n. Since the size of each block is a power of 2, there are at least B(n) blocks in the end of the computation (one cannot break n in the sum of less then B(n) powers of 2). Thus, overall we make at most nB(n) + 1 queries and the lemma follows. □

Before proceeding with the lower bound through granularity we briefly discuss lower bounds that can be obtained by other approaches. It is known that spar(MAJn) = 2n− 1 [19]. Thus from the sparsity lower bound we can only get \(\mathsf {D}_{\oplus }(\text {{MAJ}}_{n}) \geq \log \mathsf {spar}(\text {{MAJ}}_{n})/2 = \frac {n-1}{2}\).

Note also that each input x ∈{0, 1}n to MAJn lies in the constant-valued subcube of dimension at least \(\lceil \frac {n-1}{2}\rceil \). Indeed, if MAJn(x) = 1 just pick a subcube on some subset of variables of size \(\lceil \frac {n-1}{2}\rceil \) containing all ones of the input. The case MAJn(x) = − 1 is symmetric. Thus, in the approach through certificate complexity we get \(\mathsf {D}_{\oplus }(\text {{MAJ}}_{n}) \geq \lceil \frac {n-1}{2}\rceil \).

Finally, we observe that the degree approach also does not give a matching lower bound.

Lemma 12

For any n we have \(\deg (\text {{MAJ}}_{n})=2^{p}\) where p is the largest integer such that 2pn.

Proof

Consider a multilinear polynomial p over \(\mathbb {F}_{2}\) computing MAJn. For a set \(S \subseteq [n]\) denote by cS the coefficient of the monomial \({\prod }_{i\in S} x_{i}\) in p. Denote |S| = k and denote by \(x_{S} \in \{0,1\}^{n}\) the input such that xi = 1 iff iS. By [12, Section 2.1] we have

$$ c_{S} = \bigoplus_{x \leq x_{S}} \text{{MAJ}}_{n}(x), $$

where the order on {0, 1}n is coordinate-wise.

From this we obtain that

$$ c_{S} = {\sum}_{i=\lceil \frac{n}{2}\rceil}^{k} \binom{k}{i} = {\sum}_{i=\lceil \frac{n}{2}\rceil}^{k} (-1)^{i}\binom{k}{i} \pmod 2, $$

where the second equation follows since changing the sign of an integer summand does not change its remainder when divided by 2.

Denote \(l = \lceil \frac {n}{2}\rceil \). We can simplify the latter sum as follows:

$$ {\sum}_{i=l}^{k} (-1)^{i}\binom{k}{i} = {\sum}_{i=l}^{k} (-1)^{i} \left( \binom{k-1}{i-1} + \binom{k-1}{i} \right) = (-1)^{l} \binom{k-1}{l-1}. $$

By Kummer’s theorem \(\binom {k-1}{l-1}\) is odd iff the summation process of l − 1 and kl in binary representation does not have any carry bits. Note that both \(l-1=\lceil \frac n2 \rceil -1\) and \(k-l\leq \lfloor \frac n2 \rfloor \) are less or equal n/2. Thus their binary representations are one bit shorter than the binary representation of n. The maximal k for which \(\binom {k-1}{l-1}\) is odd (and thus cS is non-zero) is the one for which kl has a binary representation inverted compared to l − 1, that is (kl) + (l − 1) = k − 1 has a binary representation consisting of ones only. That is, k is a power of 2 not exceeding n. □

It is not hard to see that this lower bound matches the upper bound of Lemma 11 only for n = 2r and n = 2r + 1. On the other hand, for example it is far from optimal by approximately a factor of 2 for n = 2r − 1 for some r.

We next show that Lemma 3 gives a tight lower bound for parity decision tree complexity of MAJn.

Lemma 13

gran(MAJn) = nB(n).

Proof

We will show that gran(MAJn) ≥ nB(n). The inequality in the other direction follows from Lemma 11 and Lemma 3.

We consider the Fourier coefficient \(\widehat {\text {{MAJ}}}_{n}([n])\) and show that its granularity is at least nB(n). Let k = ⌊(n + 1)/2⌋. Note that k is the smallest number such that MAJn is − 1 on inputs with k ones.

Then we have

$$ \begin{array}{@{}rcl@{}} \widehat{\text{{MAJ}}}_{n}([n]) &= \frac{1}{2^{n}}\left( {\sum}_{i=0}^{k-1} (-1)^{i}\binom{n}{i} - {\sum}_{i=k}^{n} (-1)^{i}\binom{n}{i}\right)\\ &= \frac{1}{2^{n}}\left( {\sum}_{i=0}^{n} (-1)^{i}\binom{n}{i} - 2 {\sum}_{i=k}^{n} (-1)^{i}\binom{n}{i}\right) = \frac{1}{2^{n}} \left( 0 - 2 {\sum}_{i=k}^{n} (-1)^{i}\binom{n}{i}\right). \end{array} $$

From this we can see that

$$ \mathsf{gran}(\widehat{\text{{MAJ}}}_{n}([n])) =n - \mathsf{P}\left( 2{\sum}_{i=k}^{n} (-1)^{i}\binom{n}{i}\right). $$

We proceed to simplify the sum of binomials (a very similar analysis is presented in [22]):

$$ {\sum}_{i=k}^{n} (-1)^{i}\binom{n}{i} = {\sum}_{i=k}^{n} (-1)^{i} \left( \binom{n-1}{i-1} + \binom{n-1}{i} \right) = (-1)^{k} \binom{n-1}{k-1}. $$

Thus it remains to compute \(\mathsf {P}(2\binom {n-1}{k-1})\). For even n = 2h we have k = h and \(2\binom {n-1}{k-1} = 2\binom {2h-1}{h-1} = \binom {2h}{h}\). For odd n = 2h + 1 we have k = h + 1 and \(2\binom {n-1}{k-1} = 2\binom {2h}{h}\).

By [22, Proposition 3.4] we have \(\mathsf {P}(\binom {2h}{h})=\mathsf {B}(h)\) (alternatively this can be seen from Kummer’s theorem). Finally, notice that B(2h) = B(h) and B(2h + 1) = B(h) + 1. It follows that

$$ \mathsf{P}\left( 2{\sum}_{i=k}^{n} (-1)^{i}\binom{n}{i}\right) = \mathsf{B}(n) $$

and

$$ \mathsf{gran}(\widehat{\text{{MAJ}}}_{n}([n])) = n - \mathsf{B}(n). $$

Overall, Theorem 1 follows.

1.2 A.2 Proof of Theorem 2

We start with an upper bound.

Lemma 14

\(\mathsf {D}_{\oplus }(\text {{MAJ}}^{\otimes k}_3) \leq (n+1)/2\).

Proof

Basically, recursive majority \(\text {{MAJ}}^{\otimes k}_3\) is a function computed by a Boolean circuit whose graph is a complete ternary tree of depth k, each internal vertex is labeled by the function MAJ3 and each leaf is labeled by a (fresh) variable.

To construct an algorithm we first generalize the problem. We consider functions computed by Boolean circuits whose graphs are ternary tree, where each non-leaf has fan-in 3 and is labeled by MAJ3, and each leaf is labeled by a fresh variable. We will show that if the number of non-leaf vertices in the circuit is l, then the function can be computed by a parity decision tree of size l + 1.

The proof is by induction on l. If l = 1, then the function in question is just MAJ3 and by the results of Appendix A it can be computed by a parity decision tree of depth 2.

For the step of induction consider a tree with l non-leaf vertices. Consider a non-leaf vertex of the largest depth. All of its three inputs must be variables, lets denote them by y, z and t, and in this vertex the function MAJ3(y,z,t) is computed. Our first query will be yz. It will tell us whether y and z are equal. If y = z are equal, then MAJ3(y,z,t) = y, and if yz, then MAJ3(y,z,t) = t. Thus, we can substitute the gate in our vertex by the corresponding variable and reduce the problem to the circuit with l − 1 non-leaf vertices. By induction hypothesis, the function computed by this circuit can be computed by at most (l − 1) + 1 = l queries. Thus, our original function is computable by l + 1 queries.

It is left to observe that a complete ternary tree of depth k has \(3^{k-1}+\ldots +1=\frac {3^{k}-1}{2}\) non-leaf vertices and for this tree our algorithm makes \(\frac {3^{k}+1}{2}=\frac {n+1}{2}\) queries. □

Before proceeding to the lower bound through granularity we again discuss lower bounds that can be obtained by other techniques.

First note that each input x ∈{0, 1}n lies in the subspace of co-dimension at most 2k on which the function is constant. For this it is enough to show that in each x we can flip 3k − 2k variables without changing the value of the function. This is easy to check by induction on k. For k = 1 there are two variables that are equal to each other and we can flip the third variable without changing the value of the function. For k > 1 consider inputs to the MAJ3 at the top of the circuit. Two of them are equal and by induction hypothesis we can flip 3k− 1 − 2k− 1 variables in each of them without changing the value of the function. The last input to the top gate does not affect the value of the function and we can flip all 3k− 1 variables in it. Overall this gives us 3k − 2k variables. This gives us \(\mathsf {C}_{\oplus }(\text {{MAJ}}^{\otimes k}_3) \leq 2^{k} = n^{\log _{3} 2}\) which does not give a matching lower bound.

Also note that the polynomial computing MAJ3 is p(x) = x1x2x2x3x1x3. The polynomial for \(\text {{MAJ}}^{\otimes k}_3\) can be computed by a simple composition of p with itself. It is easy to see that its degree is \(2^{k} = n^{\log _{3} 2}\). Thus, an approach through polynomials over \(\mathbb {F}_{2}\) does not give strong lower bounds.

For Fourier analytic considerations it is convenient to switch to {− 1, 1} Boolean inputs. For a variable y ∈{0, 1} let us denote by \(y^{\prime }\in \{-1,1\}\) the variable \(y^{\prime }=1-2y\). For now we will use new variables as inputs to Boolean functions.

The Fourier decomposition of MAJ3 is

$$ \begin{array}{@{}rcl@{}} \text{{MAJ}}_{3}(y^{\prime},z^{\prime},t^{\prime}) = \frac{1}{2}\left( y^{\prime}+z^{\prime}+t^{\prime} - y^{\prime}z't^{\prime}\right). \end{array} $$
(2)

From this the Fourier decomposition of \(\text {{MAJ}}^{\otimes k}_3\) can be obtained by recursion:

$$ \begin{array}{@{}rcl@{}} \begin{array}{lllll} \text{{MAJ}}^{\otimes k}_3(x^{1},x^{2},x^{3}) = & \frac{1}{2} (\text{{MAJ}}^{\otimes k-1}_3(x^{1})+\text{{MAJ}}^{\otimes k-1}_3(x^{2})+\text{{MAJ}}^{\otimes k-1}_3(x^{3})\\ & - \text{{MAJ}}^{\otimes k-1}_3(x^{1})\cdot\text{{MAJ}}^{\otimes k-1}_3(x^{2})\cdot\text{{MAJ}}^{\otimes k-1}_3(x^{3})), \end{array} \end{array} $$
(3)

where x1,x2,x3 are blocks of 3k− 1 variables.

Lemma 2 can give lower bounds up to n/2 and thus in principle might give at least almost matching lower bound. However, this is not the case as we discuss below.

Note that since there is no free coefficient in the polynomial (2), Fourier coefficients arising from all three summands in the right-hand side of (3) will not cancel out with each other: no two of them have equal set of variables. Thus, if we denote \(S(k)=\mathsf {spar}(\text {{MAJ}}^{\otimes k}_3)\) we have that S(1) = 4 and

$$ S(k) = 3S(k-1) + S(k-1)^{3} $$
(4)

for k > 1. On one hand, this means that S(k) > S(k − 1)3. This gives \(S(k) > 2^{2\cdot 3^{k-1}}\). Thus \(\log \mathsf {spar}(\text {{MAJ}}^{\otimes k}_3) > 2\cdot 3^{k-1}= 2n/3\) and \(\mathsf {D}_{\oplus }(\text {{MAJ}}^{\otimes k}_3)> n/3\).

On the other hand if we let \(S^{\prime }(k)=S(k)+1/2\), it is easy to check that (4) implies

$$ S^{\prime}(k) < S^{\prime}(k-1)^{3}. $$

Since \(S^{\prime }(1)=9/2\) this gives \(S^{\prime }(k) < 2^{(\log _{2}\frac {9}{2}) \cdot 3^{k-1}}\). Thus,

$$ \log \mathsf{spar}(\text{{MAJ}}^{\otimes k}_3) < \left( \log_{2}\frac{9}{2}\right) \cdot \frac{n}{3} < 0.723 \cdot n. $$

Thus Lemma 2 can give us a lower bound of at most 0.362 ⋅ n. We note that this upper bound on the sparsity can be further improved by letting \(S^{\prime }(k) = S(k)+\alpha \) for smaller α.

Now we proceed to the tight lower bound. Again we will estimate gran \((\widehat {\text {{MAJ}}}^{\otimes k}_{3}[n])\). Observe that this Fourier coefficient can be easily computed from (2) and (3). Indeed, from (2) we have that \(\left |\widehat {\text {{MAJ}}}^{\otimes 1}_{3}[n]\right | = \frac 12\). From (3) we have that

$$ \left|\widehat{\text{{MAJ}}}^{\otimes k}_{3}[n]\right| = \left|\frac{1}{2}(\widehat{\text{{MAJ}}}^{\otimes k-1}_{3}[n])^{3}\right|. $$

The numerator of this Fourier coefficient equals to 1 for any k. Thus, denoting \(G(n)=\mathsf {gran}(\widehat {\text {{MAJ}}}^{\otimes k}_{3}[n])\) for n = 3k we have G(3) = 1 and

$$ G(n)=3G\left( \frac{n}{3}\right)+1. $$

It is straightforward to check that \(G(n)=\frac {n-1}{2}\). From this, Lemma 3 and Lemma 14 Theorem 2 follows.

Rights and permissions

Springer Nature or its licensor holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Chistopolskaya, A., Podolskii, V.V. On the Decision Tree Complexity of Threshold Functions. Theory Comput Syst 66, 1074–1098 (2022). https://doi.org/10.1007/s00224-022-10084-x

Download citation

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00224-022-10084-x

Keywords

Navigation