Atom in first order programming

518 Views Asked by At

Consider the following statements regarding atom in first order programming

An atom is a predicate applied to a tuple of objects.

Atoms: An atom evaluates to a number.

  1. A scalar, a real-valued constant
  2. A predicate applied to 0 or more terms: $pred(t_1,...,t_n)$. Each predicate is annotated with its range, a bounded interval of $\mathbb{R}$ or $\mathbb{Z}$.

Confused with the above definition. Does atom can be a predicate with partial number of elements in its inputs assigned to objects? I mean does an atom is a variable free predicate or not?

Example:

Is_son_of(Rama,Dasharatha, Rama) is an atom for sure.

But Is_son_of(Ravana, Bhoomi, x) is an atom or not where x is a variable?

1

There are 1 best solutions below

0
On BEST ANSWER

An atom is an atomic sentence i.e. a sentence that is not "decomposable" in further sentences.

This means that is a sentence where no connectives occur.

In the syntax of predicate logic, an atomic formula is a predicate symbol $P(x_1, \ldots, x_n)$ with $n$ "argument places" (place holders to be filled with "inputs") with $n$ terms (i.e. "names") of the language.

According to the syntax specifications of the language, variables : $x,y,\ldots$ are terms.

A sentence is a formula without free occurrences of variables.

Thus, $\text {Is_son_of}(\text{Tom},x)$ is a correct (well-formed) formula but it is not a sentence, because in it we have an occurrence of the free variable $x$.

$\text {Is_son_of}(\text{Tom},\text{Bill})$ instead, is a sentence, and thus an atomic one.