Logic framework

Eberban is based on a custom Higher-order Logic (HOL) and tries to stay pretty close to expressions in such logic while being targeted for human speech.

Eberban grammar allows the speaker to manipulate predicates. They are functions that take arguments as input and output a truth value which can be true, false or unknown/undefined. They are introduced by predicate words or created from other predicates using Eberban grammar.

Arguments are not filled using predicate words directly and there is no word that directly represents them. Instead some particles allow the speaker to select which arguments are going to be used for various operations on predicates, such as connecting them with each other. Arguments are typed, and can either represent predicates or non-predicates which are called atoms.

The first of these arguments is handled automatically by the grammar and is called the context argument. It is used to carry information between predicates without verbosity for speakers to implement things, such as tenses.

Other arguments are represented using the vowels e, a, o, u in this order. They are used in definitions but also in some families of particles related to argument selection. They are called explicit arguments (to exclude the implicit context argument), and we call arity (N-ary) the number of explicit arguments.

Here is an exemple of a simple predicate :

mian

\[ \text{mian}(c,e) = \text{[$e$ is a cat in context $c$]} \]

Given $(c), $(e):
$(e) is a cat in context $(c).

$(c) and $(e) are arguments that will be provided when used in a sentence.

In future explanations we’ll omit the context argument outside of logical notation to be shorter, unless the context argument is the focus of the explanation.

Any predicate word not yet defined in the dictionnary or by the speaker return unknown/undefined for any arguments.