581 \item[$\bullet$] \textbf{\textit{preds}:} Types are encoded using a binary predicate |
581 \item[$\bullet$] \textbf{\textit{preds}:} Types are encoded using a binary predicate |
582 $\mathit{has\_type\/}(\tau, t)$ that restricts the range of bound variables. |
582 $\mathit{has\_type\/}(\tau, t)$ that restricts the range of bound variables. |
583 Constants are annotated with their types, supplied as extra arguments, to |
583 Constants are annotated with their types, supplied as extra arguments, to |
584 resolve overloading. |
584 resolve overloading. |
585 |
585 |
|
586 \item[$\bullet$] \textbf{\textit{tags}:} Each term and subterm is tagged with |
|
587 its type using a function $\mathit{type\_info\/}(\tau, t)$. |
|
588 |
586 \item[$\bullet$] \textbf{\textit{mono\_preds}:} Similar to \textit{preds}, but |
589 \item[$\bullet$] \textbf{\textit{mono\_preds}:} Similar to \textit{preds}, but |
587 the problem is additionally monomorphized. This corresponds to the traditional |
590 the problem is additionally monomorphized. |
588 encoding of types in an untyped logic without overloading (e.g., such as |
591 |
589 performed by the ToFoF-E wrapper). |
592 \item[$\bullet$] \textbf{\textit{mono\_tags}:} Similar to \textit{tags}, but |
|
593 the problem is additionally monomorphized. |
590 |
594 |
591 \item[$\bullet$] \textbf{\textit{mangled\_preds}:} Similar to |
595 \item[$\bullet$] \textbf{\textit{mangled\_preds}:} Similar to |
592 \textit{mono\_preds}, but types are mangled in constant names instead of being |
596 \textit{mono\_preds}, but types are mangled in constant names instead of being |
593 supplied as ground term arguments. The binary predicate |
597 supplied as ground term arguments. The binary predicate |
594 $\mathit{has\_type\/}(\tau, t)$ becomes a unary predicate |
598 $\mathit{has\_type\/}(\tau, t)$ becomes a unary predicate |
595 $\mathit{has\_type\_}\tau(t)$. |
599 $\mathit{has\_type\_}\tau(t)$. |
596 |
|
597 \item[$\bullet$] \textbf{\textit{tags}:} Each term and subterm is tagged with |
|
598 its type using a function $\mathit{type\_info\/}(\tau, t)$. |
|
599 |
|
600 \item[$\bullet$] \textbf{\textit{mono\_tags}:} Similar to \textit{tags}, but |
|
601 the problem is additionally monomorphized. |
|
602 |
600 |
603 \item[$\bullet$] \textbf{\textit{mangled\_tags}:} Similar to |
601 \item[$\bullet$] \textbf{\textit{mangled\_tags}:} Similar to |
604 \textit{mono\_tags}, but types are mangled in constant names instead of being |
602 \textit{mono\_tags}, but types are mangled in constant names instead of being |
605 supplied as ground term arguments. The binary function |
603 supplied as ground term arguments. The binary function |
606 $\mathit{type\_info\/}(\tau, t)$ becomes a unary function |
604 $\mathit{type\_info\/}(\tau, t)$ becomes a unary function |