Skip to main content

Subsection 4.2.6 Ground Instances

A ground instance is a sentence that contains no variables.

The following statements that we’ve already considered are ground instances:

Bear(Smokey)

Prime(269)

MotherOf(Gruffy, Smokey)

CurrentProjectOf(Shazaam, Chris)

In computational logic systems, it is common to store ground instances in a different form than the one that is used for other sentences. They may be contained in a table or a database, for example.

Suppose that we want to write a set of rules that describe constraints that must be maintained as our employee database is updated. (Rules like this are called integrity constraints in the database world.) Our rules will correspond to our company policies. So we might want to write such rules as:

[1] \(\forall \) x (Employee(x) \(\rightarrow \) \(\exists \)y (EmergencyContact(y, x)))

[2] \(\forall \) x (Employee(x) \(\rightarrow \) \(\exists \) y (CurrentProjectOf(y, x)))

[3] \(\forall \) x (\(\forall \) y ( \(\forall \) z ( \(\forall \) w (((Employee(x) \(\wedge \) CurrentProjectOf(y, x) \(\wedge \) CurrentProjectOf(z, x) \(\wedge \) CurrentProjectOf(w, x) \(\rightarrow \) ((y = z) \(\vee \) (y = w) \(\vee \) (z = w))))))

[1] Says that everyone has someone who is their emergency contact. [2] says that, for everyone, there’s at least one project that is that person’s current project. [3] says that no employee may be assigned to more than two different projects. It exploits the notion of equality, which we’ll say more about in the next section. For now, let’s just read it. We get, “If x is an employee and all of y, z, and w are x’s projects, then at least two of y, z, and w must be the same.”

To reason with these rules, we’ll need some ground instances, such as:

[4] Employee(Chris)

[5] CurrentProjectOf(Shazaam, Chris)

But there’s no need to store things like [4] and [5] as logical statements in the same framework in which we’re storing [1] – [3]. They’re already in the database. So we’ll build a reasoning engine that can combine statements from the two systems.

Some ground instances aren’t stored at all. Their truth values are computed whenever we need them. This is very common, for example when dealing with numbers.

Some examples of ground instances whose truth values would probably just be computed on demand:

Prime(937) True

Div(788, 3) False (where Div(x, y) means x is evenly

divisible by nonzero y)

Exercises Exercises

1.

1. For each of the following, indicate whether or not it is a ground instance:

  1. EvenNumber(7)

  2. InStateOf(Austin, Texas)

  3. x (∃y (InStateOf(x, y)))

  4. ToDieFor(chocolate)

  5. Funny(x)

Answer.
a). Ground , b). Ground, c). Not Ground , d). Ground , e). Not Ground
Solution.
Explanation: EvenNumber(7) is a claim about a single value 7, so it is ground. InStateOf(Austin, Texas) is a claim about a single pair of values, so it is ground. x (y (InStateOf(x, y))) is a quantified claim with variables. It is not ground. ToDieFor(chocolate) is a claim about a single value, so it is ground. Funny(x) is (assuming our usual convention that x is a variable, not a constant) not even a statement, much less a ground instance. It contains an unbound variable.