{
    "schema": {
        "module": "string",
        "name": "string",
        "type": "string",
        "signature": "string",
        "doc": "string",
        "pattern": "string"
    },
    "data": [
        {
            "module": "Int",
            "name": "t",
            "type": "type",
            "signature": "type t = int",
            "doc": "Integer type using arbitrary precision integers (Z.t from Zarith)",
            "pattern": null
        },
        {
            "module": "Int",
            "name": "+",
            "type": "function",
            "signature": "val (+) : int -> int -> int",
            "doc": "Addition operator for integers",
            "pattern": "Basic arithmetic addition"
        },
        {
            "module": "Int",
            "name": "-",
            "type": "function",
            "signature": "val (-) : int -> int -> int",
            "doc": "Subtraction operator for integers",
            "pattern": "Basic arithmetic subtraction"
        },
        {
            "module": "Int",
            "name": "~-",
            "type": "function",
            "signature": "val (~-) : int -> int",
            "doc": "Unary negation operator for integers",
            "pattern": "Negating a number"
        },
        {
            "module": "Int",
            "name": "*",
            "type": "function",
            "signature": "val (*) : int -> int -> int",
            "doc": "Multiplication operator for integers",
            "pattern": "Basic arithmetic multiplication"
        },
        {
            "module": "Int",
            "name": "/",
            "type": "function",
            "signature": "val (/) : int -> int -> int",
            "doc": "Division operator for integers",
            "pattern": "Integer division with truncation toward zero"
        },
        {
            "module": "Int",
            "name": "mod",
            "type": "function",
            "signature": "val (mod) : int -> int -> int",
            "doc": "Modulo operator for integers",
            "pattern": "Computing remainders and wrapping values"
        },
        {
            "module": "Int",
            "name": "<",
            "type": "function",
            "signature": "val (<) : int -> int -> bool",
            "doc": "Less than comparison operator",
            "pattern": "Numeric ordering comparison"
        },
        {
            "module": "Int",
            "name": "<=",
            "type": "function",
            "signature": "val (<=) : int -> int -> bool",
            "doc": "Less than or equal comparison operator",
            "pattern": "Numeric ordering and equality comparison"
        },
        {
            "module": "Int",
            "name": ">",
            "type": "function",
            "signature": "val (>) : int -> int -> bool",
            "doc": "Greater than comparison operator",
            "pattern": "Numeric ordering comparison"
        },
        {
            "module": "Int",
            "name": ">=",
            "type": "function",
            "signature": "val (>=) : int -> int -> bool",
            "doc": "Greater than or equal comparison operator",
            "pattern": "Numeric ordering and equality comparison"
        },
        {
            "module": "Int",
            "name": "min",
            "type": "function",
            "signature": "val min : int -> int -> int",
            "doc": "Returns the minimum of two integers",
            "pattern": "Finding smaller of two values"
        },
        {
            "module": "Int",
            "name": "max",
            "type": "function",
            "signature": "val max : int -> int -> int",
            "doc": "Returns the maximum of two integers",
            "pattern": "Finding larger of two values"
        },
        {
            "module": "Int",
            "name": "abs",
            "type": "function",
            "signature": "val abs : int -> int",
            "doc": "Returns absolute value of an integer",
            "pattern": "Getting magnitude of a number"
        },
        {
            "module": "Int",
            "name": "to_string",
            "type": "function",
            "signature": "val to_string : int -> string",
            "doc": "Converts non-negative integer to string representation",
            "pattern": "String formatting and display of numbers"
        },
        {
            "module": "Int",
            "name": "compare",
            "type": "function",
            "signature": "val compare : int -> int -> int",
            "doc": "Returns -1 if x < y, 0 if x = y, 1 if x > y",
            "pattern": "Three-way comparison for sorting and ordering"
        },
        {
            "module": "Int",
            "name": "equal",
            "type": "function",
            "signature": "val equal : 'a -> 'a -> bool",
            "doc": "Tests equality of two integers",
            "pattern": "Value equality comparison"
        },
        {
            "module": "Int",
            "name": "pow",
            "type": "function",
            "signature": "val pow : int -> int -> int",
            "doc": "Computes x raised to power n",
            "pattern": "Exponential calculations"
        },
        {
            "module": "Int",
            "name": "mod_zero_prod",
            "type": "axiom",
            "signature": "val mod_zero_prod : int -> int -> int -> bool",
            "doc": null,
            "pattern": null
        },
        {
            "module": "Int",
            "name": "mod_sub_id",
            "type": "axiom",
            "signature": "val mod_sub_id : int -> int -> bool",
            "doc": null,
            "pattern": null
        }
    ],
    "program_prelude": [
        "val pp : Stdlib.Format.formatter -> Imandrax_util.Z.t -> unit",
        "val of_caml_int : int -> Imandrax_util.Z.t",
        "val for_ : int -> int -> (int -> unit) -> unit",
        "val pow_ : int -> Imandrax_util.Z.t -> int",
        "val for_down_to : int -> int -> (int -> unit) -> unit"
    ]
}