|
1 | 1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
2 | 2 | <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> |
3 | 3 | <properties> |
| 4 | +<!-- null is the special singleton object in Sort "Null" --> |
| 5 | +<entry key="null.dl"> |
| 6 | + <![CDATA[ \forall any x; ((Null::instance(x))<<Trigger>> = TRUE -> x = null) ]]> |
| 7 | +</entry> |
| 8 | +<!-- The function symbols required for Java arithmetics --> |
| 9 | +<entry key="javaMulInt.taclets"> |
| 10 | + translateJavaMulInt |
| 11 | +</entry> |
| 12 | + |
| 13 | +<entry key="javaAddInt.taclets"> |
| 14 | + translateJavaAddInt |
| 15 | +</entry> |
| 16 | + |
4 | 17 | <entry key="seqGetOutside.dl"><![CDATA[ |
5 | 18 | \forall int i; \forall Seq s; ( i < 0 | i >= seqLen(s) -> any::seqGet(s, i)<<Trigger>> = seqGetOutside ) |
6 | 19 | ]]></entry> |
|
54 | 67 | seqLen(seqSub(seq, from, to)<<Trigger>>) |
55 | 68 | = \if(from < to)\then(to - from)\else(0) |
56 | 69 | ]]></entry> |
| 70 | +<!-- The function symbols required for Java arithmetics --> |
| 71 | +<entry key="prec.taclets"> |
| 72 | + precOfInt |
| 73 | +</entry> |
| 74 | +<entry key="empty.dl"> |
| 75 | + \forall Object o; \forall Field f; ( elementOf(o,f,empty)<<Trigger>> <-> false ) |
| 76 | +</entry> |
| 77 | + |
| 78 | +<entry key="union.dl"> |
| 79 | + \forall Object o; \forall Field f; \forall LocSet l1; \forall LocSet l2; |
| 80 | + ( elementOf(o, f, union(l1, l2))<<Trigger>> <-> elementOf(o,f,l1) | elementOf(o,f,l2) ) |
| 81 | +</entry> |
| 82 | + |
| 83 | +<entry key="allLocs.dl"> |
| 84 | + \forall Object o; \forall Field f; ( elementOf(o,f,allLocs)<<Trigger>> <-> true ) |
| 85 | +</entry> |
| 86 | + |
| 87 | +<entry key="freshLocs.dl"> |
| 88 | + \forall Heap h; \forall Object o; \forall Field f; |
| 89 | + ( elementOf(o,f,freshLocs(h))<<Trigger>> <-> |
| 90 | + o != null & !boolean::select(h,o,java.lang.Object::<created>)=TRUE ) |
| 91 | +</entry> |
| 92 | + |
| 93 | +<entry key="singleton.dl"> |
| 94 | + \forall Object o; \forall Field f; \forall Object o2; \forall Field f2; |
| 95 | + ( elementOf(o,f, singleton(o2,f2))<<Trigger>> <-> |
| 96 | + o = o2 & f = f2 ) |
| 97 | +</entry> |
| 98 | + |
| 99 | +<entry key="allFields.dl"><![CDATA[ |
| 100 | + \forall Object o; \forall Field f; \forall Object o2; |
| 101 | + ( elementOf(o,f, allFields(o2))<<Trigger>> <-> |
| 102 | + o = o2 ) |
| 103 | +]]></entry> |
| 104 | + |
| 105 | +<entry key="arrayRange.dl"><![CDATA[ |
| 106 | + \forall Object o; \forall Object o2; \forall Field f; \forall int lo; \forall int hi; |
| 107 | + (elementOf(o,f, arrayRange(o2, lo, hi))<<Trigger>> <-> |
| 108 | + o = o2 & \exists int iv; (f = arr(iv) & lo <= iv & iv <= hi)) |
| 109 | +]]></entry> |
| 110 | + |
57 | 111 | <entry key="store.dl"><![CDATA[ |
58 | 112 | \forall Heap h; \forall Object o; \forall Field f; \forall Object o2; \forall Field f2; \forall any v; |
59 | 113 | any::select(store(h,o,f,v), o2, f2)<<Trigger>> = |
|
98 | 152 | ]]></entry> |
99 | 153 |
|
100 | 154 | <!-- to be done: all objects inside location sets in fields in wellFormed heaps are created or null --> |
101 | | -<!-- null is the special singleton object in Sort "Null" --> |
102 | | -<entry key="null.dl"> |
103 | | - <![CDATA[ \forall any x; ((Null::instance(x))<<Trigger>> = TRUE -> x = null) ]]> |
104 | | -</entry> |
105 | | -<!-- The function symbols required for Java arithmetics --> |
106 | | -<entry key="javaMulInt.taclets"> |
107 | | - translateJavaMulInt |
108 | | -</entry> |
109 | | - |
110 | | -<entry key="javaAddInt.taclets"> |
111 | | - translateJavaAddInt |
112 | | -</entry> |
113 | | - |
114 | | -<!-- The function symbols required for Java arithmetics --> |
115 | | -<entry key="prec.taclets"> |
116 | | - precOfInt |
117 | | -</entry> |
118 | | -<entry key="empty.dl"> |
119 | | - \forall Object o; \forall Field f; ( elementOf(o,f,empty)<<Trigger>> <-> false ) |
120 | | -</entry> |
121 | | - |
122 | | -<entry key="union.dl"> |
123 | | - \forall Object o; \forall Field f; \forall LocSet l1; \forall LocSet l2; |
124 | | - ( elementOf(o, f, union(l1, l2))<<Trigger>> <-> elementOf(o,f,l1) | elementOf(o,f,l2) ) |
125 | | -</entry> |
126 | | - |
127 | | -<entry key="allLocs.dl"> |
128 | | - \forall Object o; \forall Field f; ( elementOf(o,f,allLocs)<<Trigger>> <-> true ) |
129 | | -</entry> |
130 | | - |
131 | | -<entry key="freshLocs.dl"> |
132 | | - \forall Heap h; \forall Object o; \forall Field f; |
133 | | - ( elementOf(o,f,freshLocs(h))<<Trigger>> <-> |
134 | | - o != null & !boolean::select(h,o,java.lang.Object::<created>)=TRUE ) |
135 | | -</entry> |
136 | | - |
137 | | -<entry key="singleton.dl"> |
138 | | - \forall Object o; \forall Field f; \forall Object o2; \forall Field f2; |
139 | | - ( elementOf(o,f, singleton(o2,f2))<<Trigger>> <-> |
140 | | - o = o2 & f = f2 ) |
141 | | -</entry> |
142 | | - |
143 | | -<entry key="allFields.dl"><![CDATA[ |
144 | | - \forall Object o; \forall Field f; \forall Object o2; |
145 | | - ( elementOf(o,f, allFields(o2))<<Trigger>> <-> |
146 | | - o = o2 ) |
147 | | -]]></entry> |
148 | | - |
149 | | -<entry key="arrayRange.dl"><![CDATA[ |
150 | | - \forall Object o; \forall Object o2; \forall Field f; \forall int lo; \forall int hi; |
151 | | - (elementOf(o,f, arrayRange(o2, lo, hi))<<Trigger>> <-> |
152 | | - o = o2 & \exists int iv; (f = arr(iv) & lo <= iv & iv <= hi)) |
153 | | -]]></entry> |
154 | | - |
155 | 155 | </properties> |
0 commit comments