The restriction that the variable assigned to does not appear in an expression on either side of the assignment allows us to prove that the inference system of Janus is forward and backward deterministic. We write a Janus procedure fib to find the "n"-th Fibonacci number, for n>2, i=n, x1=1, and x2=1:   procedure fib   Upon termination, x1 is the ("n"−1)-th Fibonacci number and x2 is the nth Fibonacci number. i is an iterator variable that goes from n to 2. As i is decremented in every iteration, the assumption (codice_16) is only true prior to the first iteration. The test is (codice_17) is only true after the last iteration of the loop (assuming i > 2). Assuming the following prelude to the procedure, we end up with the 4th Fibonacci number in x2:   i n x1 x2 procedure main   Note, our main would have to do a bit more work if we were to make it handle n≤2, especially negative integers. The inverse of fib is:   procedure fib   As you can see, Janus performs local inversion, where the loop test and assertion are swapped, the order of statements is reversed, and every statement in the loop is itself reversed. The reverse program can be used to find n when x1 is the (n-1)th and x2 is the nth Fibonacci number.