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 we denote the set of real numbers such that holds. We work on a directed graph , , for which we define a weight function . If , is the principal investment, is the annual interest rate, is the amount of compounding periods per year (the value of is allowed, which denotes continuous compounding), and 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 , is the creditor, is the debtor, and is the set of contracts granted by to .
The most fundamental function in this post is the equity function . 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
and is no less than the time point of any contract involved. Also, we are given a function mapping every tuple (a debtor and its single contract) in the financial graph to a time point at which is ready to pay back at most all of its debts on behalf of the contract . (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 , having given no loans to the other nodes, to have a debt cut for an incoming contract 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: , which is the target time point at which every node must have zero equity. We require to be no less than time points of any contract. Whenever a party, say , is ready to raise units of resources for the debt cut to against the contract (which is supposed to happen at , with , the contract being cut becomes
where There is, however, a small issue with debt contracts with non-continuous compounding scheme. Let us define a function of time and a contract:
where ( is not a derivative of in this context). Consider a contract given from to with . It is easy to see that after cutting , its time stamp “shifts” forward in time by As to keep compounding at moments , we should set the cut contract to
where is the computed debt cut for the loan given by to on behalf of the contract .
Next, we define the concept of equilibrium.
Once given and , we attempt to compute a function such that after applying a debt cut from to of magnitude against the contract at time point for all , obtains such a state that it evolves towards equilibrium at time point .
Whenever a node has incoming contracts from a set of parent nodes (creditors, lenders) , outgoing contracts to a set of children (debtors) , the equilibrium equation for is
Now if we write down equilibrium equations for all nodes , 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 are to be determined, yet everything else in the equilibrium equations is known beforehand. We rewrite all equilibrium equations as a matrix, where
(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 and a set of dependent variables for some linear . The last step is minimizing
subject to constraint of not exceeding a contract with a debt cut, which is a linear program that, once solved, yields the desired .