adtProgramDecompositionRules.key

Taclets

Enabled under choices: programRules:Java

setUnionUnfoldLeft

setUnionUnfoldLeft { \schemaVar \program Variable #v , #vLeftNew ; \schemaVar \program NonSimpleExpression #nseLeft ; \schemaVar \program Expression #eRight ; \schemaVar \formula post ; \find ( \modality{#allmodal}{.. #v = \set_union(#nseLeft, #eRight); ...}\endmodality ( post ) ) \varcond \replacewith ( \modality{#allmodal}{.. #typeof(#nseLeft) #vLeftNew=#nseLeft; #v = \set_union(#vLeftNew, #eRight); ...}\endmodality ( post ) ) \heuristics (simplify_prog ) \displayname "setUnionUnfold" };defined in: adtProgramDecompositionRules.key Line: 15 Offset :4

setUnionUnfoldRight

setUnionUnfoldRight { \schemaVar \program Variable #v , #vRightNew ; \schemaVar \program SimpleExpression #seLeft ; \schemaVar \program NonSimpleExpression #nseRight ; \schemaVar \formula post ; \find ( \modality{#allmodal}{.. #v = \set_union(#seLeft, #nseRight); ...}\endmodality ( post ) ) \varcond \replacewith ( \modality{#allmodal}{.. #typeof(#nseRight) #vRightNew=#nseRight; #v = \set_union(#seLeft, #vRightNew); ...}\endmodality ( post ) ) \heuristics (simplify_prog ) \displayname "setUnionUnfold" };defined in: adtProgramDecompositionRules.key Line: 28 Offset :4

setIntersectUnfoldLeft

setIntersectUnfoldLeft { \schemaVar \program Variable #v , #vLeftNew ; \schemaVar \program NonSimpleExpression #nseLeft ; \schemaVar \program Expression #eRight ; \schemaVar \formula post ; \find ( \modality{#allmodal}{.. #v = \intersect(#nseLeft, #eRight); ...}\endmodality ( post ) ) \varcond \replacewith ( \modality{#allmodal}{.. #typeof(#nseLeft) #vLeftNew=#nseLeft; #v = \intersect(#vLeftNew, #eRight); ...}\endmodality ( post ) ) \heuristics (simplify_prog ) \displayname "setIntersectUnfold" };defined in: adtProgramDecompositionRules.key Line: 41 Offset :4

setIntersectUnfoldRight

setIntersectUnfoldRight { \schemaVar \program Variable #v , #vRightNew ; \schemaVar \program SimpleExpression #seLeft ; \schemaVar \program NonSimpleExpression #nseRight ; \schemaVar \formula post ; \find ( \modality{#allmodal}{.. #v = \intersect(#seLeft, #nseRight); ...}\endmodality ( post ) ) \varcond \replacewith ( \modality{#allmodal}{.. #typeof(#nseRight) #vRightNew=#nseRight; #v = \intersect(#seLeft, #vRightNew); ...}\endmodality ( post ) ) \heuristics (simplify_prog ) \displayname "setIntersectUnfold" };defined in: adtProgramDecompositionRules.key Line: 54 Offset :4

setMinusUnfoldLeft

setMinusUnfoldLeft { \schemaVar \program Variable #v , #vLeftNew ; \schemaVar \program NonSimpleExpression #nseLeft ; \schemaVar \program Expression #eRight ; \schemaVar \formula post ; \find ( \modality{#allmodal}{.. #v = \set_minus(#nseLeft, #eRight); ...}\endmodality ( post ) ) \varcond \replacewith ( \modality{#allmodal}{.. #typeof(#nseLeft) #vLeftNew=#nseLeft; #v = \set_minus(#vLeftNew, #eRight); ...}\endmodality ( post ) ) \heuristics (simplify_prog ) \displayname "setMinusUnfold" };defined in: adtProgramDecompositionRules.key Line: 67 Offset :4

setMinusUnfoldRight

setMinusUnfoldRight { \schemaVar \program Variable #v , #vRightNew ; \schemaVar \program SimpleExpression #seLeft ; \schemaVar \program NonSimpleExpression #nseRight ; \schemaVar \formula post ; \find ( \modality{#allmodal}{.. #v = \set_minus(#seLeft, #nseRight); ...}\endmodality ( post ) ) \varcond \replacewith ( \modality{#allmodal}{.. #typeof(#nseRight) #vRightNew=#nseRight; #v = \set_minus(#seLeft, #vRightNew); ...}\endmodality ( post ) ) \heuristics (simplify_prog ) \displayname "setMinusUnfold" };defined in: adtProgramDecompositionRules.key Line: 80 Offset :4

singletonUnfold

singletonUnfold { \schemaVar \program Variable #v , #a , #vObjNew ; \schemaVar \program NonSimpleExpression #nseObj ; \schemaVar \formula post ; \find ( \modality{#allmodal}{.. #v = \singleton(#nseObj.#a); ...}\endmodality ( post ) ) \varcond \replacewith ( \modality{#allmodal}{.. #typeof(#nseObj) #vObjNew=#nseObj; #v = \singleton(#vObjNew.#a); ...}\endmodality ( post ) ) \heuristics (simplify_prog ) \displayname "singletonUnfold" };defined in: adtProgramDecompositionRules.key Line: 93 Offset :4

singletonAssignment

singletonAssignment { \schemaVar \program Variable #v , #a ; \schemaVar \program SimpleExpression #seObj ; \schemaVar \formula post ; \find ( \modality{#allmodal}{.. #v = \singleton(#seObj.#a); ...}\endmodality ( post ) ) \replacewith ( { #v := singleton ( #seObj , #memberPVToField ( #a ) ) } \modality{#allmodal}{.. ...}\endmodality ( post ) ) \heuristics (simplify_prog ) \displayname "singletonAssignment" };defined in: adtProgramDecompositionRules.key Line: 106 Offset :4

allObjectsAssignment

allObjectsAssignment { \schemaVar \program Variable #v , #a ; \schemaVar \program Expression #eObj ; \schemaVar \formula post ; \find ( \modality{#allmodal}{.. #v = \all_objects(#eObj.#a); ...}\endmodality ( post ) ) \replacewith ( { #v := allObjects ( #memberPVToField ( #a ) ) } \modality{#allmodal}{.. ...}\endmodality ( post ) ) \heuristics (simplify_prog ) \displayname "allObjectsAssignment" };defined in: adtProgramDecompositionRules.key Line: 118 Offset :4

allFieldsUnfold

allFieldsUnfold { \schemaVar \program Variable #v , #vObjNew ; \schemaVar \program NonSimpleExpression #nseObj ; \schemaVar \formula post ; \find ( \modality{#allmodal}{.. #v = \all_fields(#nseObj); ...}\endmodality ( post ) ) \varcond \replacewith ( \modality{#allmodal}{.. #typeof(#nseObj) #vObjNew=#nseObj; #v = \all_fields(#vObjNew); ...}\endmodality ( post ) ) \heuristics (simplify_prog ) \displayname "allFieldsAssignment" };defined in: adtProgramDecompositionRules.key Line: 130 Offset :4

Taclets

Enabled under choices: programRules:Java

seqConcatUnfoldLeft

seqConcatUnfoldLeft { \schemaVar \program Variable #v , #vLeftNew ; \schemaVar \program NonSimpleExpression #nseLeft ; \schemaVar \program Expression #eRight ; \schemaVar \formula post ; \find ( \modality{#allmodal}{.. #v = \seq_concat(#nseLeft, #eRight); ...}\endmodality ( post ) ) \varcond \replacewith ( \modality{#allmodal}{.. #typeof(#nseLeft) #vLeftNew=#nseLeft; #v = \seq_concat(#vLeftNew, #eRight); ...}\endmodality ( post ) ) \heuristics (simplify_prog ) \displayname "seqConcatUnfold" };defined in: adtProgramDecompositionRules.key Line: 148 Offset :4

seqConcatUnfoldRight

seqConcatUnfoldRight { \schemaVar \program Variable #v , #vRightNew ; \schemaVar \program SimpleExpression #seLeft ; \schemaVar \program NonSimpleExpression #nseRight ; \schemaVar \formula post ; \find ( \modality{#allmodal}{.. #v = \seq_concat(#seLeft, #nseRight); ...}\endmodality ( post ) ) \varcond \replacewith ( \modality{#allmodal}{.. #typeof(#nseRight) #vRightNew=#nseRight; #v = \seq_concat(#seLeft, #vRightNew); ...}\endmodality ( post ) ) \heuristics (simplify_prog ) \displayname "seqConcatUnfold" };defined in: adtProgramDecompositionRules.key Line: 161 Offset :4

seqGetUnfoldLeft

seqGetUnfoldLeft { \schemaVar \program Variable #v , #vLeftNew ; \schemaVar \program NonSimpleExpression #nseLeft ; \schemaVar \program Expression #eRight ; \schemaVar \formula post ; \find ( \modality{#allmodal}{.. #v = \seq_get(#nseLeft, #eRight); ...}\endmodality ( post ) ) \varcond \replacewith ( \modality{#allmodal}{.. #typeof(#nseLeft) #vLeftNew=#nseLeft; #v = \seq_get(#vLeftNew, #eRight); ...}\endmodality ( post ) ) \heuristics (simplify_prog ) \displayname "seqGetUnfold" };defined in: adtProgramDecompositionRules.key Line: 174 Offset :4

seqGetUnfoldRight

seqGetUnfoldRight { \schemaVar \program Variable #v , #vRightNew ; \schemaVar \program SimpleExpression #seLeft ; \schemaVar \program NonSimpleExpression #nseRight ; \schemaVar \formula post ; \find ( \modality{#allmodal}{.. #v = \seq_get(#seLeft, #nseRight); ...}\endmodality ( post ) ) \varcond \replacewith ( \modality{#allmodal}{.. #typeof(#nseRight) #vRightNew=#nseRight; #v = \seq_get(#seLeft, #vRightNew); ...}\endmodality ( post ) ) \heuristics (simplify_prog ) \displayname "seqGetUnfold" };defined in: adtProgramDecompositionRules.key Line: 187 Offset :4

seqIndexOfUnfoldLeft

seqIndexOfUnfoldLeft { \schemaVar \program Variable #v , #vLeftNew ; \schemaVar \program NonSimpleExpression #nseLeft ; \schemaVar \program Expression #eRight ; \schemaVar \formula post ; \find ( \modality{#allmodal}{.. #v = \indexOf(#nseLeft, #eRight); ...}\endmodality ( post ) ) \varcond \replacewith ( \modality{#allmodal}{.. #typeof(#nseLeft) #vLeftNew=#nseLeft; #v = \indexOf(#vLeftNew, #eRight); ...}\endmodality ( post ) ) \heuristics (simplify_prog ) \displayname "seqIndexOfUnfold" };defined in: adtProgramDecompositionRules.key Line: 200 Offset :4

seqIndexOfUnfoldRight

seqIndexOfUnfoldRight { \schemaVar \program Variable #v , #vRightNew ; \schemaVar \program SimpleExpression #seLeft ; \schemaVar \program NonSimpleExpression #nseRight ; \schemaVar \formula post ; \find ( \modality{#allmodal}{.. #v = \indexOf(#seLeft, #nseRight); ...}\endmodality ( post ) ) \varcond \replacewith ( \modality{#allmodal}{.. #typeof(#nseRight) #vRightNew=#nseRight; #v = \indexOf(#seLeft, #vRightNew); ...}\endmodality ( post ) ) \heuristics (simplify_prog ) \displayname "seqIndexOfUnfold" };defined in: adtProgramDecompositionRules.key Line: 213 Offset :4

seqSubUnfoldLeft

seqSubUnfoldLeft { \schemaVar \program Variable #v , #vLeftNew ; \schemaVar \program NonSimpleExpression #nseLeft ; \schemaVar \program Expression #eMiddle , #eRight ; \schemaVar \formula post ; \find ( \modality{#allmodal}{.. #v = \seq_sub(#nseLeft, #eMiddle, #eRight); ...}\endmodality ( post ) ) \varcond \replacewith ( \modality{#allmodal}{.. #typeof(#nseLeft) #vLeftNew=#nseLeft; #v = \seq_sub(#vLeftNew, #eMiddle, #eRight); ...}\endmodality ( post ) ) \heuristics (simplify_prog ) \displayname "seqSubUnfold" };defined in: adtProgramDecompositionRules.key Line: 226 Offset :4

seqSubUnfoldMiddle

seqSubUnfoldMiddle { \schemaVar \program Variable #v , #vMiddleNew ; \schemaVar \program SimpleExpression #seLeft ; \schemaVar \program NonSimpleExpression #nseMiddle ; \schemaVar \program Expression #eRight ; \schemaVar \formula post ; \find ( \modality{#allmodal}{.. #v = \seq_sub(#seLeft, #nseMiddle, #eRight); ...}\endmodality ( post ) ) \varcond \replacewith ( \modality{#allmodal}{.. #typeof(#nseMiddle) #vMiddleNew=#nseMiddle; #v = \seq_sub(#seLeft, #vMiddleNew, #eRight); ...}\endmodality ( post ) ) \heuristics (simplify_prog ) \displayname "seqSubUnfold" };defined in: adtProgramDecompositionRules.key Line: 239 Offset :4

seqSubUnfoldRight

seqSubUnfoldRight { \schemaVar \program Variable #v , #vRightNew ; \schemaVar \program SimpleExpression #seLeft , #seMiddle ; \schemaVar \program NonSimpleExpression #nseRight ; \schemaVar \formula post ; \find ( \modality{#allmodal}{.. #v = \seq_sub(#seLeft, #seMiddle, #nseRight); ...}\endmodality ( post ) ) \varcond \replacewith ( \modality{#allmodal}{.. #typeof(#nseRight) #vRightNew=#nseRight; #v = \seq_sub(#seLeft, #seMiddle, #vRightNew); ...}\endmodality ( post ) ) \heuristics (simplify_prog ) \displayname "seqSubUnfold" };defined in: adtProgramDecompositionRules.key Line: 254 Offset :4

seqSingletonUnfold

seqSingletonUnfold { \schemaVar \program Variable #v , #vNew ; \schemaVar \program NonSimpleExpression #nse ; \schemaVar \formula post ; \find ( \modality{#allmodal}{.. #v = \seq_singleton(#nse); ...}\endmodality ( post ) ) \varcond \replacewith ( \modality{#allmodal}{.. #typeof(#nse) #vNew=#nse; #v = \seq_singleton(#vNew); ...}\endmodality ( post ) ) \heuristics (simplify_prog ) \displayname "seqSingletonUnfold" };defined in: adtProgramDecompositionRules.key Line: 267 Offset :4

seqLengthUnfold

seqLengthUnfold { \schemaVar \program Variable #v , #vNew ; \schemaVar \program NonSimpleExpression #nse ; \schemaVar \formula post ; \find ( \modality{#allmodal}{.. #v = \seq_length(#nse); ...}\endmodality ( post ) ) \varcond \replacewith ( \modality{#allmodal}{.. #typeof(#nse) #vNew=#nse; #v = \seq_length(#vNew); ...}\endmodality ( post ) ) \heuristics (simplify_prog ) \displayname "seqLengthUnfold" };defined in: adtProgramDecompositionRules.key Line: 280 Offset :4

seqReverseUnfold

seqReverseUnfold { \schemaVar \program Variable #v , #vNew ; \schemaVar \program NonSimpleExpression #nse ; \schemaVar \formula post ; \find ( \modality{#allmodal}{.. #v = \seq_reverse(#nse); ...}\endmodality ( post ) ) \varcond \replacewith ( \modality{#allmodal}{.. #typeof(#nse) #vNew=#nse; #v = \seq_reverse(#vNew); ...}\endmodality ( post ) ) \heuristics (simplify_prog ) \displayname "seqReverseUnfold" };defined in: adtProgramDecompositionRules.key Line: 293 Offset :4