June 28, 2013

KBP chapter 16

Review Questions
1. What are the three primary uses of symbolic logic in formal logic?
-To express propositions, to express the relationships between propositions, and to describe how new propositions can be inferred from other propositions that are assumed to be true.

2. What are the two parts of a compound term?
- Functor and ordered list of parameters.

3. What are the two modes in which a proposition can be stated?
- One in which the proposition is defined to be true, and one in which the truth of the proposition is something that is to be determined. In other words, propositions can be stated to be facts or queries.

5. What are antecedents? Consequents?
-Antecedents are right side of a clausal form proposition. Consequent is left side of a clausal form propositions.

6. Give general (not rigorous) definitions of resolution and unification.
-Resolution is the inference rule that allows inferred propositions to be computed from given propositions, thus providing a method with potential application to automatic theorem proving. 
Unification is the process of determining useful values for variables.

9. What does it mean for a language to be nonprocedural?
-Language in which the programs do not exactly state how a result is to be computed but rather describe the form of the result.

11. What is an uninstantiated variable?
-A variable that has not been assigned a value.

13. What is a conjunction?
-Conjunctions contain multiple terms that are separated by logical AND operations.

Problem Set
1. “All predicate calculus propositions can be algorithmically converted to clausal form”. Is this statement true or false? Explain.
-This statement is true. Nilsson (1971) gives proof that this can be done, as well as a simple conversion algorithm for doing it.

2. Describe how a logic programming language is different from a general programming language.
-Programming that uses a form of symbolic logic as a programming language, unlike other general programming language, is often called logic programming; languages based on symbolic logic are called logic programming languages, or declarative languages.

8. Critically comment on the following statement: “Logic programs are nonprocedural”.
- It is true, because logical programs use lots of different processes based on its conditions. If a certain logical requirement is true, then a program will execute the corresponding process, instead of procedurally executing the statements.