Integration

This commit is contained in:
Granahir2 2024-06-09 21:30:20 +02:00
parent 0c1e540883
commit 2808f0bd8c
4 changed files with 10 additions and 1 deletions

View file

@ -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
View file

@ -0,0 +1,5 @@
void main() {
int x = rand(0,10);
int y = 3*x;
assert(y == 3*x);
}

View file

@ -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))

View file

@ -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