aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-03-05 13:37:02 -0500
committerLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-03-05 13:37:02 -0500
commitdf12163128073296c4d811fa67b02e37ceb20179 (patch)
tree7509fdd478d6ff3d908d0ab5aa39ed9a8260f0b0
parentBegin handing of scope and fix type definitions. (diff)
downloadVIATRA-Generator-df12163128073296c4d811fa67b02e37ceb20179.tar.gz
VIATRA-Generator-df12163128073296c4d811fa67b02e37ceb20179.tar.zst
VIATRA-Generator-df12163128073296c4d811fa67b02e37ceb20179.zip
Implement type scope handling
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeModule.xtendbinbin1685 -> 1685 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeSetup.xtendbinbin2500 -> 2500 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.VampireLanguageUiModule.xtendbinbin2342 -> 2342 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.VampireLanguageProposalProvider.xtendbinbin1792 -> 1792 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageDescriptionLabelProvider.xtendbinbin1965 -> 1965 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageLabelProvider.xtendbinbin2405 -> 2405 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.VampireLanguageOutlineTreeProvider.xtendbinbin1819 -> 1819 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.VampireLanguageQuickfixProvider.xtendbinbin1786 -> 1786 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageRuntimeModule.xtendbinbin1706 -> 1706 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageStandaloneSetup.xtendbinbin1980 -> 1980 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/formatting2/.VampireLanguageFormatter.xtendbinbin4130 -> 4130 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.VampireLanguageGenerator.xtendbinbin2338 -> 2338 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.VampireLanguageScopeProvider.xtendbinbin1751 -> 1751 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.VampireLanguageValidator.xtendbinbin1736 -> 1736 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.xtend2
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.xtend6
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.xtend69
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.xtend28
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtend24
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbinbin2382 -> 2399 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbinbin5941 -> 5941 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbinbin18004 -> 18006 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbinbin3137 -> 3137 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbinbin3164 -> 3164 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbinbin8246 -> 8245 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbinbin5890 -> 6090 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbinbin9766 -> 10536 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbinbin3223 -> 3223 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtendbinbin2643 -> 2643 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtendbinbin9048 -> 8978 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbinbin1720 -> 1720 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbinbin4908 -> 4908 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbinbin1491 -> 1491 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbinbin1688 -> 1688 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.java2
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java6
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.java73
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.java36
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.java46
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.classpath1
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.project6
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF67
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/build.properties6
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FunctionalArchitectureModel.xmi2
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FunctionalArchitectureModel2.xmi4
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/yakindu/yakindu.ecore26
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/Fam.logicproblem272
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/vampireProblem.tptp95
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/MedicalSystem/vampireProblem.tptp6
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/VampireTest/vampireProblem.tptp8
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml8
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/.gitignore50
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.java53
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/TerminatorAndInformation.java747
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.xtend6
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend8
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.xtend52
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend6
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.vql2
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.xtend10
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend13
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbinbin6811 -> 6358 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbinbin4111 -> 4155 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbinbin4124 -> 4115 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbinbin7276 -> 7655 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbinbin3643 -> 4054 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.java3
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.java8
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.java4
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java30
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbinbin4870 -> 4997 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbinbin687 -> 687 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbinbin6292 -> 6500 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore12
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.java3
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.java4
76 files changed, 1267 insertions, 537 deletions
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeModule.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeModule.xtendbin
index 7bfd4e09..fef8d621 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeModule.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeModule.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeSetup.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeSetup.xtendbin
index 4c4cd6a3..3c37bd02 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeSetup.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeSetup.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.VampireLanguageUiModule.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.VampireLanguageUiModule.xtendbin
index dedb3ece..76127556 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.VampireLanguageUiModule.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.VampireLanguageUiModule.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.VampireLanguageProposalProvider.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.VampireLanguageProposalProvider.xtendbin
index a6d502ef..467395cb 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.VampireLanguageProposalProvider.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.VampireLanguageProposalProvider.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageDescriptionLabelProvider.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageDescriptionLabelProvider.xtendbin
index b2dc17a0..601c5a4c 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageDescriptionLabelProvider.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageDescriptionLabelProvider.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageLabelProvider.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageLabelProvider.xtendbin
index 73d9cdd1..c60c4d59 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageLabelProvider.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageLabelProvider.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.VampireLanguageOutlineTreeProvider.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.VampireLanguageOutlineTreeProvider.xtendbin
index 7880fdd6..030267ff 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.VampireLanguageOutlineTreeProvider.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.VampireLanguageOutlineTreeProvider.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.VampireLanguageQuickfixProvider.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.VampireLanguageQuickfixProvider.xtendbin
index 6a8836d4..ef7ffcdf 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.VampireLanguageQuickfixProvider.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.VampireLanguageQuickfixProvider.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageRuntimeModule.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageRuntimeModule.xtendbin
index e0367170..219fec58 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageRuntimeModule.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageRuntimeModule.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageStandaloneSetup.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageStandaloneSetup.xtendbin
index 906c39f5..47712412 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageStandaloneSetup.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageStandaloneSetup.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/formatting2/.VampireLanguageFormatter.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/formatting2/.VampireLanguageFormatter.xtendbin
index 47a395a0..831f0df4 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/formatting2/.VampireLanguageFormatter.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/formatting2/.VampireLanguageFormatter.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.VampireLanguageGenerator.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.VampireLanguageGenerator.xtendbin
index 74f517cf..696d67c0 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.VampireLanguageGenerator.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.VampireLanguageGenerator.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.VampireLanguageScopeProvider.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.VampireLanguageScopeProvider.xtendbin
index 3c09270e..9bef3ff9 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.VampireLanguageScopeProvider.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.VampireLanguageScopeProvider.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.VampireLanguageValidator.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.VampireLanguageValidator.xtendbin
index 96e8559a..dd65afb4 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.VampireLanguageValidator.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.VampireLanguageValidator.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.xtend
index e2c15b75..54c44c72 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.xtend
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.xtend
@@ -238,7 +238,7 @@ class Logic2VampireLanguageMapper {
238 def dispatch protected VLSTerm transformTerm(InstanceOf instanceOf, Logic2VampireLanguageMapperTrace trace, 238 def dispatch protected VLSTerm transformTerm(InstanceOf instanceOf, Logic2VampireLanguageMapperTrace trace,
239 Map<Variable, VLSVariable> variables) { 239 Map<Variable, VLSVariable> variables) {
240 return createVLSFunction => [ 240 return createVLSFunction => [
241 it.constant = support.toIDMultiple("type", (instanceOf.range as ComplexTypeReference).referred.name) 241 it.constant = support.toIDMultiple("t", (instanceOf.range as ComplexTypeReference).referred.name)
242 it.terms += instanceOf.value.transformTerm(trace, variables) 242 it.terms += instanceOf.value.transformTerm(trace, variables)
243 ] 243 ]
244 } 244 }
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.xtend
index 60653a42..6f3b13ef 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.xtend
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.xtend
@@ -39,7 +39,7 @@ class Logic2VampireLanguageMapper_RelationMapper {
39 relationVar2VLS.put(variable, v) 39 relationVar2VLS.put(variable, v)
40 40
41 val varTypeComply = createVLSFunction => [ 41 val varTypeComply = createVLSFunction => [
42 it.constant = support.toIDMultiple("type", (variable.range as ComplexTypeReference).referred.name) 42 it.constant = support.toIDMultiple("t", (variable.range as ComplexTypeReference).referred.name)
43 it.terms += createVLSVariable => [ 43 it.terms += createVLSVariable => [
44 it.name = support.toIDMultiple("Var", variable.name) 44 it.name = support.toIDMultiple("Var", variable.name)
45 ] 45 ]
@@ -47,7 +47,7 @@ class Logic2VampireLanguageMapper_RelationMapper {
47 relationVar2TypeDecComply.put(variable, varTypeComply) 47 relationVar2TypeDecComply.put(variable, varTypeComply)
48 48
49 val varTypeRes = createVLSFunction => [ 49 val varTypeRes = createVLSFunction => [
50 it.constant = support.toIDMultiple("type", (variable.range as ComplexTypeReference).referred.name) 50 it.constant = support.toIDMultiple("t", (variable.range as ComplexTypeReference).referred.name)
51 it.terms += createVLSVariable => [ 51 it.terms += createVLSVariable => [
52 it.name = support.toIDMultiple("Var", variable.name) 52 it.name = support.toIDMultiple("Var", variable.name)
53 ] 53 ]
@@ -136,7 +136,7 @@ class Logic2VampireLanguageMapper_RelationMapper {
136 relationVar2VLS.add(v) 136 relationVar2VLS.add(v)
137 137
138 val varTypeComply = createVLSFunction => [ 138 val varTypeComply = createVLSFunction => [
139 it.constant = support.toIDMultiple("type", (r.parameters.get(i) as ComplexTypeReference).referred.name) 139 it.constant = support.toIDMultiple("t", (r.parameters.get(i) as ComplexTypeReference).referred.name)
140 it.terms += createVLSVariable => [ 140 it.terms += createVLSVariable => [
141 it.name = support.toIDMultiple("Var", i.toString) 141 it.name = support.toIDMultiple("Var", i.toString)
142 ] 142 ]
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.xtend
index 84aa521d..4b7ea3d0 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.xtend
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.xtend
@@ -18,7 +18,6 @@ class Logic2VampireLanguageMapper_ScopeMapper {
18 def dispatch public void transformScope(LogicSolverConfiguration config, Logic2VampireLanguageMapperTrace trace) { 18 def dispatch public void transformScope(LogicSolverConfiguration config, Logic2VampireLanguageMapperTrace trace) {
19 val VLSVariable variable = createVLSVariable => [it.name = "A"] 19 val VLSVariable variable = createVLSVariable => [it.name = "A"]
20 20
21
22 // 1. make a list of constants equaling the min number of specified objects 21 // 1. make a list of constants equaling the min number of specified objects
23 val List<VLSConstant> instances = newArrayList 22 val List<VLSConstant> instances = newArrayList
24 for (var i = 0; i < config.typeScopes.minNewElements; i++) { 23 for (var i = 0; i < config.typeScopes.minNewElements; i++) {
@@ -28,47 +27,37 @@ class Logic2VampireLanguageMapper_ScopeMapper {
28 ] 27 ]
29 instances.add(cst) 28 instances.add(cst)
30 } 29 }
31
32
33 // TODO: specify for the max
34
35 30
36 // 2. Create initial fof formula to specify the number of elems 31 // TODO: specify for the max
37 val cstDec = createVLSFofFormula => [ 32 if (config.typeScopes.minNewElements != 0) {
38 it.name = "typeScope" 33 // 2. Create initial fof formula to specify the number of elems
39 it.fofRole = "axiom" 34 val cstDec = createVLSFofFormula => [
40 it.fofFormula = createVLSUniversalQuantifier => [ 35 it.name = "typeScope"
41 it.variables += support.duplicate(variable) 36 it.fofRole = "axiom"
42 // check below 37 it.fofFormula = createVLSUniversalQuantifier => [
43 it.operand = createVLSEquivalent => [ 38 it.variables += support.duplicate(variable)
44 it.left = support.topLevelTypeFunc 39 // check below
45 it.right = support.unfoldOr(instances.map [ i | 40 it.operand = createVLSEquivalent => [
46 createVLSEquality => [ 41 it.left = support.topLevelTypeFunc
47 it.left = createVLSVariable => [it.name = variable.name] 42 it.right = support.unfoldOr(instances.map [ i |
48 it.right = i 43 createVLSEquality => [
49 ] 44 it.left = createVLSVariable => [it.name = variable.name]
50 ]) 45 it.right = i
46 ]
47 ])
48 ]
51 ] 49 ]
52 ] 50 ]
53 ] 51 trace.specification.formulas += cstDec
54 trace.specification.formulas += cstDec 52
55 53 // TODO: specify for scope per type
56 54 // 3. Specify uniqueness of elements
57 // TODO: specify for scope per type 55 val uniqueness = createVLSFofFormula => [
58 56 it.name = "typeUniqueness"
59 57 it.fofRole = "axiom"
60 58 it.fofFormula = support.establishUniqueness(instances)
61 // 3. Specify uniqueness of elements 59 ]
62 val uniqueness = createVLSFofFormula => [ 60 trace.specification.formulas += uniqueness
63 it.name = "typeUniqueness" 61 }
64 it.fofRole = "axiom"
65 it.fofFormula = support.unfoldOr(instances.map [ i |
66 createVLSEquality => [
67 it.left = createVLSVariable => [it.name = variable.name]
68 it.right = i
69 ]
70 ])
71 ]
72 trace.specification.formulas += cstDec
73 } 62 }
74} 63}
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.xtend
index e69f0d51..06ec585c 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.xtend
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.xtend
@@ -13,6 +13,8 @@ import java.util.HashMap
13import java.util.List 13import java.util.List
14import java.util.Map 14import java.util.Map
15import org.eclipse.emf.common.util.EList 15import org.eclipse.emf.common.util.EList
16import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSConstant
17import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality
16 18
17class Logic2VampireLanguageMapper_Support { 19class Logic2VampireLanguageMapper_Support {
18 private val extension VampireLanguageFactory factory = VampireLanguageFactory.eINSTANCE 20 private val extension VampireLanguageFactory factory = VampireLanguageFactory.eINSTANCE
@@ -26,6 +28,7 @@ class Logic2VampireLanguageMapper_Support {
26 ids.split("\\s+").join("_") 28 ids.split("\\s+").join("_")
27 } 29 }
28 30
31 //TODO Make more general
29 def protected VLSVariable duplicate(VLSVariable vrbl) { 32 def protected VLSVariable duplicate(VLSVariable vrbl) {
30 return createVLSVariable => [it.name = vrbl.name] 33 return createVLSVariable => [it.name = vrbl.name]
31 } 34 }
@@ -38,6 +41,25 @@ class Logic2VampireLanguageMapper_Support {
38 ] 41 ]
39 ] 42 ]
40 } 43 }
44
45 //TODO Make more general
46 def establishUniqueness(List<VLSConstant> terms) {
47 val List<VLSInequality> eqs = newArrayList
48 for (t1 : terms.subList(1, terms.length)){
49 for (t2 : terms.subList(0, terms.indexOf(t1))){
50 val eq = createVLSInequality => [
51 //TEMP
52 it.left = createVLSConstant => [it.name = t2.name]
53 it.right = createVLSConstant => [it.name = t1.name]
54 //TEMP
55 ]
56 eqs.add(eq)
57 }
58 }
59
60 return unfoldAnd(eqs)
61
62 }
41 63
42 // Support Functions 64 // Support Functions
43 // booleans 65 // booleans
@@ -111,7 +133,7 @@ class Logic2VampireLanguageMapper_Support {
111 val typedefs = new ArrayList<VLSTerm> 133 val typedefs = new ArrayList<VLSTerm>
112 for (variable : expression.quantifiedVariables) { 134 for (variable : expression.quantifiedVariables) {
113 val eq = createVLSFunction => [ 135 val eq = createVLSFunction => [
114 it.constant = toIDMultiple("type", (variable.range as ComplexTypeReference).referred.name) 136 it.constant = toIDMultiple("t", (variable.range as ComplexTypeReference).referred.name)
115 it.terms += createVLSVariable => [ 137 it.terms += createVLSVariable => [
116 it.name = toIDMultiple("Var", variable.name) 138 it.name = toIDMultiple("Var", variable.name)
117 ] 139 ]
@@ -138,7 +160,7 @@ class Logic2VampireLanguageMapper_Support {
138 val typedefs = new ArrayList<VLSTerm> 160 val typedefs = new ArrayList<VLSTerm>
139 for (variable : expression.quantifiedVariables) { 161 for (variable : expression.quantifiedVariables) {
140 val eq = createVLSFunction => [ 162 val eq = createVLSFunction => [
141 it.constant = toIDMultiple("type", (variable.range as ComplexTypeReference).referred.name) 163 it.constant = toIDMultiple("t", (variable.range as ComplexTypeReference).referred.name)
142 it.terms += createVLSVariable => [ 164 it.terms += createVLSVariable => [
143 it.name = toIDMultiple("Var", variable.name) 165 it.name = toIDMultiple("Var", variable.name)
144 ] 166 ]
@@ -157,5 +179,7 @@ class Logic2VampireLanguageMapper_Support {
157 def protected withAddition(Map<Variable, VLSVariable> map1, Map<Variable, VLSVariable> map2) { 179 def protected withAddition(Map<Variable, VLSVariable> map1, Map<Variable, VLSVariable> map2) {
158 new HashMap(map1) => [putAll(map2)] 180 new HashMap(map1) => [putAll(map2)]
159 } 181 }
182
183
160 184
161} 185}
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtend
index eed10656..88e1e23a 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtend
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtend
@@ -89,27 +89,25 @@ class Logic2VampireLanguageMapper_TypeMapper_FilteredTypes implements Logic2Vamp
89 89
90 // 3. For each non-abstract type, create an and sequence containing all typedeclaration predicates 90 // 3. For each non-abstract type, create an and sequence containing all typedeclaration predicates
91 // and store in a map 91 // and store in a map
92// val List<VLSTerm> type2PossibleNot = new ArrayList 92 for (t1 : types.filter[!isIsAbstract]) {
93// val List<VLSTerm> type2And = new ArrayList 93 for (t2 : types) {
94 for (type : types.filter[!isIsAbstract]) {
95 for (type2 : types) {
96 // possible improvement: check all supertypes and decide if negated or not based on negations/not negations of supertypes 94 // possible improvement: check all supertypes and decide if negated or not based on negations/not negations of supertypes
97 if (type == type2 || dfsSupertypeCheck(type, type2)) { 95 if (t1 == t2 || dfsSupertypeCheck(t1, t2)) {
98 typeTrace.type2PossibleNot.put(type2, createVLSFunction => [ 96 typeTrace.type2PossibleNot.put(t2, createVLSFunction => [
99 it.constant = type2.lookup(typeTrace.type2Predicate).constant 97 it.constant = t2.lookup(typeTrace.type2Predicate).constant
100 it.terms += createVLSVariable => [it.name = "A"] 98 it.terms += support.duplicate(variable)
101 ]) 99 ])
102 } else { 100 } else {
103 typeTrace.type2PossibleNot.put(type2, createVLSUnaryNegation => [ 101 typeTrace.type2PossibleNot.put(t2, createVLSUnaryNegation => [
104 it.operand = createVLSFunction => [ 102 it.operand = createVLSFunction => [
105 it.constant = type2.lookup(typeTrace.type2Predicate).constant 103 it.constant = t2.lookup(typeTrace.type2Predicate).constant
106 it.terms += createVLSVariable => [it.name = "A"] 104 it.terms += support.duplicate(variable)
107 ] 105 ]
108 ]) 106 ])
109 } 107 }
110// typeTrace.type2PossibleNot.put(type2, type2.lookup(typeTrace.type2Predicate)) 108// typeTrace.type2PossibleNot.put(type2, type2.lookup(typeTrace.type2Predicate))
111 } 109 }
112 typeTrace.type2And.put(type, support.unfoldAnd(new ArrayList<VLSTerm>(typeTrace.type2PossibleNot.values))) 110 typeTrace.type2And.put(t1, support.unfoldAnd(new ArrayList<VLSTerm>(typeTrace.type2PossibleNot.values)))
113// typeTrace.type2And.put(type, type.lookup(typeTrace.type2Predicate) ) 111// typeTrace.type2And.put(type, type.lookup(typeTrace.type2Predicate) )
114 typeTrace.type2PossibleNot.clear 112 typeTrace.type2PossibleNot.clear
115 } 113 }
@@ -123,7 +121,7 @@ class Logic2VampireLanguageMapper_TypeMapper_FilteredTypes implements Logic2Vamp
123 it.name = "hierarchyHandler" 121 it.name = "hierarchyHandler"
124 it.fofRole = "axiom" 122 it.fofRole = "axiom"
125 it.fofFormula = createVLSUniversalQuantifier => [ 123 it.fofFormula = createVLSUniversalQuantifier => [
126 it.variables += createVLSVariable => [it.name = "A"] 124 it.variables += support.duplicate(variable)
127 it.operand = createVLSEquivalent => [ 125 it.operand = createVLSEquivalent => [
128 it.left = support.topLevelTypeFunc 126 it.left = support.topLevelTypeFunc
129 it.right = support.unfoldOr(new ArrayList<VLSTerm>(typeTrace.type2And.values)) 127 it.right = support.unfoldOr(new ArrayList<VLSTerm>(typeTrace.type2And.values))
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin
index 9a2a1b15..4a4eedf5 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin
index ce05b92c..55f0ac1e 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin
index 379d0683..e91f89cc 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbin
index 76dd192f..154ff393 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin
index 936ab9ca..5d6ad730 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin
index e0f442f5..7c787543 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbin
index 493ff288..34f3b285 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin
index 13281767..f8d6cd3f 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin
index 1a777880..7b2b11f8 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtendbin
index e8658e7b..7e8336e2 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtendbin
index aec1688a..a2229dba 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbin
index e77b9866..d82649ff 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbin
index 100a52b8..030a0be9 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbin
index 231c1995..87203ed8 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbin
index b67a307c..65689b0c 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.java
index 89c9637e..6643576f 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.java
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.java
@@ -273,7 +273,7 @@ public class Logic2VampireLanguageMapper {
273 VLSFunction _createVLSFunction = this.factory.createVLSFunction(); 273 VLSFunction _createVLSFunction = this.factory.createVLSFunction();
274 final Procedure1<VLSFunction> _function = (VLSFunction it) -> { 274 final Procedure1<VLSFunction> _function = (VLSFunction it) -> {
275 TypeReference _range = instanceOf.getRange(); 275 TypeReference _range = instanceOf.getRange();
276 it.setConstant(this.support.toIDMultiple("type", ((ComplexTypeReference) _range).getReferred().getName())); 276 it.setConstant(this.support.toIDMultiple("t", ((ComplexTypeReference) _range).getReferred().getName()));
277 EList<VLSTerm> _terms = it.getTerms(); 277 EList<VLSTerm> _terms = it.getTerms();
278 VLSTerm _transformTerm = this.transformTerm(instanceOf.getValue(), trace, variables); 278 VLSTerm _transformTerm = this.transformTerm(instanceOf.getValue(), trace, variables);
279 _terms.add(_transformTerm); 279 _terms.add(_transformTerm);
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java
index 561402a7..bce50fcc 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java
@@ -61,7 +61,7 @@ public class Logic2VampireLanguageMapper_RelationMapper {
61 VLSFunction _createVLSFunction = this.factory.createVLSFunction(); 61 VLSFunction _createVLSFunction = this.factory.createVLSFunction();
62 final Procedure1<VLSFunction> _function_1 = (VLSFunction it) -> { 62 final Procedure1<VLSFunction> _function_1 = (VLSFunction it) -> {
63 TypeReference _range = variable.getRange(); 63 TypeReference _range = variable.getRange();
64 it.setConstant(this.support.toIDMultiple("type", ((ComplexTypeReference) _range).getReferred().getName())); 64 it.setConstant(this.support.toIDMultiple("t", ((ComplexTypeReference) _range).getReferred().getName()));
65 EList<VLSTerm> _terms = it.getTerms(); 65 EList<VLSTerm> _terms = it.getTerms();
66 VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable(); 66 VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable();
67 final Procedure1<VLSVariable> _function_2 = (VLSVariable it_1) -> { 67 final Procedure1<VLSVariable> _function_2 = (VLSVariable it_1) -> {
@@ -75,7 +75,7 @@ public class Logic2VampireLanguageMapper_RelationMapper {
75 VLSFunction _createVLSFunction_1 = this.factory.createVLSFunction(); 75 VLSFunction _createVLSFunction_1 = this.factory.createVLSFunction();
76 final Procedure1<VLSFunction> _function_2 = (VLSFunction it) -> { 76 final Procedure1<VLSFunction> _function_2 = (VLSFunction it) -> {
77 TypeReference _range = variable.getRange(); 77 TypeReference _range = variable.getRange();
78 it.setConstant(this.support.toIDMultiple("type", ((ComplexTypeReference) _range).getReferred().getName())); 78 it.setConstant(this.support.toIDMultiple("t", ((ComplexTypeReference) _range).getReferred().getName()));
79 EList<VLSTerm> _terms = it.getTerms(); 79 EList<VLSTerm> _terms = it.getTerms();
80 VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable(); 80 VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable();
81 final Procedure1<VLSVariable> _function_3 = (VLSVariable it_1) -> { 81 final Procedure1<VLSVariable> _function_3 = (VLSVariable it_1) -> {
@@ -215,7 +215,7 @@ public class Logic2VampireLanguageMapper_RelationMapper {
215 VLSFunction _createVLSFunction = this.factory.createVLSFunction(); 215 VLSFunction _createVLSFunction = this.factory.createVLSFunction();
216 final Procedure1<VLSFunction> _function_1 = (VLSFunction it) -> { 216 final Procedure1<VLSFunction> _function_1 = (VLSFunction it) -> {
217 TypeReference _get = r.getParameters().get((i).intValue()); 217 TypeReference _get = r.getParameters().get((i).intValue());
218 it.setConstant(this.support.toIDMultiple("type", ((ComplexTypeReference) _get).getReferred().getName())); 218 it.setConstant(this.support.toIDMultiple("t", ((ComplexTypeReference) _get).getReferred().getName()));
219 EList<VLSTerm> _terms = it.getTerms(); 219 EList<VLSTerm> _terms = it.getTerms();
220 VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable(); 220 VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable();
221 final Procedure1<VLSVariable> _function_2 = (VLSVariable it_1) -> { 221 final Procedure1<VLSVariable> _function_2 = (VLSVariable it_1) -> {
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.java
index 86d8b648..8967839d 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.java
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.java
@@ -51,42 +51,53 @@ public class Logic2VampireLanguageMapper_ScopeMapper {
51 instances.add(cst); 51 instances.add(cst);
52 } 52 }
53 } 53 }
54 VLSFofFormula _createVLSFofFormula = this.factory.createVLSFofFormula(); 54 if ((config.typeScopes.minNewElements != 0)) {
55 final Procedure1<VLSFofFormula> _function_1 = (VLSFofFormula it) -> { 55 VLSFofFormula _createVLSFofFormula = this.factory.createVLSFofFormula();
56 it.setName("typeScope"); 56 final Procedure1<VLSFofFormula> _function_1 = (VLSFofFormula it) -> {
57 it.setFofRole("axiom"); 57 it.setName("typeScope");
58 VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); 58 it.setFofRole("axiom");
59 final Procedure1<VLSUniversalQuantifier> _function_2 = (VLSUniversalQuantifier it_1) -> { 59 VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier();
60 EList<VLSVariable> _variables = it_1.getVariables(); 60 final Procedure1<VLSUniversalQuantifier> _function_2 = (VLSUniversalQuantifier it_1) -> {
61 VLSVariable _duplicate = this.support.duplicate(variable); 61 EList<VLSVariable> _variables = it_1.getVariables();
62 _variables.add(_duplicate); 62 VLSVariable _duplicate = this.support.duplicate(variable);
63 VLSEquivalent _createVLSEquivalent = this.factory.createVLSEquivalent(); 63 _variables.add(_duplicate);
64 final Procedure1<VLSEquivalent> _function_3 = (VLSEquivalent it_2) -> { 64 VLSEquivalent _createVLSEquivalent = this.factory.createVLSEquivalent();
65 it_2.setLeft(this.support.topLevelTypeFunc()); 65 final Procedure1<VLSEquivalent> _function_3 = (VLSEquivalent it_2) -> {
66 final Function1<VLSConstant, VLSEquality> _function_4 = (VLSConstant i) -> { 66 it_2.setLeft(this.support.topLevelTypeFunc());
67 VLSEquality _createVLSEquality = this.factory.createVLSEquality(); 67 final Function1<VLSConstant, VLSEquality> _function_4 = (VLSConstant i) -> {
68 final Procedure1<VLSEquality> _function_5 = (VLSEquality it_3) -> { 68 VLSEquality _createVLSEquality = this.factory.createVLSEquality();
69 VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable(); 69 final Procedure1<VLSEquality> _function_5 = (VLSEquality it_3) -> {
70 final Procedure1<VLSVariable> _function_6 = (VLSVariable it_4) -> { 70 VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable();
71 it_4.setName(variable.getName()); 71 final Procedure1<VLSVariable> _function_6 = (VLSVariable it_4) -> {
72 it_4.setName(variable.getName());
73 };
74 VLSVariable _doubleArrow = ObjectExtensions.<VLSVariable>operator_doubleArrow(_createVLSVariable_1, _function_6);
75 it_3.setLeft(_doubleArrow);
76 it_3.setRight(i);
72 }; 77 };
73 VLSVariable _doubleArrow = ObjectExtensions.<VLSVariable>operator_doubleArrow(_createVLSVariable_1, _function_6); 78 return ObjectExtensions.<VLSEquality>operator_doubleArrow(_createVLSEquality, _function_5);
74 it_3.setLeft(_doubleArrow);
75 it_3.setRight(i);
76 }; 79 };
77 return ObjectExtensions.<VLSEquality>operator_doubleArrow(_createVLSEquality, _function_5); 80 it_2.setRight(this.support.unfoldOr(ListExtensions.<VLSConstant, VLSEquality>map(instances, _function_4)));
78 }; 81 };
79 it_2.setRight(this.support.unfoldOr(ListExtensions.<VLSConstant, VLSEquality>map(instances, _function_4))); 82 VLSEquivalent _doubleArrow = ObjectExtensions.<VLSEquivalent>operator_doubleArrow(_createVLSEquivalent, _function_3);
83 it_1.setOperand(_doubleArrow);
80 }; 84 };
81 VLSEquivalent _doubleArrow = ObjectExtensions.<VLSEquivalent>operator_doubleArrow(_createVLSEquivalent, _function_3); 85 VLSUniversalQuantifier _doubleArrow = ObjectExtensions.<VLSUniversalQuantifier>operator_doubleArrow(_createVLSUniversalQuantifier, _function_2);
82 it_1.setOperand(_doubleArrow); 86 it.setFofFormula(_doubleArrow);
83 }; 87 };
84 VLSUniversalQuantifier _doubleArrow = ObjectExtensions.<VLSUniversalQuantifier>operator_doubleArrow(_createVLSUniversalQuantifier, _function_2); 88 final VLSFofFormula cstDec = ObjectExtensions.<VLSFofFormula>operator_doubleArrow(_createVLSFofFormula, _function_1);
85 it.setFofFormula(_doubleArrow); 89 EList<VLSFofFormula> _formulas = trace.specification.getFormulas();
86 }; 90 _formulas.add(cstDec);
87 final VLSFofFormula cstDec = ObjectExtensions.<VLSFofFormula>operator_doubleArrow(_createVLSFofFormula, _function_1); 91 VLSFofFormula _createVLSFofFormula_1 = this.factory.createVLSFofFormula();
88 EList<VLSFofFormula> _formulas = trace.specification.getFormulas(); 92 final Procedure1<VLSFofFormula> _function_2 = (VLSFofFormula it) -> {
89 _formulas.add(cstDec); 93 it.setName("typeUniqueness");
94 it.setFofRole("axiom");
95 it.setFofFormula(this.support.establishUniqueness(instances));
96 };
97 final VLSFofFormula uniqueness = ObjectExtensions.<VLSFofFormula>operator_doubleArrow(_createVLSFofFormula_1, _function_2);
98 EList<VLSFofFormula> _formulas_1 = trace.specification.getFormulas();
99 _formulas_1.add(uniqueness);
100 }
90 } 101 }
91 102
92 public void transformScope(final LogicSolverConfiguration config, final Logic2VampireLanguageMapperTrace trace) { 103 public void transformScope(final LogicSolverConfiguration config, final Logic2VampireLanguageMapperTrace trace) {
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.java
index b111732f..dfe624be 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.java
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.java
@@ -3,6 +3,7 @@ package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder;
3import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper; 3import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper;
4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapperTrace; 4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapperTrace;
5import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd; 5import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd;
6import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSConstant;
6import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier; 7import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier;
7import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction; 8import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction;
8import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies; 9import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies;
@@ -25,6 +26,7 @@ import java.util.List;
25import java.util.Map; 26import java.util.Map;
26import org.eclipse.emf.common.util.EList; 27import org.eclipse.emf.common.util.EList;
27import org.eclipse.xtend2.lib.StringConcatenation; 28import org.eclipse.xtend2.lib.StringConcatenation;
29import org.eclipse.xtext.xbase.lib.CollectionLiterals;
28import org.eclipse.xtext.xbase.lib.Conversions; 30import org.eclipse.xtext.xbase.lib.Conversions;
29import org.eclipse.xtext.xbase.lib.ExclusiveRange; 31import org.eclipse.xtext.xbase.lib.ExclusiveRange;
30import org.eclipse.xtext.xbase.lib.Extension; 32import org.eclipse.xtext.xbase.lib.Extension;
@@ -73,6 +75,36 @@ public class Logic2VampireLanguageMapper_Support {
73 return ObjectExtensions.<VLSFunction>operator_doubleArrow(_createVLSFunction, _function); 75 return ObjectExtensions.<VLSFunction>operator_doubleArrow(_createVLSFunction, _function);
74 } 76 }
75 77
78 public VLSTerm establishUniqueness(final List<VLSConstant> terms) {
79 final List<VLSInequality> eqs = CollectionLiterals.<VLSInequality>newArrayList();
80 List<VLSConstant> _subList = terms.subList(1, ((Object[])Conversions.unwrapArray(terms, Object.class)).length);
81 for (final VLSConstant t1 : _subList) {
82 List<VLSConstant> _subList_1 = terms.subList(0, terms.indexOf(t1));
83 for (final VLSConstant t2 : _subList_1) {
84 {
85 VLSInequality _createVLSInequality = this.factory.createVLSInequality();
86 final Procedure1<VLSInequality> _function = (VLSInequality it) -> {
87 VLSConstant _createVLSConstant = this.factory.createVLSConstant();
88 final Procedure1<VLSConstant> _function_1 = (VLSConstant it_1) -> {
89 it_1.setName(t2.getName());
90 };
91 VLSConstant _doubleArrow = ObjectExtensions.<VLSConstant>operator_doubleArrow(_createVLSConstant, _function_1);
92 it.setLeft(_doubleArrow);
93 VLSConstant _createVLSConstant_1 = this.factory.createVLSConstant();
94 final Procedure1<VLSConstant> _function_2 = (VLSConstant it_1) -> {
95 it_1.setName(t1.getName());
96 };
97 VLSConstant _doubleArrow_1 = ObjectExtensions.<VLSConstant>operator_doubleArrow(_createVLSConstant_1, _function_2);
98 it.setRight(_doubleArrow_1);
99 };
100 final VLSInequality eq = ObjectExtensions.<VLSInequality>operator_doubleArrow(_createVLSInequality, _function);
101 eqs.add(eq);
102 }
103 }
104 }
105 return this.unfoldAnd(eqs);
106 }
107
76 protected VLSTerm unfoldAnd(final List<? extends VLSTerm> operands) { 108 protected VLSTerm unfoldAnd(final List<? extends VLSTerm> operands) {
77 int _size = operands.size(); 109 int _size = operands.size();
78 boolean _equals = (_size == 1); 110 boolean _equals = (_size == 1);
@@ -180,7 +212,7 @@ public class Logic2VampireLanguageMapper_Support {
180 VLSFunction _createVLSFunction = this.factory.createVLSFunction(); 212 VLSFunction _createVLSFunction = this.factory.createVLSFunction();
181 final Procedure1<VLSFunction> _function_1 = (VLSFunction it) -> { 213 final Procedure1<VLSFunction> _function_1 = (VLSFunction it) -> {
182 TypeReference _range = variable.getRange(); 214 TypeReference _range = variable.getRange();
183 it.setConstant(this.toIDMultiple("type", ((ComplexTypeReference) _range).getReferred().getName())); 215 it.setConstant(this.toIDMultiple("t", ((ComplexTypeReference) _range).getReferred().getName()));
184 EList<VLSTerm> _terms = it.getTerms(); 216 EList<VLSTerm> _terms = it.getTerms();
185 VLSVariable _createVLSVariable = this.factory.createVLSVariable(); 217 VLSVariable _createVLSVariable = this.factory.createVLSVariable();
186 final Procedure1<VLSVariable> _function_2 = (VLSVariable it_1) -> { 218 final Procedure1<VLSVariable> _function_2 = (VLSVariable it_1) -> {
@@ -229,7 +261,7 @@ public class Logic2VampireLanguageMapper_Support {
229 VLSFunction _createVLSFunction = this.factory.createVLSFunction(); 261 VLSFunction _createVLSFunction = this.factory.createVLSFunction();
230 final Procedure1<VLSFunction> _function_1 = (VLSFunction it) -> { 262 final Procedure1<VLSFunction> _function_1 = (VLSFunction it) -> {
231 TypeReference _range = variable.getRange(); 263 TypeReference _range = variable.getRange();
232 it.setConstant(this.toIDMultiple("type", ((ComplexTypeReference) _range).getReferred().getName())); 264 it.setConstant(this.toIDMultiple("t", ((ComplexTypeReference) _range).getReferred().getName()));
233 EList<VLSTerm> _terms = it.getTerms(); 265 EList<VLSTerm> _terms = it.getTerms();
234 VLSVariable _createVLSVariable = this.factory.createVLSVariable(); 266 VLSVariable _createVLSVariable = this.factory.createVLSVariable();
235 final Procedure1<VLSVariable> _function_2 = (VLSVariable it_1) -> { 267 final Procedure1<VLSVariable> _function_2 = (VLSVariable it_1) -> {
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.java
index 71e98871..1e845d94 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.java
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.java
@@ -115,47 +115,39 @@ public class Logic2VampireLanguageMapper_TypeMapper_FilteredTypes implements Log
115 return Boolean.valueOf((!_isIsAbstract)); 115 return Boolean.valueOf((!_isIsAbstract));
116 }; 116 };
117 Iterable<Type> _filter_1 = IterableExtensions.<Type>filter(types, _function_1); 117 Iterable<Type> _filter_1 = IterableExtensions.<Type>filter(types, _function_1);
118 for (final Type type_2 : _filter_1) { 118 for (final Type t1 : _filter_1) {
119 { 119 {
120 for (final Type type2 : types) { 120 for (final Type t2 : types) {
121 if ((Objects.equal(type_2, type2) || this.dfsSupertypeCheck(type_2, type2))) { 121 if ((Objects.equal(t1, t2) || this.dfsSupertypeCheck(t1, t2))) {
122 VLSFunction _createVLSFunction = this.factory.createVLSFunction(); 122 VLSFunction _createVLSFunction = this.factory.createVLSFunction();
123 final Procedure1<VLSFunction> _function_2 = (VLSFunction it) -> { 123 final Procedure1<VLSFunction> _function_2 = (VLSFunction it) -> {
124 it.setConstant(CollectionsUtil.<Type, VLSFunction>lookup(type2, typeTrace.type2Predicate).getConstant()); 124 it.setConstant(CollectionsUtil.<Type, VLSFunction>lookup(t2, typeTrace.type2Predicate).getConstant());
125 EList<VLSTerm> _terms = it.getTerms(); 125 EList<VLSTerm> _terms = it.getTerms();
126 VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable(); 126 VLSVariable _duplicate = this.support.duplicate(variable);
127 final Procedure1<VLSVariable> _function_3 = (VLSVariable it_1) -> { 127 _terms.add(_duplicate);
128 it_1.setName("A");
129 };
130 VLSVariable _doubleArrow = ObjectExtensions.<VLSVariable>operator_doubleArrow(_createVLSVariable_1, _function_3);
131 _terms.add(_doubleArrow);
132 }; 128 };
133 VLSFunction _doubleArrow = ObjectExtensions.<VLSFunction>operator_doubleArrow(_createVLSFunction, _function_2); 129 VLSFunction _doubleArrow = ObjectExtensions.<VLSFunction>operator_doubleArrow(_createVLSFunction, _function_2);
134 typeTrace.type2PossibleNot.put(type2, _doubleArrow); 130 typeTrace.type2PossibleNot.put(t2, _doubleArrow);
135 } else { 131 } else {
136 VLSUnaryNegation _createVLSUnaryNegation = this.factory.createVLSUnaryNegation(); 132 VLSUnaryNegation _createVLSUnaryNegation = this.factory.createVLSUnaryNegation();
137 final Procedure1<VLSUnaryNegation> _function_3 = (VLSUnaryNegation it) -> { 133 final Procedure1<VLSUnaryNegation> _function_3 = (VLSUnaryNegation it) -> {
138 VLSFunction _createVLSFunction_1 = this.factory.createVLSFunction(); 134 VLSFunction _createVLSFunction_1 = this.factory.createVLSFunction();
139 final Procedure1<VLSFunction> _function_4 = (VLSFunction it_1) -> { 135 final Procedure1<VLSFunction> _function_4 = (VLSFunction it_1) -> {
140 it_1.setConstant(CollectionsUtil.<Type, VLSFunction>lookup(type2, typeTrace.type2Predicate).getConstant()); 136 it_1.setConstant(CollectionsUtil.<Type, VLSFunction>lookup(t2, typeTrace.type2Predicate).getConstant());
141 EList<VLSTerm> _terms = it_1.getTerms(); 137 EList<VLSTerm> _terms = it_1.getTerms();
142 VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable(); 138 VLSVariable _duplicate = this.support.duplicate(variable);
143 final Procedure1<VLSVariable> _function_5 = (VLSVariable it_2) -> { 139 _terms.add(_duplicate);
144 it_2.setName("A");
145 };
146 VLSVariable _doubleArrow_1 = ObjectExtensions.<VLSVariable>operator_doubleArrow(_createVLSVariable_1, _function_5);
147 _terms.add(_doubleArrow_1);
148 }; 140 };
149 VLSFunction _doubleArrow_1 = ObjectExtensions.<VLSFunction>operator_doubleArrow(_createVLSFunction_1, _function_4); 141 VLSFunction _doubleArrow_1 = ObjectExtensions.<VLSFunction>operator_doubleArrow(_createVLSFunction_1, _function_4);
150 it.setOperand(_doubleArrow_1); 142 it.setOperand(_doubleArrow_1);
151 }; 143 };
152 VLSUnaryNegation _doubleArrow_1 = ObjectExtensions.<VLSUnaryNegation>operator_doubleArrow(_createVLSUnaryNegation, _function_3); 144 VLSUnaryNegation _doubleArrow_1 = ObjectExtensions.<VLSUnaryNegation>operator_doubleArrow(_createVLSUnaryNegation, _function_3);
153 typeTrace.type2PossibleNot.put(type2, _doubleArrow_1); 145 typeTrace.type2PossibleNot.put(t2, _doubleArrow_1);
154 } 146 }
155 } 147 }
156 Collection<VLSTerm> _values = typeTrace.type2PossibleNot.values(); 148 Collection<VLSTerm> _values = typeTrace.type2PossibleNot.values();
157 ArrayList<VLSTerm> _arrayList = new ArrayList<VLSTerm>(_values); 149 ArrayList<VLSTerm> _arrayList = new ArrayList<VLSTerm>(_values);
158 typeTrace.type2And.put(type_2, this.support.unfoldAnd(_arrayList)); 150 typeTrace.type2And.put(t1, this.support.unfoldAnd(_arrayList));
159 typeTrace.type2PossibleNot.clear(); 151 typeTrace.type2PossibleNot.clear();
160 } 152 }
161 } 153 }
@@ -166,21 +158,17 @@ public class Logic2VampireLanguageMapper_TypeMapper_FilteredTypes implements Log
166 VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); 158 VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier();
167 final Procedure1<VLSUniversalQuantifier> _function_3 = (VLSUniversalQuantifier it_1) -> { 159 final Procedure1<VLSUniversalQuantifier> _function_3 = (VLSUniversalQuantifier it_1) -> {
168 EList<VLSVariable> _variables = it_1.getVariables(); 160 EList<VLSVariable> _variables = it_1.getVariables();
169 VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable(); 161 VLSVariable _duplicate = this.support.duplicate(variable);
170 final Procedure1<VLSVariable> _function_4 = (VLSVariable it_2) -> { 162 _variables.add(_duplicate);
171 it_2.setName("A");
172 };
173 VLSVariable _doubleArrow = ObjectExtensions.<VLSVariable>operator_doubleArrow(_createVLSVariable_1, _function_4);
174 _variables.add(_doubleArrow);
175 VLSEquivalent _createVLSEquivalent = this.factory.createVLSEquivalent(); 163 VLSEquivalent _createVLSEquivalent = this.factory.createVLSEquivalent();
176 final Procedure1<VLSEquivalent> _function_5 = (VLSEquivalent it_2) -> { 164 final Procedure1<VLSEquivalent> _function_4 = (VLSEquivalent it_2) -> {
177 it_2.setLeft(this.support.topLevelTypeFunc()); 165 it_2.setLeft(this.support.topLevelTypeFunc());
178 Collection<VLSTerm> _values = typeTrace.type2And.values(); 166 Collection<VLSTerm> _values = typeTrace.type2And.values();
179 ArrayList<VLSTerm> _arrayList = new ArrayList<VLSTerm>(_values); 167 ArrayList<VLSTerm> _arrayList = new ArrayList<VLSTerm>(_values);
180 it_2.setRight(this.support.unfoldOr(_arrayList)); 168 it_2.setRight(this.support.unfoldOr(_arrayList));
181 }; 169 };
182 VLSEquivalent _doubleArrow_1 = ObjectExtensions.<VLSEquivalent>operator_doubleArrow(_createVLSEquivalent, _function_5); 170 VLSEquivalent _doubleArrow = ObjectExtensions.<VLSEquivalent>operator_doubleArrow(_createVLSEquivalent, _function_4);
183 it_1.setOperand(_doubleArrow_1); 171 it_1.setOperand(_doubleArrow);
184 }; 172 };
185 VLSUniversalQuantifier _doubleArrow = ObjectExtensions.<VLSUniversalQuantifier>operator_doubleArrow(_createVLSUniversalQuantifier, _function_3); 173 VLSUniversalQuantifier _doubleArrow = ObjectExtensions.<VLSUniversalQuantifier>operator_doubleArrow(_createVLSUniversalQuantifier, _function_3);
186 it.setFofFormula(_doubleArrow); 174 it.setFofFormula(_doubleArrow);
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.classpath b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.classpath
index 1c96fe2f..3f0838b6 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.classpath
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.classpath
@@ -3,6 +3,7 @@
3 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/> 3 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
4 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> 4 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
5 <classpathentry kind="src" path="src"/> 5 <classpathentry kind="src" path="src"/>
6 <classpathentry kind="src" path="src-gen"/>
6 <classpathentry kind="src" path="xtend-gen"/> 7 <classpathentry kind="src" path="xtend-gen"/>
7 <classpathentry kind="output" path="bin"/> 8 <classpathentry kind="output" path="bin"/>
8</classpath> 9</classpath>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.project b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.project
index eb3347d0..87dc2baa 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.project
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.project
@@ -6,6 +6,11 @@
6 </projects> 6 </projects>
7 <buildSpec> 7 <buildSpec>
8 <buildCommand> 8 <buildCommand>
9 <name>org.eclipse.viatra.query.tooling.ui.projectbuilder</name>
10 <arguments>
11 </arguments>
12 </buildCommand>
13 <buildCommand>
9 <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> 14 <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
10 <arguments> 15 <arguments>
11 </arguments> 16 </arguments>
@@ -30,5 +35,6 @@
30 <nature>org.eclipse.pde.PluginNature</nature> 35 <nature>org.eclipse.pde.PluginNature</nature>
31 <nature>org.eclipse.jdt.core.javanature</nature> 36 <nature>org.eclipse.jdt.core.javanature</nature>
32 <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> 37 <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
38 <nature>org.eclipse.viatra.query.projectnature</nature>
33 </natures> 39 </natures>
34</projectDescription> 40</projectDescription>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF
index fedee0e4..1995ee52 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF
@@ -1,31 +1,36 @@
1Manifest-Version: 1.0 1Manifest-Version: 1.0
2Bundle-ManifestVersion: 2 2Bundle-ManifestVersion: 2
3Bundle-Name: Test 3Bundle-Name: Test
4Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.vampire.test;singleton:=true 4Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.vampire.test;singleton:=true
5Bundle-Version: 1.0.0.qualifier 5Bundle-Version: 1.0.0.qualifier
6Automatic-Module-Name: ca.mcgill.ecse.dslreasoner.vampire.test 6Export-Package: ca.mcgill.ecse.dslreasoner.vampire.queries
7Bundle-RequiredExecutionEnvironment: JavaSE-1.8 7Require-Bundle: org.eclipse.emf.ecore,
8Require-Bundle: com.google.guava, 8 org.eclipse.viatra.query.runtime.rete,
9 org.eclipse.xtext.xbase.lib, 9 org.eclipse.viatra.query.runtime.localsearch,
10 org.eclipse.xtend.lib, 10 com.google.guava,
11 org.eclipse.xtend.lib.macro, 11 org.eclipse.xtext.xbase.lib,
12 ca.mcgill.ecse.dslreasoner.vampire.language;bundle-version="1.0.0", 12 org.eclipse.xtend.lib,
13 hu.bme.mit.inf.dslreasoner.logic.model;bundle-version="1.0.0", 13 org.eclipse.xtend.lib.macro,
14 ca.mcgill.ecse.dslreasoner.vampire.reasoner;bundle-version="1.0.0", 14 ca.mcgill.ecse.dslreasoner.vampire.language;bundle-version="1.0.0",
15 hu.bme.mit.inf.dslreasoner.ecore2logic;bundle-version="1.0.0", 15 hu.bme.mit.inf.dslreasoner.logic.model;bundle-version="1.0.0",
16 hu.bme.mit.inf.dslreasoner.viatra2logic;bundle-version="1.0.0", 16 ca.mcgill.ecse.dslreasoner.vampire.reasoner;bundle-version="1.0.0",
17 org.eclipse.emf.ecore.xmi;bundle-version="2.13.0", 17 hu.bme.mit.inf.dslreasoner.ecore2logic;bundle-version="1.0.0",
18 hu.bme.mit.inf.dlsreasoner.alloy.reasoner;bundle-version="1.0.0", 18 hu.bme.mit.inf.dslreasoner.viatra2logic;bundle-version="1.0.0",
19 hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage;bundle-version="1.0.0", 19 org.eclipse.emf.ecore.xmi;bundle-version="2.13.0",
20 hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner;bundle-version="1.0.0", 20 hu.bme.mit.inf.dlsreasoner.alloy.reasoner;bundle-version="1.0.0",
21 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatraquery;bundle-version="1.0.0", 21 hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage;bundle-version="1.0.0",
22 hu.bme.mit.inf.dslreasoner.logic2ecore;bundle-version="1.0.0", 22 hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner;bundle-version="1.0.0",
23 hu.bme.mit.inf.dslreasoner.visualisation;bundle-version="1.0.0", 23 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatraquery;bundle-version="1.0.0",
24 ModelGenExampleFAM_plugin;bundle-version="1.0.0", 24 hu.bme.mit.inf.dslreasoner.logic2ecore;bundle-version="1.0.0",
25 ModelGenExampleFAM_plugin.validation;bundle-version="0.0.1", 25 hu.bme.mit.inf.dslreasoner.visualisation;bundle-version="1.0.0",
26 hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph;bundle-version="1.0.0", 26 ModelGenExampleFAM_plugin;bundle-version="1.0.0",
27 hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.validation;bundle-version="0.0.1", 27 ModelGenExampleFAM_plugin.validation;bundle-version="0.0.1",
28 org.eclipse.viatra.query.runtime;bundle-version="2.1.0", 28 hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph;bundle-version="1.0.0",
29 org.eclipse.collections;bundle-version="9.2.0", 29 hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.validation;bundle-version="0.0.1",
30 hu.bme.mit.inf.dslreasoner.application.FAMTest;bundle-version="1.0.0" 30 org.eclipse.viatra.query.runtime;bundle-version="2.1.0",
31 31 org.eclipse.collections;bundle-version="9.2.0",
32 hu.bme.mit.inf.dslreasoner.application.FAMTest;bundle-version="1.0.0",
33 ca.mcgill.ecse.dslreasoner.standalone.test;bundle-version="1.0.0"
34Bundle-RequiredExecutionEnvironment: JavaSE-1.8
35Import-Package: org.apache.log4j
36Automatic-Module-Name: ca.mcgill.ecse.dslreasoner.vampire.test
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/build.properties b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/build.properties
index 41eb6ade..efae4b07 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/build.properties
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/build.properties
@@ -1,4 +1,6 @@
1source.. = src/
2output.. = bin/
3bin.includes = META-INF/,\ 1bin.includes = META-INF/,\
4 . 2 .
3source.. = src/,\
4 src-gen/,\
5 src-gen/
6output.. = bin/
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FunctionalArchitectureModel.xmi b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FunctionalArchitectureModel.xmi
index 61256334..8500678c 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FunctionalArchitectureModel.xmi
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FunctionalArchitectureModel.xmi
@@ -7,4 +7,6 @@
7 xsi:schemaLocation="http://www.inf.mit.bme.hu/viatrasolver/example/fam ../../ModelGenExampleFAM_plugin/model/FamMetamodel.ecore"> 7 xsi:schemaLocation="http://www.inf.mit.bme.hu/viatrasolver/example/fam ../../ModelGenExampleFAM_plugin/model/FamMetamodel.ecore">
8 <rootElements 8 <rootElements
9 xsi:type="functionalarchitecture:Function"/> 9 xsi:type="functionalarchitecture:Function"/>
10 <rootElements
11 xsi:type="functionalarchitecture:Function"/>
10</functionalarchitecture:FunctionalArchitectureModel> 12</functionalarchitecture:FunctionalArchitectureModel>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FunctionalArchitectureModel2.xmi b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FunctionalArchitectureModel2.xmi
new file mode 100644
index 00000000..59935a2c
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FunctionalArchitectureModel2.xmi
@@ -0,0 +1,4 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<functionalarchitecture:FunctionalArchitectureModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:functionalarchitecture="http://www.inf.mit.bme.hu/viatrasolver/example/fam"
4 xsi:schemaLocation="http://www.inf.mit.bme.hu/viatrasolver/example/fam FamMetamodel.ecore"/>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/yakindu/yakindu.ecore b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/yakindu/yakindu.ecore
new file mode 100644
index 00000000..0c944db8
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/yakindu/yakindu.ecore
@@ -0,0 +1,26 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="yakindu" nsURI="YakinduMetamodel" nsPrefix="yakindu">
3 <eClassifiers xsi:type="ecore:EClass" name="Pseudostate" abstract="true" eSuperTypes="//Vertex"/>
4 <eClassifiers xsi:type="ecore:EClass" name="Vertex" abstract="true">
5 <eStructuralFeatures xsi:type="ecore:EReference" name="incomingTransitions" ordered="false" upperBound="-1" eType="//Transition" eOpposite="//Transition/target"/>
6 <eStructuralFeatures xsi:type="ecore:EReference" name="outgoingTransitions" ordered="false" upperBound="-1" eType="//Transition" containment="true" eOpposite="//Transition/source"/>
7 </eClassifiers>
8 <eClassifiers xsi:type="ecore:EClass" name="Region">
9 <eStructuralFeatures xsi:type="ecore:EReference" name="vertices" ordered="false" upperBound="-1" eType="//Vertex" containment="true"/>
10 </eClassifiers>
11 <eClassifiers xsi:type="ecore:EClass" name="Transition">
12 <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false" lowerBound="1" eType="//Vertex" eOpposite="//Vertex/incomingTransitions"/>
13 <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false" eType="//Vertex" eOpposite="//Vertex/outgoingTransitions"/>
14 </eClassifiers>
15 <eClassifiers xsi:type="ecore:EClass" name="Statechart" eSuperTypes="//CompositeElement"/>
16 <eClassifiers xsi:type="ecore:EClass" name="Entry" eSuperTypes="//Pseudostate"/>
17 <eClassifiers xsi:type="ecore:EClass" name="Synchronization" eSuperTypes="//Pseudostate"/>
18 <eClassifiers xsi:type="ecore:EClass" name="State" eSuperTypes="//RegularState //CompositeElement"/>
19 <eClassifiers xsi:type="ecore:EClass" name="RegularState" abstract="true" eSuperTypes="//Vertex"/>
20 <eClassifiers xsi:type="ecore:EClass" name="CompositeElement" abstract="true">
21 <eStructuralFeatures xsi:type="ecore:EReference" name="regions" upperBound="-1" eType="//Region" containment="true"/>
22 </eClassifiers>
23 <eClassifiers xsi:type="ecore:EClass" name="Choice" eSuperTypes="//Pseudostate"/>
24 <eClassifiers xsi:type="ecore:EClass" name="Exit" eSuperTypes="//Pseudostate"/>
25 <eClassifiers xsi:type="ecore:EClass" name="FinalState" eSuperTypes="//RegularState"/>
26</ecore:EPackage>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/Fam.logicproblem b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/Fam.logicproblem
index 5792ceed..a0b5d6ea 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/Fam.logicproblem
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/Fam.logicproblem
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="ASCII"?> 1<?xml version="1.0" encoding="ASCII"?>
2<language:LogicProblem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/ecore2logicannotation" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" xmlns:language_1="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:viatra2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/viatra2logicannotation"> 2<language:LogicProblem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/ecore2logicannotation" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" xmlns:language_1="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:viatra2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/viatra2logicannotation">
3 <types xsi:type="language_1:TypeDeclaration" name="FunctionalElement class" subtypes="//@types.2" isAbstract="true"/> 3 <types xsi:type="language_1:TypeDeclaration" name="FunctionalElement class" subtypes="//@types.2" isAbstract="true"/>
4 <types xsi:type="language_1:TypeDeclaration" name="FunctionalArchitectureModel class" subtypes="//@types.10 //@types.11" isAbstract="true"/> 4 <types xsi:type="language_1:TypeDeclaration" name="FunctionalArchitectureModel class"/>
5 <types xsi:type="language_1:TypeDeclaration" name="Function class" supertypes="//@types.0"/> 5 <types xsi:type="language_1:TypeDeclaration" name="Function class" supertypes="//@types.0"/>
6 <types xsi:type="language_1:TypeDeclaration" name="FAMTerminator class"/> 6 <types xsi:type="language_1:TypeDeclaration" name="FAMTerminator class"/>
7 <types xsi:type="language_1:TypeDeclaration" name="InformationLink class"/> 7 <types xsi:type="language_1:TypeDeclaration" name="InformationLink class"/>
@@ -10,8 +10,6 @@
10 <types xsi:type="language_1:TypeDeclaration" name="FunctionalOutput class" supertypes="//@types.8"/> 10 <types xsi:type="language_1:TypeDeclaration" name="FunctionalOutput class" supertypes="//@types.8"/>
11 <types xsi:type="language_1:TypeDeclaration" name="FunctionalData class" subtypes="//@types.6 //@types.7" isAbstract="true"/> 11 <types xsi:type="language_1:TypeDeclaration" name="FunctionalData class" subtypes="//@types.6 //@types.7" isAbstract="true"/>
12 <types xsi:type="language_1:TypeDefinition" name="FunctionType enum" elements="//@elements.0 //@elements.1 //@elements.2"/> 12 <types xsi:type="language_1:TypeDefinition" name="FunctionType enum" elements="//@elements.0 //@elements.1 //@elements.2"/>
13 <types xsi:type="language_1:TypeDefinition" name="FunctionalArchitectureModel class DefinedPart" supertypes="//@types.1" elements="//@elements.3"/>
14 <types xsi:type="language_1:TypeDeclaration" name="FunctionalArchitectureModel class UndefinedPart" supertypes="//@types.1"/>
15 <assertions name="upperMultiplicity interface FunctionalElement" annotations="//@annotations.0"> 13 <assertions name="upperMultiplicity interface FunctionalElement" annotations="//@annotations.0">
16 <value xsi:type="language_1:Forall"> 14 <value xsi:type="language_1:Forall">
17 <quantifiedVariables name="src"> 15 <quantifiedVariables name="src">
@@ -496,7 +494,7 @@
496 </expression> 494 </expression>
497 </value> 495 </value>
498 </assertions> 496 </assertions>
499 <assertions name="errorpattern hu bme mit inf dslreasoner domains transima fam terminatorAndInformation" annotations="//@annotations.27"> 497 <assertions name="errorpattern ca mcgill ecse dslreasoner vampire queries terminatorAndInformation" annotations="//@annotations.20">
500 <value xsi:type="language_1:Forall"> 498 <value xsi:type="language_1:Forall">
501 <quantifiedVariables name="p0"> 499 <quantifiedVariables name="p0">
502 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> 500 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
@@ -505,7 +503,7 @@
505 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> 503 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
506 </quantifiedVariables> 504 </quantifiedVariables>
507 <expression xsi:type="language_1:Not"> 505 <expression xsi:type="language_1:Not">
508 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22"> 506 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15">
509 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.0"/> 507 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.0"/>
510 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.1"/> 508 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.1"/>
511 </operand> 509 </operand>
@@ -572,235 +570,7 @@
572 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> 570 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
573 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> 571 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
574 </relations> 572 </relations>
575 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains transima fam hasRoot" annotations="//@annotations.19"> 573 <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill ecse dslreasoner vampire queries terminatorAndInformation" annotations="//@annotations.19">
576 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
577 <variables name="parameter F">
578 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
579 </variables>
580 <value xsi:type="language_1:Or">
581 <operands xsi:type="language_1:Exists">
582 <quantifiedVariables name="variable Model">
583 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
584 </quantifiedVariables>
585 <expression xsi:type="language_1:And">
586 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19">
587 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.0/@quantifiedVariables.0"/>
588 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.0"/>
589 </operands>
590 </expression>
591 </operands>
592 </value>
593 </relations>
594 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains transima fam hasInt" annotations="//@annotations.20">
595 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
596 <variables name="parameter F">
597 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
598 </variables>
599 <value xsi:type="language_1:Or">
600 <operands xsi:type="language_1:Forall">
601 <quantifiedVariables name="variable Child">
602 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
603 </quantifiedVariables>
604 <quantifiedVariables name="variable Model">
605 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
606 </quantifiedVariables>
607 <expression xsi:type="language_1:And">
608 <operands xsi:type="language_1:InstanceOf">
609 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@variables.0"/>
610 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
611 </operands>
612 <operands xsi:type="language_1:Not">
613 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21">
614 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@value/@operands.0/@quantifiedVariables.0"/>
615 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@variables.0"/>
616 </operand>
617 </operands>
618 <operands xsi:type="language_1:Not">
619 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19">
620 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@value/@operands.0/@quantifiedVariables.1"/>
621 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@variables.0"/>
622 </operand>
623 </operands>
624 </expression>
625 </operands>
626 </value>
627 </relations>
628 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains transima fam hasLeaf" annotations="//@annotations.21">
629 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
630 <variables name="parameter F">
631 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
632 </variables>
633 <value xsi:type="language_1:Or">
634 <operands xsi:type="language_1:Exists">
635 <quantifiedVariables name="variable Par">
636 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
637 </quantifiedVariables>
638 <quantifiedVariables name="variable Child">
639 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
640 </quantifiedVariables>
641 <expression xsi:type="language_1:And">
642 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21">
643 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.0"/>
644 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.0/@quantifiedVariables.0"/>
645 </operands>
646 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21">
647 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.0/@quantifiedVariables.1"/>
648 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.0"/>
649 </operands>
650 </expression>
651 </operands>
652 </value>
653 </relations>
654 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains transima fam model" annotations="//@annotations.22">
655 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
656 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
657 <variables name="parameter This">
658 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
659 </variables>
660 <variables name="parameter Target">
661 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
662 </variables>
663 <value xsi:type="language_1:Or">
664 <operands xsi:type="language_1:And">
665 <operands xsi:type="language_1:InstanceOf">
666 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.0"/>
667 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
668 </operands>
669 <operands xsi:type="language_1:InstanceOf">
670 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.1"/>
671 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
672 </operands>
673 </operands>
674 </value>
675 </relations>
676 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains transima fam rootElements" annotations="//@annotations.23">
677 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
678 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
679 <variables name="parameter Model">
680 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
681 </variables>
682 <variables name="parameter Root">
683 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
684 </variables>
685 <value xsi:type="language_1:Or">
686 <operands xsi:type="language_1:And">
687 <operands xsi:type="language_1:InstanceOf">
688 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.1"/>
689 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
690 </operands>
691 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3">
692 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.0"/>
693 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.1"/>
694 </operands>
695 </operands>
696 </value>
697 </relations>
698 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains transima fam type" annotations="//@annotations.24">
699 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
700 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
701 <variables name="parameter This">
702 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
703 </variables>
704 <variables name="parameter Target">
705 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
706 </variables>
707 <value xsi:type="language_1:Or">
708 <operands xsi:type="language_1:Exists">
709 <quantifiedVariables name="variable Model">
710 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
711 </quantifiedVariables>
712 <expression xsi:type="language_1:And">
713 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19">
714 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@value/@operands.0/@quantifiedVariables.0"/>
715 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/>
716 </operands>
717 <operands xsi:type="language_1:Equals">
718 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.1"/>
719 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.0"/>
720 </operands>
721 </expression>
722 </operands>
723 <operands xsi:type="language_1:Forall">
724 <quantifiedVariables name="variable Child">
725 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
726 </quantifiedVariables>
727 <quantifiedVariables name="variable Model">
728 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
729 </quantifiedVariables>
730 <expression xsi:type="language_1:And">
731 <operands xsi:type="language_1:InstanceOf">
732 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/>
733 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
734 </operands>
735 <operands xsi:type="language_1:Not">
736 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21">
737 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@value/@operands.1/@quantifiedVariables.0"/>
738 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/>
739 </operand>
740 </operands>
741 <operands xsi:type="language_1:Not">
742 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19">
743 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@value/@operands.1/@quantifiedVariables.1"/>
744 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/>
745 </operand>
746 </operands>
747 <operands xsi:type="language_1:Equals">
748 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.1"/>
749 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.2"/>
750 </operands>
751 </expression>
752 </operands>
753 <operands xsi:type="language_1:Exists">
754 <quantifiedVariables name="variable Par">
755 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
756 </quantifiedVariables>
757 <quantifiedVariables name="variable Child">
758 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
759 </quantifiedVariables>
760 <expression xsi:type="language_1:And">
761 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21">
762 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/>
763 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@value/@operands.2/@quantifiedVariables.0"/>
764 </operands>
765 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21">
766 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@value/@operands.2/@quantifiedVariables.1"/>
767 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/>
768 </operands>
769 <operands xsi:type="language_1:Equals">
770 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.1"/>
771 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.1"/>
772 </operands>
773 </expression>
774 </operands>
775 </value>
776 </relations>
777 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains transima fam parent" annotations="//@annotations.25">
778 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
779 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
780 <variables name="parameter Func">
781 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
782 </variables>
783 <variables name="parameter Par">
784 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
785 </variables>
786 <value xsi:type="language_1:Or">
787 <operands xsi:type="language_1:And">
788 <operands xsi:type="language_1:InstanceOf">
789 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.0"/>
790 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
791 </operands>
792 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
793 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.0"/>
794 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.1"/>
795 </operands>
796 <operands xsi:type="language_1:InstanceOf">
797 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.1"/>
798 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
799 </operands>
800 </operands>
801 </value>
802 </relations>
803 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains transima fam terminatorAndInformation" annotations="//@annotations.26">
804 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> 574 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
805 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> 575 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
806 <variables name="parameter T"> 576 <variables name="parameter T">
@@ -816,12 +586,12 @@
816 </quantifiedVariables> 586 </quantifiedVariables>
817 <expression xsi:type="language_1:And"> 587 <expression xsi:type="language_1:And">
818 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11"> 588 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11">
819 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.0"/> 589 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.0/@quantifiedVariables.0"/>
820 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.1"/> 590 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.1"/>
821 </operands> 591 </operands>
822 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12"> 592 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12">
823 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.0"/> 593 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.0/@quantifiedVariables.0"/>
824 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.0"/> 594 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.0"/>
825 </operands> 595 </operands>
826 </expression> 596 </expression>
827 </operands> 597 </operands>
@@ -831,16 +601,12 @@
831 </quantifiedVariables> 601 </quantifiedVariables>
832 <expression xsi:type="language_1:And"> 602 <expression xsi:type="language_1:And">
833 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> 603 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
834 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.1"/> 604 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.1"/>
835 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.1/@quantifiedVariables.0"/> 605 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.1/@quantifiedVariables.0"/>
836 </operands>
837 <operands xsi:type="language_1:InstanceOf">
838 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.1/@quantifiedVariables.0"/>
839 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
840 </operands> 606 </operands>
841 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12"> 607 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12">
842 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.1/@quantifiedVariables.0"/> 608 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.1/@quantifiedVariables.0"/>
843 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.0"/> 609 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.0"/>
844 </operands> 610 </operands>
845 </expression> 611 </expression>
846 </operands> 612 </operands>
@@ -849,8 +615,7 @@
849 <elements name="Root literal FunctionType" definedInType="//@types.9"/> 615 <elements name="Root literal FunctionType" definedInType="//@types.9"/>
850 <elements name="Intermediate literal FunctionType" definedInType="//@types.9"/> 616 <elements name="Intermediate literal FunctionType" definedInType="//@types.9"/>
851 <elements name="Leaf literal FunctionType" definedInType="//@types.9"/> 617 <elements name="Leaf literal FunctionType" definedInType="//@types.9"/>
852 <elements name="o 1" definedInType="//@types.10"/> 618 <containmentHierarchies typesOrderedInHierarchy="//@types.3 //@types.8 //@types.0 //@types.4 //@types.2 //@types.1 //@types.6 //@types.7 //@types.5" containmentRelations="//@relations.0 //@relations.3 //@relations.4 //@relations.8 //@relations.11 //@relations.12"/>
853 <containmentHierarchies typesOrderedInHierarchy="//@types.5 //@types.6 //@types.1 //@types.3 //@types.0 //@types.4 //@types.7 //@types.2 //@types.8 //@types.10 //@types.11" containmentRelations="//@relations.0 //@relations.3 //@relations.4 //@relations.8 //@relations.11 //@relations.12"/>
854 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.0" relation="//@relations.0" upper="1"/> 619 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.0" relation="//@relations.0" upper="1"/>
855 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.1" relation="//@relations.1" lower="1"/> 620 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.1" relation="//@relations.1" lower="1"/>
856 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.2" relation="//@relations.1" upper="1"/> 621 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.2" relation="//@relations.1" upper="1"/>
@@ -870,13 +635,6 @@
870 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.16" inverseA="//@relations.8" inverseB="//@relations.13"/> 635 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.16" inverseA="//@relations.8" inverseB="//@relations.13"/>
871 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.17" relation="//@relations.14" lower="1"/> 636 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.17" relation="//@relations.14" lower="1"/>
872 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.18" relation="//@relations.14" upper="1"/> 637 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.18" relation="//@relations.14" upper="1"/>
873 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.15" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.transima.fam.hasRoot"/> 638 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.15" patternFullyQualifiedName="ca.mcgill.ecse.dslreasoner.vampire.queries.terminatorAndInformation"/>
874 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.16" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.transima.fam.hasInt"/> 639 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.19" query="//@annotations.19"/>
875 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.17" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.transima.fam.hasLeaf"/>
876 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.18" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.transima.fam.model"/>
877 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.19" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.transima.fam.rootElements"/>
878 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.20" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.transima.fam.type"/>
879 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.21" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.transima.fam.parent"/>
880 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.22" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.transima.fam.terminatorAndInformation"/>
881 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.19" query="//@annotations.26"/>
882</language:LogicProblem> 640</language:LogicProblem>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/vampireProblem.tptp b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/vampireProblem.tptp
index 242c404c..1f220d6f 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/vampireProblem.tptp
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/vampireProblem.tptp
@@ -1,55 +1,42 @@
1% This is an initial Test Comment 1% This is an initial Test Comment
2fof ( typeDef_FunctionType_enum , axiom , ! [ A ] : ( type_FunctionType_enum ( A ) <=> ( A = "aRoot literal FunctionType" | ( A = "aIntermediate literal FunctionType" | A = "aLeaf literal FunctionType" ) ) ) ) . 2fof ( typeDef_FunctionType_enum , axiom , ! [ A ] : ( t_FunctionType_enum ( A ) <=> ( e_Root_literal_FunctionType_FunctionType_enum ( A ) | ( e_Intermediate_literal_FunctionType_FunctionType_enum ( A ) | e_Leaf_literal_FunctionType_FunctionType_enum ( A ) ) ) ) ) .
3fof ( typeDef_FunctionalArchitectureModel_class_DefinedPart , axiom , ! [ A ] : ( type_FunctionalArchitectureModel_class_DefinedPart ( A ) <=> A = "ao 1" ) ) . 3fof ( hierarchyHandler , axiom , ! [ A ] : ( object ( A ) <=> ( ( t_InformationLink_class ( A ) & ( ~ t_FunctionType_enum ( A ) & ( ~ t_FunctionalData_class ( A ) & ( ~ t_FunctionalOutput_class ( A ) & ( ~ t_Function_class ( A ) & ( ~ t_FunctionalInput_class ( A ) & ( ~ t_FunctionalArchitectureModel_class ( A ) & ( ~ t_FunctionalElement_class ( A ) & ( ~ t_FunctionalInterface_class ( A ) & ~ t_FAMTerminator_class ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ t_InformationLink_class ( A ) & ( t_FunctionType_enum ( A ) & ( ~ t_FunctionalData_class ( A ) & ( ~ t_FunctionalOutput_class ( A ) & ( ~ t_Function_class ( A ) & ( ~ t_FunctionalInput_class ( A ) & ( ~ t_FunctionalArchitectureModel_class ( A ) & ( ~ t_FunctionalElement_class ( A ) & ( ~ t_FunctionalInterface_class ( A ) & ~ t_FAMTerminator_class ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ t_InformationLink_class ( A ) & ( ~ t_FunctionType_enum ( A ) & ( t_FunctionalData_class ( A ) & ( t_FunctionalOutput_class ( A ) & ( ~ t_Function_class ( A ) & ( ~ t_FunctionalInput_class ( A ) & ( ~ t_FunctionalArchitectureModel_class ( A ) & ( ~ t_FunctionalElement_class ( A ) & ( ~ t_FunctionalInterface_class ( A ) & ~ t_FAMTerminator_class ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ t_InformationLink_class ( A ) & ( ~ t_FunctionType_enum ( A ) & ( ~ t_FunctionalData_class ( A ) & ( ~ t_FunctionalOutput_class ( A ) & ( t_Function_class ( A ) & ( ~ t_FunctionalInput_class ( A ) & ( ~ t_FunctionalArchitectureModel_class ( A ) & ( t_FunctionalElement_class ( A ) & ( ~ t_FunctionalInterface_class ( A ) & ~ t_FAMTerminator_class ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ t_InformationLink_class ( A ) & ( ~ t_FunctionType_enum ( A ) & ( t_FunctionalData_class ( A ) & ( ~ t_FunctionalOutput_class ( A ) & ( ~ t_Function_class ( A ) & ( t_FunctionalInput_class ( A ) & ( ~ t_FunctionalArchitectureModel_class ( A ) & ( ~ t_FunctionalElement_class ( A ) & ( ~ t_FunctionalInterface_class ( A ) & ~ t_FAMTerminator_class ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ t_InformationLink_class ( A ) & ( ~ t_FunctionType_enum ( A ) & ( ~ t_FunctionalData_class ( A ) & ( ~ t_FunctionalOutput_class ( A ) & ( ~ t_Function_class ( A ) & ( ~ t_FunctionalInput_class ( A ) & ( t_FunctionalArchitectureModel_class ( A ) & ( ~ t_FunctionalElement_class ( A ) & ( ~ t_FunctionalInterface_class ( A ) & ~ t_FAMTerminator_class ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ t_InformationLink_class ( A ) & ( ~ t_FunctionType_enum ( A ) & ( ~ t_FunctionalData_class ( A ) & ( ~ t_FunctionalOutput_class ( A ) & ( ~ t_Function_class ( A ) & ( ~ t_FunctionalInput_class ( A ) & ( ~ t_FunctionalArchitectureModel_class ( A ) & ( ~ t_FunctionalElement_class ( A ) & ( t_FunctionalInterface_class ( A ) & ~ t_FAMTerminator_class ( A ) ) ) ) ) ) ) ) ) ) | ( ~ t_InformationLink_class ( A ) & ( ~ t_FunctionType_enum ( A ) & ( ~ t_FunctionalData_class ( A ) & ( ~ t_FunctionalOutput_class ( A ) & ( ~ t_Function_class ( A ) & ( ~ t_FunctionalInput_class ( A ) & ( ~ t_FunctionalArchitectureModel_class ( A ) & ( ~ t_FunctionalElement_class ( A ) & ( ~ t_FunctionalInterface_class ( A ) & t_FAMTerminator_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) .
4fof ( hierarchyHandler , axiom , ! [ A ] : ( object ( A ) <=> ( ( type_FunctionType_enum ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ( ~ type_FunctionalArchitectureModel_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_DefinedPart ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_UndefinedPart ( A ) & ( ~ type_FunctionalInput_class ( A ) & ~ type_FunctionalInterface_class ( A ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_FunctionType_enum ( A ) & ( ~ type_FunctionalData_class ( A ) & ( type_Function_class ( A ) & ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ( ~ type_FunctionalArchitectureModel_class ( A ) & ( type_FunctionalElement_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_DefinedPart ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_UndefinedPart ( A ) & ( ~ type_FunctionalInput_class ( A ) & ~ type_FunctionalInterface_class ( A ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_FunctionType_enum ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_Function_class ( A ) & ( type_InformationLink_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ( ~ type_FunctionalArchitectureModel_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_DefinedPart ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_UndefinedPart ( A ) & ( ~ type_FunctionalInput_class ( A ) & ~ type_FunctionalInterface_class ( A ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_FunctionType_enum ( A ) & ( type_FunctionalData_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_InformationLink_class ( A ) & ( type_FunctionalOutput_class ( A ) & ( ~ type_FunctionalArchitectureModel_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_DefinedPart ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_UndefinedPart ( A ) & ( ~ type_FunctionalInput_class ( A ) & ~ type_FunctionalInterface_class ( A ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_FunctionType_enum ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ( type_FunctionalArchitectureModel_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( type_FunctionalArchitectureModel_class_DefinedPart ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_UndefinedPart ( A ) & ( ~ type_FunctionalInput_class ( A ) & ~ type_FunctionalInterface_class ( A ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_FunctionType_enum ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ( ~ type_FunctionalArchitectureModel_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_DefinedPart ( A ) & ( type_FAMTerminator_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_UndefinedPart ( A ) & ( ~ type_FunctionalInput_class ( A ) & ~ type_FunctionalInterface_class ( A ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_FunctionType_enum ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ( type_FunctionalArchitectureModel_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_DefinedPart ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( type_FunctionalArchitectureModel_class_UndefinedPart ( A ) & ( ~ type_FunctionalInput_class ( A ) & ~ type_FunctionalInterface_class ( A ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_FunctionType_enum ( A ) & ( type_FunctionalData_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ( ~ type_FunctionalArchitectureModel_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_DefinedPart ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_UndefinedPart ( A ) & ( type_FunctionalInput_class ( A ) & ~ type_FunctionalInterface_class ( A ) ) ) ) ) ) ) ) ) ) ) ) | ( ~ type_FunctionType_enum ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ( ~ type_FunctionalArchitectureModel_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_DefinedPart ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_UndefinedPart ( A ) & ( ~ type_FunctionalInput_class ( A ) & type_FunctionalInterface_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) . 4fof ( typeScope , axiom , ! [ A ] : ( object ( A ) <=> ( A = o1 | ( A = o2 | ( A = o3 | ( A = o4 | A = o5 ) ) ) ) ) ) .
5fof ( compliance_interface_reference_FunctionalElement , axiom , ! [ Var_0 , Var_1 ] : ( rel_interface_reference_FunctionalElement ( Var_0 , Var_1 ) => ( type_FunctionalElement_class ( Var_0 ) & type_FunctionalInterface_class ( Var_1 ) ) ) ) . 5fof ( typeUniqueness , axiom , o1 != o2 & ( o1 != o3 & ( o2 != o3 & ( o1 != o4 & ( o2 != o4 & ( o3 != o4 & ( o1 != o5 & ( o2 != o5 & ( o3 != o5 & o4 != o5 ) ) ) ) ) ) ) ) ) .
6fof ( compliance_model_reference_FunctionalElement , axiom , ! [ Var_0 , Var_1 ] : ( rel_model_reference_FunctionalElement ( Var_0 , Var_1 ) => ( type_FunctionalElement_class ( Var_0 ) & type_FunctionalArchitectureModel_class ( Var_1 ) ) ) ) . 6fof ( compliance_interface_reference_FunctionalElement , axiom , ! [ Var_0 , Var_1 ] : ( rel_interface_reference_FunctionalElement ( Var_0 , Var_1 ) => ( t_FunctionalElement_class ( Var_0 ) & t_FunctionalInterface_class ( Var_1 ) ) ) ) .
7fof ( compliance_parent_reference_FunctionalElement , axiom , ! [ Var_0 , Var_1 ] : ( rel_parent_reference_FunctionalElement ( Var_0 , Var_1 ) => ( type_FunctionalElement_class ( Var_0 ) & type_Function_class ( Var_1 ) ) ) ) . 7fof ( compliance_model_reference_FunctionalElement , axiom , ! [ Var_0 , Var_1 ] : ( rel_model_reference_FunctionalElement ( Var_0 , Var_1 ) => ( t_FunctionalElement_class ( Var_0 ) & t_FunctionalArchitectureModel_class ( Var_1 ) ) ) ) .
8fof ( compliance_rootElements_reference_FunctionalArchitectureModel , axiom , ! [ Var_0 , Var_1 ] : ( rel_rootElements_reference_FunctionalArchitectureModel ( Var_0 , Var_1 ) => ( type_FunctionalArchitectureModel_class ( Var_0 ) & type_FunctionalElement_class ( Var_1 ) ) ) ) . 8fof ( compliance_parent_reference_FunctionalElement , axiom , ! [ Var_0 , Var_1 ] : ( rel_parent_reference_FunctionalElement ( Var_0 , Var_1 ) => ( t_FunctionalElement_class ( Var_0 ) & t_Function_class ( Var_1 ) ) ) ) .
9fof ( compliance_subElements_reference_Function , axiom , ! [ Var_0 , Var_1 ] : ( rel_subElements_reference_Function ( Var_0 , Var_1 ) => ( type_Function_class ( Var_0 ) & type_FunctionalElement_class ( Var_1 ) ) ) ) . 9fof ( compliance_rootElements_reference_FunctionalArchitectureModel , axiom , ! [ Var_0 , Var_1 ] : ( rel_rootElements_reference_FunctionalArchitectureModel ( Var_0 , Var_1 ) => ( t_FunctionalArchitectureModel_class ( Var_0 ) & t_FunctionalElement_class ( Var_1 ) ) ) ) .
10fof ( compliance_data_reference_FAMTerminator , axiom , ! [ Var_0 , Var_1 ] : ( rel_data_reference_FAMTerminator ( Var_0 , Var_1 ) => ( type_FAMTerminator_class ( Var_0 ) & type_FunctionalData_class ( Var_1 ) ) ) ) . 10fof ( compliance_subElements_reference_Function , axiom , ! [ Var_0 , Var_1 ] : ( rel_subElements_reference_Function ( Var_0 , Var_1 ) => ( t_Function_class ( Var_0 ) & t_FunctionalElement_class ( Var_1 ) ) ) ) .
11fof ( compliance_from_reference_InformationLink , axiom , ! [ Var_0 , Var_1 ] : ( rel_from_reference_InformationLink ( Var_0 , Var_1 ) => ( type_InformationLink_class ( Var_0 ) & type_FunctionalOutput_class ( Var_1 ) ) ) ) . 11fof ( compliance_data_reference_FAMTerminator , axiom , ! [ Var_0 , Var_1 ] : ( rel_data_reference_FAMTerminator ( Var_0 , Var_1 ) => ( t_FAMTerminator_class ( Var_0 ) & t_FunctionalData_class ( Var_1 ) ) ) ) .
12fof ( compliance_to_reference_InformationLink , axiom , ! [ Var_0 , Var_1 ] : ( rel_to_reference_InformationLink ( Var_0 , Var_1 ) => ( type_InformationLink_class ( Var_0 ) & type_FunctionalInput_class ( Var_1 ) ) ) ) . 12fof ( compliance_from_reference_InformationLink , axiom , ! [ Var_0 , Var_1 ] : ( rel_from_reference_InformationLink ( Var_0 , Var_1 ) => ( t_InformationLink_class ( Var_0 ) & t_FunctionalOutput_class ( Var_1 ) ) ) ) .
13fof ( compliance_data_reference_FunctionalInterface , axiom , ! [ Var_0 , Var_1 ] : ( rel_data_reference_FunctionalInterface ( Var_0 , Var_1 ) => ( type_FunctionalInterface_class ( Var_0 ) & type_FunctionalData_class ( Var_1 ) ) ) ) . 13fof ( compliance_to_reference_InformationLink , axiom , ! [ Var_0 , Var_1 ] : ( rel_to_reference_InformationLink ( Var_0 , Var_1 ) => ( t_InformationLink_class ( Var_0 ) & t_FunctionalInput_class ( Var_1 ) ) ) ) .
14fof ( compliance_element_reference_FunctionalInterface , axiom , ! [ Var_0 , Var_1 ] : ( rel_element_reference_FunctionalInterface ( Var_0 , Var_1 ) => ( type_FunctionalInterface_class ( Var_0 ) & type_FunctionalElement_class ( Var_1 ) ) ) ) . 14fof ( compliance_data_reference_FunctionalInterface , axiom , ! [ Var_0 , Var_1 ] : ( rel_data_reference_FunctionalInterface ( Var_0 , Var_1 ) => ( t_FunctionalInterface_class ( Var_0 ) & t_FunctionalData_class ( Var_1 ) ) ) ) .
15fof ( compliance_IncomingLinks_reference_FunctionalInput , axiom , ! [ Var_0 , Var_1 ] : ( rel_IncomingLinks_reference_FunctionalInput ( Var_0 , Var_1 ) => ( type_FunctionalInput_class ( Var_0 ) & type_InformationLink_class ( Var_1 ) ) ) ) . 15fof ( compliance_element_reference_FunctionalInterface , axiom , ! [ Var_0 , Var_1 ] : ( rel_element_reference_FunctionalInterface ( Var_0 , Var_1 ) => ( t_FunctionalInterface_class ( Var_0 ) & t_FunctionalElement_class ( Var_1 ) ) ) ) .
16fof ( compliance_outgoingLinks_reference_FunctionalOutput , axiom , ! [ Var_0 , Var_1 ] : ( rel_outgoingLinks_reference_FunctionalOutput ( Var_0 , Var_1 ) => ( type_FunctionalOutput_class ( Var_0 ) & type_InformationLink_class ( Var_1 ) ) ) ) . 16fof ( compliance_IncomingLinks_reference_FunctionalInput , axiom , ! [ Var_0 , Var_1 ] : ( rel_IncomingLinks_reference_FunctionalInput ( Var_0 , Var_1 ) => ( t_FunctionalInput_class ( Var_0 ) & t_InformationLink_class ( Var_1 ) ) ) ) .
17fof ( compliance_terminator_reference_FunctionalData , axiom , ! [ Var_0 , Var_1 ] : ( rel_terminator_reference_FunctionalData ( Var_0 , Var_1 ) => ( type_FunctionalData_class ( Var_0 ) & type_FAMTerminator_class ( Var_1 ) ) ) ) . 17fof ( compliance_outgoingLinks_reference_FunctionalOutput , axiom , ! [ Var_0 , Var_1 ] : ( rel_outgoingLinks_reference_FunctionalOutput ( Var_0 , Var_1 ) => ( t_FunctionalOutput_class ( Var_0 ) & t_InformationLink_class ( Var_1 ) ) ) ) .
18fof ( compliance_interface_reference_FunctionalData , axiom , ! [ Var_0 , Var_1 ] : ( rel_interface_reference_FunctionalData ( Var_0 , Var_1 ) => ( type_FunctionalData_class ( Var_0 ) & type_FunctionalInterface_class ( Var_1 ) ) ) ) . 18fof ( compliance_terminator_reference_FunctionalData , axiom , ! [ Var_0 , Var_1 ] : ( rel_terminator_reference_FunctionalData ( Var_0 , Var_1 ) => ( t_FunctionalData_class ( Var_0 ) & t_FAMTerminator_class ( Var_1 ) ) ) ) .
19fof ( compliance_type_attribute_Function , axiom , ! [ Var_0 , Var_1 ] : ( rel_type_attribute_Function ( Var_0 , Var_1 ) => ( type_Function_class ( Var_0 ) & type_FunctionType_enum ( Var_1 ) ) ) ) . 19fof ( compliance_interface_reference_FunctionalData , axiom , ! [ Var_0 , Var_1 ] : ( rel_interface_reference_FunctionalData ( Var_0 , Var_1 ) => ( t_FunctionalData_class ( Var_0 ) & t_FunctionalInterface_class ( Var_1 ) ) ) ) .
20fof ( compliance_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_hasRoot , axiom , ! [ Var_parameter_F ] : ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_hasRoot ( Var_parameter_F ) => type_Function_class ( Var_parameter_F ) ) ) . 20fof ( compliance_type_attribute_Function , axiom , ! [ Var_0 , Var_1 ] : ( rel_type_attribute_Function ( Var_0 , Var_1 ) => ( t_Function_class ( Var_0 ) & t_FunctionType_enum ( Var_1 ) ) ) ) .
21fof ( relation_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_hasRoot , axiom , ! [ Var_parameter_F ] : ( type_Function_class ( Var_parameter_F ) => ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_hasRoot ( Var_parameter_F ) <=> ? [ Var_variable_Model ] : ( type_FunctionalArchitectureModel_class ( Var_variable_Model ) & rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_rootElements ( Var_variable_Model , Var_parameter_F ) ) ) ) ) . 21fof ( compliance_pattern_ca_mcgill_ecse_dslreasoner_vampire_queries_terminatorAndInformation , axiom , ! [ Var_parameter_T , Var_parameter_I ] : ( rel_pattern_ca_mcgill_ecse_dslreasoner_vampire_queries_terminatorAndInformation ( Var_parameter_T , Var_parameter_I ) => ( t_FAMTerminator_class ( Var_parameter_T ) & t_InformationLink_class ( Var_parameter_I ) ) ) ) .
22fof ( compliance_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_hasInt , axiom , ! [ Var_parameter_F ] : ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_hasInt ( Var_parameter_F ) => type_Function_class ( Var_parameter_F ) ) ) . 22fof ( relation_pattern_ca_mcgill_ecse_dslreasoner_vampire_queries_terminatorAndInformation , axiom , ! [ Var_parameter_T , Var_parameter_I ] : ( ( t_FAMTerminator_class ( Var_parameter_T ) & t_InformationLink_class ( Var_parameter_I ) ) => ( rel_pattern_ca_mcgill_ecse_dslreasoner_vampire_queries_terminatorAndInformation ( Var_parameter_T , Var_parameter_I ) <=> ( ? [ Var_variable_Out ] : ( t_FunctionalOutput_class ( Var_variable_Out ) & ( rel_outgoingLinks_reference_FunctionalOutput ( Var_variable_Out , Var_parameter_I ) & rel_terminator_reference_FunctionalData ( Var_variable_Out , Var_parameter_T ) ) ) | ? [ Var_variable_In ] : ( t_FunctionalInput_class ( Var_variable_In ) & ( rel_to_reference_InformationLink ( Var_parameter_I , Var_variable_In ) & rel_terminator_reference_FunctionalData ( Var_variable_In , Var_parameter_T ) ) ) ) ) ) ) .
23fof ( relation_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_hasInt , axiom , ! [ Var_parameter_F ] : ( type_Function_class ( Var_parameter_F ) => ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_hasInt ( Var_parameter_F ) <=> ! [ Var_variable_Child , Var_variable_Model ] : ( ( type_Function_class ( Var_variable_Child ) & type_FunctionalArchitectureModel_class ( Var_variable_Model ) ) => ( type_Function_class ( Var_parameter_F ) & ( ~ rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_parent ( Var_variable_Child , Var_parameter_F ) & ~ rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_rootElements ( Var_variable_Model , Var_parameter_F ) ) ) ) ) ) ) . 23fof ( upperMultiplicity_interface_FunctionalElement , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( t_FunctionalElement_class ( Var_src ) & ( t_FunctionalInterface_class ( Var_trg_1 ) & t_FunctionalInterface_class ( Var_trg_2 ) ) ) => ( ( rel_interface_reference_FunctionalElement ( Var_src , Var_trg_1 ) & rel_interface_reference_FunctionalElement ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
24fof ( compliance_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_hasLeaf , axiom , ! [ Var_parameter_F ] : ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_hasLeaf ( Var_parameter_F ) => type_Function_class ( Var_parameter_F ) ) ) . 24fof ( lowerMultiplicity_model_FunctionalElement , axiom , ! [ Var_src ] : ( t_FunctionalElement_class ( Var_src ) => ? [ Var_trg_1 ] : ( t_FunctionalArchitectureModel_class ( Var_trg_1 ) & rel_model_reference_FunctionalElement ( Var_src , Var_trg_1 ) ) ) ) .
25fof ( relation_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_hasLeaf , axiom , ! [ Var_parameter_F ] : ( type_Function_class ( Var_parameter_F ) => ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_hasLeaf ( Var_parameter_F ) <=> ? [ Var_variable_Par , Var_variable_Child ] : ( type_Function_class ( Var_variable_Par ) & ( type_Function_class ( Var_variable_Child ) & ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_parent ( Var_parameter_F , Var_variable_Par ) & rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_parent ( Var_variable_Child , Var_parameter_F ) ) ) ) ) ) ) . 25fof ( upperMultiplicity_model_FunctionalElement , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( t_FunctionalElement_class ( Var_src ) & ( t_FunctionalArchitectureModel_class ( Var_trg_1 ) & t_FunctionalArchitectureModel_class ( Var_trg_2 ) ) ) => ( ( rel_model_reference_FunctionalElement ( Var_src , Var_trg_1 ) & rel_model_reference_FunctionalElement ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
26fof ( compliance_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_model , axiom , ! [ Var_parameter_This , Var_parameter_Target ] : ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_model ( Var_parameter_This , Var_parameter_Target ) => ( type_FunctionalArchitectureModel_class ( Var_parameter_Target ) & type_FunctionalElement_class ( Var_parameter_This ) ) ) ) . 26fof ( upperMultiplicity_parent_FunctionalElement , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( t_FunctionalElement_class ( Var_src ) & ( t_Function_class ( Var_trg_1 ) & t_Function_class ( Var_trg_2 ) ) ) => ( ( rel_parent_reference_FunctionalElement ( Var_src , Var_trg_1 ) & rel_parent_reference_FunctionalElement ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
27fof ( relation_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_model , axiom , ! [ Var_parameter_This , Var_parameter_Target ] : ( ( type_FunctionalArchitectureModel_class ( Var_parameter_Target ) & type_FunctionalElement_class ( Var_parameter_This ) ) => ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_model ( Var_parameter_This , Var_parameter_Target ) <=> ( type_FunctionalElement_class ( Var_parameter_This ) & type_FunctionalArchitectureModel_class ( Var_parameter_Target ) ) ) ) ) . 27fof ( upperMultiplicity_data_FAMTerminator , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( t_FAMTerminator_class ( Var_src ) & ( t_FunctionalData_class ( Var_trg_1 ) & t_FunctionalData_class ( Var_trg_2 ) ) ) => ( ( rel_data_reference_FAMTerminator ( Var_src , Var_trg_1 ) & rel_data_reference_FAMTerminator ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
28fof ( compliance_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_rootElements , axiom , ! [ Var_parameter_Model , Var_parameter_Root ] : ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_rootElements ( Var_parameter_Model , Var_parameter_Root ) => ( type_FunctionalArchitectureModel_class ( Var_parameter_Model ) & type_Function_class ( Var_parameter_Root ) ) ) ) . 28fof ( upperMultiplicity_from_InformationLink , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( t_InformationLink_class ( Var_src ) & ( t_FunctionalOutput_class ( Var_trg_1 ) & t_FunctionalOutput_class ( Var_trg_2 ) ) ) => ( ( rel_from_reference_InformationLink ( Var_src , Var_trg_1 ) & rel_from_reference_InformationLink ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
29fof ( relation_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_rootElements , axiom , ! [ Var_parameter_Model , Var_parameter_Root ] : ( ( type_FunctionalArchitectureModel_class ( Var_parameter_Model ) & type_Function_class ( Var_parameter_Root ) ) => ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_rootElements ( Var_parameter_Model , Var_parameter_Root ) <=> ( type_Function_class ( Var_parameter_Root ) & rel_rootElements_reference_FunctionalArchitectureModel ( Var_parameter_Model , Var_parameter_Root ) ) ) ) ) . 29fof ( lowerMultiplicity_to_InformationLink , axiom , ! [ Var_src ] : ( t_InformationLink_class ( Var_src ) => ? [ Var_trg_1 ] : ( t_FunctionalInput_class ( Var_trg_1 ) & rel_to_reference_InformationLink ( Var_src , Var_trg_1 ) ) ) ) .
30fof ( compliance_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_type , axiom , ! [ Var_parameter_This , Var_parameter_Target ] : ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_type ( Var_parameter_This , Var_parameter_Target ) => ( type_FunctionType_enum ( Var_parameter_Target ) & type_Function_class ( Var_parameter_This ) ) ) ) . 30fof ( upperMultiplicity_to_InformationLink , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( t_InformationLink_class ( Var_src ) & ( t_FunctionalInput_class ( Var_trg_1 ) & t_FunctionalInput_class ( Var_trg_2 ) ) ) => ( ( rel_to_reference_InformationLink ( Var_src , Var_trg_1 ) & rel_to_reference_InformationLink ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
31fof ( relation_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_type , axiom , ! [ Var_parameter_This , Var_parameter_Target ] : ( ( type_FunctionType_enum ( Var_parameter_Target ) & type_Function_class ( Var_parameter_This ) ) => ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_type ( Var_parameter_This , Var_parameter_Target ) <=> ( ? [ Var_variable_Model ] : ( type_FunctionalArchitectureModel_class ( Var_variable_Model ) & ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_rootElements ( Var_variable_Model , Var_parameter_This ) & Var_parameter_Target = "aRoot literal FunctionType" ) ) | ( ! [ Var_variable_Child , Var_variable_Model ] : ( ( type_Function_class ( Var_variable_Child ) & type_FunctionalArchitectureModel_class ( Var_variable_Model ) ) => ( type_Function_class ( Var_parameter_This ) & ( ~ rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_parent ( Var_variable_Child , Var_parameter_This ) & ( ~ rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_rootElements ( Var_variable_Model , Var_parameter_This ) & Var_parameter_Target = "aLeaf literal FunctionType" ) ) ) ) | ? [ Var_variable_Par , Var_variable_Child ] : ( type_Function_class ( Var_variable_Par ) & ( type_Function_class ( Var_variable_Child ) & ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_parent ( Var_parameter_This , Var_variable_Par ) & ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_parent ( Var_variable_Child , Var_parameter_This ) & Var_parameter_Target = "aIntermediate literal FunctionType" ) ) ) ) ) ) ) ) ) . 31fof ( upperMultiplicity_element_FunctionalInterface , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( t_FunctionalInterface_class ( Var_src ) & ( t_FunctionalElement_class ( Var_trg_1 ) & t_FunctionalElement_class ( Var_trg_2 ) ) ) => ( ( rel_element_reference_FunctionalInterface ( Var_src , Var_trg_1 ) & rel_element_reference_FunctionalInterface ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
32fof ( compliance_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_parent , axiom , ! [ Var_parameter_Func , Var_parameter_Par ] : ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_parent ( Var_parameter_Func , Var_parameter_Par ) => ( type_Function_class ( Var_parameter_Par ) & type_Function_class ( Var_parameter_Func ) ) ) ) . 32fof ( upperMultiplicity_terminator_FunctionalData , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( t_FunctionalData_class ( Var_src ) & ( t_FAMTerminator_class ( Var_trg_1 ) & t_FAMTerminator_class ( Var_trg_2 ) ) ) => ( ( rel_terminator_reference_FunctionalData ( Var_src , Var_trg_1 ) & rel_terminator_reference_FunctionalData ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
33fof ( relation_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_parent , axiom , ! [ Var_parameter_Func , Var_parameter_Par ] : ( ( type_Function_class ( Var_parameter_Par ) & type_Function_class ( Var_parameter_Func ) ) => ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_parent ( Var_parameter_Func , Var_parameter_Par ) <=> ( type_Function_class ( Var_parameter_Func ) & ( rel_parent_reference_FunctionalElement ( Var_parameter_Func , Var_parameter_Par ) & type_Function_class ( Var_parameter_Par ) ) ) ) ) ) . 33fof ( upperMultiplicity_interface_FunctionalData , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( t_FunctionalData_class ( Var_src ) & ( t_FunctionalInterface_class ( Var_trg_1 ) & t_FunctionalInterface_class ( Var_trg_2 ) ) ) => ( ( rel_interface_reference_FunctionalData ( Var_src , Var_trg_1 ) & rel_interface_reference_FunctionalData ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
34fof ( compliance_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_terminatorAndInformation , axiom , ! [ Var_parameter_T , Var_parameter_I ] : ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_terminatorAndInformation ( Var_parameter_T , Var_parameter_I ) => ( type_FAMTerminator_class ( Var_parameter_T ) & type_InformationLink_class ( Var_parameter_I ) ) ) ) . 34fof ( oppositeReference_interface_FunctionalElement , axiom , ! [ Var_src , Var_trg ] : ( ( t_FunctionalElement_class ( Var_src ) & t_FunctionalInterface_class ( Var_trg ) ) => ( rel_interface_reference_FunctionalElement ( Var_src , Var_trg ) <=> rel_element_reference_FunctionalInterface ( Var_trg , Var_src ) ) ) ) .
35fof ( relation_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_terminatorAndInformation , axiom , ! [ Var_parameter_T , Var_parameter_I ] : ( ( type_FAMTerminator_class ( Var_parameter_T ) & type_InformationLink_class ( Var_parameter_I ) ) => ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_terminatorAndInformation ( Var_parameter_T , Var_parameter_I ) <=> ( ? [ Var_variable_Out ] : ( type_FunctionalOutput_class ( Var_variable_Out ) & ( rel_outgoingLinks_reference_FunctionalOutput ( Var_variable_Out , Var_parameter_I ) & rel_terminator_reference_FunctionalData ( Var_variable_Out , Var_parameter_T ) ) ) | ? [ Var_variable_In ] : ( type_FunctionalInput_class ( Var_variable_In ) & ( rel_to_reference_InformationLink ( Var_parameter_I , Var_variable_In ) & ( type_FunctionalInput_class ( Var_variable_In ) & rel_terminator_reference_FunctionalData ( Var_variable_In , Var_parameter_T ) ) ) ) ) ) ) ) . 35fof ( oppositeReference_parent_FunctionalElement , axiom , ! [ Var_src , Var_trg ] : ( ( t_FunctionalElement_class ( Var_src ) & t_Function_class ( Var_trg ) ) => ( rel_parent_reference_FunctionalElement ( Var_src , Var_trg ) <=> rel_subElements_reference_Function ( Var_trg , Var_src ) ) ) ) .
36fof ( upperMultiplicity_interface_FunctionalElement , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FunctionalElement_class ( Var_src ) & ( type_FunctionalInterface_class ( Var_trg_1 ) & type_FunctionalInterface_class ( Var_trg_2 ) ) ) => ( ( rel_interface_reference_FunctionalElement ( Var_src , Var_trg_1 ) & rel_interface_reference_FunctionalElement ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) . 36fof ( oppositeReference_data_FAMTerminator , axiom , ! [ Var_src , Var_trg ] : ( ( t_FAMTerminator_class ( Var_src ) & t_FunctionalData_class ( Var_trg ) ) => ( rel_data_reference_FAMTerminator ( Var_src , Var_trg ) <=> rel_terminator_reference_FunctionalData ( Var_trg , Var_src ) ) ) ) .
37fof ( lowerMultiplicity_model_FunctionalElement , axiom , ! [ Var_src ] : ( type_FunctionalElement_class ( Var_src ) => ? [ Var_trg_1 ] : ( type_FunctionalArchitectureModel_class ( Var_trg_1 ) & rel_model_reference_FunctionalElement ( Var_src , Var_trg_1 ) ) ) ) . 37fof ( oppositeReference_from_InformationLink , axiom , ! [ Var_src , Var_trg ] : ( ( t_InformationLink_class ( Var_src ) & t_FunctionalOutput_class ( Var_trg ) ) => ( rel_from_reference_InformationLink ( Var_src , Var_trg ) <=> rel_outgoingLinks_reference_FunctionalOutput ( Var_trg , Var_src ) ) ) ) .
38fof ( upperMultiplicity_model_FunctionalElement , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FunctionalElement_class ( Var_src ) & ( type_FunctionalArchitectureModel_class ( Var_trg_1 ) & type_FunctionalArchitectureModel_class ( Var_trg_2 ) ) ) => ( ( rel_model_reference_FunctionalElement ( Var_src , Var_trg_1 ) & rel_model_reference_FunctionalElement ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) . 38fof ( oppositeReference_to_InformationLink , axiom , ! [ Var_src , Var_trg ] : ( ( t_InformationLink_class ( Var_src ) & t_FunctionalInput_class ( Var_trg ) ) => ( rel_to_reference_InformationLink ( Var_src , Var_trg ) <=> rel_IncomingLinks_reference_FunctionalInput ( Var_trg , Var_src ) ) ) ) .
39fof ( upperMultiplicity_parent_FunctionalElement , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FunctionalElement_class ( Var_src ) & ( type_Function_class ( Var_trg_1 ) & type_Function_class ( Var_trg_2 ) ) ) => ( ( rel_parent_reference_FunctionalElement ( Var_src , Var_trg_1 ) & rel_parent_reference_FunctionalElement ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) . 39fof ( oppositeReference_data_FunctionalInterface , axiom , ! [ Var_src , Var_trg ] : ( ( t_FunctionalInterface_class ( Var_src ) & t_FunctionalData_class ( Var_trg ) ) => ( rel_data_reference_FunctionalInterface ( Var_src , Var_trg ) <=> rel_interface_reference_FunctionalData ( Var_trg , Var_src ) ) ) ) .
40fof ( upperMultiplicity_data_FAMTerminator , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FAMTerminator_class ( Var_src ) & ( type_FunctionalData_class ( Var_trg_1 ) & type_FunctionalData_class ( Var_trg_2 ) ) ) => ( ( rel_data_reference_FAMTerminator ( Var_src , Var_trg_1 ) & rel_data_reference_FAMTerminator ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) . 40fof ( lowerMultiplicity_type_Function , axiom , ! [ Var_src ] : ( t_Function_class ( Var_src ) => ? [ Var_trg_1 ] : ( t_FunctionType_enum ( Var_trg_1 ) & rel_type_attribute_Function ( Var_src , Var_trg_1 ) ) ) ) .
41fof ( upperMultiplicity_from_InformationLink , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_InformationLink_class ( Var_src ) & ( type_FunctionalOutput_class ( Var_trg_1 ) & type_FunctionalOutput_class ( Var_trg_2 ) ) ) => ( ( rel_from_reference_InformationLink ( Var_src , Var_trg_1 ) & rel_from_reference_InformationLink ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) . 41fof ( upperMultiplicity_type_Function , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( t_Function_class ( Var_src ) & ( t_FunctionType_enum ( Var_trg_1 ) & t_FunctionType_enum ( Var_trg_2 ) ) ) => ( ( rel_type_attribute_Function ( Var_src , Var_trg_1 ) & rel_type_attribute_Function ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
42fof ( lowerMultiplicity_to_InformationLink , axiom , ! [ Var_src ] : ( type_InformationLink_class ( Var_src ) => ? [ Var_trg_1 ] : ( type_FunctionalInput_class ( Var_trg_1 ) & rel_to_reference_InformationLink ( Var_src , Var_trg_1 ) ) ) ) . 42fof ( errorpattern_ca_mcgill_ecse_dslreasoner_vampire_queries_terminatorAndInformation , axiom , ! [ Var_p0 , Var_p1 ] : ( ( t_FAMTerminator_class ( Var_p0 ) & t_InformationLink_class ( Var_p1 ) ) => ~ rel_pattern_ca_mcgill_ecse_dslreasoner_vampire_queries_terminatorAndInformation ( Var_p0 , Var_p1 ) ) ) .
43fof ( upperMultiplicity_to_InformationLink , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_InformationLink_class ( Var_src ) & ( type_FunctionalInput_class ( Var_trg_1 ) & type_FunctionalInput_class ( Var_trg_2 ) ) ) => ( ( rel_to_reference_InformationLink ( Var_src , Var_trg_1 ) & rel_to_reference_InformationLink ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
44fof ( upperMultiplicity_element_FunctionalInterface , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FunctionalInterface_class ( Var_src ) & ( type_FunctionalElement_class ( Var_trg_1 ) & type_FunctionalElement_class ( Var_trg_2 ) ) ) => ( ( rel_element_reference_FunctionalInterface ( Var_src , Var_trg_1 ) & rel_element_reference_FunctionalInterface ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
45fof ( upperMultiplicity_terminator_FunctionalData , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FunctionalData_class ( Var_src ) & ( type_FAMTerminator_class ( Var_trg_1 ) & type_FAMTerminator_class ( Var_trg_2 ) ) ) => ( ( rel_terminator_reference_FunctionalData ( Var_src , Var_trg_1 ) & rel_terminator_reference_FunctionalData ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
46fof ( upperMultiplicity_interface_FunctionalData , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FunctionalData_class ( Var_src ) & ( type_FunctionalInterface_class ( Var_trg_1 ) & type_FunctionalInterface_class ( Var_trg_2 ) ) ) => ( ( rel_interface_reference_FunctionalData ( Var_src , Var_trg_1 ) & rel_interface_reference_FunctionalData ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
47fof ( oppositeReference_interface_FunctionalElement , axiom , ! [ Var_src , Var_trg ] : ( ( type_FunctionalElement_class ( Var_src ) & type_FunctionalInterface_class ( Var_trg ) ) => ( rel_interface_reference_FunctionalElement ( Var_src , Var_trg ) <=> rel_element_reference_FunctionalInterface ( Var_trg , Var_src ) ) ) ) .
48fof ( oppositeReference_parent_FunctionalElement , axiom , ! [ Var_src , Var_trg ] : ( ( type_FunctionalElement_class ( Var_src ) & type_Function_class ( Var_trg ) ) => ( rel_parent_reference_FunctionalElement ( Var_src , Var_trg ) <=> rel_subElements_reference_Function ( Var_trg , Var_src ) ) ) ) .
49fof ( oppositeReference_data_FAMTerminator , axiom , ! [ Var_src , Var_trg ] : ( ( type_FAMTerminator_class ( Var_src ) & type_FunctionalData_class ( Var_trg ) ) => ( rel_data_reference_FAMTerminator ( Var_src , Var_trg ) <=> rel_terminator_reference_FunctionalData ( Var_trg , Var_src ) ) ) ) .
50fof ( oppositeReference_from_InformationLink , axiom , ! [ Var_src , Var_trg ] : ( ( type_InformationLink_class ( Var_src ) & type_FunctionalOutput_class ( Var_trg ) ) => ( rel_from_reference_InformationLink ( Var_src , Var_trg ) <=> rel_outgoingLinks_reference_FunctionalOutput ( Var_trg , Var_src ) ) ) ) .
51fof ( oppositeReference_to_InformationLink , axiom , ! [ Var_src , Var_trg ] : ( ( type_InformationLink_class ( Var_src ) & type_FunctionalInput_class ( Var_trg ) ) => ( rel_to_reference_InformationLink ( Var_src , Var_trg ) <=> rel_IncomingLinks_reference_FunctionalInput ( Var_trg , Var_src ) ) ) ) .
52fof ( oppositeReference_data_FunctionalInterface , axiom , ! [ Var_src , Var_trg ] : ( ( type_FunctionalInterface_class ( Var_src ) & type_FunctionalData_class ( Var_trg ) ) => ( rel_data_reference_FunctionalInterface ( Var_src , Var_trg ) <=> rel_interface_reference_FunctionalData ( Var_trg , Var_src ) ) ) ) .
53fof ( lowerMultiplicity_type_Function , axiom , ! [ Var_src ] : ( type_Function_class ( Var_src ) => ? [ Var_trg_1 ] : ( type_FunctionType_enum ( Var_trg_1 ) & rel_type_attribute_Function ( Var_src , Var_trg_1 ) ) ) ) .
54fof ( upperMultiplicity_type_Function , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_Function_class ( Var_src ) & ( type_FunctionType_enum ( Var_trg_1 ) & type_FunctionType_enum ( Var_trg_2 ) ) ) => ( ( rel_type_attribute_Function ( Var_src , Var_trg_1 ) & rel_type_attribute_Function ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
55fof ( errorpattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_terminatorAndInformation , axiom , ! [ Var_p0 , Var_p1 ] : ( ( type_FAMTerminator_class ( Var_p0 ) & type_InformationLink_class ( Var_p1 ) ) => ~ rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_terminatorAndInformation ( Var_p0 , Var_p1 ) ) ) .
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/MedicalSystem/vampireProblem.tptp b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/MedicalSystem/vampireProblem.tptp
index aa088242..c23afb9a 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/MedicalSystem/vampireProblem.tptp
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/MedicalSystem/vampireProblem.tptp
@@ -1,6 +1,6 @@
1% This is an initial Test Comment 1% This is an initial Test Comment
2fof ( typeDef_HealthSystem_class_DefinedPart , axiom , ! [ A ] : ( type_HealthSystem_class_DefinedPart ( A ) <=> A = "ao 1" ) ) . 2fof ( typeDef_HealthSystem_class_DefinedPart , axiom , ! [ A ] : ( type_HealthSystem_class_DefinedPart ( A ) <=> A = "ao 1" ) ) .
3fof ( hierarchyHandler , axiom , ! [ A ] : ( object ( A ) <=> ( ( type_Allergy_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Medication_class ( A ) & type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_Allergy_class ( A ) & ( ~ type_Treatment_class ( A ) & ( type_Medicine_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Medication_class ( A ) & ~ type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_Allergy_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Medicine_class ( A ) & ( type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_Injury_class ( A ) & ( type_HealthSystem_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Medication_class ( A ) & ~ type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_Allergy_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( type_Symptom_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Medication_class ( A ) & ~ type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_Allergy_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Symptom_class ( A ) & ( type_ExaminationResult_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Medication_class ( A ) & ~ type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_Allergy_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( type_Examination_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Medication_class ( A ) & ~ type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_Allergy_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_Examination_class ( A ) & ( type_Disease_class ( A ) & ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Medication_class ( A ) & type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_Allergy_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Disease_class ( A ) & ( type_MedicalRecord_class ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Medication_class ( A ) & ~ type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_Allergy_class ( A ) & ( type_Treatment_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_MedicalRecord_class ( A ) & ( type_Immunization_class ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Medication_class ( A ) & ~ type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_Allergy_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Immunization_class ( A ) & ( type_Patient_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Medication_class ( A ) & ~ type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_Allergy_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Patient_class ( A ) & ( type_Injury_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Medication_class ( A ) & type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_Allergy_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_Injury_class ( A ) & ( type_HealthSystem_class ( A ) & ( type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Medication_class ( A ) & ~ type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ~ type_Allergy_class ( A ) & ( type_Treatment_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( type_Medication_class ( A ) & ~ type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) . 3fof ( hierarchyHandler , axiom , ! [ A ] : ( object ( A ) <=> ( ( type_MedicalRecord_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_Allergy_class ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_HealthProblem_class ( A ) & ~ type_Medication_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_MedicalRecord_class ( A ) & ( type_Medicine_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_Allergy_class ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_HealthProblem_class ( A ) & ~ type_Medication_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Medicine_class ( A ) & ( type_ExaminationResult_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_Allergy_class ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_HealthProblem_class ( A ) & ~ type_Medication_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Disease_class ( A ) & ( type_HealthSystem_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_Allergy_class ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_HealthProblem_class ( A ) & ~ type_Medication_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( type_Patient_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_Allergy_class ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_HealthProblem_class ( A ) & ~ type_Medication_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Patient_class ( A ) & ( type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Disease_class ( A ) & ( type_HealthSystem_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_Allergy_class ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_HealthProblem_class ( A ) & ~ type_Medication_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( type_Immunization_class ( A ) & ( type_Treatment_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_Allergy_class ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_HealthProblem_class ( A ) & ~ type_Medication_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Treatment_class ( A ) & ( type_Disease_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_Allergy_class ( A ) & ( ~ type_Symptom_class ( A ) & ( type_HealthProblem_class ( A ) & ~ type_Medication_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( type_Examination_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_Allergy_class ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_HealthProblem_class ( A ) & ~ type_Medication_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_Examination_class ( A ) & ( type_Injury_class ( A ) & ( ~ type_Allergy_class ( A ) & ( ~ type_Symptom_class ( A ) & ( type_HealthProblem_class ( A ) & ~ type_Medication_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Injury_class ( A ) & ( type_Allergy_class ( A ) & ( ~ type_Symptom_class ( A ) & ( type_HealthProblem_class ( A ) & ~ type_Medication_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_Allergy_class ( A ) & ( type_Symptom_class ( A ) & ( ~ type_HealthProblem_class ( A ) & ~ type_Medication_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Immunization_class ( A ) & ( type_Treatment_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_Allergy_class ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_HealthProblem_class ( A ) & type_Medication_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) .
4fof ( compliance_records_reference_Patient , axiom , ! [ Var_0 , Var_1 ] : ( rel_records_reference_Patient ( Var_0 , Var_1 ) => ( type_Patient_class ( Var_0 ) & type_MedicalRecord_class ( Var_1 ) ) ) ) . 4fof ( compliance_records_reference_Patient , axiom , ! [ Var_0 , Var_1 ] : ( rel_records_reference_Patient ( Var_0 , Var_1 ) => ( type_Patient_class ( Var_0 ) & type_MedicalRecord_class ( Var_1 ) ) ) ) .
5fof ( compliance_healthsystem_reference_Patient , axiom , ! [ Var_0 , Var_1 ] : ( rel_healthsystem_reference_Patient ( Var_0 , Var_1 ) => ( type_Patient_class ( Var_0 ) & type_HealthSystem_class ( Var_1 ) ) ) ) . 5fof ( compliance_healthsystem_reference_Patient , axiom , ! [ Var_0 , Var_1 ] : ( rel_healthsystem_reference_Patient ( Var_0 , Var_1 ) => ( type_Patient_class ( Var_0 ) & type_HealthSystem_class ( Var_1 ) ) ) ) .
6fof ( compliance_patient_reference_HealthSystem , axiom , ! [ Var_0 , Var_1 ] : ( rel_patient_reference_HealthSystem ( Var_0 , Var_1 ) => ( type_HealthSystem_class ( Var_0 ) & type_Patient_class ( Var_1 ) ) ) ) . 6fof ( compliance_patient_reference_HealthSystem , axiom , ! [ Var_0 , Var_1 ] : ( rel_patient_reference_HealthSystem ( Var_0 , Var_1 ) => ( type_HealthSystem_class ( Var_0 ) & type_Patient_class ( Var_1 ) ) ) ) .
@@ -35,8 +35,8 @@ fof ( compliance_pattern_ca_mcgill_dp19_queries_allergy , axiom , ! [ Var_parame
35fof ( relation_pattern_ca_mcgill_dp19_queries_allergy , axiom , ! [ Var_parameter_mr , Var_parameter_al ] : ( ( type_Allergy_class ( Var_parameter_al ) & type_MedicalRecord_class ( Var_parameter_mr ) ) => ( rel_pattern_ca_mcgill_dp19_queries_allergy ( Var_parameter_mr , Var_parameter_al ) <=> ( type_Allergy_class ( Var_parameter_al ) & rel_pattern_ca_mcgill_dp19_queries_healthProblems ( Var_parameter_mr , Var_parameter_al ) ) ) ) ) . 35fof ( relation_pattern_ca_mcgill_dp19_queries_allergy , axiom , ! [ Var_parameter_mr , Var_parameter_al ] : ( ( type_Allergy_class ( Var_parameter_al ) & type_MedicalRecord_class ( Var_parameter_mr ) ) => ( rel_pattern_ca_mcgill_dp19_queries_allergy ( Var_parameter_mr , Var_parameter_al ) <=> ( type_Allergy_class ( Var_parameter_al ) & rel_pattern_ca_mcgill_dp19_queries_healthProblems ( Var_parameter_mr , Var_parameter_al ) ) ) ) ) .
36fof ( compliance_pattern_ca_mcgill_dp19_queries_allergyWithoutSymptom , axiom , ! [ Var_parameter_mr ] : ( rel_pattern_ca_mcgill_dp19_queries_allergyWithoutSymptom ( Var_parameter_mr ) => type_MedicalRecord_class ( Var_parameter_mr ) ) ) . 36fof ( compliance_pattern_ca_mcgill_dp19_queries_allergyWithoutSymptom , axiom , ! [ Var_parameter_mr ] : ( rel_pattern_ca_mcgill_dp19_queries_allergyWithoutSymptom ( Var_parameter_mr ) => type_MedicalRecord_class ( Var_parameter_mr ) ) ) .
37fof ( relation_pattern_ca_mcgill_dp19_queries_allergyWithoutSymptom , axiom , ! [ Var_parameter_mr ] : ( type_MedicalRecord_class ( Var_parameter_mr ) => ( rel_pattern_ca_mcgill_dp19_queries_allergyWithoutSymptom ( Var_parameter_mr ) <=> ? [ Var_variable_al ] : ( type_Allergy_class ( Var_variable_al ) & ! [ Var_variable_0 ] : ( type_Symptom_class ( Var_variable_0 ) => ( rel_pattern_ca_mcgill_dp19_queries_allergy ( Var_parameter_mr , Var_variable_al ) & ~ rel_pattern_ca_mcgill_dp19_queries_symptom ( Var_parameter_mr , Var_variable_0 ) ) ) ) ) ) ) . 37fof ( relation_pattern_ca_mcgill_dp19_queries_allergyWithoutSymptom , axiom , ! [ Var_parameter_mr ] : ( type_MedicalRecord_class ( Var_parameter_mr ) => ( rel_pattern_ca_mcgill_dp19_queries_allergyWithoutSymptom ( Var_parameter_mr ) <=> ? [ Var_variable_al ] : ( type_Allergy_class ( Var_variable_al ) & ! [ Var_variable_0 ] : ( type_Symptom_class ( Var_variable_0 ) => ( rel_pattern_ca_mcgill_dp19_queries_allergy ( Var_parameter_mr , Var_variable_al ) & ~ rel_pattern_ca_mcgill_dp19_queries_symptom ( Var_parameter_mr , Var_variable_0 ) ) ) ) ) ) ) .
38fof ( compliance_pattern_ca_mcgill_dp19_queries_recommended , axiom , ! [ Var_parameter_hp , Var_parameter_med ] : ( rel_pattern_ca_mcgill_dp19_queries_recommended ( Var_parameter_hp , Var_parameter_med ) => ( type_Medicine_class ( Var_parameter_med ) & type_HealthProblem_class ( Var_parameter_hp ) ) ) ) . 38fof ( compliance_pattern_ca_mcgill_dp19_queries_recommended , axiom , ! [ Var_parameter_hp , Var_parameter_med ] : ( rel_pattern_ca_mcgill_dp19_queries_recommended ( Var_parameter_hp , Var_parameter_med ) => ( type_HealthProblem_class ( Var_parameter_hp ) & type_Medicine_class ( Var_parameter_med ) ) ) ) .
39fof ( relation_pattern_ca_mcgill_dp19_queries_recommended , axiom , ! [ Var_parameter_hp , Var_parameter_med ] : ( ( type_Medicine_class ( Var_parameter_med ) & type_HealthProblem_class ( Var_parameter_hp ) ) => ( rel_pattern_ca_mcgill_dp19_queries_recommended ( Var_parameter_hp , Var_parameter_med ) <=> ( rel_recommended_medicine_reference_HealthProblem ( Var_parameter_hp , Var_parameter_med ) & type_Medicine_class ( Var_parameter_med ) ) ) ) ) . 39fof ( relation_pattern_ca_mcgill_dp19_queries_recommended , axiom , ! [ Var_parameter_hp , Var_parameter_med ] : ( ( type_HealthProblem_class ( Var_parameter_hp ) & type_Medicine_class ( Var_parameter_med ) ) => ( rel_pattern_ca_mcgill_dp19_queries_recommended ( Var_parameter_hp , Var_parameter_med ) <=> ( rel_recommended_medicine_reference_HealthProblem ( Var_parameter_hp , Var_parameter_med ) & type_Medicine_class ( Var_parameter_med ) ) ) ) ) .
40fof ( compliance_pattern_ca_mcgill_dp19_queries_prescribedMedicineNotRecommended , axiom , ! [ Var_parameter_mr , Var_parameter_med ] : ( rel_pattern_ca_mcgill_dp19_queries_prescribedMedicineNotRecommended ( Var_parameter_mr , Var_parameter_med ) => ( type_Medicine_class ( Var_parameter_med ) & type_MedicalRecord_class ( Var_parameter_mr ) ) ) ) . 40fof ( compliance_pattern_ca_mcgill_dp19_queries_prescribedMedicineNotRecommended , axiom , ! [ Var_parameter_mr , Var_parameter_med ] : ( rel_pattern_ca_mcgill_dp19_queries_prescribedMedicineNotRecommended ( Var_parameter_mr , Var_parameter_med ) => ( type_Medicine_class ( Var_parameter_med ) & type_MedicalRecord_class ( Var_parameter_mr ) ) ) ) .
41fof ( relation_pattern_ca_mcgill_dp19_queries_prescribedMedicineNotRecommended , axiom , ! [ Var_parameter_mr , Var_parameter_med ] : ( ( type_Medicine_class ( Var_parameter_med ) & type_MedicalRecord_class ( Var_parameter_mr ) ) => ( rel_pattern_ca_mcgill_dp19_queries_prescribedMedicineNotRecommended ( Var_parameter_mr , Var_parameter_med ) <=> ? [ Var_variable_hp , Var_variable_tr ] : ( type_HealthProblem_class ( Var_variable_hp ) & ( type_Treatment_class ( Var_variable_tr ) & ( rel_pattern_ca_mcgill_dp19_queries_healthProblems ( Var_parameter_mr , Var_variable_hp ) & ( rel_pattern_ca_mcgill_dp19_queries_treatment ( Var_parameter_mr , Var_variable_tr ) & ( rel_medicine_reference_Treatment ( Var_variable_tr , Var_parameter_med ) & ( type_Medicine_class ( Var_parameter_med ) & ~ rel_pattern_ca_mcgill_dp19_queries_recommended ( Var_variable_hp , Var_parameter_med ) ) ) ) ) ) ) ) ) ) . 41fof ( relation_pattern_ca_mcgill_dp19_queries_prescribedMedicineNotRecommended , axiom , ! [ Var_parameter_mr , Var_parameter_med ] : ( ( type_Medicine_class ( Var_parameter_med ) & type_MedicalRecord_class ( Var_parameter_mr ) ) => ( rel_pattern_ca_mcgill_dp19_queries_prescribedMedicineNotRecommended ( Var_parameter_mr , Var_parameter_med ) <=> ? [ Var_variable_hp , Var_variable_tr ] : ( type_HealthProblem_class ( Var_variable_hp ) & ( type_Treatment_class ( Var_variable_tr ) & ( rel_pattern_ca_mcgill_dp19_queries_healthProblems ( Var_parameter_mr , Var_variable_hp ) & ( rel_pattern_ca_mcgill_dp19_queries_treatment ( Var_parameter_mr , Var_variable_tr ) & ( rel_medicine_reference_Treatment ( Var_variable_tr , Var_parameter_med ) & ( type_Medicine_class ( Var_parameter_med ) & ~ rel_pattern_ca_mcgill_dp19_queries_recommended ( Var_variable_hp , Var_parameter_med ) ) ) ) ) ) ) ) ) ) .
42fof ( upperMultiplicity_healthsystem_Patient , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_Patient_class ( Var_src ) & ( type_HealthSystem_class ( Var_trg_1 ) & type_HealthSystem_class ( Var_trg_2 ) ) ) => ( ( rel_healthsystem_reference_Patient ( Var_src , Var_trg_1 ) & rel_healthsystem_reference_Patient ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) . 42fof ( upperMultiplicity_healthsystem_Patient , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_Patient_class ( Var_src ) & ( type_HealthSystem_class ( Var_trg_1 ) & type_HealthSystem_class ( Var_trg_2 ) ) ) => ( ( rel_healthsystem_reference_Patient ( Var_src , Var_trg_1 ) & rel_healthsystem_reference_Patient ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/VampireTest/vampireProblem.tptp b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/VampireTest/vampireProblem.tptp
index a4afb86e..4c368859 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/VampireTest/vampireProblem.tptp
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/VampireTest/vampireProblem.tptp
@@ -1 +1,7 @@
1% This is an initial Test Comment fof ( typeDef_oldRPS , axiom , ! [ A ] : ( type_oldRPS ( A ) <=> ( A = "aRock" | ( A = "aPaper" | A = "aScissor" ) ) ) ) . fof ( hierarchyHandler , axiom , ! [ A ] : ( object ( A ) <=> type_oldRPS ( A ) ) ) . fof ( compliance_beats2 , axiom , ! [ Var_0 , Var_1 ] : ( rel_beats2 ( Var_0 , Var_1 ) => ( type_oldRPS ( Var_0 ) & type_oldRPS ( Var_1 ) ) ) ) . fof ( assertion1 , axiom , ! [ Var_x ] : ( type_oldRPS ( Var_x ) => ? [ Var_y ] : ( type_oldRPS ( Var_y ) & ( rel_beats2 ( Var_x , Var_y ) & ( Var_x != Var_y & ~ rel_beats2 ( Var_y , Var_x ) ) ) ) ) ) . \ No newline at end of file 1% This is an initial Test Comment
2fof ( typeDef_oldRPS , axiom , ! [ A ] : ( t_oldRPS ( A ) <=> ( e_Rock_oldRPS ( A ) | ( e_Paper_oldRPS ( A ) | e_Scissor_oldRPS ( A ) ) ) ) ) .
3fof ( hierarchyHandler , axiom , ! [ A ] : ( object ( A ) <=> t_oldRPS ( A ) ) ) .
4fof ( typeScope , axiom , ! [ A ] : ( object ( A ) <=> ( A = o1 | ( A = o2 | ( A = o3 | A = o4 ) ) ) ) ) .
5fof ( typeUniqueness , axiom , o1 != o2 & ( o1 != o3 & ( o2 != o3 & ( o1 != o4 & ( o2 != o4 & o3 != o4 ) ) ) ) ) .
6fof ( compliance_beats2 , axiom , ! [ Var_0 , Var_1 ] : ( rel_beats2 ( Var_0 , Var_1 ) => ( t_oldRPS ( Var_0 ) & t_oldRPS ( Var_1 ) ) ) ) .
7fof ( assertion1 , axiom , ! [ Var_x ] : ( t_oldRPS ( Var_x ) => ? [ Var_y ] : ( t_oldRPS ( Var_y ) & ( rel_beats2 ( Var_x , Var_y ) & ( Var_x != Var_y & ~ rel_beats2 ( Var_y , Var_x ) ) ) ) ) ) .
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml
index 2f4febdb..38efb459 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml
@@ -1 +1,7 @@
1<?xml version="1.0" encoding="UTF-8"?><plugin/> 1<?xml version="1.0" encoding="UTF-8"?><plugin>
2 <extension id="ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns" point="org.eclipse.viatra.query.runtime.queryspecification">
3 <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns" id="ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns">
4 <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.terminatorAndInformation"/>
5 </group>
6 </extension>
7</plugin>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/.gitignore b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/.gitignore
new file mode 100644
index 00000000..96fc598c
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/.gitignore
@@ -0,0 +1,50 @@
1/.EntryInRegion_M0.java._trace
2/.EntryInRegion_M1.java._trace
3/.EntryInRegion_M2.java._trace
4/.FamPatterns.java._trace
5/.MultipleEntryInRegion_M0.java._trace
6/.MultipleEntryInRegion_M1.java._trace
7/.MultipleEntryInRegion_M2.java._trace
8/.MultipleEntryInRegion_M3.java._trace
9/.MultipleEntryInRegion_M4.java._trace
10/.MultipleEntryInRegion_M5.java._trace
11/.NoEntryInRegion_M0.java._trace
12/.NoEntryInRegion_M1.java._trace
13/.NoEntryInRegion_M2.java._trace
14/.NoEntryInRegion_M3.java._trace
15/.NoEntryInRegion_M4.java._trace
16/.NoEntryInRegion_M5.java._trace
17/.TerminatorAndInformation.java._trace
18/.Transition_M0.java._trace
19/.Transition_M1.java._trace
20/.EntryInRegion.java._trace
21/.IncomingToEntry.java._trace
22/.MultipleEntryInRegion.java._trace
23/.MultipleTransitionFromEntry.java._trace
24/.NoEntryInRegion.java._trace
25/.NoOutgoingTransitionFromEntry.java._trace
26/.NoStateInRegion.java._trace
27/.OutgoingFromExit.java._trace
28/.OutgoingFromFinal.java._trace
29/.StateInRegion.java._trace
30/.Transition.java._trace
31/.Child.java._trace
32/.ChoiceHasNoIncoming.java._trace
33/.ChoiceHasNoOutgoing.java._trace
34/.HasMultipleIncomingTrainsition.java._trace
35/.HasMultipleOutgoingTrainsition.java._trace
36/.HasMultipleRegions.java._trace
37/.NotSynchronizingStates.java._trace
38/.SynchHasNoIncoming.java._trace
39/.SynchHasNoOutgoing.java._trace
40/.SynchThree.java._trace
41/.SynchronizedIncomingInSameRegion.java._trace
42/.SynchronizedRegionDoesNotHaveMultipleRegions.java._trace
43/.SynchronizedRegionsAreNotSiblings.java._trace
44/.TwoSynch.java._trace
45/.YakinduPatterns.java._trace
46/.Transition_M2.java._trace
47/.Transition_M3.java._trace
48/.IncomingToEntry_1.java._trace
49/.IncomingToEntry_M0.java._trace
50/.Transition_M4.java._trace
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.java
new file mode 100644
index 00000000..cf1378da
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.java
@@ -0,0 +1,53 @@
1/**
2 * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.vql
3 */
4package ca.mcgill.ecse.dslreasoner.vampire.queries;
5
6import ca.mcgill.ecse.dslreasoner.vampire.queries.TerminatorAndInformation;
7import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
8import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedPatternGroup;
9
10/**
11 * A pattern group formed of all public patterns defined in FamPatterns.vql.
12 *
13 * <p>Use the static instance as any {@link interface org.eclipse.viatra.query.runtime.api.IQueryGroup}, to conveniently prepare
14 * a VIATRA Query engine for matching all patterns originally defined in file FamPatterns.vql,
15 * in order to achieve better performance than one-by-one on-demand matcher initialization.
16 *
17 * <p> From package ca.mcgill.ecse.dslreasoner.vampire.queries, the group contains the definition of the following patterns: <ul>
18 * <li>terminatorAndInformation</li>
19 * </ul>
20 *
21 * @see IQueryGroup
22 *
23 */
24@SuppressWarnings("all")
25public final class FamPatterns extends BaseGeneratedPatternGroup {
26 /**
27 * Access the pattern group.
28 *
29 * @return the singleton instance of the group
30 * @throws ViatraQueryRuntimeException if there was an error loading the generated code of pattern specifications
31 *
32 */
33 public static FamPatterns instance() {
34 if (INSTANCE == null) {
35 INSTANCE = new FamPatterns();
36 }
37 return INSTANCE;
38 }
39
40 private static FamPatterns INSTANCE;
41
42 private FamPatterns() {
43 querySpecifications.add(TerminatorAndInformation.instance());
44 }
45
46 public TerminatorAndInformation getTerminatorAndInformation() {
47 return TerminatorAndInformation.instance();
48 }
49
50 public TerminatorAndInformation.Matcher getTerminatorAndInformation(final ViatraQueryEngine engine) {
51 return TerminatorAndInformation.Matcher.on(engine);
52 }
53}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/TerminatorAndInformation.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/TerminatorAndInformation.java
new file mode 100644
index 00000000..cb0708ad
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/TerminatorAndInformation.java
@@ -0,0 +1,747 @@
1/**
2 * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.vql
3 */
4package ca.mcgill.ecse.dslreasoner.vampire.queries;
5
6import functionalarchitecture.FAMTerminator;
7import functionalarchitecture.InformationLink;
8import java.util.Arrays;
9import java.util.Collection;
10import java.util.LinkedHashSet;
11import java.util.List;
12import java.util.Objects;
13import java.util.Optional;
14import java.util.Set;
15import java.util.function.Consumer;
16import java.util.stream.Collectors;
17import java.util.stream.Stream;
18import org.apache.log4j.Logger;
19import org.eclipse.emf.ecore.EClass;
20import org.eclipse.viatra.query.runtime.api.IPatternMatch;
21import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
22import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
23import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
24import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
25import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
26import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
27import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
28import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
29import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
30import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
31import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
32import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
33import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference;
34import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
35import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
36import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
37import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
38import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
39import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
40import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
41import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
42import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
43
44/**
45 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
46 *
47 * <p>Original source:
48 * <code><pre>
49 * {@literal @}Constraint(message="terminatorAndInformation", severity="error", key={T})
50 * pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = {
51 * FunctionalOutput.outgoingLinks(Out,I);
52 * FunctionalOutput.terminator(Out,T);
53 * } or {
54 * InformationLink.to(I,In);
55 * FunctionalInput.terminator(In,T);
56 * }
57 * </pre></code>
58 *
59 * @see Matcher
60 * @see Match
61 *
62 */
63@SuppressWarnings("all")
64public final class TerminatorAndInformation extends BaseGeneratedEMFQuerySpecification<TerminatorAndInformation.Matcher> {
65 /**
66 * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.terminatorAndInformation pattern,
67 * to be used in conjunction with {@link Matcher}.
68 *
69 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
70 * Each instance is a (possibly partial) substitution of pattern parameters,
71 * usable to represent a match of the pattern in the result of a query,
72 * or to specify the bound (fixed) input parameters when issuing a query.
73 *
74 * @see Matcher
75 *
76 */
77 public static abstract class Match extends BasePatternMatch {
78 private FAMTerminator fT;
79
80 private InformationLink fI;
81
82 private static List<String> parameterNames = makeImmutableList("T", "I");
83
84 private Match(final FAMTerminator pT, final InformationLink pI) {
85 this.fT = pT;
86 this.fI = pI;
87 }
88
89 @Override
90 public Object get(final String parameterName) {
91 if ("T".equals(parameterName)) return this.fT;
92 if ("I".equals(parameterName)) return this.fI;
93 return null;
94 }
95
96 public FAMTerminator getT() {
97 return this.fT;
98 }
99
100 public InformationLink getI() {
101 return this.fI;
102 }
103
104 @Override
105 public boolean set(final String parameterName, final Object newValue) {
106 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
107 if ("T".equals(parameterName) ) {
108 this.fT = (FAMTerminator) newValue;
109 return true;
110 }
111 if ("I".equals(parameterName) ) {
112 this.fI = (InformationLink) newValue;
113 return true;
114 }
115 return false;
116 }
117
118 public void setT(final FAMTerminator pT) {
119 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
120 this.fT = pT;
121 }
122
123 public void setI(final InformationLink pI) {
124 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
125 this.fI = pI;
126 }
127
128 @Override
129 public String patternName() {
130 return "ca.mcgill.ecse.dslreasoner.vampire.queries.terminatorAndInformation";
131 }
132
133 @Override
134 public List<String> parameterNames() {
135 return TerminatorAndInformation.Match.parameterNames;
136 }
137
138 @Override
139 public Object[] toArray() {
140 return new Object[]{fT, fI};
141 }
142
143 @Override
144 public TerminatorAndInformation.Match toImmutable() {
145 return isMutable() ? newMatch(fT, fI) : this;
146 }
147
148 @Override
149 public String prettyPrint() {
150 StringBuilder result = new StringBuilder();
151 result.append("\"T\"=" + prettyPrintValue(fT) + ", ");
152 result.append("\"I\"=" + prettyPrintValue(fI));
153 return result.toString();
154 }
155
156 @Override
157 public int hashCode() {
158 return Objects.hash(fT, fI);
159 }
160
161 @Override
162 public boolean equals(final Object obj) {
163 if (this == obj)
164 return true;
165 if (obj == null) {
166 return false;
167 }
168 if ((obj instanceof TerminatorAndInformation.Match)) {
169 TerminatorAndInformation.Match other = (TerminatorAndInformation.Match) obj;
170 return Objects.equals(fT, other.fT) && Objects.equals(fI, other.fI);
171 } else {
172 // this should be infrequent
173 if (!(obj instanceof IPatternMatch)) {
174 return false;
175 }
176 IPatternMatch otherSig = (IPatternMatch) obj;
177 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
178 }
179 }
180
181 @Override
182 public TerminatorAndInformation specification() {
183 return TerminatorAndInformation.instance();
184 }
185
186 /**
187 * Returns an empty, mutable match.
188 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
189 *
190 * @return the empty match.
191 *
192 */
193 public static TerminatorAndInformation.Match newEmptyMatch() {
194 return new Mutable(null, null);
195 }
196
197 /**
198 * Returns a mutable (partial) match.
199 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
200 *
201 * @param pT the fixed value of pattern parameter T, or null if not bound.
202 * @param pI the fixed value of pattern parameter I, or null if not bound.
203 * @return the new, mutable (partial) match object.
204 *
205 */
206 public static TerminatorAndInformation.Match newMutableMatch(final FAMTerminator pT, final InformationLink pI) {
207 return new Mutable(pT, pI);
208 }
209
210 /**
211 * Returns a new (partial) match.
212 * This can be used e.g. to call the matcher with a partial match.
213 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
214 * @param pT the fixed value of pattern parameter T, or null if not bound.
215 * @param pI the fixed value of pattern parameter I, or null if not bound.
216 * @return the (partial) match object.
217 *
218 */
219 public static TerminatorAndInformation.Match newMatch(final FAMTerminator pT, final InformationLink pI) {
220 return new Immutable(pT, pI);
221 }
222
223 private static final class Mutable extends TerminatorAndInformation.Match {
224 Mutable(final FAMTerminator pT, final InformationLink pI) {
225 super(pT, pI);
226 }
227
228 @Override
229 public boolean isMutable() {
230 return true;
231 }
232 }
233
234 private static final class Immutable extends TerminatorAndInformation.Match {
235 Immutable(final FAMTerminator pT, final InformationLink pI) {
236 super(pT, pI);
237 }
238
239 @Override
240 public boolean isMutable() {
241 return false;
242 }
243 }
244 }
245
246 /**
247 * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.terminatorAndInformation pattern,
248 * providing pattern-specific query methods.
249 *
250 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
251 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
252 *
253 * <p>Matches of the pattern will be represented as {@link Match}.
254 *
255 * <p>Original source:
256 * <code><pre>
257 * {@literal @}Constraint(message="terminatorAndInformation", severity="error", key={T})
258 * pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = {
259 * FunctionalOutput.outgoingLinks(Out,I);
260 * FunctionalOutput.terminator(Out,T);
261 * } or {
262 * InformationLink.to(I,In);
263 * FunctionalInput.terminator(In,T);
264 * }
265 * </pre></code>
266 *
267 * @see Match
268 * @see TerminatorAndInformation
269 *
270 */
271 public static class Matcher extends BaseMatcher<TerminatorAndInformation.Match> {
272 /**
273 * Initializes the pattern matcher within an existing VIATRA Query engine.
274 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
275 *
276 * @param engine the existing VIATRA Query engine in which this matcher will be created.
277 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
278 *
279 */
280 public static TerminatorAndInformation.Matcher on(final ViatraQueryEngine engine) {
281 // check if matcher already exists
282 Matcher matcher = engine.getExistingMatcher(querySpecification());
283 if (matcher == null) {
284 matcher = (Matcher)engine.getMatcher(querySpecification());
285 }
286 return matcher;
287 }
288
289 /**
290 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
291 * @return an initialized matcher
292 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
293 *
294 */
295 public static TerminatorAndInformation.Matcher create() {
296 return new Matcher();
297 }
298
299 private final static int POSITION_T = 0;
300
301 private final static int POSITION_I = 1;
302
303 private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(TerminatorAndInformation.Matcher.class);
304
305 /**
306 * Initializes the pattern matcher within an existing VIATRA Query engine.
307 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
308 *
309 * @param engine the existing VIATRA Query engine in which this matcher will be created.
310 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
311 *
312 */
313 private Matcher() {
314 super(querySpecification());
315 }
316
317 /**
318 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
319 * @param pT the fixed value of pattern parameter T, or null if not bound.
320 * @param pI the fixed value of pattern parameter I, or null if not bound.
321 * @return matches represented as a Match object.
322 *
323 */
324 public Collection<TerminatorAndInformation.Match> getAllMatches(final FAMTerminator pT, final InformationLink pI) {
325 return rawStreamAllMatches(new Object[]{pT, pI}).collect(Collectors.toSet());
326 }
327
328 /**
329 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
330 * </p>
331 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
332 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
333 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
334 * @param pT the fixed value of pattern parameter T, or null if not bound.
335 * @param pI the fixed value of pattern parameter I, or null if not bound.
336 * @return a stream of matches represented as a Match object.
337 *
338 */
339 public Stream<TerminatorAndInformation.Match> streamAllMatches(final FAMTerminator pT, final InformationLink pI) {
340 return rawStreamAllMatches(new Object[]{pT, pI});
341 }
342
343 /**
344 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
345 * Neither determinism nor randomness of selection is guaranteed.
346 * @param pT the fixed value of pattern parameter T, or null if not bound.
347 * @param pI the fixed value of pattern parameter I, or null if not bound.
348 * @return a match represented as a Match object, or null if no match is found.
349 *
350 */
351 public Optional<TerminatorAndInformation.Match> getOneArbitraryMatch(final FAMTerminator pT, final InformationLink pI) {
352 return rawGetOneArbitraryMatch(new Object[]{pT, pI});
353 }
354
355 /**
356 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
357 * under any possible substitution of the unspecified parameters (if any).
358 * @param pT the fixed value of pattern parameter T, or null if not bound.
359 * @param pI the fixed value of pattern parameter I, or null if not bound.
360 * @return true if the input is a valid (partial) match of the pattern.
361 *
362 */
363 public boolean hasMatch(final FAMTerminator pT, final InformationLink pI) {
364 return rawHasMatch(new Object[]{pT, pI});
365 }
366
367 /**
368 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
369 * @param pT the fixed value of pattern parameter T, or null if not bound.
370 * @param pI the fixed value of pattern parameter I, or null if not bound.
371 * @return the number of pattern matches found.
372 *
373 */
374 public int countMatches(final FAMTerminator pT, final InformationLink pI) {
375 return rawCountMatches(new Object[]{pT, pI});
376 }
377
378 /**
379 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
380 * Neither determinism nor randomness of selection is guaranteed.
381 * @param pT the fixed value of pattern parameter T, or null if not bound.
382 * @param pI the fixed value of pattern parameter I, or null if not bound.
383 * @param processor the action that will process the selected match.
384 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
385 *
386 */
387 public boolean forOneArbitraryMatch(final FAMTerminator pT, final InformationLink pI, final Consumer<? super TerminatorAndInformation.Match> processor) {
388 return rawForOneArbitraryMatch(new Object[]{pT, pI}, processor);
389 }
390
391 /**
392 * Returns a new (partial) match.
393 * This can be used e.g. to call the matcher with a partial match.
394 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
395 * @param pT the fixed value of pattern parameter T, or null if not bound.
396 * @param pI the fixed value of pattern parameter I, or null if not bound.
397 * @return the (partial) match object.
398 *
399 */
400 public TerminatorAndInformation.Match newMatch(final FAMTerminator pT, final InformationLink pI) {
401 return TerminatorAndInformation.Match.newMatch(pT, pI);
402 }
403
404 /**
405 * Retrieve the set of values that occur in matches for T.
406 * @return the Set of all values or empty set if there are no matches
407 *
408 */
409 protected Stream<FAMTerminator> rawStreamAllValuesOfT(final Object[] parameters) {
410 return rawStreamAllValues(POSITION_T, parameters).map(FAMTerminator.class::cast);
411 }
412
413 /**
414 * Retrieve the set of values that occur in matches for T.
415 * @return the Set of all values or empty set if there are no matches
416 *
417 */
418 public Set<FAMTerminator> getAllValuesOfT() {
419 return rawStreamAllValuesOfT(emptyArray()).collect(Collectors.toSet());
420 }
421
422 /**
423 * Retrieve the set of values that occur in matches for T.
424 * @return the Set of all values or empty set if there are no matches
425 *
426 */
427 public Stream<FAMTerminator> streamAllValuesOfT() {
428 return rawStreamAllValuesOfT(emptyArray());
429 }
430
431 /**
432 * Retrieve the set of values that occur in matches for T.
433 * </p>
434 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
435 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
436 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
437 *
438 * @return the Stream of all values or empty set if there are no matches
439 *
440 */
441 public Stream<FAMTerminator> streamAllValuesOfT(final TerminatorAndInformation.Match partialMatch) {
442 return rawStreamAllValuesOfT(partialMatch.toArray());
443 }
444
445 /**
446 * Retrieve the set of values that occur in matches for T.
447 * </p>
448 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
449 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
450 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
451 *
452 * @return the Stream of all values or empty set if there are no matches
453 *
454 */
455 public Stream<FAMTerminator> streamAllValuesOfT(final InformationLink pI) {
456 return rawStreamAllValuesOfT(new Object[]{null, pI});
457 }
458
459 /**
460 * Retrieve the set of values that occur in matches for T.
461 * @return the Set of all values or empty set if there are no matches
462 *
463 */
464 public Set<FAMTerminator> getAllValuesOfT(final TerminatorAndInformation.Match partialMatch) {
465 return rawStreamAllValuesOfT(partialMatch.toArray()).collect(Collectors.toSet());
466 }
467
468 /**
469 * Retrieve the set of values that occur in matches for T.
470 * @return the Set of all values or empty set if there are no matches
471 *
472 */
473 public Set<FAMTerminator> getAllValuesOfT(final InformationLink pI) {
474 return rawStreamAllValuesOfT(new Object[]{null, pI}).collect(Collectors.toSet());
475 }
476
477 /**
478 * Retrieve the set of values that occur in matches for I.
479 * @return the Set of all values or empty set if there are no matches
480 *
481 */
482 protected Stream<InformationLink> rawStreamAllValuesOfI(final Object[] parameters) {
483 return rawStreamAllValues(POSITION_I, parameters).map(InformationLink.class::cast);
484 }
485
486 /**
487 * Retrieve the set of values that occur in matches for I.
488 * @return the Set of all values or empty set if there are no matches
489 *
490 */
491 public Set<InformationLink> getAllValuesOfI() {
492 return rawStreamAllValuesOfI(emptyArray()).collect(Collectors.toSet());
493 }
494
495 /**
496 * Retrieve the set of values that occur in matches for I.
497 * @return the Set of all values or empty set if there are no matches
498 *
499 */
500 public Stream<InformationLink> streamAllValuesOfI() {
501 return rawStreamAllValuesOfI(emptyArray());
502 }
503
504 /**
505 * Retrieve the set of values that occur in matches for I.
506 * </p>
507 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
508 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
509 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
510 *
511 * @return the Stream of all values or empty set if there are no matches
512 *
513 */
514 public Stream<InformationLink> streamAllValuesOfI(final TerminatorAndInformation.Match partialMatch) {
515 return rawStreamAllValuesOfI(partialMatch.toArray());
516 }
517
518 /**
519 * Retrieve the set of values that occur in matches for I.
520 * </p>
521 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
522 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
523 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
524 *
525 * @return the Stream of all values or empty set if there are no matches
526 *
527 */
528 public Stream<InformationLink> streamAllValuesOfI(final FAMTerminator pT) {
529 return rawStreamAllValuesOfI(new Object[]{pT, null});
530 }
531
532 /**
533 * Retrieve the set of values that occur in matches for I.
534 * @return the Set of all values or empty set if there are no matches
535 *
536 */
537 public Set<InformationLink> getAllValuesOfI(final TerminatorAndInformation.Match partialMatch) {
538 return rawStreamAllValuesOfI(partialMatch.toArray()).collect(Collectors.toSet());
539 }
540
541 /**
542 * Retrieve the set of values that occur in matches for I.
543 * @return the Set of all values or empty set if there are no matches
544 *
545 */
546 public Set<InformationLink> getAllValuesOfI(final FAMTerminator pT) {
547 return rawStreamAllValuesOfI(new Object[]{pT, null}).collect(Collectors.toSet());
548 }
549
550 @Override
551 protected TerminatorAndInformation.Match tupleToMatch(final Tuple t) {
552 try {
553 return TerminatorAndInformation.Match.newMatch((FAMTerminator) t.get(POSITION_T), (InformationLink) t.get(POSITION_I));
554 } catch(ClassCastException e) {
555 LOGGER.error("Element(s) in tuple not properly typed!",e);
556 return null;
557 }
558 }
559
560 @Override
561 protected TerminatorAndInformation.Match arrayToMatch(final Object[] match) {
562 try {
563 return TerminatorAndInformation.Match.newMatch((FAMTerminator) match[POSITION_T], (InformationLink) match[POSITION_I]);
564 } catch(ClassCastException e) {
565 LOGGER.error("Element(s) in array not properly typed!",e);
566 return null;
567 }
568 }
569
570 @Override
571 protected TerminatorAndInformation.Match arrayToMatchMutable(final Object[] match) {
572 try {
573 return TerminatorAndInformation.Match.newMutableMatch((FAMTerminator) match[POSITION_T], (InformationLink) match[POSITION_I]);
574 } catch(ClassCastException e) {
575 LOGGER.error("Element(s) in array not properly typed!",e);
576 return null;
577 }
578 }
579
580 /**
581 * @return the singleton instance of the query specification of this pattern
582 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
583 *
584 */
585 public static IQuerySpecification<TerminatorAndInformation.Matcher> querySpecification() {
586 return TerminatorAndInformation.instance();
587 }
588 }
589
590 private TerminatorAndInformation() {
591 super(GeneratedPQuery.INSTANCE);
592 }
593
594 /**
595 * @return the singleton instance of the query specification
596 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
597 *
598 */
599 public static TerminatorAndInformation instance() {
600 try{
601 return LazyHolder.INSTANCE;
602 } catch (ExceptionInInitializerError err) {
603 throw processInitializerError(err);
604 }
605 }
606
607 @Override
608 protected TerminatorAndInformation.Matcher instantiate(final ViatraQueryEngine engine) {
609 return TerminatorAndInformation.Matcher.on(engine);
610 }
611
612 @Override
613 public TerminatorAndInformation.Matcher instantiate() {
614 return TerminatorAndInformation.Matcher.create();
615 }
616
617 @Override
618 public TerminatorAndInformation.Match newEmptyMatch() {
619 return TerminatorAndInformation.Match.newEmptyMatch();
620 }
621
622 @Override
623 public TerminatorAndInformation.Match newMatch(final Object... parameters) {
624 return TerminatorAndInformation.Match.newMatch((functionalarchitecture.FAMTerminator) parameters[0], (functionalarchitecture.InformationLink) parameters[1]);
625 }
626
627 /**
628 * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.TerminatorAndInformation (visibility: PUBLIC, simpleName: TerminatorAndInformation, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.TerminatorAndInformation, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
629 * <b>not</b> at the class load time of the outer class,
630 * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.TerminatorAndInformation (visibility: PUBLIC, simpleName: TerminatorAndInformation, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.TerminatorAndInformation, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
631 *
632 * <p> This workaround is required e.g. to support recursion.
633 *
634 */
635 private static class LazyHolder {
636 private final static TerminatorAndInformation INSTANCE = new TerminatorAndInformation();
637
638 /**
639 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
640 * This initialization order is required to support indirect recursion.
641 *
642 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
643 *
644 */
645 private final static Object STATIC_INITIALIZER = ensureInitialized();
646
647 public static Object ensureInitialized() {
648 INSTANCE.ensureInitializedInternal();
649 return null;
650 }
651 }
652
653 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
654 private final static TerminatorAndInformation.GeneratedPQuery INSTANCE = new GeneratedPQuery();
655
656 private final PParameter parameter_T = new PParameter("T", "functionalarchitecture.FAMTerminator", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "FAMTerminator")), PParameterDirection.INOUT);
657
658 private final PParameter parameter_I = new PParameter("I", "functionalarchitecture.InformationLink", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "InformationLink")), PParameterDirection.INOUT);
659
660 private final List<PParameter> parameters = Arrays.asList(parameter_T, parameter_I);
661
662 private GeneratedPQuery() {
663 super(PVisibility.PUBLIC);
664 }
665
666 @Override
667 public String getFullyQualifiedName() {
668 return "ca.mcgill.ecse.dslreasoner.vampire.queries.terminatorAndInformation";
669 }
670
671 @Override
672 public List<String> getParameterNames() {
673 return Arrays.asList("T","I");
674 }
675
676 @Override
677 public List<PParameter> getParameters() {
678 return parameters;
679 }
680
681 @Override
682 public Set<PBody> doGetContainedBodies() {
683 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
684 Set<PBody> bodies = new LinkedHashSet<>();
685 {
686 PBody body = new PBody(this);
687 PVariable var_T = body.getOrCreateVariableByName("T");
688 PVariable var_I = body.getOrCreateVariableByName("I");
689 PVariable var_Out = body.getOrCreateVariableByName("Out");
690 new TypeConstraint(body, Tuples.flatTupleOf(var_T), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "FAMTerminator")));
691 new TypeConstraint(body, Tuples.flatTupleOf(var_I), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "InformationLink")));
692 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
693 new ExportedParameter(body, var_T, parameter_T),
694 new ExportedParameter(body, var_I, parameter_I)
695 ));
696 // FunctionalOutput.outgoingLinks(Out,I)
697 new TypeConstraint(body, Tuples.flatTupleOf(var_Out), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "FunctionalOutput")));
698 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
699 new TypeConstraint(body, Tuples.flatTupleOf(var_Out, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "FunctionalOutput", "outgoingLinks")));
700 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "InformationLink")));
701 new Equality(body, var__virtual_0_, var_I);
702 // FunctionalOutput.terminator(Out,T)
703 new TypeConstraint(body, Tuples.flatTupleOf(var_Out), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "FunctionalOutput")));
704 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
705 new TypeConstraint(body, Tuples.flatTupleOf(var_Out, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "FunctionalData", "terminator")));
706 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "FAMTerminator")));
707 new Equality(body, var__virtual_1_, var_T);
708 bodies.add(body);
709 }
710 {
711 PBody body = new PBody(this);
712 PVariable var_T = body.getOrCreateVariableByName("T");
713 PVariable var_I = body.getOrCreateVariableByName("I");
714 PVariable var_In = body.getOrCreateVariableByName("In");
715 new TypeConstraint(body, Tuples.flatTupleOf(var_T), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "FAMTerminator")));
716 new TypeConstraint(body, Tuples.flatTupleOf(var_I), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "InformationLink")));
717 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
718 new ExportedParameter(body, var_T, parameter_T),
719 new ExportedParameter(body, var_I, parameter_I)
720 ));
721 // InformationLink.to(I,In)
722 new TypeConstraint(body, Tuples.flatTupleOf(var_I), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "InformationLink")));
723 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
724 new TypeConstraint(body, Tuples.flatTupleOf(var_I, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "InformationLink", "to")));
725 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "FunctionalInput")));
726 new Equality(body, var__virtual_0_, var_In);
727 // FunctionalInput.terminator(In,T)
728 new TypeConstraint(body, Tuples.flatTupleOf(var_In), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "FunctionalInput")));
729 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
730 new TypeConstraint(body, Tuples.flatTupleOf(var_In, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "FunctionalData", "terminator")));
731 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "FAMTerminator")));
732 new Equality(body, var__virtual_1_, var_T);
733 bodies.add(body);
734 }
735 {
736 PAnnotation annotation = new PAnnotation("Constraint");
737 annotation.addAttribute("message", "terminatorAndInformation");
738 annotation.addAttribute("severity", "error");
739 annotation.addAttribute("key", Arrays.asList(new Object[] {
740 new ParameterReference("T")
741 }));
742 addAnnotation(annotation);
743 }
744 return bodies;
745 }
746 }
747}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.xtend
index 54114189..18b3badd 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.xtend
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.xtend
@@ -6,6 +6,7 @@ import functionalarchitecture.FunctionalarchitecturePackage
6import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic 6import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic
7import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration 7import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration
8import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor 8import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor
9import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel
9import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner 10import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner
10import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult 11import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult
11import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore 12import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore
@@ -22,9 +23,6 @@ import org.eclipse.emf.ecore.EObject
22import org.eclipse.emf.ecore.EReference 23import org.eclipse.emf.ecore.EReference
23import org.eclipse.emf.ecore.resource.Resource 24import org.eclipse.emf.ecore.resource.Resource
24import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl 25import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
25import hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns
26import java.util.LinkedHashMap
27import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor
28 26
29class EcoreTest { 27class EcoreTest {
30 def static void main(String[] args) { 28 def static void main(String[] args) {
@@ -62,7 +60,7 @@ class EcoreTest {
62 reasoner = new VampireSolver 60 reasoner = new VampireSolver
63 val vampireConfig = new VampireSolverConfiguration => [ 61 val vampireConfig = new VampireSolverConfiguration => [
64 //add configuration things, in config file first 62 //add configuration things, in config file first
65 it.writeToFile = true 63 it.documentationLevel = DocumentationLevel::FULL
66 ] 64 ]
67 65
68 solution = reasoner.solve(logicProblem, vampireConfig, workspace) 66 solution = reasoner.solve(logicProblem, vampireConfig, workspace)
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend
index 9ae00f8d..95bfd87a 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend
@@ -1,8 +1,10 @@
1package ca.mcgill.ecse.dslreasoner.vampire.icse 1package ca.mcgill.ecse.dslreasoner.vampire.icse
2 2
3import ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns
3import functionalarchitecture.FunctionalarchitecturePackage 4import functionalarchitecture.FunctionalarchitecturePackage
4import hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns
5import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace 5import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
6import java.util.LinkedList
7import org.eclipse.emf.ecore.EObject
6import org.eclipse.emf.ecore.resource.Resource 8import org.eclipse.emf.ecore.resource.Resource
7import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl 9import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
8 10
@@ -21,12 +23,12 @@ class FAMTest {
21 println("Input and output workspaces are created") 23 println("Input and output workspaces are created")
22 24
23 val metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE) 25 val metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE)
24 val partialModel = GeneralTest.loadPartialModel(inputs, "FunctionalArchitectureModel.xmi") 26 val partialModel = GeneralTest.loadPartialModel(inputs, "FunctionalArchitectureModel2.xmi")
25 val queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance) 27 val queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance)
26 28
27 println("DSL loaded") 29 println("DSL loaded")
28 30
29 GeneralTest.createAndSolveProblem(metamodel, partialModel, queries, workspace) 31 GeneralTest.createAndSolveProblem(metamodel, new LinkedList<EObject>, queries, workspace)
30 } 32 }
31 33
32 34
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.xtend
index 2c53d181..8a60f486 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.xtend
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.xtend
@@ -26,56 +26,74 @@ import org.eclipse.emf.ecore.EReference
26import org.eclipse.emf.ecore.resource.Resource 26import org.eclipse.emf.ecore.resource.Resource
27import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl 27import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
28import org.eclipse.viatra.query.runtime.api.IQueryGroup 28import org.eclipse.viatra.query.runtime.api.IQueryGroup
29import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolver
30import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolverConfiguration
31import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel
29 32
30class GeneralTest { 33class GeneralTest {
31 def static String createAndSolveProblem(EcoreMetamodelDescriptor metamodel, List<EObject> partialModel, ViatraQuerySetDescriptor queries, FileSystemWorkspace workspace) { 34 def static String createAndSolveProblem(EcoreMetamodelDescriptor metamodel, List<EObject> partialModel,
35 ViatraQuerySetDescriptor queries, FileSystemWorkspace workspace) {
32 val Ecore2Logic ecore2Logic = new Ecore2Logic 36 val Ecore2Logic ecore2Logic = new Ecore2Logic
33 val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic) 37 val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic)
34 val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic) 38 val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic)
35 val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic 39 val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic
36 40
37 val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration()) 41 val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, new Ecore2LogicConfiguration())
38 var problem = instanceModel2Logic.transform(modelGenerationProblem,partialModel).output 42 var problem = instanceModel2Logic.transform(modelGenerationProblem, partialModel).output
39 problem = viatra2Logic.transformQueries(queries,modelGenerationProblem,new Viatra2LogicConfiguration).output 43 problem = viatra2Logic.transformQueries(queries, modelGenerationProblem, new Viatra2LogicConfiguration).output
40 44
41 workspace.writeModel(problem, "Fam.logicproblem") 45 workspace.writeModel(problem, "Fam.logicproblem")
42 46
43 println("Problem created") 47 println("Problem created")
44 48
45 var LogicResult solution 49 var LogicResult solution
46 var LogicReasoner reasoner 50 var LogicReasoner reasoner
51
47 //* 52 //*
48 reasoner = new VampireSolver 53 reasoner = new VampireSolver
49 val vampireConfig = new VampireSolverConfiguration => [ 54 val vampireConfig = new VampireSolverConfiguration => [
50 //add configuration things, in config file first 55 // add configuration things, in config file first
51 it.writeToFile = true 56 it.documentationLevel = DocumentationLevel::FULL
57 it.typeScopes.minNewElements = 5
52 ] 58 ]
59 solution = reasoner.solve(problem, vampireConfig, workspace)
53 60
54 solution = reasoner.solve(problem, vampireConfig, workspace) 61 /*/
55 62
63 reasoner = new AlloySolver
64 val alloyConfig = new AlloySolverConfiguration => [
65 it.typeScopes.maxNewElements = 7
66 it.typeScopes.minNewElements = 3
67 it.solutionScope.numberOfRequiredSolution = 1
68 it.typeScopes.maxNewIntegers = 0
69 it.documentationLevel = DocumentationLevel::NORMAL
70 ]
71 solution = reasoner.solve(problem, alloyConfig, workspace)
72 //*/
73
56 println("Problem solved") 74 println("Problem solved")
57 } 75 }
58 76
59 def static loadMetamodel(EPackage pckg) { 77 def static loadMetamodel(EPackage pckg) {
60 val List<EClass> classes = pckg.getEClassifiers.filter(EClass).toList 78 val List<EClass> classes = pckg.getEClassifiers.filter(EClass).toList
61 val List<EEnum> enums = pckg.getEClassifiers.filter(EEnum).toList 79 val List<EEnum> enums = pckg.getEClassifiers.filter(EEnum).toList
62 val List<EEnumLiteral> literals = enums.map[getELiterals].flatten.toList 80 val List<EEnumLiteral> literals = enums.map[getELiterals].flatten.toList
63 val List<EReference> references = classes.map[getEReferences].flatten.toList 81 val List<EReference> references = classes.map[getEReferences].flatten.toList
64 val List<EAttribute> attributes = classes.map[getEAttributes].flatten.toList 82 val List<EAttribute> attributes = classes.map[getEAttributes].flatten.toList
65 return new EcoreMetamodelDescriptor(classes,#{},false,enums,literals,references,attributes) 83 return new EcoreMetamodelDescriptor(classes, #{}, false, enums, literals, references, attributes)
66 } 84 }
67 85
68 def static loadPartialModel(ReasonerWorkspace inputs, String path) { 86 def static loadPartialModel(ReasonerWorkspace inputs, String path) {
69 Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl()); 87 Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl());
70 inputs.readModel(EObject,path).eResource.contents 88 inputs.readModel(EObject, path).eResource.contents
71// inputs.readModel(EObject,"FamInstance.xmi").eResource.allContents.toList 89// inputs.readModel(EObject,"FamInstance.xmi").eResource.allContents.toList
72 } 90 }
73 91
74 def static loadQueries(EcoreMetamodelDescriptor metamodel, IQueryGroup i) { 92 def static loadQueries(EcoreMetamodelDescriptor metamodel, IQueryGroup i) {
75 val patterns = i.specifications.toList 93 val patterns = i.specifications.toList
76 val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name== "Constraint"]].toSet 94 val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name == "Constraint"]].toSet
77 val derivedFeatures = emptyMap 95 val derivedFeatures = emptyMap
78 //NO DERIVED FEATURES 96 // NO DERIVED FEATURES
79// val derivedFeatures = new LinkedHashMap 97// val derivedFeatures = new LinkedHashMap
80// derivedFeatures.put(i.type,metamodel.attributes.filter[it.name == "type"].head) 98// derivedFeatures.put(i.type,metamodel.attributes.filter[it.name == "type"].head)
81// derivedFeatures.put(i.model,metamodel.references.filter[it.name == "model"].head) 99// derivedFeatures.put(i.model,metamodel.references.filter[it.name == "model"].head)
@@ -86,4 +104,4 @@ class GeneralTest {
86 ) 104 )
87 return res 105 return res
88 } 106 }
89} \ No newline at end of file 107}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend
index e4f6f87a..eb3f4b14 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend
@@ -1,11 +1,11 @@
1package ca.mcgill.ecse.dslreasoner.vampire.icse 1package ca.mcgill.ecse.dslreasoner.vampire.icse
2 2
3import functionalarchitecture.FunctionalarchitecturePackage 3import functionalarchitecture.FunctionalarchitecturePackage
4import hu.bme.mit.inf.dslreasoner.domains.y
5import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace 4import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
6import org.eclipse.emf.ecore.resource.Resource 5import org.eclipse.emf.ecore.resource.Resource
7import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl 6import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
8import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage 7import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage
8import ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.YakinduPatterns
9 9
10class YakinduTest { 10class YakinduTest {
11 def static void main(String[] args) { 11 def static void main(String[] args) {
@@ -23,11 +23,11 @@ class YakinduTest {
23 23
24 val metamodel = GeneralTest.loadMetamodel(YakindummPackage.eINSTANCE) 24 val metamodel = GeneralTest.loadMetamodel(YakindummPackage.eINSTANCE)
25 val partialModel = GeneralTest.loadPartialModel(inputs, "Yakindu.xmi") 25 val partialModel = GeneralTest.loadPartialModel(inputs, "Yakindu.xmi")
26 val queries = GeneralTest.loadQueries(metamodel, 26// val queries = GeneralTest.loadQueries(metamodel, FamPa
27 27
28 println("DSL loaded") 28 println("DSL loaded")
29 29
30 GeneralTest.createAndSolveProblem(metamodel, partialModel, queries, workspace) 30// GeneralTest.createAndSolveProblem(metamodel, partialModel, queries, workspace)
31 } 31 }
32 32
33 33
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.vql b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.vql
index 013d0419..60679874 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.vql
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.vql
@@ -1,4 +1,4 @@
1package hu.bme.mit.inf.dslreasoner.domains.fam 1package ca.mcgill.ecse.dslreasoner.vampire.queries
2 2
3import epackage "http://www.inf.mit.bme.hu/viatrasolver/example/fam" 3import epackage "http://www.inf.mit.bme.hu/viatrasolver/example/fam"
4 4
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.xtend
index 15f9e1fe..40cb70a7 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.xtend
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.xtend
@@ -1,19 +1,17 @@
1package ca.mcgill.ecse.dslreasoner.vampire.test 1package ca.mcgill.ecse.dslreasoner.vampire.test
2 2
3import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetup 3import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetup
4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver
5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration
4import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage 6import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage
7import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel
5import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner 8import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner
6import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage 9import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage
7import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem 10import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem
8import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage 11import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage
9import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult 12import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult
10import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver
11import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration
12import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory
13import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel
14import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage 13import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage
15import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace 14import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
16import java.util.Collections
17import org.eclipse.emf.common.util.URI 15import org.eclipse.emf.common.util.URI
18import org.eclipse.emf.ecore.resource.Resource 16import org.eclipse.emf.ecore.resource.Resource
19import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl 17import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl
@@ -41,7 +39,7 @@ class MedicalSystem {
41 reasoner = new VampireSolver 39 reasoner = new VampireSolver
42 val vampireConfig = new VampireSolverConfiguration => [ 40 val vampireConfig = new VampireSolverConfiguration => [
43 //add configuration things, in config file first 41 //add configuration things, in config file first
44 it.writeToFile = true 42 it.documentationLevel = DocumentationLevel::FULL
45 ] 43 ]
46 44
47 solution = reasoner.solve(root, vampireConfig, workspace) 45 solution = reasoner.solve(root, vampireConfig, workspace)
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend
index 4fc81ad8..bbb14f1f 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend
@@ -1,23 +1,19 @@
1package ca.mcgill.ecse.dslreasoner.vampire.test 1package ca.mcgill.ecse.dslreasoner.vampire.test
2 2
3
4import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetup 3import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetup
4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver
5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration
5import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage 6import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage
7import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel
6import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder 8import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder
7import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner 9import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner
8import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem 10import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem
9import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage 11import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage
10import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult 12import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult
11import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver
12import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration
13import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage 13import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage
14import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace 14import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
15import java.util.Collections
16import org.eclipse.emf.common.util.URI
17import org.eclipse.emf.ecore.resource.Resource 15import org.eclipse.emf.ecore.resource.Resource
18import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl
19import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl 16import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
20import java.io.File
21 17
22class VampireTest { 18class VampireTest {
23 19
@@ -65,7 +61,8 @@ class VampireTest {
65 reasoner = new VampireSolver 61 reasoner = new VampireSolver
66 val vampireConfig = new VampireSolverConfiguration => [ 62 val vampireConfig = new VampireSolverConfiguration => [
67 //add configuration things, in config file first 63 //add configuration things, in config file first
68 it.writeToFile = true 64 it.documentationLevel = DocumentationLevel::FULL
65 it.typeScopes.minNewElements = 4
69 ] 66 ]
70 67
71 solution = reasoner.solve(problem, vampireConfig, workspace) 68 solution = reasoner.solve(problem, vampireConfig, workspace)
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin
index cf5c79b4..59a3bc01 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin
index 33fae225..1406c597 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin
index 56144b8f..20397ff3 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin
index 29d89e94..ebca0881 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin
index c0d35b2f..8fc60bab 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.java
index f3dc8572..820dd354 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.java
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.java
@@ -8,6 +8,7 @@ import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic;
8import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration; 8import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration;
9import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; 9import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace;
10import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; 10import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor;
11import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel;
11import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; 12import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner;
12import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; 13import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput;
13import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; 14import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem;
@@ -70,7 +71,7 @@ public class EcoreTest {
70 reasoner = _vampireSolver; 71 reasoner = _vampireSolver;
71 VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); 72 VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration();
72 final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> { 73 final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> {
73 it.writeToFile = true; 74 it.documentationLevel = DocumentationLevel.FULL;
74 }; 75 };
75 final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function); 76 final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function);
76 solution = reasoner.solve(logicProblem, vampireConfig, workspace); 77 solution = reasoner.solve(logicProblem, vampireConfig, workspace);
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.java
index 92803b7f..dd061008 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.java
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.java
@@ -1,11 +1,12 @@
1package ca.mcgill.ecse.dslreasoner.vampire.icse; 1package ca.mcgill.ecse.dslreasoner.vampire.icse;
2 2
3import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest; 3import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest;
4import ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns;
4import functionalarchitecture.FunctionalarchitecturePackage; 5import functionalarchitecture.FunctionalarchitecturePackage;
5import hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns;
6import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; 6import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor;
7import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor; 7import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor;
8import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; 8import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace;
9import java.util.LinkedList;
9import java.util.Map; 10import java.util.Map;
10import org.eclipse.emf.common.util.EList; 11import org.eclipse.emf.common.util.EList;
11import org.eclipse.emf.ecore.EObject; 12import org.eclipse.emf.ecore.EObject;
@@ -30,9 +31,10 @@ public class FAMTest {
30 map.put("logicproblem", _xMIResourceFactoryImpl); 31 map.put("logicproblem", _xMIResourceFactoryImpl);
31 InputOutput.<String>println("Input and output workspaces are created"); 32 InputOutput.<String>println("Input and output workspaces are created");
32 final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE); 33 final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE);
33 final EList<EObject> partialModel = GeneralTest.loadPartialModel(inputs, "FunctionalArchitectureModel.xmi"); 34 final EList<EObject> partialModel = GeneralTest.loadPartialModel(inputs, "FunctionalArchitectureModel2.xmi");
34 final ViatraQuerySetDescriptor queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance()); 35 final ViatraQuerySetDescriptor queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance());
35 InputOutput.<String>println("DSL loaded"); 36 InputOutput.<String>println("DSL loaded");
36 GeneralTest.createAndSolveProblem(metamodel, partialModel, queries, workspace); 37 LinkedList<EObject> _linkedList = new LinkedList<EObject>();
38 GeneralTest.createAndSolveProblem(metamodel, _linkedList, queries, workspace);
37 } 39 }
38} 40}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.java
index 92cf666c..2401e710 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.java
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.java
@@ -8,6 +8,7 @@ import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic;
8import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration; 8import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration;
9import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; 9import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace;
10import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; 10import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor;
11import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel;
11import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; 12import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner;
12import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; 13import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput;
13import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; 14import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem;
@@ -69,7 +70,8 @@ public class GeneralTest {
69 reasoner = _vampireSolver; 70 reasoner = _vampireSolver;
70 VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); 71 VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration();
71 final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> { 72 final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> {
72 it.writeToFile = true; 73 it.documentationLevel = DocumentationLevel.FULL;
74 it.typeScopes.minNewElements = 5;
73 }; 75 };
74 final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function); 76 final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function);
75 solution = reasoner.solve(problem, vampireConfig, workspace); 77 solution = reasoner.solve(problem, vampireConfig, workspace);
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java
index fa4ef6b9..bea4e8a6 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java
@@ -1,10 +1,34 @@
1package ca.mcgill.ecse.dslreasoner.vampire.icse; 1package ca.mcgill.ecse.dslreasoner.vampire.icse;
2 2
3import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest;
4import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage;
5import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor;
6import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace;
7import java.util.Map;
8import org.eclipse.emf.common.util.EList;
9import org.eclipse.emf.ecore.EObject;
10import org.eclipse.emf.ecore.resource.Resource;
11import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
12import org.eclipse.xtend2.lib.StringConcatenation;
13import org.eclipse.xtext.xbase.lib.InputOutput;
14
3@SuppressWarnings("all") 15@SuppressWarnings("all")
4public class YakinduTest { 16public class YakinduTest {
5 public static void main(final String[] args) { 17 public static void main(final String[] args) {
6 throw new Error("Unresolved compilation problems:" 18 StringConcatenation _builder = new StringConcatenation();
7 + "\nmissing \')\' at \'GeneralTest\'" 19 _builder.append("initialModels/");
8 + "\nType mismatch: cannot convert from String to IQueryGroup"); 20 final FileSystemWorkspace inputs = new FileSystemWorkspace(_builder.toString(), "");
21 StringConcatenation _builder_1 = new StringConcatenation();
22 _builder_1.append("output/YakinduTest/");
23 final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder_1.toString(), "");
24 workspace.initAndClear();
25 final Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE;
26 final Map<String, Object> map = reg.getExtensionToFactoryMap();
27 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl();
28 map.put("logicproblem", _xMIResourceFactoryImpl);
29 InputOutput.<String>println("Input and output workspaces are created");
30 final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(YakindummPackage.eINSTANCE);
31 final EList<EObject> partialModel = GeneralTest.loadPartialModel(inputs, "Yakindu.xmi");
32 InputOutput.<String>println("DSL loaded");
9 } 33 }
10} 34}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin
index fe447779..e9359697 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin
index 8e57f5e7..78d32090 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin
index 9d12dab4..1f7b3ee7 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore
index 2760bac4..a16d5bbd 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore
@@ -1,12 +1,2 @@
1/.VampireTest.java._trace
2/.SimpleRun.java._trace
3/.DslTest.java._trace
4/.MedicalSystem.java._trace 1/.MedicalSystem.java._trace
5/.DslTest.xtendbin 2/.VampireTest.java._trace
6/.MedicalSystem.xtendbin
7/.SimpleRun.xtendbin
8/.VampireTest.xtendbin
9/DslTest.java
10/MedicalSystem.java
11/VampireTest.java
12/.FAMTest.java._trace
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.java
index ece0a9bb..0b96a2f3 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.java
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.java
@@ -4,6 +4,7 @@ import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetup;
4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; 4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver;
5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; 5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration;
6import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage; 6import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage;
7import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel;
7import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; 8import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner;
8import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage; 9import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage;
9import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; 10import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem;
@@ -40,7 +41,7 @@ public class MedicalSystem {
40 reasoner = _vampireSolver; 41 reasoner = _vampireSolver;
41 VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); 42 VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration();
42 final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> { 43 final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> {
43 it.writeToFile = true; 44 it.documentationLevel = DocumentationLevel.FULL;
44 }; 45 };
45 final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function); 46 final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function);
46 solution = reasoner.solve(root, vampireConfig, workspace); 47 solution = reasoner.solve(root, vampireConfig, workspace);
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.java
index 74f117f2..7228b48a 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.java
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.java
@@ -4,6 +4,7 @@ import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetup;
4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; 4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver;
5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; 5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration;
6import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage; 6import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage;
7import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel;
7import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder; 8import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder;
8import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; 9import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner;
9import hu.bme.mit.inf.dslreasoner.logic.model.builder.VariableContext; 10import hu.bme.mit.inf.dslreasoner.logic.model.builder.VariableContext;
@@ -68,7 +69,8 @@ public class VampireTest {
68 reasoner = _vampireSolver; 69 reasoner = _vampireSolver;
69 VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); 70 VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration();
70 final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> { 71 final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> {
71 it.writeToFile = true; 72 it.documentationLevel = DocumentationLevel.FULL;
73 it.typeScopes.minNewElements = 4;
72 }; 74 };
73 final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function); 75 final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function);
74 solution = reasoner.solve(problem, vampireConfig, workspace); 76 solution = reasoner.solve(problem, vampireConfig, workspace);