Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions alloy/cd/generate.als
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,16 @@ pred flip [c : Change] {
c.add in NonInheritance implies equalLimits [c.add, c.remove]
}

pred flipInheritance [c : Change] {
flip [c]
c.add in Inheritance
}

pred flipNonInheritance [c : Change] {
flip [c]
c.add in NonInheritance
}

pred changedKind [c : Change] {
equalDirection [c.add, c.remove]
not sameKind [c.add, c.remove]
Expand Down
12 changes: 8 additions & 4 deletions example/src/Modelling/CdOd/MatchCdOd/Config.hs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ task2023_14 = MatchCdOdConfig {
RemoveRelationship,
MutateRelationship ChangeKind,
MutateRelationship ChangeLimit,
MutateRelationship Flip
MutateRelationship FlipInheritance,
MutateRelationship FlipNonInheritance
],
classConfig = ClassConfig {
classLimits = (5, 5),
Expand Down Expand Up @@ -82,7 +83,8 @@ task2023_15 = MatchCdOdConfig {
RemoveRelationship,
MutateRelationship ChangeKind,
MutateRelationship ChangeLimit,
MutateRelationship Flip
MutateRelationship FlipInheritance,
MutateRelationship FlipNonInheritance
],
classConfig = ClassConfig {
classLimits = (5, 5),
Expand Down Expand Up @@ -178,7 +180,8 @@ CPU usage: 130%
task2024_18 :: MatchCdOdConfig
task2024_18 = MatchCdOdConfig {
allowedCdMutations = [
MutateRelationship Flip
MutateRelationship FlipInheritance,
MutateRelationship FlipNonInheritance
],
classConfig = ClassConfig {
classLimits = (5, 5),
Expand Down Expand Up @@ -370,7 +373,8 @@ CPU usage: 141%
task2024_58 :: MatchCdOdConfig
task2024_58 = MatchCdOdConfig {
allowedCdMutations = [
MutateRelationship Flip
MutateRelationship FlipInheritance,
MutateRelationship FlipNonInheritance
],
classConfig = ClassConfig {
classLimits = (5, 5),
Expand Down
18 changes: 12 additions & 6 deletions example/src/Modelling/CdOd/RepairCd/Config.hs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ task2023_07 = RepairCdConfig {
RemoveRelationship,
MutateRelationship ChangeKind,
MutateRelationship ChangeLimit,
MutateRelationship Flip
MutateRelationship FlipInheritance,
MutateRelationship FlipNonInheritance
],
allowedProperties = AllowedProperties {
compositionCycles = False,
Expand Down Expand Up @@ -93,7 +94,8 @@ task2023_08 = RepairCdConfig {
RemoveRelationship,
MutateRelationship ChangeKind,
MutateRelationship ChangeLimit,
MutateRelationship Flip
MutateRelationship FlipInheritance,
MutateRelationship FlipNonInheritance
],
allowedProperties = AllowedProperties {
compositionCycles = True,
Expand Down Expand Up @@ -153,7 +155,8 @@ task2024_12 = RepairCdConfig {
allowedCdMutations = [
AddRelationship,
MutateRelationship ChangeKind,
MutateRelationship Flip
MutateRelationship FlipInheritance,
MutateRelationship FlipNonInheritance
],
allowedProperties = AllowedProperties {
compositionCycles = False,
Expand Down Expand Up @@ -212,7 +215,8 @@ task2024_13 :: RepairCdConfig
task2024_13 = RepairCdConfig {
allowedCdMutations = [
MutateRelationship ChangeKind,
MutateRelationship Flip
MutateRelationship FlipInheritance,
MutateRelationship FlipNonInheritance
],
allowedProperties = AllowedProperties {
compositionCycles = True,
Expand Down Expand Up @@ -272,7 +276,8 @@ task2024_55 = RepairCdConfig {
allowedCdMutations = [
AddRelationship,
MutateRelationship ChangeKind,
MutateRelationship Flip
MutateRelationship FlipInheritance,
MutateRelationship FlipNonInheritance
],
allowedProperties = AllowedProperties {
compositionCycles = False,
Expand Down Expand Up @@ -337,7 +342,8 @@ task2025_repeat_12 = RepairCdConfig {
allowedCdMutations = [
AddRelationship,
MutateRelationship ChangeKind,
MutateRelationship Flip
MutateRelationship FlipInheritance,
MutateRelationship FlipNonInheritance
],
allowedProperties = AllowedProperties {
compositionCycles = False,
Expand Down
15 changes: 10 additions & 5 deletions example/src/Modelling/CdOd/SelectValidCd/Config.hs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ task2023_05 = SelectValidCdConfig {
RemoveRelationship,
MutateRelationship ChangeKind,
MutateRelationship ChangeLimit,
MutateRelationship Flip
MutateRelationship FlipInheritance,
MutateRelationship FlipNonInheritance
],
allowedProperties = AllowedProperties {
compositionCycles = True,
Expand Down Expand Up @@ -98,7 +99,8 @@ task2023_06 = SelectValidCdConfig {
RemoveRelationship,
MutateRelationship ChangeKind,
MutateRelationship ChangeLimit,
MutateRelationship Flip
MutateRelationship FlipInheritance,
MutateRelationship FlipNonInheritance
],
allowedProperties = AllowedProperties {
compositionCycles = False,
Expand Down Expand Up @@ -159,7 +161,8 @@ task2024_06 = SelectValidCdConfig {
allowedCdMutations = [
AddRelationship,
MutateRelationship ChangeKind,
MutateRelationship Flip
MutateRelationship FlipInheritance,
MutateRelationship FlipNonInheritance
],
allowedProperties = AllowedProperties {
compositionCycles = True,
Expand Down Expand Up @@ -221,7 +224,8 @@ task2024_07 = SelectValidCdConfig {
AddRelationship,
RemoveRelationship,
MutateRelationship ChangeKind,
MutateRelationship Flip
MutateRelationship FlipInheritance,
MutateRelationship FlipNonInheritance
],
allowedProperties = AllowedProperties {
compositionCycles = False,
Expand Down Expand Up @@ -342,7 +346,8 @@ task2024_51 = SelectValidCdConfig {
allowedCdMutations = [
AddRelationship,
MutateRelationship ChangeKind,
MutateRelationship Flip
MutateRelationship FlipInheritance,
MutateRelationship FlipNonInheritance
],
allowedProperties = AllowedProperties {
compositionCycles = True,
Expand Down
3 changes: 2 additions & 1 deletion src/Modelling/CdOd/CdAndChanges/Transform.hs
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,8 @@ changePredicate allowed = [__i|
mutationConstraint mutation = case mutation of
ChangeLimit -> [iii|changedLimit [c]|]
ChangeKind -> [iii|changedKind [c]|]
Flip -> [iii|flip [c]|]
FlipInheritance -> [iii|flipInheritance [c]|]
FlipNonInheritance -> [iii|flipNonInheritance [c]|]

changes
:: Maybe ClassConfig
Expand Down
Loading
Loading