LU100491B1 - Method of selecting a prover - Google Patents

Method of selecting a prover Download PDF

Info

Publication number
LU100491B1
LU100491B1 LU100491A LU100491A LU100491B1 LU 100491 B1 LU100491 B1 LU 100491B1 LU 100491 A LU100491 A LU 100491A LU 100491 A LU100491 A LU 100491A LU 100491 B1 LU100491 B1 LU 100491B1
Authority
LU
Luxembourg
Prior art keywords
demonstrator
provers
prover
module
demonstrators
Prior art date
Application number
LU100491A
Other languages
German (de)
French (fr)
Inventor
Monica Rafaila
Original Assignee
Onespin Solutions Gmbh
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Onespin Solutions Gmbh filed Critical Onespin Solutions Gmbh
Priority to LU100491A priority Critical patent/LU100491B1/en
Priority to EP18202161.8A priority patent/EP3474196A1/en
Application granted granted Critical
Publication of LU100491B1 publication Critical patent/LU100491B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • G06N5/013Automatic theorem proving

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

The present invention proposes a computer implemented method of selecting a prover among a plurality of provers for a design to be verified. The method comprises collecting, by a data module, raw data relating to the design, and extracting from the raw data a plurality of input features, transforming, by a transformer module, the plurality of input features, wherein trans- forming the plurality of features comprises applying a linear regression to the plurality of fea- tures, classifying using a classification module, the provers from the plurality of provers, in which the classification module is adapted to predict a best prover being the prover which solves a property faster than the remaining provers of the plurality of provers, selecting one or more provers based on the results of the classification. Fig. 1A

Description

TITLE: METHOD OF SELECTING A PROVERTITLE: METHOD OF SELECTING A PROVER

CROSS-REFERENCE TO RELATED APPLICATIONSCROSS REFERENCE TO RELATED APPLICATIONS

[0001] None.None.

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENTSTATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

[0002] None.None.

BACKGROUND OF THE INVENTIONBACKGROUND OF THE INVENTION

Field Of The Invention [0003] The present invention relates to formal verification, and more particularly, to a computer implemented method of selecting a prover among a plurality of provers for a design to be verified.Field Of The Invention [0003] The present invention relates to formal verification, and more particularly, to a computer-implemented method of selecting a prover among a plurality of provers for a design to be verified.

Brief Description Of The Related Art [0004] Formal verification applied for hardware or software verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property.Brief Description Of The Related Art [0004] The invention relates to a method for verifying or disproving the correctness of underlying algorithms.

[0005] Verification engines uses different algorithms for formal verification, such as binary decision diagrams (BDD) based reachability, satisfiability (SAT) based bounded model checking (BMC), interpolations, and property-directed reachability (PDR). The verification engines check whether a certain state, e.g. an improper state or a valid state, can be reached from initial states. The verification engines can either prove the property that the improper state cannot be reached, or falsify the property with a trace connecting a valid initial state to the improper state.[0005] Verification engines use different algorithms for formal verification, search as binary decision diagrams (BDD) based reachability, satisfiability (SAT) based bounded model checking (BMC), interpolation, and property-directed reachability (PDR). The verification engines check whether a certain state, e.g. an improper state or a valid state. The property can not be proofed or falsifies the property with a trace.

[0006] A verification engine designed to prove that an improper state cannot be reached U-referred to as a “prover”.U-referred to as a "prover".

[0007] Different verification engines may have drastically different performances on different problems depending on the verification algorithms used by the verification engines. Indeed, the ability to prove or disprove properties, as well as the resources and CPU time needed for the verification, vary significantly, depending on the verification engine, design and property.[0007] Different verification engines may have drastically different performances on different problems depending on the verification algorithms used by the verification engines. Indeed, the ability to prove or disprove properties, as well as the resources and CPU time needed for the verification, vary considerably, depending on the verification engine, design and property.

[0008] Properties and designs may be described by a set of characteristics or features. For example, Design Control Points include design input, in-out ports, un-driven wires, the user-defined cut points. Another example are the Design Structural elements, such as the total number of design’s counters, RAM. Yet another example is the Design States Complexity defining a total number of design states elements, including the total number of design latches and flip-flops. Another example is the Property Logical Complexity, comprising at least one of a sequential depth, a total number of Flip-Flops, Latches and combinational gates.Properties and designs may be described by a set of characteristics or features. For example, design control points include design input, in-out ports, un-driven wires, user-defined cut points. Another example are the Design Structural elements, as the total number of design counters, RAM. Yet another example is the design state. Complexity defining a total number of design states elements, including the total number of design latches and flip-flops. Another example is the Property Logical Complexity, comprising at least one of a sequential depth, a total number of flip-flops, latches and combinational gates.

[0009] It is of interest to use these features to schedule the verification engines so as to maximize their probability to converge on the one hand, and to minimize the runtime on the other hand, to make an efficient use of CPU time.The runtime on the other hand, and to minimize the runtime on the other hand, to make an efficient use of CPU time.

[00010] An automated scheduling strategy for verification engines may be defined, in order to have a predictable and limited amount of resources invested for a set of designs/properties, i.e. run time (real time/CPU time), number of cores to run in parallel, memory consumption. The automated scheduling strategy may decide which verification engines or software to run, whether to run sequentially or in parallel, and how long to run (in terms of time, steps or Boolean Constraint Propagation (BCP) counts), for what type of property, on different designs.An automated scheduling strategy for verification engines may be defined in order to have a predictable and limited amount of resources invested in a set of designs / properties, i.e. run time (real time / CPU time), number of cores to run in parallel, memory consumption. The automated scheduling strategy may or may not be run sequentially or in parallel, and how long to run (in terms of time, steps or Boolean constraint propagation (BCP) counts), for what type of property, on different designs.

[00011] In order to define an automated scheduling strategy, it is needed to select the selection engine or prover suitable for the given formal verification to be done. Prover parameter configuration is also needed to limit the time spent per check and allow subsequent checks to be reached. Provers can be configured by limiting the maximum number of steps, if availably or alternatively on the BCP counter.[00011] In order to define an automated scheduling strategy, it is necessary to select the selection engine or prover suitable for the given formal verification to be done. Prover parameter configuration is therefore needed to limit the time spent. Provers can be configured by limiting the maximum number of steps, if available or on the BCP counter.

[00012] State of the art approaches for verification engine selection are based mainly either on brute force or on verification engineers’ feelings.[00012] State of the art approaches for verification engine selection are primarily based on brute force or on verification engineers' feelings.

[00013] It has been proposed to use linear regression to estimate the CPU time based on design and property features. A regression model of the runtime vs. the design and property features, using LASSO, regularization, and compare against K Nearest Neighbors.[00013] It has been proposed to use linear regression to estimate the CPU time based on design and property features. A regression model of the runtime vs. the design and property features, using LASSO, regularization, and compare against K Nearest Neighbors.

[00014] Machine learning is the subfield of computer science that gives computers the ability to learn without being explicitly programmed. Machine learning explores algorithms that can learn from and make predictions on data - such algorithms overcome following strictly static program instructions by making data-driven predictions or decisions, through building a model from sample inputs. Machine learning has been applied for integrated circuit verification, for e.g. to cope with process variations in semiconductor production, for fault injection in the verification of safety-critical systems.[00014] Machine learning is the subfield of computer science that gives the ability to learn without knowledge. Machine learning algorithms that can learn and make predictions on data - search algorithms Machine learning has been applied for integrated circuit verification, for e.g. to cope with process variations in semiconductor production, for fault injection in the verification of safety-critical systems.

[00015] In machine learning, a pipeline is a sequential chain of operations, in particular of transformers and estimators, which is trained and after training in used to make predictions.[00015] In machine learning, a pipeline is a sequential chain of operations, in particular of transformers and estimators, which is trained and trained in used to make predictions.

[00016] A first approach for the selection of verification engines for parallel execution has been proposed in which Principal Component Analysis (PCA) and linear regression are applied to estimate the time of four different engines. PCA is a statistical procedure known in the field of machine learning, which uses an orthogonal transformation to convert a set of observations of possibly correlated variables into a set of values of linearly uncorrelated variables called principal components. In this approach, both polynomial and exponential transformations of features are used, afterwards a performance function is defined and a weight per engine is calculated which correlates to the engine runtime. The correlation of selected engines is thereafter minimized.A first approach to the verification of parallel execution engines has been proposed in which Principal Component Analysis (PCA) and linear regression are applied to estimate the time of four different engines. PCA is a statistical procedure known in the field of machine learning, which uses orthogonal transformation to convert a set of observations of possibly correlated variables into a set of values of linearly uncorrelated variable called principal components. In this approach, both polynomial and exponential transformations of features are used, thereafter a performance function is defined and a weight per engine is calculated which correlates to the engine runtime. The correlation of selected engines is thereafter minimized.

[00017] Yet another approach applies classification to select a SAT solver, which performs optimally on the different constraint, based on attributes of the problem instances (i.e., to find the implementation which has the best performance in terms of search nodes per second). kU meta-classifier is proposed, which combines multiple classification strategies for a resulting better one. A misclassification penalty is proposed, which corresponds to the additional CPU time required to solve a problem instance when choosing to solve it with a solver that is not the fastest one.[00017] Yet another approach applies to SAT solver, which optimally performs on the different constraints, based on attributes of the problem instances (i.e., to find the implementation of. ku meta-classifier is proposed, which combines multiple classification strategies for a resulting better one. A misclassification penalty is proposed, whichever is to the additional CPU time required to solve a problem.

[00018] The patent application US 2014/0330758 discloses a method for training a classifier to create a prediction model. The approach described in the patent application US’758 relies on machine learning. More precisely, US’758 applies Support Vector Machine (SVM) classification to prover selection. Features can be collected by a BMC SAT solver, and include statistics for the CNF generated at the various steps of the BMC algorithm. The prediction model uses the feature data of the design verification problem to make a result prediction for the design verification model.[00018] The patent application US 2014/0330758 discloses a method for training a classifier to create a prediction model. The approach described in patent application US'758 relies on machine learning. More precisely, US'758 applies Support Vector Machine (SVM) classification to prover selection. Features can be collected by a BMC SAT solver, and include statistics for the CNF generated at the various steps of the BMC algorithm. The prediction model uses the feature data of the design verification problem to make a result prediction for the design verification model.

[00019] There is a need to improve the efficiency of a system and method for design verification.[00019] There is a need to improve the efficiency of a system and method for design verification.

[00020] One object of the invention is to provide a system and method for selecting a verification engine for design verification.[00020] The invention relates to a method and method for selecting a verification engine for design verification.

SUMMARY OF THE INVENTIONSUMMARY OF THE INVENTION

[00021] The present invention proposes a computer implemented method of selecting a prover among a plurality of provers for a design to be verified, comprising collecting, by a data module, raw data relating to the design, and extracting from the raw data a plurality of input features, transforming, by a transformer module, the plurality of input features, wherein transforming the plurality of features comprises applying a linear regression to the plurality of features, classifying using a classification module, the provers from the plurality of provers, in which the classification module is adapted to predict the best prover being the prover which solves a property faster than the remaining provers of the plurality of provers ,and selecting one or more provers based on the results of the classification.[00021] The present invention proposes a computer averaged over a raw material of a raw material, a data module, a data module, a raw data relating to the design and extraction of raw data using input modules, transforming, by a transformer module, by the process of transforming the processes of the invention, by using a classification module The classification module is based on the results of the proverbial process and the proverbial analysis of the proverbs.

[00022] Therefore, the present invention proposes using a pipeline made from multiple“11 transformers and estimators exported to online use in formal verification. Using the measured statistics describing each design and check or property allows using only the characteristics or the statistical behavior of the design and not the actual design to the prover selection module.Therefore, the present invention proposes using a pipeline made of multiple "11 transformers and estimators exported to online use in formal verification. Using the Journey Description Each Design and Checking Loss of Property or the Design of the Prover Selection Module.

[00023] The invention is aiming at providing a machine learning based method and verification.The invention is aiming at a machine learning based method and verification.

[00024] In an aspect of the invention, the step of extracting a plurality of features comprises the steps of extracting design parameters as input features for the transformer module.In an aspect of the invention, the step of extracting the parameters as input features for the transformer module.

[00025] In a further aspect of the invention, the transforming of the collected data may comprise removing cross correlation of the input features. Removing the cross correlation of input features comprises standardizing, by a standard scaler module, the input features of the plurality of features to a unit variance to standardized features, applying, by a principal component analysis module, an orthogonal transformation as a principal component analysis to the standardized features, and keeping the components resulting from the principal component analysis having a significant ratio of explained variance.[00025] In a further aspect of the invention, the transforming of the collected data. By a standard scaler module, the input features of the process of applying a standard component analysis module to orthogonal transformation as a principal component analysis to having the standardized features, and keeping the components resulting from the principal component analysis.

[00026] In an aspect of the invention, the classification module is pre-trained by collecting a set of training data pertaining to a set of designs, design parameters and runtimes for a plurality of provers and extracting, transforming the set of training data, and classifying the provers using the transformed set of training data.[00026] In an aspect of the invention, the classification module is pre-trained by collecting a set of training data, design parameters and runtimes for a process of extracting and extracting, transforming the set of training data, and classifying the provers using the transformed set of training data.

[00027] The classifying step may comprise assigning, for a property, a probability to a prover using a multi class logistic regression based on design features and an expected result of the property.The classifying step may include assigning, for a property, a probability to a prover using a multi-class logistic regression based on design features and an expected result of the property.

[00028] In yet a further aspect of the invention, the method comprises configuring the provers of the plurality of provers using linear regression modelling dependency of a step size on the design and an expected time of the prover to check the assertion.[00028] In addition to the invention, the method of configuring the proverbs of the production process using linear regression modeling dependency of a step size on the design and an expected time of the prover to check the assertion.

[00029] By providing a prover configuration, or prover parameter setting, it becomes possible to interrupt the provers when they reach the configured step size for a property, with the disadvantage that no meaningful result is reached for that property, but with the advantage that subsequent properties can be reached and pro vers don't spend too much time on this pakU1 ticular property. A constant step size for all designs is not good because it will be reached fast for some designs, with no meaningful result for many properties, and no big gain in time, while a large step size will determine a lot of time invested for some designs. Therefore a step size depending on the design features must be set. The prediction of the step size is realized after selecting the best prover and before running the prover.[00029] By providing a prover configuration setting, it becomes possible to interrupt the provers when they reach the configured step size for a property subsequent properties can be reached and per vers do not spend too much time on this package. While a large step size is needed, there is no such thing as a design, with no meaningful result for many properties, and no big gain in time , Therefore a step size depending on the design features must be set. The prediction of the step size is realized.

[00030] A prover may be configured using a LASSO regression model having dependent variables and independent variables, in which the dependent variable of the regression model is a number of steps and the independent variable of the regression model are design statistics and expected check time.A prover may be configured using a LASSO regression model having dependent variables and independent variables, in which the dependent variable of the regression model is a number of steps and the independent variable of the regression model is design statistics and expected check time.

[00031] In an aspect of the invention, the method comprises grouping pro vers in a plurality of prover groups and grouping properties in a plurality of properties, based on runtimes for each property and prover.In an aspect of the invention, the method of grouping pro vers in a peculiarity of prover groups and grouping properties in a p urn of properties, based on runtimes for each property and prover.

[00032] Surprisingly it has been found that clustering is a very powerful tool in providing the adequate automated selection among all options [00033] In an aspect of the invention, the method comprises assigning a prover group to a property group, in particular in which the assigned prover group of the plurality of prover groups has a minimum sum of runtimes. The method may further comprises selecting, for each assigned prover group, the prover of the prover group having the minimum runtimes over the properties of the property group to which the assigned prover group is assigned.[00032] In an aspect of the invention, the method of assigning to a property group, in particular in which the assigned prover group has a minimum sum of runtimes. The method may further comprising, for each assigned prover group, the prover of the prover group having the minimum runtime of the property group to which the assigned prover group is assigned.

[00034] It should be noted applying clustering for prover grouping may have the advantage that it can generalize over unmeasured properties, under the assumption that there are representative properties in the data which was clustered;. In this case, among the pro vers selected as optimal for the property clusters, there will be provers optimal for each type of check, i.e. for each type of property.It should be understood that there are representative properties in the data that are clustered; In this case, among the pro vers selected as optimal for the property clusters, there will be optimally for each type of check, i.e. for each type of property.

[00035] In an aspect of the invention, the method comprises running the selected provers from the assigned prover groups in parallel.In an aspect of the invention, the method comprises the selected prover groups in parallel.

[00036] A computer program product comprising a non-transitory computer mediuAP having stored therein to cause a computer to perform the steps of the above method of selecting a prover among a plurality of provers for a design to be verified.[00036] A computer program product comprising a non-transitory computer mediuAP having a method to be used therefor.

[00037] A further benefit from the invention is that it becomes possible to extract statistical saviour data from a circuit or any other object to be verified such that the extracted data can be further analysed, treated and returned without including particular design information and thus not allowing any reverse engineering. Hence the method has proven to be very powerful in remote verification applications or for remote computing in general as the data are purely statistical data.[00037] A further benefit from the invention is further analyzed, treated and returned without particular design information and thus emergency allowing any reverse engineering. The method is proven to be very powerful in remote verification applications or for remote computing.

[00038] The scikit-leam Python libraries may be used to train and validate the pipeline.[00038] The scikit-leam Python libraries may be used to train and validate the pipeline.

[00039] Still other aspects, features, and advantages of the present invention are readily apparent from the following detailed description, simply by illustrating a preferable embodiments and implementations. The present invention is also capable of other and different embodiments and its several details can be modified in various obvious respects, all without departing from the scope of the present invention. Accordingly, the drawings and descriptions are to be regarded as illustrative in nature, and not as restrictive. Additional objects and advantages of the invention will be set forth in part in the description which follows and in part will be obvious from the description, or may be learned by practice of the invention.Still other aspects, features, and advantages of the present invention are not apparent from the following detailed description, simply by way of illustrating a preferred and implementations. The present invention is thus capable of being modified in various respects, all without departing from the scope of the present invention. Accordingly, the drawings and descriptions are to be regarded as illustrative in nature, and not as restrictive. The invention also seeks to further clarify and further explain the invention.

BRIEF DESCRIPTION OF THE DRAWINGSLETTER OF THE DRAWINGS

[00040] For a more complete understanding of the present invention and the advantages thereof, reference is now made to the following description and the accompanying drawings, in which: [00041] FIG. 1A is a diagram illustrating a method for building a pipeline and Fig. IB is an overview of a system for building a pipeline in accordance with a preferred embodiment of the present invention, [00042] FIG. 2 shows a correlation plot of design parameter in accordance with a preferred embodiment of the present invention [00043] FIG. 3 shows a correlation plot of transformed features in accordance with^ preferred embodiment of the present invention.For a more complete understanding of the present invention and the advantages thereof, reference is now made to the following description and the accompanying drawings, in which: FIG. 1A is a schematic view of a pipeline in accordance with the invention. FIG. 2 shows a correlation plot of design parameters in accordance with a preferred embodiment of the invention. FIG. 3 shows a correlation plot of transformed features in accordance with the invention.

[00044] Fig. 4A is an example scatter plot of predicted probability versus real ratio with a classifier according to an embodiment of the present invention and FIG. 4B is a performance plot of training a classifier in accordance with a preferred embodiment of the present invention.FIG. 4A is an exemplary scatter plot of predicted probability vs. real ratio with a classifier according to an embodiment of the present invention and FIG. FIG. 4B is a performance plot of a classifier in accordance with a preferred embodiment of the present invention.

[00045] FIG. 5 shows a confusion matrix in accordance with a preferred embodiment of the present invention.FIG. 5 shows a confusion matrix in accordance with a preferred embodiment of the invention.

[00046] FIG. 6 shows a multiclass receiver operating characteristic plot in accordance with a preferred embodiment of the present invention.FIG. 6 shows a multiclass receiver operating characteristic plot in accordance with a preferred embodiment of the present invention.

[00047] FIG. 7 shows the number of steps for different designs in accordance with a preferred embodiment of the present invention.FIG. 7 shows the number of steps for different designs in accordance with a preferred embodiment of the present invention.

[00048] FIG. 8 shows comparative data between real time, predicted numbers of steps and numbers of steps in accordance with a preferred embodiment of the present invention. [00049] FIG. 9A is a diagram illustrating a method for selecting a prover and Fig. 9B is an overview of a system for selecting a prover in accordance with a preferred embodiment of the present invention.FIG. 8 shows comparative data between real time, predicted numbers of steps and numbers of steps in accordance with a preferred embodiment of the present invention. FIG. 9A is an illustration of a method for selecting a prover in accordance with the present invention.

[00050] FIG. 10 shows a method for selecting a prover according to the present invention.FIG. 10 shows a method for selecting a prover according to the present invention.

[00051] FIG. 11 shows a plot of heatmap runtimes checks for different provers in accordance with a preferred embodiment of the present invention.FIG. 11 shows a plot of heatmap runtimes checks for different provers in accordance with a preferred embodiment of the invention.

[00052] FIG. 12 shows a dendrogram of clusters of provers in accordance with a preferred embodiment of the present invention.FIG. 12 shows a dendrogram of clusters of provers in accordance with a preferred embodiment of the present invention.

[00053] FIG. 13 shows another dendrogram of clusters of provers in accordance with a preferred embodiment of the present invention.FIG. 13 shows another dendrogram of clusters of provers in accordance with a preferred embodiment of the invention.

[00054] FIG. 14 shows a table of sum run times per pair of Cluster properties and cluster provers in accordance with a preferred embodiment of the invention.FIG. 14 shows a table of times a pair of cluster properties and cluster provers in accordance with a preferred embodiment of the invention.

[00055] FIG. 15 shows dendrograms of hierarchical clusters of provers in accordance with a preferred embodiment of the present invention.FIG. 15 shows dendrograms of hierarchical clusters of provers in accordance with a preferred embodiment of the present invention.

[00056] FIG. 16 shows another example of dendrograms of hierarchical clusters of provers in accordance with a preferred embodiment of the present invention [00057] FIG. 17 shows a heat map and dendrograms of clustered provers for clustered properties in accordance with a preferred embodiment of the present invention. LU1FIG. FIG. 16 shows another example of the dendrograms of hierarchical clusters of provers in accordance with a preferred embodiment of the present invention. [00057] FIG. 17 shows a heat map and dendrograms of clustered provers for clustered properties in accordance with a preferred embodiment of the invention. LU1

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTSDETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[00058] As will be explained, the present invention proposes a pipeline for online selection of provers, based on design and property parameters. A pipeline is a chained set of operations which can be fit and globally optimized. The pipeline proposed by the present invention comprises operations which standardize, transform the features, classify, rank and select best performing provers among a set of provers. The system and method of the present invention further predict a prover's step size corresponding to an expected runtime and configure the step size in order to limit the execution time. The grouping of provers is also described to minimize the runtime over a set of checks, based on runtimes of provers. The pipeline can be used for dynamic prediction on new designs, and optionally be trained again when data on new designs is available.[00058] As will be explained, the present invention proposes a pipeline for online selection of provers, based on design and property parameters. A pipeline is a chained set of operations which can be fit and globally optimized. The pipeline, which standardize, transforms the features, classify, rank and select best performing provers among a set of provers. The method and method of the present invention further predict the size of the execution time. The grouping of provers is thus to minimize the runtime over a set of checks, based on runtimes of provers. The pipeline can be used for dynamic prediction on new designs, and will be used again.

[00059] A general architecture for a system and method for building a pipeline in accordance with a preferred embodiment of the present invention is shown in FIG. 1A and IB. The system includes a computing device 1, which may be a computer or server having one or more processors, a memory and a non-transitory storage medium such as a hard drive or solid state drive. The computing device 1 comprises a data module 40, a pipeline module , an estimation module 60 and a prover selection module 70.[00059] A general architecture for a system and method for building a pipeline in accordance with a preferred embodiment of the present invention is shown in FIG. 1A and IB. The system includes a computing device 1, which may be a computer or server having one or more processors, a memory and a non-transitory storage medium, as well as a hard drive or a solid state drive. The computing device 1 comprises a data module 40, a pipeline module, estimation module 60 and a prover selection module 70.

[00060] The data module 40 is provided for collecting data used for building the pipeline. The data module 40 is provided for preparing data to be injected in the pipeline module 50. Collecting data is the first step SI to build the pipeline.[00060] The data module 40 is provided for collecting the data. 50. Collecting data is the first step. SI to build the pipeline.

[00061] Raw data 42 may comprise features of properties, features of designs, runtimes of each prover on each property, the result of the property - hold/fail, wining prover per property, and for each prover - the status, runtime and number of steps needed.[00061] Raw data may include features of properties, features of designs, runtime of each property on each property, the result of the property - hold / fail, wining prover per property, and for each prover - the status, runtime and number of steps needed.

[00062] In the present invention, a predefined numbers of checks, i.e. of properties, from a set of designs D is ran to train and fit the pipeline, with a set of provers P. Each design of the set of designs D is characterized by a set of design parameters DP which may influence the design. In the example described, there are 1176 checks run from 10 designs. 6 provers were used and 42 design parameters were extracted from the design, for each design. Thleu skilled person understands the number of checks, designs, provers and design parameters are only given as examples and are in no way limiting the invention.In the present invention, a predefined numbers of checks, i.e. D ran properties,,, set set designs designs designs pro pro pro pro pro pro pro pro pro P. P. P. P. P. P. P. P. P. P. P. P. P. P. P. P. P. P. P. P. P. P. P. P. P. P. Each P. P. P. P. P. P. P. DP DP DP DP DP DP DP DP DP DP DP DP DP DP DP DP DP DP DP DP DP DP DP DP. In the example described, there are 1176 checks run from 10 designs. 6 provers were used and 42 design parameters were taken from the design, for each design. Thleu skilled person understands the number of checks, designs, provers and design parameters are given as examples and are in no way limiting the invention.

[00063] The data module 40 is also adapted for preparing the raw data 42 to be injected into the pipeline module 40. This is the second step S2 of the method for building the pipeline. For each property, the winning provers WP among the set of provers P are labeled accordingly, if they converge within the shortest runtime compared to the rest of provers and if the difference is significant - e.g. bigger than 5 minutes. Runtimes may also be aggregated to be used as input for regression model and distance matrix for the hierarchical clustering.[00063] The data module 40 is therefore ready to be used in the pipeline module 40. This is the second step S2 of the method for building the pipeline. For each property, the winning provers WP among the set of provers are labeled accordingly, if they converge within the shortest runtime compared to the rest of provers and if the difference is significant - e.g. bigger than 5 minutes. Runtimes may therefore be aggregated to be used as input for regression model and distance matrix for the hierarchical clustering.

[00064] It may happen that different provers solve specific properties in almost the same time, or because of different loads on the machines, there are small variations in the recorded runtime. To avoid labeling the winning prover in a random way, the labeling can account for the actual difference in solve time, and label as the winning provers only the ones which have a significantly faster result e.g. 5 minutes. If too much points lie in the "gray zone" another solution can be inverting the problem and labeling poor provers instead of winning provers, by poor we understand provers which take significantly longer, compared to the shortest known time to solve the property. In this case the prover selection will have to keep out of the selection the worst provers.[00064] It may happen that different problems occur in almost the same time, or because of different loads on the machines, there are small variations in the recorded runtime. To avoid labeling the winning prover in a random way, the labeling can account for the actual difference in solve time, and label as the winning provers. 5 minutes. If too much points lie in the "gray zone" another solution can be used instead of winning provers. In this case the prover selection wants to keep out of the selection of the worst provers.

[00065] It should be noted that only the provers capable of finding respective results should be run for properties known to fail or hold.It should be noted that only the provers are capable of failing.

[00066] Another manner to label the provers is to label them as fast or slow, compared to the fastest prover, instead as labeling the prover as a winning prover or not. This alternative labeling avoids the risk of labeling winning provers randomly when more provers are fast and close to each other, and also avoids labeling many samples as having no winning prover so no information, when more provers are fast - and some are slow - which is a piece of information worth modelling as well. Therefore, in some cases, it can be of interest to predict on a prover-level, whether is it is fast or slow, and this can be done with the above mentioned labeling scheme. An alternative is to use the same winning prover vs. losing prover labeling, as long as few significantly different provers are analyzed LU1 [00067] In machine learning, a feature is an individual measurable property of a phenomenon being observed. In the present invention, prover performance is a dependent variable of the machine learning, i.e. an output being modelled. The present invention also proposes extracting design parameters DP of the designs under test to be used as features. Therefore, the data module 40 outputs a set of features F, as using machine learning features.Another way to label the provers is to label them as fast or slow, compared to the fastest prover, rather than labeling the prover as a winning prover or not. These alternative labeling avoids the risk of labeling provers randomly when more provers are almost and close to each other, and so avoids labeling many samples a piece of information worth modeling as well. Therefore, in some cases, it may or may not be on a pro-level basis, whether or not it is near or slow. An alternative is to use the same winning prover. LU1 [00067] In machine learning, a feature is an individual measurable property of a phenomenon being observed. In the present invention, prover performance is a dependent variable of machine learning, i. modeled on output. The present invention also proposes extracting design parameters. Therefore, the data module 40 outputs a set of features F, using machine learning features.

[00068] In a preferred embodiment of the present invention, the pipeline module is provided to fit (train) the pipeline. The fitting of the pipeline is done by running, by a transformer module 50, a succession of transformers, i.e. operators which may clean, reduce, expand or generate feature representations (at step S3), followed by an estimation, by a classification module 60, of the probability of each prover to solve a property, on the transformed features (step S4).In a preferred embodiment of the present invention, the pipeline module is provided to fit (train) the pipeline. The fitting of the pipeline is done by running, by a transformer module 50, a succession of transformers, i.e. operators which may clean, reduce, expand or generate feature representations (at step S3), followed by estimation, by a classification module 60, of the probability of each prover to solve a property, on the transformed features (step S4).

[00069] The transformer module 50 is adapted to standardize each feature from the set of features F to a unit variance. This can be done by a standard scaler 52, which allows improving the quality of the final estimation, by weighting equally the machine learning features of the set of features F (design parameters DP).[00069] The transformer module 50 is adapted to standardize each feature from the set of features to a unit variance. This can be done by a standard scaler 52, which allows to improve the quality of the final estimation, by weighting equally to the machine learning features of the set of features F (design parameters DP).

[00070] The output of the standard scaler module 52 is connected a principal Component Analyzis module 54, adapted to apply PCA to the set of design parameters DP. Principal Component Analysis (PCA) is a statistical procedure known in the field of machine learning, which uses an orthogonal transformation to convert a set of observations of possibly correlated variables into a set of values of linearly uncorrelated variables called principal components.[00070] Component Analyzer module 54 is adapted to apply PCA to the set of design parameters DP. Principal Component Analysis (PCA) is a statistical methodology known to be used in the field of machine learning, which uses orthogonal transformation to convert a set of observations into a set of values of linearly uncorrelated variable called principal components.

[00071] The present invention recognizes that the design parameters DP, i.e. the machine learning features, are strongly correlated, as can been seen on Figure 2 showing a matrix of correlation between each pair of parameters DP of the set of parameters P (42 parameters in the example), as a heatmap with blue for maximum positive correlation and red for minim negative correlation in the example of the present application.The present invention recognizes that the design parameters DP, i.e. the machine learning features, as a heatmap with blue for maximum positive correlation. P (42 parameters in the example) and red for minimally negative correlation in the example of the present application.

[00072] The present invention recognizes that PCA may be used to transform the mit-U' chine learning space into an orthogonal reduced space, to remove cross correlation between the features. PCA is provided to derive out of the set of features values a set of linearly independent components - called principal components - which can then be used to reconstruct the initial set of features values. The PCA module 54 is adapted to transform and reduce the set of features F including the set of design parameters DP to a set of orthogonal components which contain a high percentage of the variance of the reconstructed input space, from the PCA components.[00072] The present invention recognizes that PCA may be used to transform the with-U "chine learning space into an orthogonal reduced space. PCA is provided to derive the set of features values a set of linearly independent components - called principal components - which can then be used to reconstruct the initial set of features values. The PCA module 54 includes a set of design parameters. DP to a set of orthogonal components which contains a high percentage of the variance of the reconstructed input space, from the PCA components.

[00073] If a subset of the PCA components is used only a subset of the variability of the initial components is reconstructed. The PCA module 54 is therefore adapted to select only the main PCA components, i.e. the ones which ensure most of the variability of the initial components is preserved. When the optimal orthogonal transformation of the set of features has been found, only the Principal Analysis Components (PCA) which preserve most of the response variation are selected. In other words, the transformer module 50 with its PCA module 54 can be seen as a dimensionality reduction module.[00073] If a subset of the PCA components is used only a subset of the variability of the initial components is reconstructed. The PCA module is PCA components, i.e. the ones which ensure most of the variability of the initial components is preserved. When the optimal orthogonal transformation of the set of features has been found, only the Principal Analysis Components (PCA). In other words, the transformer module 50 with its PCA module 54 can be seen as a dimensionality reduction module.

[00074] Figure 3 shows the results of the PCA transformation in the example of the present specification. The matrix of correlation between each pair of parameters P of the set of parameters DP (42 parameters in the example) is drawn as a heatmap with blue for maximum positive correlation and red for minim negative correlation, but on the transformed features after PCA has been applied. In the example of Fig. 3, a total of 9 PCA components are kept, all the rest having an insignificant ratio of explained variance in the total. The PCA module 54 has removed the cross-correlation. As can be seen from the comparison of the matrix of Figure 3 in comparison with the matrix of Fig. 2. In other words, without this step of PCA, strongly correlated parameters would not be distinguishable, and the final model would have randomly chosen parameters out of cross correlated sets. It should be noted that the number of PCA components which are used is given as an example only and is not limiting the invention. PCA is a requirement for the next step of building and fitting the pipeline.[00074] Figure 3 shows the results of the PCA transformation in the example of the present specification. PCA has been. The parameters of the DPA have been changed Applied. In the example of Figure 3, a total of 9 PCA components are kept, all the rest having an insignificant ratio of explained variance in the total. The PCA module 54 has removed the cross-correlation. 2. In other words, without this step of PCA, strongly correlated parameters would not be distinguishable, and the final model would have randomly chosen parameters out of cross correlated sets. It should be noted that the number of PCA components which are used as an example only and not limiting the invention. PCA is a requirement for the next step of building and fitting the pipeline.

[00075] After the transformation of features is complete, the classification module 60 Ψ used to predict the best prover(s) BP, as the winning prover(s), among the set of provers P for each property (step S4).[00075] BP, as the winning prover (s), among the set of provers P for each property (step S4).

[00076] Classification as known in the art is concerned with building classification models that separate data into distinct classes. Applied to the present application, the target class is the winning prover i.e. the prover of the set of provers P which solves the property faster than the other provers of the set of provers. A classification model CM run by the classification module 60 is built by inputting a set of training data. In the present application the training data are the runtimes of the property checks and the corresponding machine learning features.[00076] Classification as separate type into distinct classes. Applied to the present application, the target class is the winning prover the prover of the set of provers P which solves the property faster than the other provers of the set of provers. A classification model CM run by the classification module 60 is built by inputting a set of training data. In the present application the training data are the runtime of the property checks and the corresponding machine learning features.

[00077] It will be understood that the classification model can be used by inputting a different dataset for which the classes are withheld, allowing the classification model to predict their class membership based on what it has learned from the training set. In the present application, the different data set are new properties..[00077] It is understood that the classification model can be used by a different dataset. In the present application, the different data set are new properties ..

[00078] A multiclass One-vs-Rest logistic regression may be used to predict probabilities of each prover of the set of provers P to solve a given property faster than the others, given the transformed features. The classification module 60 is able to predict not only the winning prover, but also calibrated probabilities per prover, i.e. chances of the provers to win.[00078] A multiclass One-vs-remainder logistic regression may be used to predict probabilities of each prover of the set of provers. The classification module 60 is capable of predicting only the winning prover, but also calibrated probabilities per prover, i.e. chances of the provers to win.

[00079] It should be noted that using multi-class logistic regression classifiers on a set of features has more advantages. First, the probability of each prover class to win can be predicted, and not only label it as winner or not. This allows ranking the provers, and choosing more to run e.g. the ones whose predicted probability exceeds a threshold. Further, it allows to model even with missing features, if the most important ones are taken into consideration: if ideally all features are known, then each property has one winning prover with probability 1, and the rest 0. If there are features missing, for a set of properties with features that can be measured having identical values (but in reality distinct features we could not measure), the classifier will predict a set of winning provers, with different probabilities, so that for all the properties, a set of provers can be selected which ranks higher - and each property in the set will be solved fast by one of the selected provers. Another advantage is that, to validate the classifier, a natural comparison is obtained between the ratio of properties solved by eacW-1 prover, and its predicted probability - for each set of properties with identical features. The closer the probability to the ratio, the better the classifier. An example scatter plot of predicted probability versus real ratio is showed in Fig.4A, where only a subset of features are used. Each point corresponds to a design-prover combination, and is assigned a probability. The predicted probability and real ratio are close to each other and the ranking of the top 2 provers per design is correct (can predict for each design their top 2 winning provers).It should be noted that using multi-class logistic regression classifiers has more advantages. First, the probability of each prover can not be predicted, and not only as winner or not. This allows ranking the provers, and choosing more to run. the ones whose predicted probabilities exceed a threshold. Further, if there are any features are known, then each property has one winning prover with probability 1 and the rest 0. If there are features missing, the classifier wants to predict a set of winning provers, with different probabilities, so that for all the properties, a set of It can be selected almost by one of the selected provers. Another advantage is that it validates the classifier, a natural comparison. The closer the probability to the ratio, the better the classifier. An example scatter plot of predicted probability versus real ratio is shown in FIG. 4A, where only a subset of features are used. Each point is a design-prover combination, and is assigned a probability. The predicted probability and real ratio are close to each other and the ranking of the top 2 provers per design is correct (can predict each design their top 2 winning provers).

[00080] Several scores may quantify the performance of the classification module 60, among others accuracy, Receiver Operating Characteristic curve, Confusion matrix [00081] The classification model CM may be validated using classification accuracy, at step S5. Accuracy is the number of correct predictions made divided by the total number of predictions made. The classification accuracy with different sample sizes is shown in Figure 4B which shows a performance plot of training a classifier in accordance with a preferred embodiment of the present invention.[00080] The classification model CM may be validated using classification accuracy, at step S5. [00081] Several scores may quantify the performance of the classification module 60. Accuracy is the number of correct predictions made by the total number of predictions made. The classification accuracy with different sample sizes is shown in Figure 4B which shows a performance plot of a classifier in accordance with a preferred embodiment of the invention.

[00082] Confusion matrix is another tool to help quantifying the performance of a prover. Each column of the confusion matrix represents the instances in a predicted class, while each row of the confusion matrix represents the instances in an actual class.[00082] Confusion matrix is another tool to help quantify the performance of a prover. Each column of the confusion matrix represents the instances in a predicted class, while each row of the confusion matrix represents the instances in an actual class.

[00083] An example of confusion matrix is shown on Fig. 5, with the predicted number of labeled samples versus the real number of labeled samples, for each prover pair. In case one winning prover is selected per property, the confusion matrix plot shows the number of correctly classified versus misclassified properties. As can be seen in the example of Fig.5, approver 3 is misclassified, while disproved completely correctly classified. This misclassification happens because approver 3 is not the winning prover for most properties of any design, but is the winning prover for some properties.[00083] An example of confusion matrix is shown in FIG. 5, with the number of labeled samples versus the real number of labeled samples, for each prover pair. In case one winning prover is selected by property, the confusion matrix plot shows the number of correctly classified versus misclassified properties. As can be seen in the example of FIG. 5, approver 3 is misclassified, while disproved completely correctly classified. This misclassification happens because approver 3 is not the winning prover for most properties, but is the winning prover for some properties.

[00084] To avoid this effect of misclassification, the classification module 60 may be used to predict the probabilities of all provers, and more provers are selected per design. Comparing the predicted probabilities to the real ratio of each prover per design and property result yields good results: less than 10% have an absolute difference of 0.1 and no case above 0.3. The coverage score indicates how many provers to select to cover all winning provers per11 property can be used.] [00085] Receiver Operating Characteristic (ROC) is another score to quantify the performance of the classification module 60. ROC curves have true positive rate on the Y axis, and false positive rate on the X axis. This means that the top left comer of a ROC curve is the “ideal” point - a false positive rate of zero, and a true positive rate of one. Having a larger area under the curve (AUC) is better.. Fig. 6 shows a ROC curve in the example of the present application. As can be seen on fig. 6, the ROC curve also indicates acceptable AUC, despite Approver3 classifier's poor performance.[00084] To avoid this effect of misclassification, the classification module 60 Comparing the predicted probabilities to the real ratio of each prover per design and yielding good results: less than 10% have an absolute difference of 0.1 and no case above 0.3. The coverage score indicates how many provers to select to win all properties.] [00085] Receiver operating characteristic (ROC) is another score to quantify the performance of the classification module 60. ROC curves have true positive rate on the Y axis, and false positive rate on the X axis. This means that the top left of a ROC curve is the "ideal" point - a false positive rate of zero, and a true positive rate of one. Having a larger area under the curve (AUC) is better. FIG. 6 shows a ROC curve in the example of the present application. As can be seen on fig. 6, the ROC curve thus indicates acceptable AUC, despite Approver3 classifier's poor performance.

[00086] The validation may also be done on designs not used for training, which also reach a score above 90% if one design is left for validation. The validation design parameters should be within the range of the parameters of the training designs.[00086] Thus, the validation may be done on designs not used for training, which is reach 90% if one design is left for validation. The validation design parameters should be within the parameters of the training designs.

[00087] It should be noted that other classifiers may be used, such as K Nearest Neighbors Classifier or Random forest Classifiers. K Nearest Neighbors Classifier is simple to implement, with the advantage of not making assumptions of linear behavior of solve probability on the transformed feature space. However, K Nearest Neighbors Classifier has the risk of not-scaling when the dataset is too big. On the other hand, Random Forest Classifier might be overfit, whilst being easily exported to productive use. Of course, it may be possible to combine more classifiers, to get a better prediction.[00087] It should be noted that other classifiers may be used as K Nearest Neighbors Classifiers or Random Forest Classifiers. K Nearest Neighbors Classifier is simple to implement, with the advantage of linear performance of the probability of the transformed feature space. However, K Nearest Neighbors Classifier has the risk of not scaling when the dataset is too big. On the other hand, Random Forest Classifier might be overfit, while being easily exported to productive use. Of course, it may be possible to combine more classifiers, to get a better prediction.

[00088] When known effects of features can play a role (exponential, interactions, polynomial), additional transformers can be included in the pipeline [00089] The skilled person will understand that the present application uses multi-class logistic regression to assign probabilities to different provers proportional to the chances to solve properties of a specific design, whereas the prior art proposed to use regression based on the runtime, but this is more difficult to estimate, and is not needed because optimal prover selection is a classification problem.[00088] The skilled person wants to understand that the present application uses multi-class logistic regression to assign probabilities to optimal prover selection is a classification problem.

[00090] It should be noted that a diagnosis of the classification model CM can be im-U1 plemented. If the classifier or repressor is not accurate enough, then the estimators' fit, the data preparation or the collect data steps have to be revisited. More specifically, when the test score is poor compared to the train score, the model is probably overfit, which can happen when the training data is not sufficient (the feature space must have a bigger coverage), or the chosen model was too complex. The second cause is unlikely, since a logistic regression model is used with only linear dependencies features-class probability. When both test and train scores are poor, there may be features which play a role but were not taken into account. The unaccounted features can be known but unusable during model deployment e.g. because they are too expensive, or unknown. The 2nd case can also be diagnosed by isolating cases where the winning prover varies even when none of the known features vary. An idea to overcome this is to add new "features" as the outputs of provers while being run (by step size or BCP count), which is a potentially usable feature during dynamic deployment of the model.It should be noted that a method of classification CM can be im-U1 plemented. If the classifier or repressor is not accurate enough, then the estimators' fit, the data preparation or the data collection steps have to be revisited. More specifically, when the test score is poor compared to the train score, the model is probably over-fit, which can happen when the training data is not sufficient, or the chosen model was too complex. The second cause is unlikely, since a logistic regression model is used with only linear dependencies features-class probability. When both test and train scores are poor, there may be The unaccounted features may be known but unusable during model deployment. because they are too expensive, or unknown. The 2nd case can also be diagnosed by isolating cases where the winning prover varies when none of the known features vary. During the process of dynamic deployment of the model.

[00091] The pipeline can be optimized by a search e.g. grid, on the complete parameter space of the operators involved, e.g. optimization of the classification accuracy vs. the regularization of the linear regression.[00091] The pipeline can be optimized by a search e.g. grid, on the complete parameter space of the operators involved, e.g. Optimization of the classification the regularization of linear regression.

[00092] The present invention is concerned with configuring the provers, in particular for setting a threshold to limit the maximum number of steps the prover runs, before the prover will be interrupted. Such a configuration is needed because the time cannot be used directly as a limit and a step size is needed, because different machines have different runtimes. Different machines must use a limiting parameter constant among all machines - which is the prover's internal counter - step size or BCP counter.[00092] The present invention is concerned with configuring the provers, in particular, setting the maximum number of steps the prover runs before the prover will be interrupted. Search a configuration is needed because it can not be used directly as a limit and a step size is needed because different machines have different runtimes. Which is the prover's internal counter-step size or BCP counter.

[00093] Therefore, a prover configuration (or prover parameter setting) is needed to interrupt the provers when they reach the configured step size for a property, with the disadvantage that no meaningful result is reached for that property, but with the advantage that subsequent properties can be reached and provers don't spend too much time on this particular property. A constant step size for all designs is not good because it will be reached fast for some designs, with no meaningful result for many properties, and no big gain in time, while a large step size will determine a lot of time invested for some designs. Therefore a step size depending on the design features must be set.Therefore, a prover configuration setting is needed to interrupt the provers when they reach the configured step size for a property properties can not be reached and provers do not spend too much time on this particular property. While a large step size is needed, there is no such thing as a design, with no meaningful result for many properties, and no big gain in time , Therefore a step size depending on the design features must be set.

CD LU1 [00094] The present invention proposes a regression module 64, which is provided to model the dependency of the step size on the design parameters (features) and expected time to check the assertion. This is done by the regression module 64, at step S6 of the method for building the pipeline. A prediction is made by setting an expected runtime (on the reference machine) and specifying the design features values, as inputs, and getting the corresponding step size for a particular prover as output.CD LU1 [00094] The present invention proposes a regression module 64, which is provided to model the dependency of the step size on the design parameters (features) and expected time to check the assertion. This is done by the regression module 64, at step S6 of the method for building the pipeline. A prediction is made by setting an expected runtime (on the reference machine) and specifying the design features values, as inputs, and getting the corresponding step size for a particular prover as output.

[00095] The regression module 64 is adapted to run a regression model RM to optimally predict the step size in order to limit the time spent per check (property). As will become clear from the description, using the regression model RM with linear regression for configuring the provers P allow avoiding the drawbacks of the prior art approaches which proposed to add multiple instances of the same prover with different settings and compare them to select the best setting. This prior art approach is not efficient for continuous setting.[00095] RM to optimally predict the step size in order to limit the time spent per check (property). As soon as possible, with the regression model RM with linear regression for configuring the provers P allow avoiding the drawbacks of the prior art approaches which proposed to add multiple instances of the same prover with different settings and compare them to select the best setting. This prior art approach is not efficient for continuous setting.

[00096] Ordinary Least Squares Linear Regression is an approach for modeling the relationship between a scalar dependent variable, one or more explanatory variables (or independent variables). The Ordinary Least Squares Linear Regression fits a linear model with coefficients to minimize the residual sum of squares between the observed responses in the dataset, and the responses predicted by the linear approximation. Because the present invention is concerned with the configuration of the provers, the dependent variables of the linear regression may be the number of steps, and the independent variables of the linear regression may be design statistics and expected check time.[00096] Ordinary Least Squares Linear Regression is an approach for modeling the relationship between a scalar dependent variable, one or more explanatory variables (or independent variables). The Ordinary Least Squares Linear Regression fits a linear model with coefficients to minimize the residual sum of squares between the observed responses in the dataset and the responses predicted by the linear approximation. Because the present invention is concerned with the configuration of the provers, the dependent variable of the linear regression may be the number of steps, and the independent variables of the linear regression may be design statistics and expected check time.

[00097] Fig. 7 shows the result of a linear regression done by the regression module 64 for two provers, namely disproverl and disprover 3. More precisely, Fig. 7 shows the linearized step on logl0(l+Real Time) with different colors for different designs, the data being measured on the prover Disproverl for designs where step size is bigger than 1, and runtime is bigger than 10s. At least for the two provers disproverl and disproved, there is an approximately exponential dependency of the time for the check to converge, on the required number of steps. The modelling is split in fitting a linear function F so that Steps = F(logl0(l+Real Time)). The resulting coefficients for different designs are fitted as linear regression models on the transformed features . LU1 [00098] The regression of linear coefficients as shown on fig. 7 was done using a Least Angle Regression LASSO model. Least absolute shrinkage and selection operator (LASSO) is a linear model that estimates sparse coefficients. LASSO is useful due to its tendency to prefer solutions with fewer parameter values, effectively reducing the number of variables upon which the given solution is dependent. Least Angle Regression LASSO is the model selection algorithm which less greedy than traditional forward selection methods. In the present embodiment, a LASSO model is of interest for the following reasons. There are as many samples as the number of designs. Because PCA was first applied, as explained above, the correlation of features was removed. Therefore the problem of randomly chosen features does not appear here in the model. This problem of randomly chosen features could otherwise happen with LASSO whenever PCA has not been applied before. It is noted that there are other linear regression models that could be applied, such as the Nearest Neighbor Regressor which is an alternative model, with comparable performance.Fig. 7 shows the result of a linear regression done by the regression module 64 for two provers, namely, disproving and disprover 3. More precisely, Fig. 7 shows the linearized step on log 10 (1 + Real Time) with different colors for different designs, the data being measured on the prover Disproverl for designs where step size is bigger than 1, and runtime is bigger than 10s. At least for the two provers disproved and disproved, there is an exponential dependency of the time for the check to converge, on the required number of steps. The modeling is split into fitting a linear function F so that steps = F (logl0 (l + real time)). The resulting coefficients for different designs are fitted as linear regression models on the transformed features. LU1 [00098] The regression of linear coefficients as shown in fig. 7 what to do using a Least Angle Regression LASSO model. Least absolute shrinkage and selection operator (LASSO) is a linear model that estimates sparse coefficients. LASSO is useful due to its tendency to prefer solutions with fewer parameter values, effectively reducing the number of variables. Least Angle Regression LASSO is the model selection algorithm which less greedy than traditional forward selection methods. In the present embodiment, a LASSO model is of interest for the following reasons. There are many samples as the number of designs. Because PCA was first applied, as explained above, the correlation of features was removed. Therefore the problem of randomly chosen features does not appear here in the model. This problem of randomly chosen features has not been applied before. It is also known that there are other linear regression models that could be applied, such as the nearest neighbor regressor which is an alternative model, with comparable performance.

[00099] The regression model RM is validated at step S7. The regression module may be validated using maximum or average absolute error on step size prediction.[00099] The regression model RM is validated at step S7. The regression module may be validated using maximum or average absolute error on step size prediction.

[000100] The step size prediction versus the actual step size can be seen on Fig. 8 showing a pair plot. This type of plot shows scatter plots of each dimension against each other (real time, number of steps and prediction on the number of steps in the present application), and histograms of the data on the main diagonal, colored by the design in the present application. One design is left for validation ('lsu_package'). The pair plot shows an approximately linear dependency and equal range between the actual (prv cur steps) and predicted number of steps predictedlarslasso, as well as predictedknnlall, therefore indicate the prediction follows the real value, quantified by the correlation coefficient: 94% for Lasso and 95% for Nearest Neighbor Regressor.The step size prediction versus the actual step size can be seen in FIG. 8 showing a pair plot. This type of plot shows scatters of each dimension against each other (real time, number of steps and prediction on the number of steps in the present application), and histograms of the data on the main diagonal, colored by the design in the present application. One design is left for validation ('lsu_package'). 94% for Lasso. The pair plot shows an approximate linear dependency and equal range between the actual and the predicted number of steps. Predictedlarslasso, as well as predictedknnlall, hence the prediction follows the real value and 95% for Nearest Neighbor Regressor.

[000101] The maximum absolute error on the coefficients of the estimated dependency is for the designs used for train, less than 0.15 and 6 for the test design. This translates in a maximum error of predicted step size of less than 5, both on training and validation. The validation design has a much higher error of the linear coefficients than the training designs. This indicates an overfit. The nearest neighbor regressor can be added to increase the confident1 on prediction.[000101] The maximum absolute error on the coefficients of the estimated dependency for the designs used for train, less than 0.15 and 6 for the test design. 5, both on training and validation. The validation design has a much higher error of the linear coefficients than the training designs. This indicates an overfit. The nearest neighbor regressor can be added to increase the confident1 on prediction.

[000102] Once the pipeline has been built and validated, the pipeline may be used in a method for verifying a design under test, i.e. for new properties and designs, to determine which prover(s) should be used for the verification of the design under test, and optionally define a test scheduling. Optionally, new batches of data can be collected from new designs, to refine the pipeline, e.g. by partial fits, using Stochastic Gradient Descent.[000102] Once the pipeline has been built and validated, the pipeline may be used in a method for verifying a design under test, i.e. which prover (s) should be used for the verification of the design under test, and optionally define a test scheduling. Optionally, new batches of data may be collected from new designs, to refine the pipeline, e.g. by partial fits, using Stochastic Gradient Descent.

[000103] The method comprises a first step of collecting data (S21). The data module 40 can collect and prepare data to be injected in the pipeline. The data design parameters DP of the designs under test to be used as features F.[000103] The method comprises a first step of collecting data (S21). The data module 40 can collect and prepare data in the pipeline. The data design parameters DP of the designs under test to be used as features F.

[000104] The expected result of the property (hold/fail) may be used to separate the data before using the pipeline.[000104] The expected result of the property (hold / fail) may be used to separate the data before using the pipeline.

[000105] The features F outputted from the data module 40 are then used by the validated pipeline to classify the prover, as a winning prover or not. It should be understood that the prediction of the step size is realized after selecting the best prover and before running the prover. This is useful to schedule more properties to be verified sequentially, and predict the step size which corresponds to a long time duration (on the reference machine).[000105] The features are then used by the validated pipeline to classify the prover, as a winning prover or not. It should be understood that the prediction of the step size is realized. This is useful to schedule, and predict the step size which is a long time duration (on the reference machine).

[000106] The prediction functions can be exported to productive use because the prediction consists of feature transformations and linear functions.[000106] The prediction functions of the invention are the transformations and linear functions.

[000107] The prediction functions are done by the transformer module 50 and the classification module 60. As explained above with reference to Figs. 1A and IB, the transformer module 50 is adapted to transform the features and apply linear functions (step S22), to standardize each feature from the set of features F to a unit variance. This is done by the standard scaler module 52 and the principal Component Analyzis module 54, adapted to apply PCA to the set of design parameters DP.The prediction functions are done by the transformer module 50 and the classification module 60. As explained above with reference to Figs. 1A and IB, the transformer module 50 is adapted to transform the functions and apply linear functions (step S22) to standardize each feature from the set of features to a unit variance. This is done by the standard scaler module 52 and the principal component analyzer module 54, adapted to apply PCA to the set of design parameters DP.

[000108] PCA may be used to transform the machine learning space into an orthogonal reduced space, to remove cross correlation between the features. The PCA module 54 is adapted to transform and reduce the set of features F including the set of design parameters DP to a set of orthogonal components which contain a high percentage of the variance of tfW^ output. When the optimal orthogonal transformation of the set of features has been found, only the Principal Analysis Components (PCA) which preserve most of the variance of the reconstructed input space are selected. In other words, the transformer module 50 with its PCA module 54 can be seen as a dimensionality reduction module.[000108] PCA may be used to transform the machine into an orthogonal reduced space. The PCA module 54 is adapted to transform and reduce the set of design parameters DP to a set of orthogonal components which contains a high percentage of the variance of tfW ^ output. When the optimal orthogonal transformation of the set of features has been found, only the Principal Analysis Components (PCA) which preserve most of the variance of the reconstructed input space are selected. In other words, the transformer module 50 with its PCA module 54 can be seen as a dimensionality reduction module.

[000109] The classification module 60 is used to predict the best prover(s) BP as the winning prover WP among the set of provers P for each property (step S23). The classification model CM is run by the classification module 60 by inputting the new properties of the design under test for which the classes are withheld, allowing the classification model to predict their class membership based on what it has learned from the training set.[000109] The classification module 60 is used to predict the best prover (s) BP as the winning prover WP among the set of provers P for each property (step S23). The classification model CM is run by the classification module 60 by inputting the new properties of the design under test.

[000110] A multiclass One-vs-Rest logistic regression may be used to predict probabilities of each prover of the set of provers P to solve a given property faster than the others, given the transformed features. The classification module 60 is able to predict not only the winning prover, but also calibrated probabilities per prover, i.e. chances of the provers to win.[000110] A multiclass one-vs-remainder logistic regression may be used to predict probabilities of each prover of the set of provers. The classification module 60 is capable of predicting only the winning prover, but also calibrated probabilities per prover, i.e. chances of the provers to win.

[000111] Based on the classification of the provers obtained by the classification module 60, a prover clustering module 70 may provide clustering capabilities (step S24). Clustering is the task of grouping a set of objects in such a way that objects in the same group (called a cluster) are more similar to each other than to those in other groups (clusters). In the present invention, Clustering is the task of grouping a set of provers in such a way that provers in the same cluster are more similar, based on runtimes with different properties in our case, to each other than to the provers belonging to other clusters. Clustering can also be applied on properties, to group them based on similar runtimes with different provers.[000111] Based on the classification of the products obtained by the classification module 60, a prover clustering module 70 may provide clustering capabilities (step S24). Clustering is the task of grouping a group of objects in the same group (called a cluster) are more similar to those in other groups (clusters). In the present invention, the process of clustering is the same as that of a proverb in a similar manner, based on runtimes with different properties in our case , Clustering can thus be applied on properties, to group them based on similar runtimes with different provers.

[000112] The prover clustering module 70 can group provers based on similarity of the runtimes on different checks when more provers can be run in parallel.[000112] The prover clustering module 70 can group provers based on similarity of the runtime on different checks when more provers can run in parallel.

[000113] The prover clustering module 66 can parallelize the provers by selecting provers from different clusters. Clusters indicates which groups of provers are orthogonal in their behavior on sets of checks/designs. If the checks are sufficiently different, the checks will require different prover groups for minimal runtime, therefore running prover groups in parallel can minimize the runtime for the overall set of checks.[000113] The prover clustering module 66 can parallelize the provers by selecting provers from different clusters. Clusters indicates which groups of provers are orthogonal in their behavior on sets of checks / designs. In parallel to minimize the runtime for the overall set of checks.

f Df D

II

[000114] With other words, the present invention proposes using clustering for prover scheduling, by grouping provers based on runtime similarity and choosing provers from different groups to optimize the runtime on sets of checks. Fig. 10 shows a method for selecting provers to run in parallel according to the present invention.[000114] With the present invention proposing using clustering for prover scheduling, by grouping provers based on runtime similarity and choosing provers from different groups to optimize the runtime on sets of checks. 10 shows a method for selecting provers to run in parallel according to the present invention.

[000115] In a first step S31, the prover clustering module 70 gets the runtime for each property and each prover. The result of this step can be seen on Fig. 11, which shows a plot of heatmap runtimes checks for different provers.[000115] In a first step S31, the prover clustering module 70 gets the runtime for each property and each prover. The result of this step can be seen in FIG. 11, which shows a plot of heatmap runtime checks for different provers.

[000116] The heatmap shows by the color gradient the runtimes for a simple example with 120 checks and 6 provers. The number of checks and number of provers are for illustrative purpose only. The timeouts may be replaced by higher runtime values. In the example of fig. 11, the timeouts were replaced by double the maximum runtime (seen by dark gradient).[000116] The heatmap shows by the color gradient the runtimes for a simple example with 120 checks and 6 provers. The numbers of checks and numbers are for illustrative purpose only. The timeouts may be replaced by higher runtime values. In the example of fig. 11, the timeouts were replaced by double the maximum runtime (seen by dark gradient).

[000117] The provers and checks are grouped together into prover clusters and property clusters in the next steps. To do so, cluster properties are grouped in a limited number n of clusters at step S32, and the provers are clustered in a defined number m of prover clusters m. The defined numbers of prover clusters represents the maximum number of a user would like to um in parallel.[000117] The provers and checks are grouped together into prover clusters and property clusters in the next steps. To do so, cluster properties are grouped in a limited number of clusters at step S32, and the provers are clustered in a defined number of prover clusters m. The defined numbers of prover clusters represents the maximum number of a user would like to have in parallel.

[000118] The results can be seen on Fig. 12 showing dendrogram of clusters of provers and on Fig. 13 showing dendogram of clusters of properties. A dendrogram is a tree like diagram of the distances between clusters with iteratively merged clusters from bottom - where each sample is one cluster, upwards. The dendrogram assists in selecting an optimal number of clusters. The optimal number of clusters can be identified by deciding a cut-off point in the dendrogram. This is applied separately on the properties which hold and on properties which fail.[000118] FIG. 12 shows a dendogram of clusters of provers and FIG. 13 shows a dendogram of clusters of properties. A dendrogram is a tree-like diagram of the distance between clusters with iteratively merged clusters from the bottom - where each sample is one cluster, upwards. The dendrogram assists in selecting an optimal number of clusters. The optimal number of clusters can be identified by deciding a cut-off point in the dendrogram. This is applied separately on the properties which hold and on properties which fail.

[000119] Once the clusters have been created, the prover clustering module 70 is adapted to assign a prover cluster for each property cluster (step S34). The prover cluster assigned to a property cluster corresponds to the prover cluster among the m prover clusters having no time out and/or a minimum sum of runtimes.[000119] Once the clusters have been created, the prover clustering module 70 is adapted to assign a prover cluster for each property cluster (step S34). The prover cluster has a cluster of prover clusters having no time out and / or a minimum sum of runtimes.

[000120] Hence, the skilled person will understand that this method of assigning a prover cluster to a property cluster instead of to a single property is faster. Indeed, the clustering based approach avoids the calculation, for each combination of m provers, of the minimum runtime of the current combination for the property, for each property, and then sum up the minimum runtimes of all the properties.[000120] The skilled person will understand that this method of assigning a prover cluster instead of a single property is faster. Indeed, the clustering approach, the minimum runtime of the current combination for the property, for each property, and then the minimum runtime of all the properties.

[000121] Finally, for each prover cluster, the best prover from the cluster may be selected, as being the one having the minimum sum of runtime over all properties of the property cluster.[000121] Finally, for each prover cluster, the best prover from the cluster may be selected.

[000122] The result can be seen on FIG. 14 shows a table of sum run times per pair of properties cluster and provers cluster. More precisely, the table of Fig. 14 contains the sum of runtimes for the selected best prover in each prover cluster, and for each cluster of properties. NA indicates there are timeouts in the respective cluster. The runtimes of the chosen clusters are marked yellow. There can be seen clusters of properties where: all clusters of provers converge, and the one with the shortest sum of runtimes is chosen, 2 clusters of provers converge, and the one with the shortest sum of runtimes is chosen, and only one cluster of provers converges, which is chosen as the only option.[000122] The result can be seen on FIG. 14 shows a table of run times per property cluster and provers cluster. More precisely, the table of FIG. 14 contains the sum of runtimes for the selected best prover in each prover cluster, and for each cluster of properties. NA indicates there are timeouts in the respective cluster. The runtimes of the selected clusters are marked yellow. There are two clusters of provers converge, and one clusters of provers converge, and one clusters of provers converge, and one clusters of provers converge, and one clusters of provers converges provers converges, which is chosen as the only option.

[000123] In the example described with reference to Figs. 10-14, the skilled person understands that the combination of cluster 1 and cluster 3 may be chosen, and in said cluster, the provers 2:12 in cluster 1 and the approver4 in cluster 3 may be selected as being the best provers to run in parallel. In this example, the best provers are chosen as being the ones with the smallest overall runtime.[000123] In the example described with reference to Figs. 10-14, the skilled person understands that the cluster of the cluster 1 and cluster 3 may be selected as being the best provers to run in parallel. In this example, the best provers are those with the smallest overall runtime.

[000124] The clustering can be validated by ensuring a big enough distance between clusters.[000124] The clustering can be validated by ensuring a good enough distance between clusters.

[000125] Agglomerative hierarchical clustering based on the similarity between runtimes of different provers on different checks was applied to group both provers and checks. A linkage matrix with pairwise distances between points, according to a chosen linkage metric is first calculated. The second step is an iterative clustering which maximizes the distance hM-1 tween clusters.[000125] Agglomerative hierarchical clustering based on the difference between runtimes of different provers on different checks. A linkage matrix with pairwise distances between points, according to a chosen linkage metric is first calculated. The second step is an iterative clustering which maximizes the distance hM-1 tween clusters.

[000126] It should be noted that the linkage metric defines how to calculate the distance between newly formed clusters depending on the coordinates of the points in the clusters. The linkage can affect the resulting clusters. To identify the best linkage metric, clustering can be performed using all available metrics, and the results can be compared, in terms of cophenetic correlation and how provers known to be similar on a known set of properties are clustered together. The cophenetic correlation is a measure of how faithfully a dendrogram preserves the pairwise distances between the original unmodeled data points. In the example of the present invention, the linkage metric which maximized the cophenetic correlation and grouped known similar provers together and different provers apart, was ward variance minimization algorithm, which is defined here [https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.cluster.hierarchy.linkage.html#scipy.cluster.hierarchy.linkag e]· [000127] The dendrograms of the runtimes of 841 holding properties and 179 failing properties are shown in Figures 15 and 16. Different clusters are colored using a default cutoff level of 70% from maximum intra-cluster distance. As can be seen on Fig. 15, the grouping is according to expectations, similar strategies of prover2 e.g. strategies 0-8 vs. Strategies 9-15 falling in different clusters if choosing a cut-off intra-cluster distance of e.g. 2000, and approvers 3 and 4 having as well enough differences to fall in different clusters. A different clustering is obtained for failing assertions, as seen on Fig. 16.[000126] It should be noted that the linkage metric defines the distance between newly formed clusters depending on the coordinates of the points in the clusters. The linkage can affect the resulting clusters. To identify the best linkage metric, it can be summarized in terms of cophenetic correlation and how it compares to a known set of properties. The cophenetic correlation is a measure of how faithfully a dendrogram preserves the pairwise distances between the original unmodeled data points. In variance minimization algorithm, which is defined here [https://docs.scipy.org/doc/], the linkage metric which maximizes the cophenetic correlation and grouped scipy-0.14.0 / reference / generated / scipy.cluster.hierarchy.linkage.html # scipy.cluster.hierarchy.linkag e] · [000127] The dendrograms of the runtimes of 841 holding properties and 179 failing properties are shown in Figures 15 and 16. Different clusters are colored using a default cutoff level of 70% from maximum intra-cluster distance. As can be seen on Figure 15, the grouping is according to expectations, similar strategies of prover2, e.g. strategies 0-8 vs. Strategies 9-15 falling in different clusters if choosing a cut-off intra-cluster distance of 2000, and approvers 3 and 4 having as well as differences in case of different clusters. A different clustering is obtained for failing assertions, as seen on FIG. 16.

[000128] Finally, Figure 17 shows how a similar clustering can be made on the properties, visible by the dendrogram on the left, the dendrogram on top is the prover clustering from Figure 10, while the center plots the heatmap of the runtimes, where the rows and columns are reordered as the dendrograms indicate. A reduced set of properties is shown (properties taking longer than 5 minutes).[000128] Finally, Figure 17 shows the heatmap of the runtimes, where the center of gravity is on the left, the dendrogram on top of the dendrogram on the left the rows and columns are reordered as the dendrograms indicate. A reduced set of properties is shown (properties taking longer than 5 minutes).

[000129] A pattern is visible which indicates that prover clusters behave similarly for property clusters, consequently best and worst prover clusters for properties in the same cluster are shared. This can be applied for scheduling by selecting provers to run in parallel from clusters which perform optimally for the clusters of properties under study.[000129] A pattern is visible which indicates that prover clusters behave similarly as property clusters. This can be used for scheduling by selecting provers to run in parallel from clusters.

[000130] It should be noted that in order to cluster the provers and the properties, the runtime is needed for each prover and property combination. But sometimes data is missing and clustering must find a way to work with it. In no case should the data be replaced by 0, because this would consider the prover a fast solver for the property. Also removing the properties where some provers time out is not recommended, because it risks removing exactly the representative properties which were too slow on some provers, but fast enough on some others. .[000130] It should be noted that the provers and the property runtime is needed for each prover and property combination. But sometimes data is missing and clustering must be a way to work with it. In no case should the data be replaced by 0, because this would consider the prover to be almost solver for the property. So, removing the properties where some of the time is not recommended, because it's just removing them, is almost too slow on some others. ,

[000131] The missing data should be treated differently depending why the data is missing. If the data is missing because the prover was not recorded, then the observations could be removed completely to avoid assuming which would be the prover behaviour. Another solution comprises initializing the missing values to the columns' means, then repeating until convergence: 1) clustering the filled-in data, and 2) assigning to the missing values the centroid coordinates of the clusters to which they were assigned. Yet another solution would be to assign the average coordinate values of the nearest neighbours in the other dimensions. If the data is missing because the prover timed out, then there are more options: A solution consists in filling in the missing data with fixed values, higher than the time limit used, but not too high, e.g. 1.5*time limit. In this way, the missing values would determine provers with many missing values to be far from the ones without, but would avoid distancing the provers with different amounts of missing values too much from each other. The resulting clusters can be validated by comparing against clusters with varying value used for missing values (e.g. in the range time limit... double the time limit).[000131] The missing data should be treated. If the data is missing because the prover was not recorded, then the observations could have gone completely to avoid assuming which would be the prover behavior. The results of the calculations include: 1) clustering the filled-in data, and 2) assigning to the missing values. Yet another solution would be to assign the average coordinate values of the nearest neighbors in the other dimensions. If the data is missing because of the prover timed out, then there are more options: A solution consists in filling in the missing data with fixed values, higher than the time limit used, but not too high, e.g. 1.5 * time limit. In this way, the missing values would determine with many missing values to the ones without, but would avoid distancing the provers with different amounts of too much from each other. The resulting clusters can be validated by comparing against clusters with varying values.

[000132] It should be noted that using the prover clusters as a target class for the prover selection classifier, instead of the actual provers, can improve the quality of the prover selection because it reduces the provers to groups with significant differences, therefore easier to be separated by a classifier.It should be noted that using the prover clusters as a target class for the prover selection classifier, instead of the actual provers, can improve the quality of the prover selection because it reduces the provers to groups with significant differences, thus making it easier be separated by a classifier.

[000133] The checks can also be clustered by similarity on runtimes with different provers. This can be more efficiently performed on the features after the PCA transformation. This can be extended by training a classifier to predict for new checks the corresponding clustet,u and therefore the best prover.[000133] The checks can thus be clustered by similarity on runtimes with different provers. This can be performed on the features after the PCA transformation. And the best prover.

[000134] For an efficient online use, a feature ranking realized by some types of classifiers e.g. Random Forests, shows which features are most important to be evaluated first, and to check if the decision of the model is already confident enough.[000134] For an efficient online use, by some types of classifiers. Random Forests, which features are most important to be evaluated first, and to check if the decision of the model is already confident enough.

[000135] Scheduling of the provers in parallel can be done by clustering and selecting provers from alternative clusters. Alternatively to clustering the runtimes and choosing provers from alternative clusters, the scheduling of which provers to run in parallel can minimize the number of timeouts for a given time limit, and candidate groups which have the same number of timeouts are afterwards sorted by probability to solve within a time limit. In a further aspect, the provers can be scheduled sequentially. The scheduling can define provers from clusters which are fast on some types of checks (properties) first, with a parameter setting corresponding to a small time limit, allowing subsequent groups to be reached, and clusters with generally higher runtimes afterwards.[000135] Scheduling of the provers in parallel can be done by clustering and selecting provers from alternative clusters. Alternative to clustering the runtimes and choosing provers from alternative clusters, the scheduling of which provers to run in parallel can minimize the number of timeouts for a given time limit, and candidate groups which have the same number of timeouts are sorted by probability to solve within a time limit. In a further aspect, the provers can be scheduled sequentially. The scheduling can define provers from clusters which are almost on some types of checks (properties) first, with a parameter setting corresponding to a small time limit, which may result in subsequent groups to and clusters having generally higher run times.

[000136] In summary, the present invention provides a user with a portfolio of provers based on the actual design and verification task at hand that maximizes the chance of success while staying within resource bounds. This approach eliminates the need for expert knowledge on the user side, greatly improving usability and resource requirements.[000136] In summary, the present invention provides a portfolio of provers based on the actual design and verification task at hand that maximizes the chance of success while staying within resource bounds. This approach eliminates the need for expert knowledge on the user side.

[000137] The innovation consists in embedding machine learning into a formal verification tool. A verification challenge (designs and properties) can be reduced to a set of characteristics or features sufficient to predict a verification engine capable to resolve the verification problem. Examples for such features may include Design Control Points such as design input, in-out ports, un-driven wires, and user-defined cut points, Design Structural Elements such as the total number of counters in the designs or the number of RAM blocks, Design State Complexity measuring the total number of design state elements, including the total number of design latches and flip-flops, Property Complexity comprising the sequential depth, a total number of flip flops, latches, and combinational gates of the property.[000137] The innovation in embedding machine learns to be a formal verification tool. A verification challenge (designs and properties). The verification problem. Examples for such features may include design control points such as design input, in-out ports, un-driven wires, and user-defined cut points, Design Structural Elements as the total number of counters in the designs or the number of RAM blocks , Design State Complexity measuring the total number of design state elements, including the total number of design latches and flip-flops, Property Complexity comprising the sequential depth, a total number of flip flops, latches, and combinational gates of the property.

[000138] Further, the present invention provides machine learning algorithm capable to use these features to automatically schedule the verification engines with the goal of both maximizing their probability to converge and to minimize the resource usage such as ranting and memory consumption. This predictor can be trained by the extracted features and available user data. The automated scheduling includes the selection of a set of verification engine^) to be run sequentially or concurrently, the selection of runtime parameters of verification engines, and resource limits (e.g. in terms of real time, steps in Bounded Model Checking, or Boolean constraint propagation counts in verification engines based on SAT).[000138] Further, the present invention provides a methodology for evaluating and minimizing resource consumption. This predictor can be read by the extracted features and available user data. The automated scheduling includes the selection of a set of verification engines, the selection of runtime parameters of verification engines, and resource limits (eg, in terms of real time, steps in Bounded Model Checking, or Boolean constraint propagation counts in verification engines based on SAT).

[000139] Machine learning is used for optimal engine selection, and provides a tool that automatically detect a verification schedule specific to the verification challenge at hand.[000139] Machine learning is used for optimal engine selection, and provides a tool that automatically detects a verification schedule at the verification challenge at hand.

[000140] The foregoing description of the preferred embodiment of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention. The embodiment was chosen and described in order to explain the principles of the invention and its practical application to enable one skilled in the art to utilize the invention in various embodiments as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims appended hereto, and their equivalents. The entirety of each of the aforementioned documents is incorporated by reference herein. It is also to be noted that individual aspects can be arbitrarily combined with each other.[000140] The description of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit itself to the precise form disclosed, and "modifications and variations are possible in light of the above teachings. The embodiment of the invention is characterized by the fact that it is used in a particular way. It is intended that the scope of the invention be appended hereto, and their equivalents. The entirety of each of the aforementioned documents is incorporated by reference. It is thus to be understood that individual aspects may be arbitrarily combined with each other.

Claims (13)

1. Procédé mis en œuvre par ordinateur de sélection d’un démonstrateur parmi une pluralité de démonstrateurs (P) pour un design à vérifier (D), comprenant : - collecter, par un module de données (40), des données brutes ayant trait au design et extraire, à partir des données brutes, une pluralité de caractéristiques d’entrée (F); - transformer, par un module transformateur (50), la pluralité de caractéristiques d’entrée, dans lequel la transformation de la pluralité de caractéristiques d’entrée comprend appliquer une régression linéaire à la pluralité de caractéristiques d’entrée (F) ; - classifier, en utilisant un module de classification (60), les démonstrateurs de la pluralité de démonstrateurs, dans lequel le module de classification (60) est adapté pour prédire un meilleur démonstrateur (P), étant le démonstrateur qui résout une propriété plus vite que les démonstrateurs restants de la pluralité de démonstrateurs (P), et sélectionner un ou plusieurs démonstrateurs sur la base des résultats de la classification.A computer-implemented method of selecting a demonstrator from among a plurality of demonstrators (P) for a design to be verified (D), comprising: - collecting, by a data module (40), raw data relating to designing and extracting, from the raw data, a plurality of input characteristics (F); transforming, by a transformer module (50), the plurality of input characteristics, wherein the transformation of the plurality of input characteristics comprises applying a linear regression to the plurality of input characteristics (F); classifying, using a classification module (60), the demonstrators of the plurality of demonstrators, in which the classification module (60) is adapted to predict a better demonstrator (P), being the demonstrator that solves a property faster the remaining demonstrators of the plurality of demonstrators (P), and select one or more demonstrators based on the results of the classification. 2. Procédé selon la revendication 1, dans lequel l’étape d’extraire une pluralité de caractéristiques (F) comprend l’étape d’extraire des paramètres de design (DP) en tant que caractéristiques d’entrée (F) pour le module transformateur (50).The method of claim 1, wherein the step of extracting a plurality of characteristics (F) comprises the step of retrieving design parameters (DP) as input characteristics (F) for the module transformer (50). 3. Procédé selon la revendication 1, dans lequel la transformation des données collectées comprend retirer la corrélation croisée des caractéristiques d’entrée (F).The method of claim 1, wherein the transformation of the collected data comprises removing the cross-correlation of the input characteristics (F). 4. Procédé selon la revendication 3, dans lequel l’étape de retirer la corrélation croisée des caractéristiques d’entrée (F) comprend : - standardiser, par un module scalaire standard (52), les caractéristiques d’entrée de la pluralité de caractéristiques d’entrées (F) à une variance unitaire à des caractéristiques standardisées (F) ; et - appliquer, par un module d’analyse de composant principal (54), unleUli transformation orthogonale en tant qu’analyse de composant principal aux caractéristiques standardisées (F), et garder les composants résultant de l’analyse de composant principal ayant un ratio significatif de variance expliquée.The method of claim 3, wherein the step of removing the cross-correlation of the input characteristics (F) comprises: standardizing, by a standard scalar module (52), the input characteristics of the plurality of characteristics input (F) to a unit variance to standardized characteristics (F); and applying, by a main component analysis module (54), an orthogonal transformation as a main component analysis with standardized characteristics (F), and keeping the components resulting from the main component analysis having a ratio significant variance explained. 5. Procédé selon la revendication 1, dans lequel le module de classification (60) est pré entraîné en collectant un ensemble de données d’entrainement ou d’apprentissage ayant trait à un ensemble de designs (D), paramètres de design et durées d’exécution pour une pluralité de démonstrateurs, transformer l’ensemble de données d’entrainement ou d’apprentissage, et classifier les démonstrateurs en utilisant l’ensemble transformé de données d’entrainement ou d’apprentissage.The method of claim 1, wherein the classification module (60) is pre-trained by collecting a set of training or training data relating to a set of designs (D), design parameters and durations of time. performing for a plurality of demonstrators, transforming the training or training data set, and classifying the demonstrators using the transformed set of training or learning data. 6. Procédé selon la revendication 1, dans lequel l’étape de classification comprend l’attribution d’une probabilité à un démonstrateur, pour une propriété, en utilisant une régression logistique multi classe basée sur des caractéristiques de design et un résultat attendu de la propriété.The method of claim 1, wherein the classifying step comprises assigning a probability to a demonstrator, for a property, using a multi-class logistic regression based on design features and an expected result of the property. 7. Procédé selon la revendication 1, comprenant en outre configurer les démonstrateurs de la pluralité de démonstrateurs en utilisant une dépendance de modèle de régression linéaire d’une taille d’étape sur le design et une durée attendue pour la vérification de l’assertion par le démonstrateur.The method of claim 1, further comprising configuring the demonstrators of the plurality of demonstrators using a linear regression model dependence of a step size on the design and an expected time for verification of the assertion by the demonstrator. 8. Procédé selon la revendication 7, dans lequel un démonstrateur est configuré en utilisant un modèle de régression LASSO ayant des variables dépendantes et des variables indépendantes, dans lequel la variable dépendante du modèle de régression est un nombre d’étapes et la variable indépendantes du modèle de régression sont des statistiques de design et temps de vérification attendu.The method of claim 7, wherein a demonstrator is configured using a LASSO regression model having dependent variables and independent variables, wherein the dependent variable of the regression model is a number of steps and the variable independent of the regression model are design statistics and expected audit time. 9. Procédé selon la revendication 1, comprenant en outre grouper des démonstrateurs dans une pluralité de groupes de démonstrateur et grouper des propriétés dans une pluralité de propriété, sur la base des durées d’exécution pour chaque propriété et démonstrateur.The method of claim 1, further comprising grouping demonstrators into a plurality of demonstrator groups and grouping properties into a plurality of properties, based on the execution times for each property and demonstrator. 10. Procédé selon la revendication 9, comprenant attribuer un groupe de démonstrateur à un groupe de propriété, en particulier dans lequel le groupe de démonstrateur attribué de la pluralité de groupes de démonstrateur a une somme minimum de durébu d’exécution.The method of claim 9, including assigning a demonstrator group to a property group, in particular wherein the assigned demonstrator group of the plurality of demonstrator groups has a minimum amount of run time. 11. Procédé selon la revendication 10, comprenant sélectionner, pour chaque groupe de démonstrateur attribué, le démonstrateur du groupe de démonstrateur ayant les durées d’exécution minimum sur les propriétés du groupe de propriété auquel le groupe de démonstrateur attribué est attribué.The method of claim 10, comprising selecting, for each assigned demonstrator group, the demonstrator group demonstrator having the minimum execution times on the properties of the property group to which the assigned demo group is assigned. 12. Procédé selon la revendication 10, comprenant en outre exécuter les démonstrateurs sélectionnés des groupes de démonstrateur attribués en parallèle.The method of claim 10, further comprising executing the selected demonstrators of the parallel assigned demonstrator groups. 13. Produit programme d’ordinateur comprenant un support pour ordinateur non transitoire avec un programme d’ordinateur qui y est mémorisé pour amener un ordinateur à réaliser les étapes d’un procédé selon la revendication 1.A computer program product comprising a non-transitory computer support with a computer program stored therein for causing a computer to perform the steps of a method according to claim 1.
LU100491A 2017-10-23 2017-10-23 Method of selecting a prover LU100491B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
LU100491A LU100491B1 (en) 2017-10-23 2017-10-23 Method of selecting a prover
EP18202161.8A EP3474196A1 (en) 2017-10-23 2018-10-23 Method of selecting a prover

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
LU100491A LU100491B1 (en) 2017-10-23 2017-10-23 Method of selecting a prover

Publications (1)

Publication Number Publication Date
LU100491B1 true LU100491B1 (en) 2019-05-22

Family

ID=60935916

Family Applications (1)

Application Number Title Priority Date Filing Date
LU100491A LU100491B1 (en) 2017-10-23 2017-10-23 Method of selecting a prover

Country Status (1)

Country Link
LU (1) LU100491B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140330758A1 (en) * 2013-05-03 2014-11-06 Synopsys, Inc. Formal verification result prediction

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140330758A1 (en) * 2013-05-03 2014-11-06 Synopsys, Inc. Formal verification result prediction

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BISCHL BERND ET AL: "ASlib: A benchmark library for algorithm selection", ARTIFICIAL INTELLIGENCE, ELSEVIER SCIENCE PUBLISHER B.V., AMSTERDAM, NL, vol. 237, 8 April 2016 (2016-04-08), pages 41 - 58, XP029545370, ISSN: 0004-3702, DOI: 10.1016/J.ARTINT.2016.04.003 *
MARIUS LINDAUER ET AL: "AutoFolio: An Automatically Configured Algorithm Selector", JOURNAL OF ARTIFICIAL INTELLIGENCE RESEARCH, 1 August 2015 (2015-08-01), pages 745 - 778, XP055416536, Retrieved from the Internet <URL:https://jair.org/media/4726/live-4726-8840-jair.pdf> [retrieved on 20180702] *
PRASAD MUKUL R ET AL: "A survey of recent advances in SAT-based formal verification", INTERNATIONAL JOURNAL ON SOFTWARE TOOLS FOR TECHNOLOGY TRANSFER, SPRINGER, BERLIN, DE, vol. 7, no. 2, 25 January 2005 (2005-01-25), pages 156 - 173, XP035890945, ISSN: 1433-2779, [retrieved on 20050125], DOI: 10.1007/S10009-004-0183-4 *

Similar Documents

Publication Publication Date Title
US10733344B2 (en) Method of selecting a prover
US11308418B2 (en) Automatic selection of variables for a machine-learning model
US20170330078A1 (en) Method and system for automated model building
Liquet et al. Bayesian variable selection regression of multivariate responses for group data
Xie et al. FIST: A feature-importance sampling and tree-based method for automatic design flow parameter tuning
US11556785B2 (en) Generation of expanded training data contributing to machine learning for relationship data
Stoyanov et al. Predictive analytics methodology for smart qualification testing of electronic components
WO2017039684A1 (en) Classifier
JP6658507B2 (en) Load estimation system, information processing device, load estimation method, and computer program
EP3474196A1 (en) Method of selecting a prover
US10803218B1 (en) Processor-implemented systems using neural networks for simulating high quantile behaviors in physical systems
Shi et al. Deepgate2: Functionality-aware circuit representation learning
Doddaiah et al. Class-specific explainability for deep time series classifiers
KR20200092989A (en) Production organism identification using unsupervised parameter learning for outlier detection
Mahmoud et al. Early diagnosis and personalised treatment focusing on synthetic data modelling: novel visual learning approach in healthcare
Ferrero et al. Using decision trees supported by data mining to improve function-based design
LU100491B1 (en) Method of selecting a prover
US11790139B1 (en) Predicting a performance metric based on features of a circuit design and explaining marginal contributions of the features to the prediction
Ganesan et al. A case for generalizable DNN cost models for mobile devices
Koljonen Comparison of nearest point algorithms by genetic algorithms
Wilson Methods for clustering data with missing values
Premalatha et al. Software Fault Prediction and Classification using Cost based Random Forest in Spiral Life Cycle Model.
Bogaerts et al. A fast inverse approach for the quantification of set-theoretical uncertainty
Fresse et al. Methodological framework for noc resources dimensioning on fpgas
Raamesh et al. Data mining based optimization of test cases to enhance the reliability of the testing

Legal Events

Date Code Title Description
FG Patent granted

Effective date: 20190522