package frama-c
Install
Dune Dependency
Authors
-
MMichele Alberti
-
TThibaud Antignac
-
GGergö Barany
-
PPatrick Baudin
-
NNicolas Bellec
-
TThibaut Benjamin
-
AAllan Blanchard
-
LLionel Blatter
-
FFrançois Bobot
-
RRichard Bonichon
-
VVincent Botbol
-
QQuentin Bouillaguet
-
DDavid Bühler
-
ZZakaria Chihani
-
LLoïc Correnson
-
JJulien Crétin
-
PPascal Cuoq
-
ZZaynah Dargaye
-
BBasile Desloges
-
JJean-Christophe Filliâtre
-
PPhilippe Herrmann
-
MMaxime Jacquemin
-
FFlorent Kirchner
-
AAlexander Kogtenkov
-
RRemi Lazarini
-
TTristan Le Gall
-
JJean-Christophe Léchenet
-
MMatthieu Lemerre
-
DDara Ly
-
DDavid Maison
-
CClaude Marché
-
AAndré Maroneze
-
TThibault Martin
-
FFonenantsoa Maurica
-
MMelody Méaulle
-
BBenjamin Monate
-
YYannick Moy
-
PPierre Nigron
-
AAnne Pacalet
-
VValentin Perrelle
-
GGuillaume Petiot
-
DDario Pinto
-
VVirgile Prevosto
-
AArmand Puccetti
-
FFélix Ridoux
-
VVirgile Robles
-
JJan Rochel
-
MMuriel Roger
-
JJulien Signoles
-
NNicolas Stouls
-
KKostyantyn Vorobyov
-
BBoris Yakobowski
Maintainers
Sources
sha256=d2fbb3b8d0ff83945872e9e6fa258e934a706360e698dae3b4d5f971addf7493
doc/qed/Qed/Engine/class-type-engine/index.html
Class type Engine.engine
Source
Linking
method virtual link : 'logic -> link
Global and Local Environment
method lookup : 'term -> scope
Term scope in the current environment.
Calls the continuation in the provided environment. Previous environment is restored after return.
Calls the continuation in a local copy of the environment. Previous environment is restored after return, but allocators are left unchanged to enforce on-the-fly alpha-conversion.
Calls the continuation in a fresh local environment. Previous environment is restored after return.
Types
method pp_array : 'tau Qed.Plib.printer
For Z->a
arrays
method pp_farray : 'tau Qed.Plib.printer2
For k->a
arrays
method pp_tvar : int Qed.Plib.printer
Type variables.
method pp_datatype : 'adt -> 'tau list Qed.Plib.printer
method pp_tau : 'tau Qed.Plib.printer
Without parentheses.
method pp_subtau : 'tau Qed.Plib.printer
With parentheses if non-atomic.
Current Mode
The mode represents the expected type for a term to printed. A requirement for all term printers in the engine is that current mode must be correctly set before call. Each term printer is then responsible for setting appropriate modes for its sub-terms.
method mode : mode
Calls the continuation with given mode for sub-terms. The englobing mode is passed to continuation and then restored.
method op_scope : amode -> string option
Optional scoping post-fix operator when entering arithmetic mode.
Primitives
method e_true : cmode -> string
"true"
method e_false : cmode -> string
"false"
method pp_int : amode -> 'z Qed.Plib.printer
method pp_real : Q.t Qed.Plib.printer
Variables
method pp_var : string Qed.Plib.printer
Calls
These printers only applies to connective, operators and functions that are morphisms w.r.t current mode.
method callstyle : callstyle
method pp_fun : cmode -> 'logic -> 'term list Qed.Plib.printer
method pp_apply : cmode -> 'term -> 'term list Qed.Plib.printer
Arithmetics Operators
method op_real_of_int : op
method pp_times : Format.formatter -> 'z -> 'term -> unit
Defaults to self#op_minus
or self#op_mul
Comparison Operators
method pp_equal : 'term Qed.Plib.printer2
method pp_noteq : 'term Qed.Plib.printer2
Arrays
method pp_array_cst : Format.formatter -> 'tau -> 'term -> unit
Constant array "[v...]"
.
method pp_array_get : Format.formatter -> 'term -> 'term -> unit
Access "a[k]"
.
method pp_array_set : Format.formatter -> 'term -> 'term -> 'term -> unit
Update "a[k <- v]"
.
Records
method pp_get_field : Format.formatter -> 'term -> 'field -> unit
Field access.
method pp_def_fields : ('field * 'term) list Qed.Plib.printer
Record construction.
Logical Connectives
Conditionals
method pp_not : 'term Qed.Plib.printer
method pp_imply : Format.formatter -> 'term list -> 'term -> unit
method pp_conditional : Format.formatter -> 'term -> 'term -> 'term -> unit
Binders
method pp_forall : 'tau -> string list Qed.Plib.printer
method pp_exists : 'tau -> string list Qed.Plib.printer
method pp_lambda : (string * 'tau) list Qed.Plib.printer
Bindings
method pp_let : Format.formatter -> pmode -> string -> 'term -> unit
Terms
Sub-terms that require parentheses. Shared sub-terms are detected on behalf of this method.
method pp_flow : 'term Qed.Plib.printer
Printer with shared sub-terms printed with their name and without parentheses.
method pp_atom : 'term Qed.Plib.printer
Printer with shared sub-terms printed with their name and within parentheses for non-atomic expressions. Additional scope terminates the expression when required (typically for Coq).
method pp_repr : 'term Qed.Plib.printer
Raw representation of a term, as it is. This is where you should hook a printer to keep sharing, parentheses, and such.
Top Level
method pp_term : 'term Qed.Plib.printer
Prints in term mode. Default uses self#pp_shared
with mode Mterm
inside an <hov>
box.
method pp_prop : 'term Qed.Plib.printer
Prints in prop mode. Default uses self#pp_shared
with mode Mprop
inside an <hv>
box.
method pp_expr : 'tau -> 'term Qed.Plib.printer
Prints in term, arithmetic or prop mode with respect to provided type.
method pp_sort : 'term Qed.Plib.printer
Prints in term, arithmetic or prop mode with respect to the sort of term. Boolean expression that also have a property form are printed in Mprop
mode.