Module Certificate
Certificates for Kind 2. This contains the base type as well as some combinators for certificates.
- author
- Alain Mebsout
type t= int * Term.tThe type of certificates
type symbols={}type out={k : int;k of certificate
names : symbols;names for I, T, P and PHI
dirname : string;Directory where certificates and proofs are produced
proofname : string;Name for the final LFSC proof
base : string;File name for base case check
induction : string;File name for inductive case check
implication : string;File name for implication of property check
dummy_trace : string;File name for dummy file to trace function definitions in LFSC
}The type of certificates outputs, these are file names for the intermediate SMT-LIB 2 certificates
type system={names : symbols;smt2_file : string;smt2_lfsc_trace_file : string;}type invariant={k : int;name : string;dirname : string;phi_file : string;phi_lfsc_trace_file : string;base : string;File name for base case check
induction : string;File name for inductive case check
implication : string;File name for implication of property check
for_system : system;kind2_system : system;jkind_system : system;obs_system : system;}
val merge : t list -> tMerge certificates into one. The resulting certificate is a certificate for the conjunction of the original invariants.
val split : t -> t listSplit a certificate following the boolean strucutre of its inductive invariant
val size : t -> intGives a measure to compare the size of the inductive invariants contained in a certificate.