{
  "schema": 1,
  "release_version": "0.7.2",
  "compiler_source": "fb41913c619e0dac6c66b08ee44e1ee18ce67aa8",
  "compiler_data_sha256": "4eb831acbca4482cfce252d5a846c6de83bd322fd1c5b9b2a7206fbbff0ca995",
  "modules": [
    {
      "module": ".math",
      "source": "stdlib-source/math.vkf",
      "source_sha256": "ca670afda7c9edc010ca25428f61f79c0fb45bdf5655a4a240d2162e744a2f3f",
      "status": "Source + compiler intrinsics",
      "api_names": [
        "pi",
        "e",
        "tau",
        "sin",
        "cos",
        "exp",
        "ln",
        "sqrt",
        "abs",
        "tan",
        "sec",
        "cot",
        "csc",
        "sinh",
        "cosh",
        "tanh",
        "lg",
        "lg2",
        "log",
        "asinh",
        "acosh",
        "atanh",
        "atan",
        "atan2",
        "asin",
        "acos",
        "acot",
        "asec",
        "acsc",
        "gamma",
        "erf"
      ],
      "source_signatures": [
        "tan(value:num) -> num:",
        "sec(value:num) -> num:",
        "cot(value:num) -> num:",
        "csc(value:num) -> num:",
        "sinh(value:num) -> num:",
        "cosh(value:num) -> num:",
        "tanh(value:num) -> num:",
        "lg(value:num) -> num:",
        "lg2(value:num) -> num:",
        "log(value:num, base:num) -> num:",
        "asinh(value:num) -> num:",
        "acosh(value:num) -> num:",
        "atanh(value:num) -> num:",
        "atan(value:num) -> num:",
        "atan2(y:num, x:num) -> num:",
        "asin(value:num) -> num:",
        "acos(value:num) -> num:",
        "acot(value:num) -> num:",
        "asec(value:num) -> num:",
        "acsc(value:num) -> num:",
        "gamma(value:num) -> num:",
        "erf(value:num) -> num:"
      ]
    },
    {
      "module": ".linalg",
      "source": "stdlib-source/linalg.vkf",
      "source_sha256": "5dcd769b40b58738c68774defe032f068b1894b057cc523b4622f3357de9c866",
      "status": "Source; solve example below",
      "api_names": [
        "dot",
        "cross",
        "outer",
        "matmul",
        "transpose",
        "diag",
        "trace",
        "determinant",
        "solve",
        "inverse",
        "rref",
        "rank",
        "lu",
        "cholesky",
        "qr",
        "eigen",
        "svd",
        "least_squares",
        "null_space",
        "solution_space",
        "residual",
        "condition_number",
        "relative_residual",
        "verify_solution"
      ],
      "source_signatures": [
        "dot(left:[num:n], right:[num:n]) -> num:",
        "dot(left:[expression:n], right:[expression:n]) -> expression:",
        "cross(left:[num:3], right:[num:3]) -> [num:3]:",
        "outer(left:[num:n], right:[num:m]):",
        "matmul(left:[[num:k]:r], right:[[num:c]:k]) -> [[num:c]:r]:",
        "transpose(matrix:[[num:c]:r]) -> [[num:r]:c]:",
        "diag(values:[num:n]) -> [[num:n]:n]:",
        "trace(matrix:[[num:n]:n]) -> num:",
        "determinant(matrix:[[num:n]:n], tolerance:num=0.000000000001) -> num:",
        "solve(matrix:[[num:n]:n], values:[num:n], tolerance:num=0.000000000001) -> [num:n]:",
        "inverse(matrix:[[num:n]:n], tolerance:num=0.000000000001) -> [[num:n]:n]:",
        "rref(matrix:[[num:c]:r], tolerance:num=0.000000000001) -> [[num:c]:r]:",
        "rank(matrix:[[num:c]:r], tolerance:num=0.000000000001) -> int:",
        "lu(matrix:[[num:n]:n], tolerance:num=0.000000000001):",
        "cholesky(matrix:[[num:n]:n], tolerance:num=0.000000000001) -> [[num:n]:n]:",
        "qr(matrix:[[num:c]:r], tolerance:num=0.000000000001) -> (q:[[num:c]:r],r:[[num:c]:c]):",
        "eigen(\n    matrix:[[num:n]:n],\n    tolerance:num=0.000000000001,\n    max_sweeps:num=64,\n    verify_result:bit=true\n) -> (",
        "svd(\n    matrix:[[num:c]:r],\n    tolerance:num=0.000000000001,\n    max_sweeps:num=64,\n    verify_result:bit=true\n) -> (",
        "least_squares(\n    matrix:[[num:c]:r],\n    values:[num:r],\n    tolerance:num=0.000000000001\n) -> [num:c]:",
        "null_space(\n    matrix:[[num:c]:r],\n    tolerance:num=0.000000000001\n) -> (dimension:int,basis:[[num:c]:c]):",
        "solution_space(\n    matrix:[[num:c]:r],\n    values:[num:r],\n    tolerance:num=0.000000000001\n) -> (",
        "residual(\n    matrix:[[num:c]:r],\n    values:[num:c],\n    targets:[num:r]\n) -> [num:r]:",
        "condition_number(\n    matrix:[[num:n]:n],\n    tolerance:num=0.000000000001\n) -> num:",
        "relative_residual(\n    matrix:[[num:c]:r],\n    values:[num:c],\n    targets:[num:r]\n) -> num:",
        "verify_solution(\n    matrix:[[num:n]:n],\n    values:[num:n],\n    targets:[num:n],\n    tolerance:num=0.000000001,\n    condition_limit:num=1000000000000\n):"
      ]
    },
    {
      "module": ".stat",
      "source": "stdlib-source/stat.vkf",
      "source_sha256": "a0d3b7c7af273ea8e3f633e9abd24dc6f0494933cd4c22a6c285272b00faf95b",
      "status": "Source + intrinsics",
      "api_names": [
        "interp",
        "min",
        "max",
        "percentile",
        "median",
        "iqr",
        "mode",
        "zscore",
        "normalize",
        "covariance",
        "correlation",
        "clamp",
        "sign"
      ],
      "source_signatures": [
        "interp(values:[num:n], targets:[num:m]) -> [num:m]:",
        "interp(values:[num:n], coordinates:[num:l], targets:[num:m]) -> [num:m]:",
        "min(values:[num:n]) -> num:",
        "max(values:[num:n]) -> num:",
        "percentile(values:[num:n], p:num) -> num:",
        "median(values:[num:n]) -> num:",
        "iqr(values:[num:n]) -> num:",
        "mode(values:[num:n]) -> num:",
        "zscore(values:[num:n]) -> [num:n]:",
        "normalize(values:[num:n]) -> [num:n]:",
        "covariance(x:[num:n], y:[num:m], ddof:num=0) -> num:",
        "correlation(x:[num:n], y:[num:m]) -> num:",
        "clamp(value:num, lower:num, upper:num) -> num:",
        "sign(value:num) -> num:"
      ]
    },
    {
      "module": ".units",
      "source": "stdlib-source/units.vkf",
      "source_sha256": "c6eae08570c5fa77548d42c69ab590ebff3956aeb04d519980a225d2897819a5",
      "status": "Catalog; examples below",
      "api_names": [
        "m",
        "km",
        "cm",
        "s",
        "kg",
        "A",
        "K",
        "mol",
        "cd",
        "N",
        "Pa",
        "J",
        "W",
        "rad",
        "deg",
        ".to(unit)"
      ],
      "source_signatures": []
    },
    {
      "module": ".ui",
      "source": "stdlib-source/ui.vkf",
      "source_sha256": "1a71dc8e6b57885c8df654998c2be686a788ec5c47b4575d6b79cc2e9e2f30eb",
      "status": "Compiler intrinsic viewport API",
      "api_names": [
        "viewport",
        "viewport.add(\u2026)",
        "viewport.add_camera(\u2026)",
        "viewport.push()",
        "viewport.show()",
        "set_mode(mode)"
      ],
      "source_signatures": [
        "set_mode(mode:str):"
      ]
    },
    {
      "module": ".concurrent",
      "source": "stdlib-source/concurrent.vkf",
      "source_sha256": "0309f6be8a254f1a9282f0ddab9edfdd5f76724bf5870f2bf815fd9883fea8f9",
      "status": "Compiler/runtime intrinsics",
      "api_names": [
        "process(worker, \u2026)",
        "queue()",
        "broadcast()",
        "shared(value)",
        "process.join()",
        "process.kill()",
        "queue.put(value)",
        "queue.get()",
        "broadcast.subscribe()"
      ],
      "source_signatures": []
    },
    {
      "module": ".collections",
      "source": "stdlib-source/collections.vkf",
      "source_sha256": "57014c51de253c74998cdeb450771135d434c50e350d0555ebc032b61307a7a1",
      "status": "Capability declaration",
      "api_names": [
        "map",
        "list",
        "queue"
      ],
      "source_signatures": []
    },
    {
      "module": ".errors",
      "source": "stdlib-source/errors.vkf",
      "source_sha256": "150851cae3b6b1f2fc275de0d8678435a2e765f6b8f085a2c76c06584b7a7345",
      "status": "Compiler intrinsic error types",
      "api_names": [
        "Error",
        "VektorFlowError",
        "LexError",
        "ParseError",
        "EvalError",
        "AssertionError",
        "PythonError",
        "TypeError",
        "ValueError",
        "KeyError",
        "IndexError",
        "FileNotFoundError",
        "RuntimeError"
      ],
      "source_signatures": []
    },
    {
      "module": ".random",
      "source": "stdlib-source/random.vkf",
      "source_sha256": "f1bf76f090e09c8858e45492f1f7f858a89d22dd08e559735bfb69278d4eabe5",
      "status": "Source; host-dependent default seed",
      "api_names": [
        "next",
        "clock_seed",
        "uniform",
        "normal"
      ],
      "source_signatures": [
        "next(seed:num) -> (value:num,seed:num):",
        "clock_seed() -> num:",
        "uniform(seed:num=clock_seed(), low:num=0, high:num=1) -> (value:num,seed:num):",
        "uniform(seed:num=clock_seed(), low:num=0, high:num=1, shape:num) -> (value:[num],seed:num):",
        "uniform(seed:num=clock_seed(), low:num=0, high:num=1, shape:(num,num)) -> (value:[[num]],seed:num):",
        "normal(seed:num=clock_seed(), mean:num=0, variance:num=1) -> (value:num,seed:num):"
      ]
    },
    {
      "module": ".regex",
      "source": "stdlib-source/regex.vkf",
      "source_sha256": "748c91c569cb4e0c19d253f8eba7b47b403353ab21fea9539bccf4b1a2b11df7",
      "status": "Capability declaration; target-dependent",
      "api_names": [
        "match",
        "groups"
      ],
      "source_signatures": []
    },
    {
      "module": ".symbolic",
      "source": "stdlib-source/symbolic.vkf",
      "source_sha256": "70ac20e278689da2a155213120a804ee5c5143ba51682f208a8f65dd74377175",
      "status": "Experimental; browser coverage unresolved",
      "api_names": [
        "symbol_name",
        "symbol_is_constant",
        "symbol_latex",
        "katex",
        "same",
        "constant",
        "sin",
        "cos",
        "log",
        "ln",
        "sqrt",
        "exp",
        "real_part",
        "magnitude",
        "equation",
        "less_than",
        "less_equal",
        "greater_than",
        "greater_equal",
        "not_equal",
        "implies",
        "premise",
        "conclusion",
        "derivative",
        "prime",
        "partial",
        "at",
        "where",
        "boundary_value",
        "boundary_domain",
        "equivalent",
        "z_transform",
        "verify_z_transform",
        "z_transform_condition",
        "verify_z_transform_condition",
        "transform_condition_count",
        "transform_condition",
        "z_transform_conditions",
        "verify_z_transform_conditions",
        "verify_inverse_z_transform",
        "inverse_z_transform",
        "laplace",
        "verify_laplace",
        "laplace_condition",
        "verify_laplace_condition",
        "laplace_conditions",
        "verify_laplace_conditions",
        "verify_inverse_laplace",
        "inverse_laplace",
        "verify_ode_solution",
        "solve_pde",
        "verify_pde_solution",
        "verify_heat_solution",
        "solve_recurrence",
        "fourier",
        "verify_fourier",
        "verify_inverse_fourier",
        "inverse_fourier",
        "fourier_real",
        "fourier_imag",
        "haar_wavelet",
        "verify_haar_wavelet",
        "verify_inverse_haar_wavelet",
        "inverse_haar_wavelet",
        "solution_count",
        "solution_verified",
        "solution_condition_count",
        "solution_condition",
        "solution_is_branched",
        "solution_branch_count",
        "solution_branch",
        "solution_is_family",
        "solution_family_dimension",
        "solution_particular_value",
        "solution_direction_value",
        "solution_value",
        "asymptotic",
        "verify_asymptotic",
        "roots",
        "solve",
        "verify_solutions",
        "polynomial",
        "add_term",
        "coefficient",
        "depends_on",
        "integrate",
        "inspect_integrate",
        "integ",
        "differentiate",
        "inspect_differentiate",
        "deriv",
        "diff",
        "solve_ode",
        "limit",
        "verify_limit",
        "evaluate",
        "verify_recurrence",
        "expand",
        "collect",
        "inspect_simplify",
        "evaluate_inspection",
        "simplify",
        "substitute",
        "term_count",
        "series_multiply"
      ],
      "source_signatures": [
        "symbol_name(value:symbol) -> str:",
        "symbol_is_constant(value:symbol) -> bit:",
        "symbol_latex(value:symbol) -> str:",
        "katex(value:expression) -> str:",
        "same(left:expression, right:expression) -> bit:",
        "constant(value:num) -> constant:",
        "sin(value:expression) -> expression:",
        "cos(value:expression) -> expression:",
        "log(value:expression) -> expression:",
        "ln(value:expression) -> expression:",
        "sqrt(value:expression) -> expression:",
        "exp(value:expression) -> expression:",
        "real_part(value:expression) -> expression:",
        "magnitude(value:expression) -> expression:",
        "equation(left:expression, right:expression) -> relation:",
        "equation(left:expression, right:num) -> relation:",
        "equation(left:num, right:expression) -> relation:",
        "less_than(left:expression, right:expression) -> relation:",
        "less_equal(left:expression, right:expression) -> relation:",
        "greater_than(left:expression, right:expression) -> relation:",
        "greater_equal(left:expression, right:expression) -> relation:",
        "not_equal(left:expression, right:expression) -> relation:",
        "not_equal(left:expression, right:num) -> relation:",
        "not_equal(left:num, right:expression) -> relation:",
        "implies(left:proposition, right:proposition) -> proposition:",
        "premise(value:proposition) -> proposition:",
        "conclusion(value:proposition) -> proposition:",
        "derivative(value:expression, variable:symbol) -> expression:",
        "derivative(variable_name:chr, value:expression) -> expression:",
        "prime(value:expression, order:num = 1) -> expression:",
        "partial(value:expression, variable:symbol, order:num = 1) -> expression:",
        "partial(variable_name:chr, value:expression, order:num = 1) -> expression:",
        "at(value:expression, point:num) -> expression:",
        "at(value:expression, argument:expression) -> expression:",
        "at(value:expression, variable:symbol, point:num) -> expression:",
        "at(variable_name:chr, value:expression, point:num) -> expression:",
        "at(value:expression, arguments:[expression:n]) -> expression:",
        "where(value_constraint:relation, domain_constraint:relation) -> relation:",
        "boundary_value(boundary:relation) -> relation:",
        "boundary_domain(boundary:relation) -> relation:",
        "equivalent(left:expression, right:expression) -> bit:",
        "z_transform(value:symbolic, index:symbolic, frequency:symbolic) -> symbolic:",
        "verify_z_transform(\n    candidate:symbolic,\n    value:symbolic,\n    index:symbolic,\n    frequency:symbolic\n) -> bit:",
        "z_transform_condition(value:symbolic, index:symbolic, frequency:symbolic) -> relation:",
        "verify_z_transform_condition(\n    candidate:relation,\n    value:symbolic,\n    index:symbolic,\n    frequency:symbolic\n) -> bit:",
        "transform_condition_count(conditions:[num]) -> num:",
        "transform_condition(conditions:[num], index:num) -> symbolic:",
        "z_transform_conditions(value:symbolic, index:symbolic, frequency:symbolic) -> [num]:",
        "verify_z_transform_conditions(\n    candidate:[num],\n    value:symbolic,\n    index:symbolic,\n    frequency:symbolic\n) -> bit:",
        "verify_inverse_z_transform(\n    candidate:symbolic,\n    value:symbolic,\n    frequency:symbolic,\n    index:symbolic\n) -> bit:",
        "inverse_z_transform(value:symbolic, frequency:symbolic, index:symbolic) -> symbolic:",
        "laplace(value:symbolic, time:symbolic, frequency:symbolic) -> symbolic:",
        "verify_laplace(\n    candidate:symbolic,\n    value:symbolic,\n    time:symbolic,\n    frequency:symbolic\n) -> bit:",
        "laplace_condition(value:symbolic, time:symbolic, frequency:symbolic) -> relation:",
        "verify_laplace_condition(\n    candidate:relation,\n    value:symbolic,\n    time:symbolic,\n    frequency:symbolic\n) -> bit:",
        "laplace_conditions(value:symbolic, time:symbolic, frequency:symbolic) -> [num]:",
        "verify_laplace_conditions(\n    candidate:[num],\n    value:symbolic,\n    time:symbolic,\n    frequency:symbolic\n) -> bit:",
        "verify_inverse_laplace(\n    candidate:symbolic,\n    value:symbolic,\n    frequency:symbolic,\n    time:symbolic\n) -> bit:",
        "inverse_laplace(value:symbolic, frequency:symbolic, time:symbolic) -> symbolic:",
        "verify_ode_solution(solution:symbolic, independent:symbolic, rate:num, initial:num) -> bit:",
        "solve_pde(\n    differential_equation:symbolic,\n    initial_condition:symbolic,\n    boundaries:[symbolic:n],\n    dependent:symbolic,\n    space:symbolic,\n    time:symbolic\n) -> symbolic:",
        "verify_pde_solution(\n    solution:symbolic,\n    differential_equation:symbolic,\n    initial_condition:symbolic,\n    boundaries:[symbolic:n],\n    dependent:symbolic,\n    space:symbolic,\n    time:symbolic\n) -> bit:",
        "verify_pde_solution(\n    solution:symbolic,\n    differential_equation:symbolic,\n    boundaries:[symbolic:n],\n    dependent:symbolic,\n    variables:[symbolic:m]\n) -> bit:",
        "solve_pde(\n    differential_equation:symbolic,\n    boundaries:[symbolic:n],\n    dependent:symbolic,\n    variables:[symbolic:m]\n) -> symbolic:",
        "verify_heat_solution(solution:symbolic, space:symbolic, time:symbolic) -> bit:",
        "solve_recurrence(multiplier:num, offset:num, initial:num, index:symbolic) -> symbolic:",
        "fourier(value:symbolic, time:symbolic, frequency:symbolic) -> symbolic:",
        "verify_fourier(candidate:symbolic, value:symbolic, time:symbolic, frequency:symbolic) -> bit:",
        "verify_inverse_fourier(candidate:symbolic, value:symbolic, frequency:symbolic, time:symbolic) -> bit:",
        "inverse_fourier(value:symbolic, frequency:symbolic, time:symbolic) -> symbolic:",
        "fourier(values:[num:n]) -> [num]:",
        "fourier_real(spectrum:[num], frequency:num) -> num:",
        "fourier_imag(spectrum:[num], frequency:num) -> num:",
        "verify_inverse_fourier(candidate:[num], spectrum:[num], tolerance:num) -> bit:",
        "verify_inverse_fourier(candidate:[num], spectrum:[num]) -> bit:",
        "inverse_fourier(spectrum:[num]) -> [num]:",
        "haar_wavelet(value:symbolic, variable:symbolic, scale:num, shift:num) -> symbolic:",
        "verify_haar_wavelet(candidate:symbolic, value:symbolic, variable:symbolic, scale:num, shift:num) -> bit:",
        "haar_wavelet(values:[num:n]) -> [num]:",
        "verify_inverse_haar_wavelet(\n    candidate:[num],\n    coefficients:[num],\n    tolerance:num\n) -> bit:",
        "verify_inverse_haar_wavelet(candidate:[num], coefficients:[num]) -> bit:",
        "inverse_haar_wavelet(coefficients:[num]) -> [num]:",
        "solution_count(solutions:symbolic) -> num:",
        "solution_verified(solutions:symbolic) -> bit:",
        "solution_condition_count(solutions:symbolic) -> num:",
        "solution_condition(solutions:symbolic, condition_index:num) -> relation:",
        "solution_is_branched(solutions:symbolic) -> bit:",
        "solution_branch_count(solutions:symbolic) -> num:",
        "solution_branch(solutions:symbolic, branch_index:num) -> symbolic:",
        "solution_is_family(solutions:symbolic) -> bit:",
        "solution_family_dimension(solutions:symbolic) -> num:",
        "solution_particular_value(solutions:symbolic, variable_index:num) -> symbolic:",
        "solution_direction_value(solutions:symbolic, direction_index:num, variable_index:num) -> symbolic:",
        "solution_value(solutions:symbolic, solution_index:num, variable_index:num = 0) -> symbolic:",
        "asymptotic(value:symbolic, variable:symbolic) -> symbolic:",
        "asymptotic(variable_name:chr, value:symbolic) -> symbolic:",
        "verify_asymptotic(candidate:symbolic, value:symbolic, variable:symbolic) -> bit:",
        "roots(equation_value:symbolic, variable:symbolic) -> {num}:",
        "roots(variable_name:chr, equation_value:symbolic) -> {num}:",
        "solve(equation_value:symbolic, variables:[symbolic:n]) -> symbolic:",
        "verify_solutions(\n    solutions:symbolic,\n    equations:[symbolic:e],\n    variables:[symbolic:v]\n) -> bit:",
        "solve(equations:[symbolic:e], variables:[symbolic:v]) -> symbolic:",
        "polynomial(variable:symbolic, requested_capacity:num = 4096) -> symbolic:",
        "polynomial(variable_name:chr, requested_capacity:num = 4096) -> symbolic:",
        "add_term(value:symbolic, coefficient_value:num, exponent:num) -> symbolic:",
        "coefficient(value:symbolic, exponents:[num]) -> num:",
        "depends_on(value:symbolic, variable:symbolic) -> bit:",
        "depends_on(variable_name:chr, value:symbolic) -> bit:",
        "integrate(value:symbolic, variable:symbolic) -> symbolic:",
        "inspect_integrate(value:symbolic, variable:symbolic) -> (source:symbolic,expression:symbolic,steps:[(ordinal:num,rule_id:str,status:str,input:symbolic,output:symbolic,assumption:(kind:str,operand:symbolic,scope:str),numerical_requirement:str,execution_authority:bit)],domain:(scope:str,execution_checked:bit),ordinal_scope:str,numerical_requirement:str,execution_authority:bit):",
        "integrate(variable_name:chr, value:symbolic) -> symbolic:",
        "integ(variable_name:chr, value:symbolic) -> symbolic:",
        "integ(variable_names:[chr], value:symbolic) -> symbolic:",
        "integ(axis:chr, values:[num:n], spacing:num = 1) -> num:",
        "integ(axis:chr, values:[num:n], coordinates:[num:m]) -> num:",
        "differentiate(value:symbolic, variable:symbolic, cache:bit = true) -> symbolic:",
        "inspect_differentiate(value:symbolic, variable:symbolic, cache:bit = true) -> (source:symbolic,expression:symbolic,steps:[(ordinal:num,rule_id:str,status:str,input:symbolic,output:symbolic,assumption:(kind:str,operand:symbolic,scope:str),numerical_requirement:str,execution_authority:bit)],domain:(scope:str,execution_checked:bit),ordinal_scope:str,numerical_requirement:str,execution_authority:bit):",
        "differentiate(variable_name:chr, value:symbolic, cache:bit = true) -> symbolic:",
        "deriv(variable_name:chr, value:symbolic, cache:bit = true) -> symbolic:",
        "deriv(axis:chr, values:[num:n], spacing:num = 1) -> [num:n]:",
        "diff(value:symbolic, variable:symbolic, cache:bit = true) -> symbolic:",
        "diff(variable_name:chr, value:symbolic, cache:bit = true) -> symbolic:",
        "verify_ode_solution(\n    solution:symbolic,\n    differential_equation:symbolic,\n    initial_condition:symbolic,\n    dependent:symbolic,\n    independent:symbolic,\n    checks:num = 16\n) -> bit:",
        "solve_ode(\n    differential_equation:symbolic,\n    initial_condition:symbolic,\n    dependent:symbolic,\n    independent:symbolic\n) -> symbolic:",
        "verify_ode_solution(\n    solution:symbolic,\n    differential_equation:symbolic,\n    conditions:[symbolic:n],\n    dependent:symbolic,\n    independent:symbolic,\n    checks:num = 16\n) -> bit:",
        "solve_ode(\n    differential_equation:symbolic,\n    conditions:[symbolic:n],\n    dependent:symbolic,\n    independent:symbolic\n) -> symbolic:",
        "limit(value:symbolic, variable:symbolic, point:num, side:str) -> symbolic:",
        "limit(variable_name:chr, value:symbolic, point:num, side:str) -> symbolic:",
        "limit(value:symbolic, variable:symbolic, point:num) -> symbolic:",
        "limit(variable_name:chr, value:symbolic, point:num) -> symbolic:",
        "limit(value:symbolic, variable:symbolic, point:symbolic) -> symbolic:",
        "limit(variable_name:chr, value:symbolic, point:symbolic) -> symbolic:",
        "integ(variable_name:chr,",
        "verify_limit(\n    candidate:symbolic,\n    value:symbolic,\n    variable:symbolic,\n    point:num,\n    side:str = \"both\"\n) -> bit:",
        "verify_limit(\n    candidate:symbolic,\n    value:symbolic,\n    variable:symbolic,\n    point:symbolic\n) -> bit:",
        "evaluate(value:symbolic, variables:[num]) -> num:",
        "verify_recurrence(\n    solution:symbolic,\n    index:symbolic,\n    multiplier:num,\n    offset:num,\n    initial:num,\n    checks:num = 16\n) -> bit:",
        "verify_recurrence(\n    solution:symbolic,\n    recurrence:symbolic,\n    initial_condition:symbolic,\n    dependent:symbolic,\n    index:symbolic,\n    checks:num = 16\n) -> bit:",
        "verify_recurrence(\n    solution:symbolic,\n    recurrence:symbolic,\n    initial_conditions:[symbolic:2],\n    dependent:symbolic,\n    index:symbolic,\n    checks:num = 16\n) -> bit:",
        "solve_recurrence(\n    recurrence:symbolic,\n    initial_condition:symbolic,\n    dependent:symbolic,\n    index:symbolic\n) -> symbolic:",
        "solve_recurrence(\n    recurrence:symbolic,\n    initial_conditions:[symbolic:2],\n    dependent:symbolic,\n    index:symbolic\n) -> symbolic:",
        "solve(\n    relation:symbolic,\n    conditions:[symbolic:1],\n    dependent:symbolic,\n    independent:symbolic\n) -> symbolic:",
        "solve(\n    relation:symbolic,\n    conditions:[symbolic:2],\n    dependent:symbolic,\n    independent:symbolic\n) -> symbolic:",
        "solve(\n    relation:symbolic,\n    conditions:[symbolic:n],\n    dependent:symbolic,\n    independent:[symbolic:m]\n) -> symbolic:",
        "expand(value:symbolic) -> symbolic:",
        "collect(value:symbolic) -> symbolic:",
        "inspect_simplify(value:symbolic) -> (source:symbolic,expression:symbolic,steps:[(ordinal:num,rule_id:str,status:str,input:symbolic,output:symbolic,assumption:(kind:str,operand:symbolic,scope:str),numerical_requirement:str,execution_authority:bit)],domain:(scope:str,execution_checked:bit),ordinal_scope:str,numerical_requirement:str,execution_authority:bit):",
        "evaluate_inspection(view:(source:symbolic,expression:symbolic,steps:[(ordinal:num,rule_id:str,status:str,input:symbolic,output:symbolic,assumption:(kind:str,operand:symbolic,scope:str),numerical_requirement:str,execution_authority:bit)],domain:(scope:str,execution_checked:bit),ordinal_scope:str,numerical_requirement:str,execution_authority:bit), variables:[num]) -> num:",
        "simplify(value:symbolic) -> symbolic:",
        "substitute(value:symbolic, variable:symbolic, replacement:symbolic) -> symbolic:",
        "substitute(value:symbolic, variable:symbolic, replacement:num) -> symbolic:",
        "substitute(variable_name:chr, value:symbolic, replacement:symbolic) -> symbolic:",
        "substitute(variable_name:chr, value:symbolic, replacement:num) -> symbolic:",
        "term_count(value:symbolic) -> num:",
        "series_multiply(left:[num], right:[num], order:num) -> [num]:"
      ]
    },
    {
      "module": ".physics",
      "source": "stdlib-source/physics.vkf",
      "source_sha256": "a311aa4c5a9295508cc0554616c380c2dac80a87f745f25788c3e30a653539c3",
      "status": "Source; broad runtime coverage unqualified",
      "api_names": [
        "rb_add3",
        "rb_sub3",
        "rb_scale3",
        "rb_dot3",
        "rb_cross3",
        "rb_mat3",
        "rb_identity3",
        "rb_scale_mat3",
        "rb_add_mat3",
        "rb_outer3",
        "rb_trace3",
        "rb_det3",
        "rb_inverse3",
        "rb_mat_vec3",
        "rb_abs",
        "parallel_axis_shift3",
        "tetra_mass_properties3",
        "combine_mass_properties3",
        "rigid_state3",
        "force_at_point3",
        "step_rigid_body_momentum3",
        "vec2",
        "vec3",
        "add2",
        "add3",
        "sub2",
        "sub3",
        "scale2",
        "scale3",
        "dot2",
        "dot3",
        "cross3",
        "mat2",
        "mat3",
        "zero3x3",
        "identity3x3",
        "scale_mat3",
        "add_mat3",
        "neg_mat3",
        "mat_vec3",
        "mat_mul3",
        "diag_inv3",
        "skew3",
        "collision_body3",
        "collision_body_inverse3",
        "body_inv_mass3",
        "body_pp3",
        "body_pL3",
        "body_Lp3",
        "body_LL3",
        "collision_matrix3",
        "apply_collision_matrix3",
        "normal_restitution_impulse3",
        "abs_num",
        "clamp_num",
        "max_num",
        "length3",
        "unit_or_zero3",
        "project_normal3",
        "project_tangent3",
        "tangential_friction_impulse3",
        "normal_contact_impulse3",
        "rolling_resistance_impulse3",
        "spin_friction_impulse3",
        "coupled_contact_impulse3",
        "solid_contact_impulse3",
        "angular_damping3",
        "dice_texture",
        "rigid_material",
        "dice_material",
        "felt_table_material",
        "contact_material",
        "copy_rigid_material",
        "infinite_plane3",
        "cube_inv_inertia3",
        "dice_body3",
        "dice_roll_initial_state",
        "first_plane_bounce3",
        "dice_transform_frame",
        "dice_roll_path3",
        "settled_face_from_angular_velocity"
      ],
      "source_signatures": [
        "rb_add3(a:any, b:any):",
        "rb_sub3(a:any, b:any):",
        "rb_scale3(s:num, v:any):",
        "rb_dot3(a:[num:3], b:[num:3]) -> num:",
        "rb_cross3(a:[num:3], b:[num:3]) -> [num:3]:",
        "rb_mat3(\n    a00:num, a01:num, a02:num,\n    a10:num, a11:num, a12:num,\n    a20:num, a21:num, a22:num\n):",
        "rb_identity3():",
        "rb_scale_mat3(s:num, A:any):",
        "rb_add_mat3(A:any, B:any):",
        "rb_outer3(a:[num:3], b:[num:3]) -> [[num:3]:3]:",
        "rb_trace3(A:[[num:3]:3]) -> num:",
        "rb_det3(A:[[num:3]:3]) -> num:",
        "rb_inverse3(A:[[num:3]:3]) -> [[num:3]:3]:",
        "rb_mat_vec3(A:[[num:3]:3], v:[num:3]) -> [num:3]:",
        "rb_abs(x:num):",
        "parallel_axis_shift3(mass:num, displacement:any):",
        "tetra_mass_properties3(a:any, b:any, c:any, d:any, density:num):",
        "combine_mass_properties3(a:any, b:any):",
        "rigid_state3(position:[num:3], momentum:[num:3], angular_momentum:[num:3]):",
        "force_at_point3(force:any, point:any, center_world:any):",
        "step_rigid_body_momentum3(\n    state:(position:[num:3], momentum:[num:3], angular_momentum:[num:3]),\n    properties:(mass:num, inertia_tensor:[[num:3]:3]),\n    dt:num,\n    force:[num:3],\n    torque:[num:3]\n):",
        "vec2(x:num, y:num):",
        "vec3(x:num, y:num, z:num):",
        "add2(a:any, b:any):",
        "add3(a:any, b:any):",
        "sub2(a:any, b:any):",
        "sub3(a:any, b:any):",
        "scale2(s:num, v:any):",
        "scale3(s:num, v:any):",
        "dot2(a:[num:2], b:[num:2]) -> num:",
        "dot3(a:[num:3], b:[num:3]) -> num:",
        "cross3(a:[num:3], b:[num:3]) -> [num:3]:",
        "mat2(a00:num, a01:num, a10:num, a11:num):",
        "mat3(\n    a00:num, a01:num, a02:num,\n    a10:num, a11:num, a12:num,\n    a20:num, a21:num, a22:num\n):",
        "zero3x3():",
        "identity3x3():",
        "scale_mat3(s:num, A:any):",
        "add_mat3(A:any, B:any):",
        "neg_mat3(A:any):",
        "mat_vec3(A:[[num:3]:3], v:[num:3]) -> [num:3]:",
        "mat_mul3(A:[[num:3]:3], B:[[num:3]:3]) -> [[num:3]:3]:",
        "diag_inv3(diagonal:any):",
        "skew3(r:any):",
        "collision_body3(mass:num, inv_inertia:[[num:3]:3], contact_offset:[num:3]):",
        "collision_body_inverse3(inv_mass:num, inv_inertia:[[num:3]:3], contact_offset:[num:3]):",
        "body_inv_mass3(body:any):",
        "body_pp3(body:any):",
        "body_pL3(body:any):",
        "body_Lp3(body:any):",
        "body_LL3(body:any):",
        "collision_matrix3(body_a:any, body_b:any):",
        "apply_collision_matrix3(matrix:any, linear_impulse:any, angular_impulse:any):",
        "normal_restitution_impulse3(matrix:any, relative_velocity:any, normal:any, restitution:num):",
        "abs_num(x:num):",
        "clamp_num(x:num, lo:num, hi:num):",
        "max_num(a:num, b:num):",
        "length3(v:any):",
        "unit_or_zero3(v:any):",
        "project_normal3(v:any, normal:any):",
        "project_tangent3(v:any, normal:any):",
        "tangential_friction_impulse3(matrix:any, relative_velocity:any, normal:any, normal_impulse_magnitude:num, contact:any):",
        "normal_contact_impulse3(matrix:any, relative_velocity:any, normal:any, contact:any):",
        "rolling_resistance_impulse3(\n    matrix:any,\n    relative_angular_velocity:any,\n    normal:any,\n    normal_impulse_magnitude:num,\n    contact_radius:num,\n    contact:any\n):",
        "spin_friction_impulse3(\n    matrix:any,\n    relative_angular_velocity:any,\n    normal:any,\n    normal_impulse_magnitude:num,\n    contact_radius:num,\n    contact:any\n):",
        "coupled_contact_impulse3(\n    matrix:any,\n    relative_velocity:any,\n    relative_angular_velocity:any,\n    normal:any,\n    tangent:any,\n    rolling_axis:any,\n    normal_impulse_magnitude:num,\n    rolling_impulse_magnitude:num,\n    contact_radius:num,\n    contact:any\n):",
        "solid_contact_impulse3(\n    matrix:any,\n    relative_velocity:any,\n    relative_angular_velocity:any,\n    normal:any,\n    tangent:any,\n    rolling_axis:any,\n    contact_radius:num,\n    rolling_radius:num,\n    contact:any\n):",
        "angular_damping3(angular_velocity:any, damping:num):",
        "dice_texture():",
        "rigid_material(\n    name:str,\n    density:num,\n    e_n:num,\n    e_t:num,\n    mu_s:num,\n    mu_d:num,\n    mu_r:num\n):",
        "dice_material():",
        "felt_table_material():",
        "contact_material(a:any, b:any):",
        "copy_rigid_material(value:any):",
        "infinite_plane3(normal:[num:3], offset:num, source_material:any):",
        "cube_inv_inertia3(mass:num, size:num):",
        "dice_body3(\n    size:num,\n    mass:num,\n    center:[num:3],\n    linear_velocity:[num:3],\n    angular_velocity:[num:3],\n    source_material:any\n):",
        "dice_roll_initial_state(seed:num):",
        "first_plane_bounce3(dice:any, plane:any, contact:any):",
        "dice_transform_frame(center:any, rotation_degrees:any):",
        "dice_roll_path3(dice:any, plane:any, contact:any):",
        "settled_face_from_angular_velocity(angular_velocity:any):"
      ]
    },
    {
      "module": ".io",
      "source": "stdlib-source/io.vkf",
      "source_sha256": "0df4f64fa1597f619743fb0ff01105f59c1e7883e19bc095f00ba48e9a3e7d80",
      "status": "Native host capability",
      "api_names": [
        "print",
        "eprint",
        "read_line",
        "read_text",
        "write_text",
        "append_text",
        "read_bytes",
        "write_bytes"
      ],
      "source_signatures": []
    },
    {
      "module": ".command",
      "source": "stdlib-source/command.vkf",
      "source_sha256": "1d7b751e40daaf1689bb78dbac8fb593a998841e6b05de50e49130089ac63d34",
      "status": "Native host capability",
      "api_names": [
        "run",
        "shell"
      ],
      "source_signatures": [
        "run(program:str, args:any) -> (code:int,out:str,err:str):",
        "shell(command:str) -> (code:int,out:str,err:str):"
      ]
    },
    {
      "module": ".system",
      "source": "stdlib-source/system.vkf",
      "source_sha256": "5c676dc0a433d85cfbaa117b4572516457d8bec92d6cb0d5435f1279f1b89ed9",
      "status": "Native host capability",
      "api_names": [
        "os",
        "arch",
        "cpu_count",
        "cwd",
        "env"
      ],
      "source_signatures": [
        "os() -> str:",
        "arch() -> str:",
        "cpu_count() -> int:",
        "cwd() -> str:",
        "env(name:str) -> (found:bit,value:str):"
      ]
    },
    {
      "module": ".time",
      "source": "stdlib-source/time.vkf",
      "source_sha256": "5f0f6f742cf1a585323e5e562dcf8d99b06164ae3c8d2790c9aefcce77b3c9bc",
      "status": "Target-dependent host capability",
      "api_names": [
        "wall_time",
        "monotonic",
        "sleep",
        "time_stamp",
        "format_time",
        "current_time"
      ],
      "source_signatures": [
        "wall_time() -> num:",
        "monotonic() -> num:",
        "sleep(seconds:num):",
        "time_stamp() -> str:",
        "format_time(seconds:num, fmt:str=\"%Y-%m-%d %H:%M:%S\", utc:bit=false) -> str:",
        "current_time(fmt:str=\"%Y-%m-%d %H:%M:%S\", utc:bit=false) -> str:"
      ]
    },
    {
      "module": ".ui.colormaps",
      "source": "stdlib-source/ui/colormaps.vkf",
      "source_sha256": "1b990601fb9c33eb64c0c72017dcdc0f930ad8d83dbc881566d263d573577c82",
      "status": "Compiler selector namespace",
      "api_names": [
        "viridis_i",
        "plasma_i",
        "inferno_i",
        "magma_i",
        "cividis_i",
        "turbo_i",
        "Spectral_i",
        "twilight_i",
        "tab20_i",
        "terrain_i",
        "alpha_jet_ij",
        "alpha_tab20_qi"
      ],
      "source_signatures": []
    },
    {
      "module": ".units.si",
      "source": "stdlib-source/units/si.vkf",
      "source_sha256": "36a2ce04f5ebff724d5c75a330f7eb42a5d816749557fb9f8b6668a60fd928c1",
      "status": "Catalog source",
      "api_names": [],
      "source_signatures": []
    },
    {
      "module": ".physics.units",
      "source": "stdlib-source/physics/units.vkf",
      "source_sha256": "79039b8d5f00479b1682532f0739d2132694895334dc983b0b6fd524645b2cf2",
      "status": "Catalog alias",
      "api_names": [],
      "source_signatures": []
    },
    {
      "module": ".physics.units.si",
      "source": "stdlib-source/physics/units/si.vkf",
      "source_sha256": "d209486b3645d3faf1ed499356cda2fb268c28c813a100c9d17821f78b5f1f05",
      "status": "Catalog alias",
      "api_names": [],
      "source_signatures": []
    },
    {
      "module": ".physics.preparation",
      "source": "stdlib-source/physics/preparation.vkf",
      "source_sha256": "02b008fb837933f2a975847fc26e63753988bdec27e7b7004af40f517d4696a8",
      "status": "Experimental source",
      "api_names": [
        "finite",
        "prepare_tetrahedron"
      ],
      "source_signatures": [
        "finite(x:num): (x=x) /\\ ((abs(x)-abs(x))=0) /\\ ((x=abs(x)) \\/ (x=0-abs(x)))",
        "prepare_tetrahedron(a:[quantity<1,0,0,0,0,0,0>:3],b:[quantity<1,0,0,0,0,0,0>:3],c:[quantity<1,0,0,0,0,0,0>:3],d:[quantity<1,0,0,0,0,0,0>:3],authoredmass:quantity<0,1,0,0,0,0,0>):"
      ]
    },
    {
      "module": ".physics.convex_preparation",
      "source": "stdlib-source/physics/convex_preparation.vkf",
      "source_sha256": "69145d0db315e3d97aff50077fedf7c879be1cdb093b63a7aa3b6a9fbf08ae00",
      "status": "Experimental source",
      "api_names": [
        "vertex",
        "validate_vertex",
        "validate_edge",
        "validate_face_indices",
        "validate_face",
        "part_for_face",
        "prepare_convex_si"
      ],
      "source_signatures": [
        "vertex(points:[[num:3]:n],index:int):",
        "validate_vertex(points:[[num:3]:n],faces:[[int:3]:nf],i:int):",
        "validate_edge(faces:[[int:3]:nf],u:int,w:int):",
        "validate_face_indices(count:int,face:[int:3]):",
        "validate_face(points:[[num:3]:n],faces:[[int:3]:nf],i:int,origin:[num:3]):",
        "part_for_face(points:[[num:3]:n],faces:[[int:3]:nf],origin:[num:3],i:int):",
        "prepare_convex_si(points:[[num:3]:n],faces:[[int:3]:nf],massvalue:num,mu_s:num,mu_d:num,restitution:num):"
      ]
    },
    {
      "module": ".physics.rigid",
      "source": "stdlib-source/physics/rigid.vkf",
      "source_sha256": "44ba578abc45acbcca83f94487878d212542648e50bf951261d281c54f01d03c",
      "status": "Experimental source",
      "api_names": [
        "prepare_si",
        "step",
        "prepare"
      ],
      "source_signatures": [
        "prepare_si(points:[[P:3]:nv],faces:[[Q:3]:nf],massvalue:M,friction:Y,restitution:R,position:[X:3],orientation:[O:4],velocity:[D:3],omega:[U:3],gravity:[G:3]):",
        "step(state:(backing:(definition:(geometry:(mass:num,volume:num,center_of_mass:[num:3],inertia_tensor:[[num:3]:3],geometry:(vertices:[[num:3]:nv],faces:[[int:3]:nf]),material:(mu_s:num,mu_d:num,restitution:num)),initial:(position:[num:3],orientation:[num:4],velocity:[num:3],omega:[num:3]),gravity:[num:3]),history:list<num>,snapshot:[num:14]),time:quantity<0,0,1,0,0,0,0>,position:[quantity<1,0,0,0,0,0,0>:3],orientation:[num:4],velocity:[quantity<1,0,-1,0,0,0,0>:3],omega:[quantity<0,0,-1,0,0,0,0>:3]),duration:quantity<0,0,1,0,0,0,0>):",
        "prepare(points:[[quantity<1,0,0,0,0,0,0>:3]:nv],faces:[[Q:3]:nf],massvalue:quantity<0,1,0,0,0,0,0>,friction:Y,restitution:R,position:[quantity<1,0,0,0,0,0,0>:3],orientation:[O:4],velocity:[quantity<1,0,-1,0,0,0,0>:3],omega:[quantity<0,0,-1,0,0,0,0>:3],gravity:[quantity<1,0,-2,0,0,0,0>:3]):"
      ]
    },
    {
      "module": ".physics.supported_contact",
      "source": "stdlib-source/physics/supported_contact.vkf",
      "source_sha256": "9005c4186c9896fecee7dfcfe645c019048ae4d741486e8c593796e43bef6a05",
      "status": "Experimental source",
      "api_names": [
        "supported_sign",
        "supported_finite",
        "supported_max",
        "supported_min",
        "supported_candidate",
        "supported_count",
        "supported_contact_si",
        "advance"
      ],
      "source_signatures": [
        "supported_sign(x:num):",
        "supported_finite(x:num): (x=x) /\\ ((abs(x)-abs(x))=0) /\\ ((x=abs(x)) \\/ (x=0-abs(x)))",
        "supported_max(a:num,b:num):",
        "supported_min(a:num,b:num):",
        "supported_candidate(active:bit,value:num,index:int):",
        "supported_count(active:bit):",
        "supported_contact_si(mass:num,inertia:num,radius:num,normal_load:num,drive:num,velocity:num,omega:num,spin0:num,duration:num,mu_s:num,mu_d:num,mu_r:num,rolling_length:num,mu_n:num,spin_length:num):",
        "advance(mass,inertia,radius,normal_load,drive,v,omega,spin,dt,mu_s,mu_d,mu_r,rolling_length,mu_n,spin_length):"
      ]
    },
    {
      "module": "io_direct_smoke.vkf",
      "source": "stdlib-source/io_direct_smoke.vkf",
      "source_sha256": "400c1f216fe490cc77ac4ddb67b2a3f33b85058382737c17e154b70289d80b74",
      "status": "Packaged support source; not separately qualified public API"
    },
    {
      "module": "physics/runtime.vkf",
      "source": "stdlib-source/physics/runtime.vkf",
      "source_sha256": "28ba2b827cb93c24ae0dad07ee56f444a8e1e7d229c3ece6a4f3dbba272e375b",
      "status": "Packaged support source; not separately qualified public API"
    },
    {
      "module": "physics_collision_matrix_smoke.vkf",
      "source": "stdlib-source/physics_collision_matrix_smoke.vkf",
      "source_sha256": "7c7fd8b7fe93197cafbe91c769a39be2ef6913c8d734c3706fddf4765025c8e9",
      "status": "Packaged support source; not separately qualified public API"
    },
    {
      "module": "physics_contact_model_smoke.vkf",
      "source": "stdlib-source/physics_contact_model_smoke.vkf",
      "source_sha256": "203f7d090045469d6459016607c570bd60af87c84cdb2c915e56f1044b4a8152",
      "status": "Packaged support source; not separately qualified public API"
    },
    {
      "module": "physics_rigid_body_smoke.vkf",
      "source": "stdlib-source/physics_rigid_body_smoke.vkf",
      "source_sha256": "3547a685b765a70d4d68c8cfc1835bfd8bea3564e8e66fc6891977066f64058b",
      "status": "Packaged support source; not separately qualified public API"
    }
  ]
}
