package lambdapi

  1. Overview
  2. Docs

Pretty-printing for the core AST.

The functions of this module are used for printing terms and other objects defined in the Term module. This is mainly used for displaying log messages, and feedback in case of success or error while type-checking terms or testing convertibility.

val log_prnt : 'a Lplib.Base.outfmt -> 'a
val sig_state : Sig_state.sig_state Timed.ref

Current signature state.

val notation_of : Term.sym -> Sign.notation option

notation_of s returns the notation of symbol s or None.

val print_domains : bool Timed.ref

Flag for printing the domains of λ-abstractions.

val print_implicits : bool Timed.ref

Flag for printing implicit arguments.

val print_meta_types : bool Timed.ref

Flag for printing the type of uninstanciated metavariables. Remark: this does not generate parsable terms; use for debug only.

val print_contexts : bool Timed.ref

Flag for printing contexts in unification problems.

val pp_assoc : Pratter.associativity Lplib.Base.pp
val pp_notation : Sign.notation Lplib.Base.pp
val pp_uid : Stdlib.Format.formatter -> string -> unit
val pp_prop : Term.prop Lplib.Base.pp
val pp_expo : Term.expo Lplib.Base.pp
val pp_match_strat : Term.match_strat Lplib.Base.pp
val pp_sym : Term.sym Lplib.Base.pp
val pp_var : 'a Bindlib.var Lplib.Base.pp
exception Not_a_nat

Exception raised when trying to convert a term into a nat.

val nat_of_term : Term.term -> int

nat_of_term t converts a term into a natural number.

val are_quant_args : Term.term list -> bool

are_quant_args args returns true iff args has only one argument that is an abstraction.

type priority = [
  1. | `Func
  2. | `Appl
  3. | `Atom
]

The possible priority levels are `Func (top level, including abstraction and product), `Appl (application) and `Atom (smallest priority).

val pp_meta : Term.meta Lplib.Base.pp
val pp_type : Term.term Lplib.Base.pp
val pp_term : Term.term Lplib.Base.pp
val pp_prod : (Term.term * bool list) Lplib.Base.pp
val pp_rule : (Term.sym * Term.rule) Lplib.Base.pp
val pp_unif_rule : (Term.sym * Term.rule) Lplib.Base.pp
val pp_ctxt : Term.ctxt Lplib.Base.pp
val pp_typing : Term.constr Lplib.Base.pp
val pp_constr : Term.constr Lplib.Base.pp
val pp_constrs : Term.constr list Lplib.Base.pp
val pp_metaset : Core.Term.MetaSet.t Lplib.Base.pp
val pp_problem : Term.problem Lplib.Base.pp
OCaml

Innovation. Community. Security.