10
10
11
11
#include < util/arith_tools.h>
12
12
#include < util/format_expr.h>
13
+ #include < util/json_irep.h>
14
+ #include < util/message.h>
13
15
#include < util/namespace.h>
14
16
#include < util/replace_expr.h>
15
17
#include < util/std_expr.h>
16
18
#include < util/std_types.h>
17
- #include < util/json_irep.h>
18
- #include < util/message.h>
19
+
19
20
#include < util/ui_message.h>
20
21
21
22
#include < solvers/prop/prop.h>
@@ -31,7 +32,9 @@ arrayst::arrayst(
31
32
propt &_prop,
32
33
message_handlert &_message_handler,
33
34
bool _get_array_constraints)
34
- : equalityt(_prop, _message_handler), ns(_ns), log(_message_handler),
35
+ : equalityt(_prop, _message_handler),
36
+ ns(_ns),
37
+ log(_message_handler),
35
38
message_handler(_message_handler)
36
39
{
37
40
lazy_arrays = false ; // will be set to true when --refine is used
@@ -371,8 +374,8 @@ void arrayst::add_array_Ackermann_constraints()
371
374
lazy_constraintt lazy (lazy_typet::ARRAY_ACKERMANN,
372
375
implies_exprt (literal_exprt (indices_equal_lit), values_equal));
373
376
add_array_constraint (lazy, true ); // added lazily
374
- array_constraints_map[
375
- constraint_typet::ARRAY_ACKERMANN]. push_back ( lazy.lazy );
377
+ array_constraints_map[constraint_typet::ARRAY_ACKERMANN]. push_back (
378
+ lazy.lazy );
376
379
377
380
#if 0 // old code for adding, not significantly faster
378
381
prop.lcnf(!indices_equal_lit, convert(values_equal));
@@ -459,8 +462,8 @@ void arrayst::add_array_constraints_equality(
459
462
// equality constraints are not added lazily
460
463
// convert must be done to guarantee correct update of the index_set
461
464
prop.lcnf (!array_equality.l , convert (equality_expr));
462
- array_constraints_map[
463
- constraint_typet::ARRAY_EQUALITY]. push_back ( equality_expr);
465
+ array_constraints_map[constraint_typet::ARRAY_EQUALITY]. push_back (
466
+ equality_expr);
464
467
}
465
468
}
466
469
@@ -521,8 +524,8 @@ void arrayst::add_array_constraints(
521
524
lazy_constraintt lazy (lazy_typet::ARRAY_TYPECAST,
522
525
equal_exprt (index_expr1, index_expr2));
523
526
add_array_constraint (lazy, false ); // added immediately
524
- array_constraints_map[
525
- constraint_typet::ARRAY_TYPECAST]. push_back ( lazy.lazy );
527
+ array_constraints_map[constraint_typet::ARRAY_TYPECAST]. push_back (
528
+ lazy.lazy );
526
529
}
527
530
}
528
531
else if (expr.id ()==ID_index)
@@ -561,8 +564,7 @@ void arrayst::add_array_constraints_with(
561
564
lazy_constraintt lazy (
562
565
lazy_typet::ARRAY_WITH, equal_exprt (index_expr, value));
563
566
add_array_constraint (lazy, false ); // added immediately
564
- array_constraints_map[
565
- constraint_typet::ARRAY_WITH].push_back (lazy.lazy );
567
+ array_constraints_map[constraint_typet::ARRAY_WITH].push_back (lazy.lazy );
566
568
567
569
updated_indices.insert (index );
568
570
}
@@ -598,8 +600,8 @@ void arrayst::add_array_constraints_with(
598
600
literal_exprt (guard_lit)));
599
601
600
602
add_array_constraint (lazy, false ); // added immediately
601
- array_constraints_map[
602
- constraint_typet::ARRAY_WITH_OTHER]. push_back ( lazy.lazy );
603
+ array_constraints_map[constraint_typet::ARRAY_WITH_OTHER]. push_back (
604
+ lazy.lazy );
603
605
604
606
#if 0 // old code for adding, not significantly faster
605
607
{
@@ -695,8 +697,7 @@ void arrayst::add_array_constraints_array_of(
695
697
lazy_constraintt lazy (
696
698
lazy_typet::ARRAY_OF, equal_exprt (index_expr, expr.what ()));
697
699
add_array_constraint (lazy, false ); // added immediately
698
- array_constraints_map[
699
- constraint_typet::ARRAY_OF].push_back (lazy.lazy );
700
+ array_constraints_map[constraint_typet::ARRAY_OF].push_back (lazy.lazy );
700
701
}
701
702
}
702
703
@@ -732,8 +733,8 @@ void arrayst::add_array_constraints_array_constant(
732
733
lazy_constraintt lazy{lazy_typet::ARRAY_CONSTANT,
733
734
equal_exprt{index_expr, v}};
734
735
add_array_constraint (lazy, false ); // added immediately
735
- array_constraints_map[
736
- constraint_typet::ARRAY_CONSTANT]. push_back ( lazy.lazy );
736
+ array_constraints_map[constraint_typet::ARRAY_CONSTANT]. push_back (
737
+ lazy.lazy );
737
738
}
738
739
else
739
740
{
@@ -776,8 +777,8 @@ void arrayst::add_array_constraints_array_constant(
776
777
implies_exprt{index_constraint,
777
778
equal_exprt{index_expr, operands[range.first ]}}};
778
779
add_array_constraint (lazy, true ); // added lazily
779
- array_constraints_map[
780
- constraint_typet::ARRAY_NON_CONSTANT]. push_back ( lazy.lazy );
780
+ array_constraints_map[constraint_typet::ARRAY_NON_CONSTANT]. push_back (
781
+ lazy.lazy );
781
782
}
782
783
}
783
784
}
@@ -803,8 +804,8 @@ void arrayst::add_array_constraints_comprehension(
803
804
equal_exprt (index_expr, comprehension_body));
804
805
805
806
add_array_constraint (lazy, false ); // added immediately
806
- array_constraints_map[
807
- constraint_typet::ARRAY_COMPREHENSION]. push_back ( lazy.lazy );
807
+ array_constraints_map[constraint_typet::ARRAY_COMPREHENSION]. push_back (
808
+ lazy.lazy );
808
809
}
809
810
}
810
811
@@ -832,8 +833,7 @@ void arrayst::add_array_constraints_if(
832
833
or_exprt (literal_exprt (!cond_lit),
833
834
equal_exprt (index_expr1, index_expr2)));
834
835
add_array_constraint (lazy, false ); // added immediately
835
- array_constraints_map[
836
- constraint_typet::ARRAY_IF_TRUE].push_back (lazy.lazy );
836
+ array_constraints_map[constraint_typet::ARRAY_IF_TRUE].push_back (lazy.lazy );
837
837
838
838
#if 0 // old code for adding, not significantly faster
839
839
prop.lcnf(!cond_lit, convert(equal_exprt(index_expr1, index_expr2)));
@@ -853,8 +853,8 @@ void arrayst::add_array_constraints_if(
853
853
or_exprt (literal_exprt (cond_lit),
854
854
equal_exprt (index_expr1, index_expr2)));
855
855
add_array_constraint (lazy, false ); // added immediately
856
- array_constraints_map[
857
- constraint_typet::ARRAY_IF_FALSE]. push_back ( lazy.lazy );
856
+ array_constraints_map[constraint_typet::ARRAY_IF_FALSE]. push_back (
857
+ lazy.lazy );
858
858
859
859
#if 0 // old code for adding, not significantly faster
860
860
prop.lcnf(cond_lit, convert(equal_exprt(index_expr1, index_expr2)));
@@ -866,30 +866,30 @@ std::string arrayst::enum_to_string(constraint_typet type)
866
866
{
867
867
switch (type)
868
868
{
869
- case constraint_typet::ARRAY_ACKERMANN:
870
- return " arrayAckermann" ;
871
- case constraint_typet::ARRAY_EQUALITY:
872
- return " arrayEquality" ;
873
- case constraint_typet::ARRAY_WITH:
874
- return " arrayWith" ;
875
- case constraint_typet::ARRAY_WITH_OTHER:
876
- return " arrayWithOther" ;
877
- case constraint_typet::ARRAY_IF_TRUE:
878
- return " arrayIfTrue" ;
879
- case constraint_typet::ARRAY_IF_FALSE:
880
- return " arrayIfFalse" ;
881
- case constraint_typet::ARRAY_OF:
882
- return " arrayOf" ;
883
- case constraint_typet::ARRAY_TYPECAST:
884
- return " arrayTypecast" ;
885
- case constraint_typet::ARRAY_CONSTANT:
886
- return " arrayConstant" ;
887
- case constraint_typet::ARRAY_NON_CONSTANT:
888
- return " arrayNonConstant" ;
889
- case constraint_typet::ARRAY_COMPREHENSION:
890
- return " arrayComprehension" ;
891
- default :
892
- UNREACHABLE;
869
+ case constraint_typet::ARRAY_ACKERMANN:
870
+ return " arrayAckermann" ;
871
+ case constraint_typet::ARRAY_EQUALITY:
872
+ return " arrayEquality" ;
873
+ case constraint_typet::ARRAY_WITH:
874
+ return " arrayWith" ;
875
+ case constraint_typet::ARRAY_WITH_OTHER:
876
+ return " arrayWithOther" ;
877
+ case constraint_typet::ARRAY_IF_TRUE:
878
+ return " arrayIfTrue" ;
879
+ case constraint_typet::ARRAY_IF_FALSE:
880
+ return " arrayIfFalse" ;
881
+ case constraint_typet::ARRAY_OF:
882
+ return " arrayOf" ;
883
+ case constraint_typet::ARRAY_TYPECAST:
884
+ return " arrayTypecast" ;
885
+ case constraint_typet::ARRAY_CONSTANT:
886
+ return " arrayConstant" ;
887
+ case constraint_typet::ARRAY_NON_CONSTANT:
888
+ return " arrayNonConstant" ;
889
+ case constraint_typet::ARRAY_COMPREHENSION:
890
+ return " arrayComprehension" ;
891
+ default :
892
+ UNREACHABLE;
893
893
}
894
894
}
895
895
0 commit comments