Artificial intelligent assistant

Atom in first order programming 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?

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.

xcX3v84RxoQ-4GxG32940ukFUIEgYdPy b132a89c0bf4146fa4a69615878d951d