.. index:: integer
.. _integer/0:

.. rst-class:: right

**object**

``integer``
===========

Integer data type predicates.

| **Author:** Paulo Moura
| **Version:** 1.54
| **Date:** 2019/6/4

| **Compilation flags:**
|    ``static, context_switching_calls``


| **Extends:**
|    ``public`` :ref:`number <number/0>`

| **Remarks:**


   - *Portability notes:* This object will use the backend Prolog system ``between/3``, ``plus/3``, and ``succ/2`` built-in predicates when available.

.. contents::
   :local:
   :backlinks: top

Public predicates
-----------------

.. raw:: html

   <div id="between/3"> </div>

.. index:: between/3
.. _integer/0::between/3:

``between/3``
^^^^^^^^^^^^^

Returns integers in the interval defined by the two first arguments.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``between(Lower,Upper,Integer)``
| **Mode and number of proofs:**
|    ``between(+integer,+integer,+integer)`` - ``zero_or_one``
|    ``between(+integer,+integer,-integer)`` - ``zero_or_more``


------------

.. raw:: html

   <div id="plus/3"> </div>

.. index:: plus/3
.. _integer/0::plus/3:

``plus/3``
^^^^^^^^^^

Reversible integer sum. At least two of the arguments must be instantiated to integers.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``plus(I,J,Sum)``
| **Mode and number of proofs:**
|    ``plus(+integer,+integer,?integer)`` - ``zero_or_one``
|    ``plus(+integer,?integer,+integer)`` - ``zero_or_one``
|    ``plus(?integer,+integer,+integer)`` - ``zero_or_one``


------------

.. raw:: html

   <div id="succ/2"> </div>

.. index:: succ/2
.. _integer/0::succ/2:

``succ/2``
^^^^^^^^^^

Successor of a natural number. At least one of the arguments must be instantiated to a natural number.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``succ(I,J)``
| **Mode and number of proofs:**
|    ``succ(+integer,?integer)`` - ``zero_or_one``
|    ``succ(?integer,+integer)`` - ``zero_or_one``


------------

.. raw:: html

   <div id="sequence/3"> </div>

.. index:: sequence/3
.. _integer/0::sequence/3:

``sequence/3``
^^^^^^^^^^^^^^

Generates a list with the sequence of all integers in the interval ``[Inf,Sup]``, assuming ``Inf =< Sup``.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``sequence(Inf,Sup,List)``
| **Mode and number of proofs:**
|    ``sequence(+integer,+integer,-list(integer))`` - ``zero_or_one``


------------

Protected predicates
--------------------

(see entity ancestors)

Private predicates
------------------

(see entity ancestors)

Operators
---------

(none)

