package frama-c
Install
dune-project
Dependency
Authors
-
MMichele Alberti
-
TThibaud Antignac
-
GGergö Barany
-
PPatrick Baudin
-
TThibaut Benjamin
-
AAllan Blanchard
-
LLionel Blatter
-
FFrançois Bobot
-
RRichard Bonichon
-
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
-
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=0c80dae8074fcb3f6a33d7a41faf9939a2a336478a8d2c79e20e2d7bab953735
doc/qed/Qed/Engine/class-type-engine/index.html
Class type Engine.engineSource
Linking
method virtual link : 'logic -> linkGlobal and Local Environment
method lookup : 'term -> scopeTerm 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.printerFor Z->a arrays
method pp_farray : 'tau Qed.Plib.printer2For k->a arrays
method pp_tvar : int Qed.Plib.printerType variables.
method pp_datatype : 'adt -> 'tau list Qed.Plib.printermethod pp_tau : 'tau Qed.Plib.printerWithout parentheses.
method pp_subtau : 'tau Qed.Plib.printerWith 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 : modeCalls the continuation with given mode for sub-terms. The englobing mode is passed to continuation and then restored.
method op_scope : amode -> string optionOptional 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.printermethod pp_real : Q.t Qed.Plib.printerVariables
method pp_var : string Qed.Plib.printerCalls
These printers only applies to connective, operators and functions that are morphisms w.r.t current mode.
method callstyle : callstylemethod pp_fun : cmode -> 'logic -> 'term list Qed.Plib.printermethod pp_apply : cmode -> 'term -> 'term list Qed.Plib.printerArithmetics Operators
method op_real_of_int : opmethod pp_times : Format.formatter -> 'z -> 'term -> unitDefaults to self#op_minus or self#op_mul
Comparison Operators
method pp_equal : 'term Qed.Plib.printer2method pp_noteq : 'term Qed.Plib.printer2Arrays
method pp_array_cst : Format.formatter -> 'tau -> 'term -> unitConstant array "[v...]".
method pp_array_get : Format.formatter -> 'term -> 'term -> unitAccess "a[k]".
method pp_array_set : Format.formatter -> 'term -> 'term -> 'term -> unitUpdate "a[k <- v]".
Records
method pp_get_field : Format.formatter -> 'term -> 'field -> unitField access.
method pp_def_fields : ('field * 'term) list Qed.Plib.printerRecord construction.
Logical Connectives
Conditionals
method pp_not : 'term Qed.Plib.printermethod pp_imply : Format.formatter -> 'term list -> 'term -> unitmethod pp_conditional : Format.formatter -> 'term -> 'term -> 'term -> unitBinders
method pp_forall : 'tau -> string list Qed.Plib.printermethod pp_exists : 'tau -> string list Qed.Plib.printermethod pp_lambda : (string * 'tau) list Qed.Plib.printerBindings
method pp_let : Format.formatter -> pmode -> string -> 'term -> unitTerms
Sub-terms that require parentheses. Shared sub-terms are detected on behalf of this method.
method pp_flow : 'term Qed.Plib.printerPrinter with shared sub-terms printed with their name and without parentheses.
method pp_atom : 'term Qed.Plib.printerPrinter 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.printerRaw 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.printerPrints in term mode. Default uses self#pp_shared with mode Mterm inside an <hov> box.
method pp_prop : 'term Qed.Plib.printerPrints in prop mode. Default uses self#pp_shared with mode Mprop inside an <hv> box.
method pp_expr : 'tau -> 'term Qed.Plib.printerPrints in term, arithmetic or prop mode with respect to provided type.
method pp_sort : 'term Qed.Plib.printerPrints 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.