Computing debt cuts leading to global zero-equity

In this post we present a method for computing a set of debt cuts, which, once applied, lead to a global zero-equity state, i.e., each and every party in a financial graph may dismiss all liabilities. Before we proceed to defining the structures needed in discussing the method, we have to impose some definitions: by \mathfrak{R}_? we denote the set of real numbers x such that x \, ? \, 0 holds. We work on a directed graph \mathcal{G} = (V, A), A \subseteq V^2, for which we define a weight function w_{\mathcal{G}} \colon \mathcal{G.A} \to \mathcal{P}(\mathfrak{R}_> \times \mathfrak{R}_{\geq} \times (\mathfrak{R}_> \cup \{ \infty \}) \times \mathfrak{R}). If (K, r, n, t) \in \mathfrak{R}_> \times \mathfrak{R}_{\geq} \times (\mathfrak{R}_> \cup \{ \infty \} ) \times \mathfrak{R}, K is the principal investment, r is the annual interest rate, n is the amount of compounding periods per year (the value of \infty is allowed, which denotes continuous compounding), and t is the time point at which the loan was granted. Together, the four parameters comprise a contract. Note that the weight of an arc is a set of contracts as this is physically possible in real-world banking. For each arc (u, v) \in \mathcal{G}.A, u is the creditor, v is the debtor, and w_{\mathcal{G}}(u, v) is the set of contracts granted by u to v.

The most fundamental function in this post is the equity function e_{\mathcal{G}} \colon \mathcal{G}.V \times \mathfrak{R} \to \mathfrak{R}. The second argument is the time point at which we want to know the equity of the first argument (which is a node). Altogether, it is defined as

\begin{aligned}   e_{\mathcal{G}}(u, \tau) =& \sum_{(u, v) \in \mathcal{G}.A} \Bigg( \sum_{(K, r, n, t) \in w_{\mathcal{G}}(u, v)} \mathfrak{C}_{\tau} ( K, r, n, t ) \Bigg) \\ -& \sum_{(v, u) \in \mathcal{G}.A} \Bigg( \sum_{(K, r, n, t) \in w_{\mathcal{G}}(v, u)} \mathfrak{C}_{\tau} ( K, r, n, t ) \Bigg), \end{aligned}


\displaystyle \mathfrak{C}_{\tau}(K, r, n, t) =  \begin{cases} K \big( 1 + \frac{r}{n} \big)^{ \lfloor n(\tau - t) \rfloor } & \mbox{if } n \in \mathfrak{R}_> \\ Ke^{ r (\tau - t) } & \mbox{if } n = \infty, \end{cases}

and \tau is no less than the time point of any contract involved. Also, we are given a function \mathfrak{f}_{\mathcal{G}} \colon \mathcal{G}.V \times \mathfrak{R}_> \times \mathfrak{R}_{\geq} \times (\mathfrak{R}_> \cup \infty) \times \mathfrak{R} \to \mathfrak{R} mapping every tuple (u, \mathfrak{K}) (a debtor and its single contract) in the financial graph to a time point at which u is ready to pay back at most all of its debts on behalf of the contract \mathfrak{K}. (By “at most” we mean that we will try to minimize the nodes’ debt cuts for every contract, yet it is not possible for a node, say v, having given no loans to the other nodes, to have a debt cut for an incoming contract \mathfrak{K} any less than the value of that very contract at any time, which implies that such a contract will have to be cut in its entirety.)

As the concept of equilibrium is global with respect to the input graph, we need only one parameter describing it: T_{\mathcal{G}}, which is the target time point at which every node must have zero equity. We require T_{\mathcal{G}} to be no less than time points of any contract. Whenever a party, say u \in \mathcal{G}.V, is ready to raise C units of resources for the debt cut to v against the contract \mathfrak{K} (which is supposed to happen at \mathfrak{f}_{\mathcal{G}}(u, \mathfrak{K}), with \mathfrak{K} = (K, r, n, t), the contract being cut becomes

\displaystyle  \mathfrak{C}_{\tau}  \big( \mathfrak{C}_{\mathfrak{f}_{\mathcal{G}}(u, \mathfrak{K})}(K, r, n, t) - C, r, n, \mathfrak{f}_{\mathcal{G}}(u, \mathfrak{K}) \big),

where \tau \geq \mathfrak{f}_{\mathcal{G}}(u, \mathfrak{K}). There is, however, a small issue with debt contracts with non-continuous compounding scheme. Let us define a function of time and a contract:

g(\tau, \mathfrak{K}) =  \begin{cases} 0 & \mbox{if } \mathfrak{K}.n = \infty, \\ g'(\mathfrak{K}.n ( \tau - \mathfrak{K}.t ) ) & \mbox{otherwise,} \end{cases}

where g'(x) = x - \lfloor x \rfloor (g' is not a derivative of g in this context). Consider a contract \mathfrak{K} = (K, r, n, t) given from v to u with n \in \mathfrak{R}_>. It is easy to see that after cutting \mathfrak{K}, its time stamp “shifts” forward in time by g(\mathfrak{f}_{\mathcal{G}}(u, \mathfrak{K}), \mathfrak{K}). As to keep compounding at moments t + n^{-1}, t + 2n^{-1}, t + 3n^{-1}, \dots, we should set the cut contract to

\displaystyle \mathfrak{C}_{\tau}  \big(  \mathfrak{C}_{\mathfrak{f}_{\mathcal{G}}(u, \mathfrak{K})}(\mathfrak{K}) - \Xi(v, u, \mathfrak{K}), \mathfrak{K}.r, \mathfrak{K}.n, \mathfrak{f}_{\mathcal{G}}(u, \mathfrak{K}) - g(\mathfrak{f}_{\mathcal{G}}(u, \mathfrak{K}), \mathfrak{K}) \big),

where \Xi(v, u, \mathfrak{K}) is the computed debt cut for the loan given by v to u on behalf of the contract \mathfrak{K}.

Next, we define the concept of equilibrium.

The financial graph \mathcal{G} is said to be in equilibrium at time point \tau if and only if e_{\mathcal{G}}(u, \tau) = 0 for all u \in \mathcal{G}.V.

Once given \mathcal{G}, \mathfrak{f}_{\mathcal{G}} and T_{\mathcal{G}}, we attempt to compute a function \Xi \colon \mathcal{G}.A \times \mathfrak{R}_> \times \mathfrak{R}_{\geq} \times (\mathfrak{R}_> \cup \{ \infty \}) \times \mathfrak{R} \to \mathfrak{R}_{\geq} such that after applying a debt cut from v to u of magnitude \Xi(u, v, \mathfrak{K}) against the contract \mathfrak{K} at time point \mathfrak{f}_{\mathcal{G}}(v, \mathfrak{K}) for all (u, v) \in \mathcal{G}.A, \mathcal{G} obtains such a state that it evolves towards equilibrium at time point T_{\mathcal{G}}.


Whenever a node u has incoming contracts from a set of parent nodes (creditors, lenders) L_u, outgoing contracts to a set of children (debtors) D_u, the equilibrium equation for u is

\begin{aligned} & \sum_{v \in D_u } \Bigg( \sum_{\mathfrak{K} \in w_{\mathcal{G}}(u, v)} \mathfrak{C}_{T_{\mathcal{G}}}  \big( \Xi(u, v, \mathfrak{K}), \mathfrak{K}.r, \mathfrak{K}.n, \mathfrak{f}_{\mathcal{G}}(v, \mathfrak{K}) - g( \mathfrak{f}_{\mathcal{G}}(v, \mathfrak{K}), \mathfrak{K}) \big) \Bigg) - \\ & \sum_{v \in L_u } \Bigg( \sum_{\mathfrak{K} \in w_{\mathcal{G}}(v, u)} \mathfrak{C}_{T_{\mathcal{G}}}   \big( \Xi(v, u, \mathfrak{K}), \mathfrak{K}.r, \mathfrak{K}.n, \mathfrak{f}_{\mathcal{G}}(u, \mathfrak{K})  -  g( \mathfrak{f}_{\mathcal{G}}(u, \mathfrak{K}), \mathfrak{K} ) \big) \Bigg) = \\ & \sum_{ v \in D_u } \Bigg( \sum_{ \mathfrak{K} \in w_{\mathcal{G}}(u, v) } \mathfrak{C}_{T_{\mathcal{G}}} \big( \mathfrak{C}_{ \mathfrak{f}_{\mathcal{G}} (v, \mathfrak{K})} (\mathfrak{K}), \mathfrak{K}.r, \mathfrak{K}.n, \mathfrak{f}_G( v, \mathfrak{K} ) - g( \mathfrak{f}_G(v, \mathfrak{K}), \mathfrak{K} ) \big) \Bigg) - \\ & \sum_{ v \in L_u } \Bigg( \sum_{ \mathfrak{K} \in w_{\mathcal{G}}(v, u) } \mathfrak{C}_{T_{\mathcal{G}}} \big(  \mathfrak{C}_{ \mathfrak{f}_{\mathcal{G}} (u, \mathfrak{K}) } (\mathfrak{K}), \mathfrak{K}.r, \mathfrak{K}.n, \mathfrak{f}_{\mathcal{G}}( u , \mathfrak{K}) - g( \mathfrak{f}_{\mathcal{G}}(u, \mathfrak{K}), \mathfrak{K} ) \big) \Bigg). \end{aligned}

Now if we write down equilibrium equations for all nodes v \in \mathcal{G}.V, we obtain a system of linear equations, which is quaranteed to have at least one solution as we can choose for each contract a debt cut with magnitude equal to the current value of a contract, which results trivially in equilibrium. All the terms \Xi(*, *, *) are to be determined, yet everything else in the equilibrium equations is known beforehand. We rewrite all equilibrium equations as a \mathfrak{R}^{|\mathcal{G}.V| \times C} matrix, where

\displaystyle C = 1 + \sum_{(u, v) \in \mathcal{G}.A} |w_{\mathcal{G}}(u, v)|,

(we add 1 as the matrix is supposed to be augmented). Having the matrix filled up with entries, we reduce it to reduced row echelon form, which has at least one solution (the trivial one). We will obtain two sets: a set of independent variables S_i = \{ s_1, \dots, s_n \} and a set of dependent variables S_d = \{ s'_1, \dots, s'_m \colon s'_i = f_i(s_1, \dots, s_n) for some linear f_i \}. The last step is minimizing

\displaystyle \sum_{s \in S_i} s + \sum_{s \in S_d} s = \sum_{i = 1}^n s_i + \sum_{i = 1}^m f_i(s_1, \dots, s_n)

subject to constraint of not exceeding a contract with a debt cut, which is a linear program that, once solved, yields the desired \Xi.


\displaystyle  \lim_{T_{\mathcal{G}} \to \infty} \sum_{(u, v) \in \mathcal{G}.A} \Bigg( \sum_{\mathfrak{K} \in w_{\mathcal{G}}(u, v)} \Xi(u, v, \mathfrak{K}) \Bigg) = 0.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s