## 2.1 Preliminaries

The fundamental entities of logic are introduced in the following
definition.

Formulas and Truth Values

**Definition 1 (Truth Value, Formula)** A *truth
value (Wahrheitswert)* or *Boolean value (Boolescher Wert)* is one of the
values __true__ or __false__.
A *(logical) * *formula (logische Formel)* or
*proposition (Aussage)* is a syntactic phrase whose meaning is a truth
value.

This definition introduces two layers of a formula: its
*syntax (Syntax)*, i.e., the concrete external representation, and
its *semantics (Semantik)*, i.e., the underlying meaning.

**Operational Interpretation**
In the Logic Evaluator, every formula is an instance of a Java class that
implements the following interface:

public interface Formula
{
boolean eval() throws EvalException;
}

For every `Formula`

`f`, the evaluation of `f`.eval()

returns the boolean value denoted by `f` (or throws an exception if some
error has occurred).

For stating relationships between formulas, we will use the following
notion.

**Definition 2 (Equivalence of Formulas)**
Let `A` and `B` be formulas. We write
`A` *iff* `B`

to indicate that `A` has the same meaning as `B` in any
context; we read this as "`A` is *equivalent* to
`B`" ("`A` ist äquivalent zu `B`") or as
"`A` if and only if
`B`" ("`A` genau dann wenn `B`").

Author: Wolfgang Schreiner

Last Modification: October 4, 1999