Frama-C API - Wp
This the API of the WP plug-in
High-Level External API
The following modules are the recommended entry points for using WP programmatically. They are meant to be relatively stable over time.
module VC : sig ... endWP Proof Obligation Generator and Management
module VCS : sig ... endProvers and Proof Obligations Results
module Wp_parameters : sig ... endWP Plugin Interface
Advanced Usage API
The following modules entry points for using WP advanced features, such as proof obligation manipulation, tactics and strategies. These modules might expose internal features of WP that are subject to change. Developers using this API are encouraged to contact us for a roadmap information and further collaboration.
module Repr : sig ... endHigh-Level Term Representation
module Lang : sig ... endLow-Level Logic Terms and Predicates
module Definitions : sig ... endGenerated Logic Definitions
module Conditions : sig ... endProof Task and Simplifiers
module Tactical : sig ... endTactics Entry Points
module Strategy : sig ... endStrategies Entry Points
module Generator : sig ... endWP Proof Obligation Generator
module Register : sig ... endCommand Line Processing
Low-Level Internal API
The following modules are _not_ intended to be used externally. The target audience is WP plug-in developers. However, developers interested in such low-level features are encouraged to contact us for more information.
Model Registration
module Factory : sig ... endmodule WpContext : sig ... endModel Registration
Memory Models
module MemDebug : sig ... endmodule MemEmpty : sig ... endmodule MemLoader : sig ... endCompound Loader
module MemMemory : sig ... endmodule MemBytes : sig ... endmodule MemTyped : sig ... endmodule MemVal : sig ... endmodule MemVar : sig ... endmodule MemZeroAlias : sig ... endOther Models
module Cint : sig ... endInteger Arithmetic Model
module Cfloat : sig ... endFloating Arithmetic Model
module Cmath : sig ... endMath Operators
module Cstring : sig ... endState Model
module Sigma : sig ... endmodule Passive : sig ... endPassive Forms
module Mstate : sig ... endModel Hypotheses
module MemoryContext : sig ... endmodule RefUsage : sig ... endmodule WpTarget : sig ... endThis module computes the set of kernel functions that are considered by the command line options transmitted to WP. That is:
module AssignsCompleteness : sig ... endThis module is used to check the assigns specification of a given function so that if it is not precise enough to enable precise memory models hypotheses computation, the assigns specification is considered incomplete.
Region Analysis
module Layout : sig ... endRegion Utilities
Compilers
module Memory : sig ... endCommon Types and Signatures
module Driver : sig ... endmodule Context : sig ... endContextual Values
module Ctypes : sig ... endC-Types
module Cvalues : sig ... endmodule Clabels : sig ... endNormalized C-labels
module CodeSemantics : sig ... endmodule LogicAssigns : sig ... endmodule LogicBuiltins : sig ... endmodule LogicCompiler : sig ... endmodule LogicSemantics : sig ... endmodule LogicUsage : sig ... endmodule StmtSemantics : sig ... endmodule Dyncall = Frama_c_kernel.Dyncallmodule Matrix : sig ... endmodule NormAtLabels : sig ... endCore Engine
module CfgAnnot : sig ... endNormalization of Annotations.
module CfgCalculus : sig ... endmodule CfgCompiler : sig ... endmodule CfgDump : sig ... endmodule CfgGenerator : sig ... endmodule CfgInfos : sig ... endmodule CfgInit : sig ... endmodule CfgWP : sig ... endmodule WpReached : sig ... endReachability for Smoke Tests
module WpPropId : sig ... endBeside the property identification, it can be found in different contexts depending on which part of the computation is involved. For instance, properties on loops are split in 2 parts : establishment and preservation.
module WpRTE : sig ... endProof Engine
module Wpo : sig ... endmodule Auto : sig ... endmodule Cache : sig ... endmodule Cleaning : sig ... endmodule Letify : sig ... endmodule Splitter : sig ... endmodule Filtering : sig ... endSequent Cleaning
Prover Interface
module Why3Provers : sig ... endmodule Prover : sig ... endmodule ProverTask : sig ... endmodule ProverWhy3 : sig ... endScript Engine
module Script : sig ... endmodule Footprint : sig ... endTerm Footprints
module ProofEngine : sig ... endInteractive Proof Engine
module ProofScript : sig ... endmodule ProverScript : sig ... endmodule ProverSearch : sig ... endmodule ProofSession : sig ... endmodule ProofStrategy : sig ... endTactics
module WpTac : sig ... endTerm manipulation for Tacticals
module TacArray : sig ... endBuilt-in Array Tactical (auto-registered)
module TacBitrange : sig ... endBuilt-in Bit Range Tactical (auto-registered)
module TacBittest : sig ... endBuilt-in Bit-Test Range Tactical (auto-registered)
module TacBitwised : sig ... endBuilt-in Bitwised-Eq Tactical (auto-registered)
module TacChoice : sig ... endBuilt-in Choice, Absurd & Contrapose Tactical (auto-registered)
module TacClear : sig ... endBuilt-in Range Tactical (auto-registered)
module TacCompound : sig ... endBuilt-in Compound Tactical (auto-registered)
module TacCongruence : sig ... endBuilt-in Tactical for Product & Division Comparison (auto-registered)
module TacCut : sig ... endBuilt-in Cut Tactical (auto-registered)
module TacFilter : sig ... endBuilt-in Filtering Tactic (auto-registered)
module TacHavoc : sig ... endBuilt-in Havoc Tactical (auto-registered)
module TacInduction : sig ... endBuilt-in Range Tactical (auto-registered)
module TacInstance : sig ... endBuilt-in Instance Tactical (auto-registered)
module TacLemma : sig ... endSelf registered 'Lemma' Tactical
module TacModMask : sig ... endmodule TacNormalForm : sig ... endBuilt-in Normal Form Tactical (auto-registered)
module TacOverflow : sig ... endAuto registered overflow tactic
module TacRange : sig ... endBuilt-in Range Tactical (auto-registered)
module TacRewrite : sig ... endBuilt-in Range Tactical (auto-registered)
module TacSequence : sig ... endBuilt-in Sequence Tactical (auto-registered)
module TacShift : sig ... endBuilt-in Shift Tactical (auto-registered)
module TacSplit : sig ... endBuilt-in Split Tactical (auto-registered)
module TacUnfold : sig ... endBuilt-in Unfold Tactical (auto-registered)
module TacCompute : sig ... endBuilt-in Compute Tactical (auto-registered)
Error Management
module Warning : sig ... endContextual Errors
module Wp_error : sig ... endPrinters and Reporting
module Plang : sig ... endLang Pretty-Printer
module Pcfg : sig ... endmodule Pcond : sig ... endmodule Ptip : sig ... endmodule Rformat : sig ... endmodule Stats : sig ... endmodule WpReport : sig ... endExport Statistics.
EVA Proxy
module Wp_eva : sig ... end