The methods are partitioned into classes
, which
are themselves partitioned into packages
.
We assume the usual Java naming conventions with fully qualified names,
i.e., a class has a name
and a method has a name
.
We assume the program point sets to be pairwise disjoint.
The program points of the program is the set
.
The program point type indicates whether (entry) a node is the entry point of a method, (seq) a node in which no method call or return takes place, (call) a node from which a method call takes place, or (return) a node in which the execution of the method finishes and control flow returns to the calling method.
For convenience, we introduce the predicates
We further define a predicate
,
which holds if the program point
occurs in a method in a
JavaCard API package
(for standard JavaCard
this corresponds to one of
java.lang,
javacard.framework,
javacard.security or
javacardx.crypto).