Module Astral_internal.SMTLIB_printer

val declare_sort : Astral_internal.SL.Sort.t -> string
val declare_struct : MemoryModel.StructDef.t -> string
val declare_pred : InductiveDefinition.t -> string
val used_predicates : SL.t -> InductiveDefinition.t list

Compute the minimal set of predicates that need to be defined: 1. It appears directly in formula. 2. It is used to define another predicate already in the set.

Compute the minimal set of structures that need to be defined: 1. It appears in a points-to in formula. 2. It appears in a points-to in some defined predicate.

val generate_logic_string : SL.t -> string
val declare_heap_sort : HeapSort.t -> string
val generate_definitions : SL.t -> HeapSort.t -> string
val output_benchmark : ?source:string -> ?status:[< `Sat | `Unknown | `Unsat ] -> string -> ParserContext.t -> unit