---
name: "elpi"
section: "1"
platform: "linux"
package: "elpi"
version: "2.0.7-1+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/elpi"
---

# elpi(1)

embeddable lambda-Prolog interpreter

## NAME

elpi - embeddable lambda-Prolog interpreter

## SYNOPSIS

**elpi** \[*OPTION*\].. \[*FILE*\].. \[*-- ARGS*..\]

## DESCRIPTION

### Main options:

**-test** runs the query "main"

- **-exec** pred

  runs the query "pred ARGS"

- **-D** var

  Define variable (conditional compilation)

**-document-builtins** Print documentation for built-in predicates

**-no-tc** don't typecheck the program

- **-delay-problems-outside-pattern-fragment** (deprecated, for Teyjus

  compatibility)

**-version** prints the version of Elpi

### Parsing options:

- **-I** PATH

  search for accumulated files in PATH

### Tracing options:

- **-trace-at** FNAME START STOP

  print trace between call START

-

  and STOP of function FNAME (FNAME can be omitted, default is run)

**-trace-on** KIND FILE enable trace printing.

-

  KIND is tty or json (default is tty). FILE is stdout or stderr (default) or host:port or */path* or ./path

- **-trace-skip** REX

  ignore trace items matching REX

- **-trace-only** REX

  trace only items matching REX

- **-trace-only-pred** REX

  trace only when the current predicate matches REX

- **-trace-tty-maxbox** NUM

  Format max\_boxes set to NUM

- **-trace-tty-maxcols** NUM

  Format margin set to NUM

- **-stats-on**

  Collect statistics

- **-perf-on**

  Disable trace output, but keep perf

Tracing options can be used to debug your programs and the Elpi interpreter.

Tracing points for the user are prefixed with 'user:' while the ones for the Elpi developer with 'dev:'.

A sensible set of options to debug your programs is: **-trace-on** **-trace-at** 1 9999 **-trace-only** '\\(run\\\|select\\\|user:\\)'

### Debug options (for debugging Elpi, not your program):

**-print-accumulated-files** prints files loaded via accumulate

**-print-ast** prints files as parsed, then exit

**-print** prints files after most compilation passes, then exit

**-print-passes** prints intermediate data during compilation, then exit

**-print-units** prints compilation units data, then exit
