Integration
This commit is contained in:
parent
0c1e540883
commit
2808f0bd8c
4 changed files with 10 additions and 1 deletions
|
@ -23,6 +23,7 @@ let doit filename = begin
|
|||
| "constants" -> if !Options.disjunction then ConstDisjIterator.iterate cfg else ConstIterator.iterate cfg
|
||||
| "congruence" ->if !Options.disjunction then CongDisjIterator.iterate cfg else CongIterator.iterate cfg
|
||||
| "product" -> if !Options.disjunction then RPDisjIterator.iterate cfg else RPIterator.iterate cfg
|
||||
| "karr" -> if !Options.disjunction then KarrDisjIterator.iterate cfg else KarrIterator.iterate cfg
|
||||
| _ -> failwith "No valid iterator specified" in
|
||||
Format.printf "@[<v 0>Failed asserts :@ %a@]" pp_asserts f end
|
||||
|
||||
|
|
5
examples/karr/karr.c
Normal file
5
examples/karr/karr.c
Normal file
|
@ -0,0 +1,5 @@
|
|||
void main() {
|
||||
int x = rand(0,10);
|
||||
int y = 3*x;
|
||||
assert(y == 3*x);
|
||||
}
|
|
@ -80,6 +80,7 @@ open Naked
|
|||
open Value_domain
|
||||
open Congruence
|
||||
open Reduced_product
|
||||
open Karr
|
||||
|
||||
module IntervalxCongr : CROSS_REDUCTION = struct
|
||||
module V = AddTopBot(Interval)
|
||||
|
@ -113,10 +114,11 @@ module SignIterator = Iterator(SimpleIterable(NonRelational(AddTopBot(Signs))))
|
|||
module IntervalIterator = Iterator(SimpleIterable(NonRelational(AddTopBot(Interval))))
|
||||
module CongIterator = Iterator(SimpleIterable(NonRelational(AddTopBot(Congruence))))
|
||||
module RPIterator = Iterator(SimpleIterable(NonRelational(ReducedProduct(IntervalxCongr))))
|
||||
module KarrIterator = Iterator(SimpleIterable(Karr))
|
||||
|
||||
module ConstDisjIterator = Iterator(DisjunctiveIterable(NonRelational(AddTopBot(Constants))))
|
||||
module SignDisjIterator = Iterator(DisjunctiveIterable(NonRelational(AddTopBot(Signs))))
|
||||
module IntervalDisjIterator = Iterator(DisjunctiveIterable(NonRelational(AddTopBot(Interval))))
|
||||
module CongDisjIterator = Iterator(DisjunctiveIterable(NonRelational(AddTopBot(Congruence))))
|
||||
module RPDisjIterator = Iterator(DisjunctiveIterable(NonRelational(ReducedProduct(IntervalxCongr))))
|
||||
|
||||
module KarrDisjIterator = Iterator(DisjunctiveIterable(Karr))
|
||||
|
|
|
@ -272,6 +272,7 @@ treat_examples "interval_loop" "Interval loops" "--domain interval" ""
|
|||
treat_examples "sign" "Sign and misc." "--domain signs" ""
|
||||
treat_examples "congruence" "Congruence operations" "--domain congruence" ""
|
||||
treat_examples "disjunction" "Disjunctive analysis" "--domain congruence" ""
|
||||
treat_examples "karr" "Karr's domain" "--domain karr" ""
|
||||
echo "</table>" >> $index_html
|
||||
echo "</body>" >> $index_html
|
||||
echo "</html>" >> $index_html
|
||||
|
|
Loading…
Reference in a new issue