• Home
Name Date Size #Lines LOC

..--

contexts_merge/12-May-2024-162142

typesystem/12-May-2024-453385

README.mdD12-May-2024863 2920

README.md

1## contexts_merge/
2
3Using Alloy to prove that we may use simple set intersection of reg supertypes during context merge, instead of (more complex) set of least upper bounds.
4And compatibility check operation is changed to:
5```
6bool check(Type typ, TypeSet tset) {
7  for (const auto& t: tset) {
8    if (t <= typ) {
9      return true;
10    }
11  }
12  return false;
13}
14```
15
16### Files
17
18#### contexts_merge/java_typing.als
19
20This file models Java class hierarchy used during verification.
21
22### contexts_merge/check_set_intersection_as_lub.als
23
24This file contains two execution modes:
25
261. `example` - to show models of proper supertypes calculation during context merge and checking of types compatibility.
27
282. `verify` - to verify (search for counterexamples), where supertypes intersection calculation during context merge does not lead to correct checks of compatibility.
29