LARA

This is an old revision of the document!


  • Is the following statement valid when x is a real number and f is a function

from reals to reals, and why:

  "If (f(x))^2 = 4, then f(x)=2"
  • Answer: Not valid. Let x be an arbitrary element. Take as t interpretation a function f and such that f(
  • Is the following statement valid (for arbitrary properties

P and Q), and why:

   "If for all x, both P(x) and Q(x), then both
    1) for all x, P(x), and
    2) for all x, Q(x)."
  • Answer: Valid.
  • Is the following statement valid (for arbitrary properties

P and Q), and why:

  "If for all x, P(x) or Q(x) hold, then at least
   one of the following two is true
    1) for all x, P(x), or
    2) for all x, Q(x)."
  • Answer: Invalid.
  • Let x,y,z be integer variables that satisfy both of these

two conditions:

   x + y = 3z
   x - 2y = z
  What is the strongest property that you can state about
  the integer x that does not mention the variables y or z?
  • Answer: x is divisible by 7.

* Consider a simple programming language …

  1. Say in 3-5 sentences how you would build an

interpreter for this language:

  • *Answer: Parser the program into abstract syntax tree. Represent program state as a mapping from variable names to their value. Traverse the abstract syntax tree and change the values of variables according to the meaning of statements. - What is the class of functions from integers to integers that can be described in this programming language? Answer**: All computable functions on integers can be computed.

To prove this formally, we could write a simulator for a Turing machine,

 which is often used as a formal model for computable functions.  We can
 represent the tape as an unbounded integer, whose bits represent Turing machine tapes.  
 We can write code with loops that extracts the n-th bit of the number.

* Suggest (in 3-10 sentences) how you would design an

algorithm for the following problem:
  The input of the algorithm is a description of a
  function that accepts two integers and produces an
  integer as a result.  An example of such function,
  is the function f:
  
     x = input();
     y = input();
     result = 0;
     while (y > 0) {
       result = result + x;
       y = y - 1;
     }
     output(y);
  Your algorithm should accept any other such function
  that can be written in our simple programming language.
  The output of your the algorithm should be "true" if 0
  is the only value that the function can return, and
  "false" otherwise.  
What would your algorithm return on the above example?

End of quiz