Default arguments
Some predicates are often used with the same arguments. While it can be possible to define new predicates that wrap them and provide this argument, this would lead to multiple words for the same concepts, and might not be practical for predicates made with some grammar rules such as numbers. Also, those common arguments might be specific to some text or speech.
To address the above, Eberban allows the management of default arguments, which are properties that some arguments must satisfy only when there are no explicit bounds on them.
Let’s take as an example the predicate espuackuil, which means
\[\text{espuackuil}(c,e,a) = [\text{$e$ is the home stellar body of species $a$}]\]
We could want that A are humans by default so that we don’t have to always specify it is the home planet of humans/Earth nor have to define another separate predicate.
To do that, we can use the oie/oia/oio/oiu series in O to define this default property. oia espuackuil flan
defines that by default the A place of espuackuil satisfies the property
flan (being a human). The E place doesn’t have a default bind, which can be seen as having
the default bind of satisfying mai (exists).
oia espuackuil mai
can thus be used to “remove” the default human bind.
This default property can be used with the zoie/zoia/zoio/zoiu series in ZI: zoia espuackuil
is thus equivalent to flan
in this case.
Any argument that is not re-exported as an argument of the wrapping predicate and not bound with chaining or explicit binding automatically has the default bound.
If an argument is re-exported by the wrapping predicate, then the default bound is instead inherited
by the wrapped predicate (as if oie/etc was used on them too). This also applies with O
definitions, such as if we define the predicate o ga espuackuil
then the A argument of ga
also defaults to flan, and ga can be used in place of espuackuil.
Note that after defining ga, changing a default bind on espuackuil will not modify the corresponding bind of ga.
oia ga ...
will thus be required instead.
Here is an example with all default bindings added:
mi dona espuackuil
\[ \begin{align} \text{mi}(c,e) &= \text{[$e$ is a speaker]} \\ \text{dona}(c,e,a) &= \text{[$e$ likes $a$]} \\ \ \\ \text{espuackuil}_1(c,e,a) &= \text{espuackuil}(c,e,a) \\ \text{zoia-espuackuil}_1(c,e) &= \text{zoia-espuackuil}(c,e) \\ \text{espuackuil}^w_1(c,e) &= \exists a. \text{espuackuil}_1(c,e,a) \color{magenta}{\wedge \text{zoia-espuackuil}_1(c,a)} \\ \ \\ \text{dona}_1(c,e,a) &= \text{dona}(c,e,a) \wedge \text{espuackuil}^w_1(c,e) \\ \text{zoia-dona}_1(c,e) &= \text{zoia-dona}(c,e) \\ \text{dona}^w_1(c,e) &= \exists a. \text{dona}_1(c,e,a) \color{magenta}{\wedge \text{zoia-dona}_1(c,a)} \\ \ \\ \text{mi}_1(c,e) &= \text{mi}(c,e) \wedge \text{dona}^w_1(c,e) \\ \text{mi}^w_1(c) &= \exists e. \text{mi}_1(c,e) \\ \end{align} \]
I like the home planet of humans (Earth, until humans start to live on other planets).
Manually binding the argument will prevent the default bind to be added:
mi dona espuackuil va mian
\[ \begin{align} \text{mi}(c,e) &= \text{[$e$ is a speaker]} \\ \text{dona}(c,e,a) &= \text{[$e$ likes $a$]} \\ \text{mian}(c,e) &= \text{[$e$ is a cat]} \\ \ \\ \text{mian}_1(c,e) &= \text{mian}(c,e) \\ \ \\ \text{espuackuil}_1(c,e,a) &= \text{espuackuil}(c,e,a) \color{magenta}{\wedge \text{mian}_1(c,e)}\\ \text{espuackuil}^w_1(c,e) &= \exists a. \text{espuackuil}_1(c,e,a) \\ \ \\ \text{dona}_1(c,e,a) &= \text{dona}(c,e,a) \wedge \text{espuackuil}^w_1(c,e) \\ \text{zoia-dona}_1(c,e) &= \text{zoia-dona}(c,e) \\ \text{dona}^w_1(c,e) &= \exists a. \text{dona}_1(c,e,a) \color{magenta}{\wedge \text{zoia-dona}_1(c,a)} \\ \ \\ \text{mi}_1(c,e) &= \text{mi}(c,e) \wedge \text{dona}^w_1(c,e) \\ \text{mi}^w_1(c) &= \exists e. \text{mi}_1(c,e) \\ \end{align} \]
I like the home planet of cats (still Earth, unless we find or bring cats on other planets).
Other chapters will omit default binds (unless they are important) to reduce verbosity.