is executed. To update a circular reference, two statements can be issued in a single transaction that will satisfy both references once the transaction is committed. Circular references can also happen between instances of data of a mutable type, such as in this Python script: mydict = { "this": "that", "these": "those" } mydict["myself"] = mydict print(mydict) The function will output , where indicates a circular reference, in this case, to the dictionary. In spreadsheets Circular references also occur in spreadsheets when two cells require each other's result. For example, if the value in Cell A1 is to be obtained by adding 5 to the value in Cell B1, and the value in Cell B1 is to be obtained by adding 3 to the value in Cell A1, no values can be computed. (Even if the specifications are A1:=B1+5 and B1:=A1-5, there is still a circular reference. It does not help that, for instance, A1=3 and B1=-2 would satisfy both formulae, as there are infinitely many other possible values of A1 and B1 that can satisfy both instances.) Circular reference in worksheets can be a very useful technique for solving implicit equations such as the Colebrook equation and many others, which might otherwise require tedious Newton-Raphson algorithms in VBA or use of macros. A distinction should be made with processes containing a circular reference between those that are incomputable and those that are an iterative calculation with a final output. The latter may fail in spreadsheets not equipped to handle them but are nevertheless still logically valid. See also References Causal fallacies Philosophical logic Self-reference