11# This files contains representation of taclets, which are accepted and revised.
2- # Date: Fri Dec 13 23:01:56 CET 2024
2+ # Date: Mon Mar 03 18:42:58 CET 2025
33
44== abortJavaCardTransactionAPI (abortJavaCardTransactionAPI) =========================================
55abortJavaCardTransactionAPI {
@@ -1906,7 +1906,7 @@ assignment_read_static_attribute {
19061906\sameUpdateLevel\varcond(\hasSort(#sv (program StaticVariable), G), \not \final(#sv (program StaticVariable)))
19071907\replacewith(update-application(elem-update(#v0 (program Variable))(G::select(heap,null,#memberPVToField(#sv))),#allmodal(post)))
19081908\heuristics(simplify_prog_subset, simplify_prog)
1909- Choices: programRules:Java}
1909+ Choices: ( programRules:Java & finalFields:immutable) }
19101910-----------------------------------------------------
19111911== assignment_read_static_attribute_final (assignment_read_static_attribute_final) =========================================
19121912assignment_read_static_attribute_final {
@@ -1916,7 +1916,7 @@ assignment_read_static_attribute_final {
19161916\sameUpdateLevel\varcond(\hasSort(#sv (program StaticVariable), G), \final(#sv (program StaticVariable)))
19171917\replacewith(update-application(elem-update(#v0 (program Variable))(G::final(null,#memberPVToField(#sv))),#allmodal(post)))
19181918\heuristics(simplify_prog_subset, simplify_prog)
1919- Choices: programRules:Java}
1919+ Choices: ( programRules:Java & finalFields:immutable) }
19201920-----------------------------------------------------
19211921== assignment_read_static_attribute_with_variable_prefix (assignment) =========================================
19221922assignment_read_static_attribute_with_variable_prefix {
@@ -7278,6 +7278,13 @@ equal_literals {
72787278\heuristics(simplify_literals)
72797279Choices: true}
72807280-----------------------------------------------------
7281+ == equalityOfSingleton (equalityOfSingleton) =========================================
7282+ equalityOfSingleton {
7283+ \find(equals(singleton(o1,f1),singleton(o2,f2)))
7284+ \replacewith(and(equals(o1,o2),equals(f1,f2)))
7285+ \heuristics(simplify)
7286+ Choices: programRules:Java}
7287+ -----------------------------------------------------
72817288== equalityToElementOf (equalityToElementOf) =========================================
72827289equalityToElementOf {
72837290\find(equals(s,s2))
@@ -15150,6 +15157,14 @@ reference_type_cast {
1515015157\heuristics(simplify_prog)
1515115158Choices: (programRules:Java & runtimeExceptions:ban)}
1515215159-----------------------------------------------------
15160+ == referencedObjectIsCreatedRighFinalEQ (referencedObjectIsCreatedRighFinalEQ) =========================================
15161+ referencedObjectIsCreatedRighFinalEQ {
15162+ \assumes ([equals(deltaObject::final(o,f),EQ)]==>[equals(EQ,null)])
15163+ \find(==>equals(boolean::select(h,EQ,java.lang.Object::<created>),TRUE))
15164+ \add []==>[or(equals(boolean::select(h,o,java.lang.Object::<created>),TRUE),equals(o,null))]
15165+ \heuristics(concrete)
15166+ Choices: programRules:Java}
15167+ -----------------------------------------------------
1515315168== referencedObjectIsCreatedRight (referencedObjectIsCreatedRight) =========================================
1515415169referencedObjectIsCreatedRight {
1515515170\assumes ([]==>[equals(deltaObject::select(h,o,f),null)])
@@ -15166,6 +15181,14 @@ referencedObjectIsCreatedRightEQ {
1516615181\heuristics(concrete)
1516715182Choices: programRules:Java}
1516815183-----------------------------------------------------
15184+ == referencedObjectIsCreatedRightFinal (referencedObjectIsCreatedRightFinal) =========================================
15185+ referencedObjectIsCreatedRightFinal {
15186+ \assumes ([]==>[equals(deltaObject::final(o,f),null)])
15187+ \find(==>equals(boolean::select(h,deltaObject::final(o,f),java.lang.Object::<created>),TRUE))
15188+ \replacewith([]==>[or(equals(boolean::select(h,o,java.lang.Object::<created>),TRUE),equals(o,null))])
15189+ \heuristics(simplify_enlarging)
15190+ Choices: programRules:Java}
15191+ -----------------------------------------------------
1516915192== regExAxiom (regExAxiom) =========================================
1517015193regExAxiom {
1517115194\find(match(regEx(stringAsPattern),string))
0 commit comments