diff options
author | 2019-02-01 16:03:30 -0500 | |
---|---|---|
committer | 2019-02-01 16:03:30 -0500 | |
commit | 717916e99b2c8e7965fb31f4448b4336d8c2f19a (patch) | |
tree | 074c77b8465f1e47e7a28af2d95f79c1f5abaf86 /Tests | |
parent | FAM MM transformation works (diff) | |
download | VIATRA-Generator-717916e99b2c8e7965fb31f4448b4336d8c2f19a.tar.gz VIATRA-Generator-717916e99b2c8e7965fb31f4448b4336d8c2f19a.tar.zst VIATRA-Generator-717916e99b2c8e7965fb31f4448b4336d8c2f19a.zip |
Fix FAM Test. Begin Grammar Fix.
Diffstat (limited to 'Tests')
40 files changed, 1855 insertions, 33 deletions
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 a5999e6d..fedee0e4 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,7 +1,7 @@ | |||
1 | Manifest-Version: 1.0 | 1 | Manifest-Version: 1.0 |
2 | Bundle-ManifestVersion: 2 | 2 | Bundle-ManifestVersion: 2 |
3 | Bundle-Name: Test | 3 | Bundle-Name: Test |
4 | Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.vampire.test | 4 | Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.vampire.test;singleton:=true |
5 | Bundle-Version: 1.0.0.qualifier | 5 | Bundle-Version: 1.0.0.qualifier |
6 | Automatic-Module-Name: ca.mcgill.ecse.dslreasoner.vampire.test | 6 | Automatic-Module-Name: ca.mcgill.ecse.dslreasoner.vampire.test |
7 | Bundle-RequiredExecutionEnvironment: JavaSE-1.8 | 7 | Bundle-RequiredExecutionEnvironment: JavaSE-1.8 |
@@ -22,5 +22,10 @@ Require-Bundle: com.google.guava, | |||
22 | hu.bme.mit.inf.dslreasoner.logic2ecore;bundle-version="1.0.0", | 22 | hu.bme.mit.inf.dslreasoner.logic2ecore;bundle-version="1.0.0", |
23 | hu.bme.mit.inf.dslreasoner.visualisation;bundle-version="1.0.0", | 23 | hu.bme.mit.inf.dslreasoner.visualisation;bundle-version="1.0.0", |
24 | ModelGenExampleFAM_plugin;bundle-version="1.0.0", | 24 | ModelGenExampleFAM_plugin;bundle-version="1.0.0", |
25 | ModelGenExampleFAM_plugin.validation;bundle-version="0.0.1" | 25 | ModelGenExampleFAM_plugin.validation;bundle-version="0.0.1", |
26 | hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph;bundle-version="1.0.0", | ||
27 | hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.validation;bundle-version="0.0.1", | ||
28 | org.eclipse.viatra.query.runtime;bundle-version="2.1.0", | ||
29 | org.eclipse.collections;bundle-version="9.2.0", | ||
30 | hu.bme.mit.inf.dslreasoner.application.FAMTest;bundle-version="1.0.0" | ||
26 | 31 | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FAM/FamMetamodel.ecore b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FAM/FamMetamodel.ecore new file mode 100644 index 00000000..68943e55 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FAM/FamMetamodel.ecore | |||
@@ -0,0 +1,61 @@ | |||
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" | ||
3 | xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="functionalarchitecture" nsURI="http://www.inf.mit.bme.hu/viatrasolver/example/fam" | ||
4 | nsPrefix="functionalarchitecture"> | ||
5 | <eClassifiers xsi:type="ecore:EClass" name="FunctionalElement" abstract="true"> | ||
6 | <eStructuralFeatures xsi:type="ecore:EReference" name="interface" eType="#//FunctionalInterface" | ||
7 | containment="true" eOpposite="#//FunctionalInterface/element"/> | ||
8 | <eStructuralFeatures xsi:type="ecore:EReference" name="model" lowerBound="1" eType="#//FunctionalArchitectureModel" | ||
9 | volatile="true" transient="true" derived="true"> | ||
10 | <eAnnotations source="org.eclipse.viatra.query.querybasedfeature"> | ||
11 | <details key="patternFQN" value="hu.bme.mit.inf.dslreasoner.domains.fam.model"/> | ||
12 | </eAnnotations> | ||
13 | </eStructuralFeatures> | ||
14 | <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//Function" | ||
15 | eOpposite="#//Function/subElements"/> | ||
16 | </eClassifiers> | ||
17 | <eClassifiers xsi:type="ecore:EClass" name="FunctionalArchitectureModel"> | ||
18 | <eStructuralFeatures xsi:type="ecore:EReference" name="rootElements" upperBound="-1" | ||
19 | eType="#//FunctionalElement" containment="true"/> | ||
20 | </eClassifiers> | ||
21 | <eClassifiers xsi:type="ecore:EClass" name="Function" eSuperTypes="#//FunctionalElement"> | ||
22 | <eStructuralFeatures xsi:type="ecore:EReference" name="subElements" upperBound="-1" | ||
23 | eType="#//FunctionalElement" containment="true" eOpposite="#//FunctionalElement/parent"/> | ||
24 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="#//FunctionType"/> | ||
25 | </eClassifiers> | ||
26 | <eClassifiers xsi:type="ecore:EClass" name="FAMTerminator"> | ||
27 | <eStructuralFeatures xsi:type="ecore:EReference" name="data" eType="#//FunctionalData" | ||
28 | eOpposite="#//FunctionalData/terminator"/> | ||
29 | </eClassifiers> | ||
30 | <eClassifiers xsi:type="ecore:EClass" name="InformationLink"> | ||
31 | <eStructuralFeatures xsi:type="ecore:EReference" name="from" eType="#//FunctionalOutput" | ||
32 | eOpposite="#//FunctionalOutput/outgoingLinks"/> | ||
33 | <eStructuralFeatures xsi:type="ecore:EReference" name="to" lowerBound="1" eType="#//FunctionalInput" | ||
34 | eOpposite="#//FunctionalInput/IncomingLinks"/> | ||
35 | </eClassifiers> | ||
36 | <eClassifiers xsi:type="ecore:EClass" name="FunctionalInterface"> | ||
37 | <eStructuralFeatures xsi:type="ecore:EReference" name="data" upperBound="-1" eType="#//FunctionalData" | ||
38 | containment="true" eOpposite="#//FunctionalData/interface"/> | ||
39 | <eStructuralFeatures xsi:type="ecore:EReference" name="element" eType="#//FunctionalElement" | ||
40 | eOpposite="#//FunctionalElement/interface"/> | ||
41 | </eClassifiers> | ||
42 | <eClassifiers xsi:type="ecore:EClass" name="FunctionalInput" eSuperTypes="#//FunctionalData"> | ||
43 | <eStructuralFeatures xsi:type="ecore:EReference" name="IncomingLinks" upperBound="-1" | ||
44 | eType="#//InformationLink" eOpposite="#//InformationLink/to"/> | ||
45 | </eClassifiers> | ||
46 | <eClassifiers xsi:type="ecore:EClass" name="FunctionalOutput" eSuperTypes="#//FunctionalData"> | ||
47 | <eStructuralFeatures xsi:type="ecore:EReference" name="outgoingLinks" upperBound="-1" | ||
48 | eType="#//InformationLink" containment="true" eOpposite="#//InformationLink/from"/> | ||
49 | </eClassifiers> | ||
50 | <eClassifiers xsi:type="ecore:EClass" name="FunctionalData" abstract="true"> | ||
51 | <eStructuralFeatures xsi:type="ecore:EReference" name="terminator" eType="#//FAMTerminator" | ||
52 | containment="true" eOpposite="#//FAMTerminator/data"/> | ||
53 | <eStructuralFeatures xsi:type="ecore:EReference" name="interface" eType="#//FunctionalInterface" | ||
54 | eOpposite="#//FunctionalInterface/data"/> | ||
55 | </eClassifiers> | ||
56 | <eClassifiers xsi:type="ecore:EEnum" name="FunctionType"> | ||
57 | <eLiterals name="Root"/> | ||
58 | <eLiterals name="Intermediate" value="1"/> | ||
59 | <eLiterals name="Leaf" value="2"/> | ||
60 | </eClassifiers> | ||
61 | </ecore:EPackage> | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FAM/FamPatterns.vql b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FAM/FamPatterns.vql new file mode 100644 index 00000000..013d0419 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FAM/FamPatterns.vql | |||
@@ -0,0 +1,12 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.domains.fam | ||
2 | |||
3 | import epackage "http://www.inf.mit.bme.hu/viatrasolver/example/fam" | ||
4 | |||
5 | @Constraint(message="terminatorAndInformation", severity="error", key={T}) | ||
6 | pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = { | ||
7 | FunctionalOutput.outgoingLinks(Out,I); | ||
8 | FunctionalOutput.terminator(Out,T); | ||
9 | } or { | ||
10 | InformationLink.to(I,In); | ||
11 | FunctionalInput.terminator(In,T); | ||
12 | } \ No newline at end of file | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FamInstance.xmi b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FamInstance.xmi new file mode 100644 index 00000000..8500678c --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FamInstance.xmi | |||
@@ -0,0 +1,12 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <functionalarchitecture:FunctionalArchitectureModel | ||
3 | xmi:version="2.0" | ||
4 | xmlns:xmi="http://www.omg.org/XMI" | ||
5 | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
6 | xmlns:functionalarchitecture="http://www.inf.mit.bme.hu/viatrasolver/example/fam" | ||
7 | xsi:schemaLocation="http://www.inf.mit.bme.hu/viatrasolver/example/fam ../../ModelGenExampleFAM_plugin/model/FamMetamodel.ecore"> | ||
8 | <rootElements | ||
9 | xsi:type="functionalarchitecture:Function"/> | ||
10 | <rootElements | ||
11 | xsi:type="functionalarchitecture:Function"/> | ||
12 | </functionalarchitecture:FunctionalArchitectureModel> | ||
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 59935a2c..61256334 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FunctionalArchitectureModel.xmi +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FunctionalArchitectureModel.xmi | |||
@@ -1,4 +1,10 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | <functionalarchitecture:FunctionalArchitectureModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" | 2 | <functionalarchitecture:FunctionalArchitectureModel |
3 | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:functionalarchitecture="http://www.inf.mit.bme.hu/viatrasolver/example/fam" | 3 | xmi:version="2.0" |
4 | xsi:schemaLocation="http://www.inf.mit.bme.hu/viatrasolver/example/fam FamMetamodel.ecore"/> | 4 | xmlns:xmi="http://www.omg.org/XMI" |
5 | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
6 | xmlns:functionalarchitecture="http://www.inf.mit.bme.hu/viatrasolver/example/fam" | ||
7 | xsi:schemaLocation="http://www.inf.mit.bme.hu/viatrasolver/example/fam ../../ModelGenExampleFAM_plugin/model/FamMetamodel.ecore"> | ||
8 | <rootElements | ||
9 | xsi:type="functionalarchitecture:Function"/> | ||
10 | </functionalarchitecture:FunctionalArchitectureModel> | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/DslTest/vampireProblem.tptp b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/DslTest/vampireProblem.tptp new file mode 100644 index 00000000..301c2736 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/DslTest/vampireProblem.tptp | |||
@@ -0,0 +1,37 @@ | |||
1 | % This is an initial Test Comment | ||
2 | fof ( typeDef_FunctionType_enum , axiom , ! [ A ] : ( type_FunctionType_enum ( A ) <=> ( A = "aRoot literal FunctionType" | ( A = "aIntermediate literal FunctionType" | A = "aLeaf literal FunctionType" ) ) ) ) . | ||
3 | fof ( hierarchyHandler , axiom , ! [ A ] : ( object ( A ) <=> ( ( type_InformationLink_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalInput_class ( A ) & ( ~ type_FunctionType_enum ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_FunctionalInterface_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ~ type_FunctionalArchitectureModel_class ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( type_FunctionalInput_class ( A ) & ( ~ type_FunctionType_enum ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( type_FunctionalData_class ( A ) & ( ~ type_FunctionalInterface_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ~ type_FunctionalArchitectureModel_class ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalInput_class ( A ) & ( type_FunctionType_enum ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_FunctionalInterface_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ~ type_FunctionalArchitectureModel_class ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalInput_class ( A ) & ( ~ type_FunctionType_enum ( A ) & ( type_FAMTerminator_class ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_FunctionalInterface_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ~ type_FunctionalArchitectureModel_class ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalInput_class ( A ) & ( ~ type_FunctionType_enum ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalData_class ( A ) & ( type_FunctionalInterface_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ~ type_FunctionalArchitectureModel_class ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_InformationLink_class ( A ) & ( type_FunctionalElement_class ( A ) & ( ~ type_FunctionalInput_class ( A ) & ( ~ type_FunctionType_enum ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_FunctionalInterface_class ( A ) & ( type_Function_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ~ type_FunctionalArchitectureModel_class ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalInput_class ( A ) & ( ~ type_FunctionType_enum ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( type_FunctionalData_class ( A ) & ( ~ type_FunctionalInterface_class ( A ) & ( ~ type_Function_class ( A ) & ( type_FunctionalOutput_class ( A ) & ~ type_FunctionalArchitectureModel_class ( A ) ) ) ) ) ) ) ) ) ) | ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalInput_class ( A ) & ( ~ type_FunctionType_enum ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_FunctionalInterface_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & type_FunctionalArchitectureModel_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) . | ||
4 | fof ( 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 ) ) ) ) . | ||
5 | fof ( 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 ) ) ) ) . | ||
6 | fof ( 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 ) ) ) ) . | ||
7 | fof ( 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 ) ) ) ) . | ||
8 | fof ( 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 ) ) ) ) . | ||
9 | fof ( 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 ) ) ) ) . | ||
10 | fof ( 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 ) ) ) ) . | ||
11 | fof ( 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 ) ) ) ) . | ||
12 | fof ( 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 ) ) ) ) . | ||
13 | fof ( 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 ) ) ) ) . | ||
14 | fof ( 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 ) ) ) ) . | ||
15 | fof ( 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 ) ) ) ) . | ||
16 | fof ( 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 ) ) ) ) . | ||
17 | fof ( 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 ) ) ) ) . | ||
18 | fof ( 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 ) ) ) ) . | ||
19 | fof ( 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 ) ) ) . | ||
20 | fof ( 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 ) ) ) ) . | ||
21 | fof ( 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 ) ) ) . | ||
22 | fof ( 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 ) ) ) . | ||
23 | fof ( 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 ) ) ) . | ||
24 | fof ( 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 ) ) ) . | ||
25 | fof ( 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 ) ) ) ) . | ||
26 | fof ( 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 ) ) ) . | ||
27 | fof ( 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 ) ) ) . | ||
28 | fof ( 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 ) ) ) . | ||
29 | fof ( 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 ) ) ) . | ||
30 | fof ( 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 ) ) ) ) . | ||
31 | fof ( 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 ) ) ) ) . | ||
32 | fof ( 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 ) ) ) ) . | ||
33 | fof ( 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 ) ) ) ) . | ||
34 | fof ( 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 ) ) ) ) . | ||
35 | fof ( 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 ) ) ) ) . | ||
36 | fof ( 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 ) ) ) ) . | ||
37 | fof ( 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 ) ) ) . | ||
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 new file mode 100644 index 00000000..5792ceed --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/Fam.logicproblem | |||
@@ -0,0 +1,882 @@ | |||
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"> | ||
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"/> | ||
5 | <types xsi:type="language_1:TypeDeclaration" name="Function class" supertypes="//@types.0"/> | ||
6 | <types xsi:type="language_1:TypeDeclaration" name="FAMTerminator class"/> | ||
7 | <types xsi:type="language_1:TypeDeclaration" name="InformationLink class"/> | ||
8 | <types xsi:type="language_1:TypeDeclaration" name="FunctionalInterface class"/> | ||
9 | <types xsi:type="language_1:TypeDeclaration" name="FunctionalInput 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"/> | ||
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"> | ||
16 | <value xsi:type="language_1:Forall"> | ||
17 | <quantifiedVariables name="src"> | ||
18 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
19 | </quantifiedVariables> | ||
20 | <quantifiedVariables name="trg 1"> | ||
21 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
22 | </quantifiedVariables> | ||
23 | <quantifiedVariables name="trg 2"> | ||
24 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
25 | </quantifiedVariables> | ||
26 | <expression xsi:type="language_1:Impl"> | ||
27 | <leftOperand xsi:type="language_1:And"> | ||
28 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0"> | ||
29 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/> | ||
30 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.1"/> | ||
31 | </operands> | ||
32 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0"> | ||
33 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/> | ||
34 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.2"/> | ||
35 | </operands> | ||
36 | </leftOperand> | ||
37 | <rightOperand xsi:type="language_1:Not"> | ||
38 | <operand xsi:type="language_1:Distinct"> | ||
39 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.1"/> | ||
40 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.2"/> | ||
41 | </operand> | ||
42 | </rightOperand> | ||
43 | </expression> | ||
44 | </value> | ||
45 | </assertions> | ||
46 | <assertions name="lowerMultiplicity model FunctionalElement" annotations="//@annotations.1"> | ||
47 | <value xsi:type="language_1:Forall"> | ||
48 | <quantifiedVariables name="src"> | ||
49 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
50 | </quantifiedVariables> | ||
51 | <expression xsi:type="language_1:Exists"> | ||
52 | <quantifiedVariables name="trg 1"> | ||
53 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
54 | </quantifiedVariables> | ||
55 | <expression xsi:type="language_1:And"> | ||
56 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
57 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/> | ||
58 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@expression/@quantifiedVariables.0"/> | ||
59 | </operands> | ||
60 | </expression> | ||
61 | </expression> | ||
62 | </value> | ||
63 | </assertions> | ||
64 | <assertions name="upperMultiplicity model FunctionalElement" annotations="//@annotations.2"> | ||
65 | <value xsi:type="language_1:Forall"> | ||
66 | <quantifiedVariables name="src"> | ||
67 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
68 | </quantifiedVariables> | ||
69 | <quantifiedVariables name="trg 1"> | ||
70 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
71 | </quantifiedVariables> | ||
72 | <quantifiedVariables name="trg 2"> | ||
73 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
74 | </quantifiedVariables> | ||
75 | <expression xsi:type="language_1:Impl"> | ||
76 | <leftOperand xsi:type="language_1:And"> | ||
77 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
78 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/> | ||
79 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.1"/> | ||
80 | </operands> | ||
81 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
82 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/> | ||
83 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.2"/> | ||
84 | </operands> | ||
85 | </leftOperand> | ||
86 | <rightOperand xsi:type="language_1:Not"> | ||
87 | <operand xsi:type="language_1:Distinct"> | ||
88 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.1"/> | ||
89 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.2"/> | ||
90 | </operand> | ||
91 | </rightOperand> | ||
92 | </expression> | ||
93 | </value> | ||
94 | </assertions> | ||
95 | <assertions name="upperMultiplicity parent FunctionalElement" annotations="//@annotations.3"> | ||
96 | <value xsi:type="language_1:Forall"> | ||
97 | <quantifiedVariables name="src"> | ||
98 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
99 | </quantifiedVariables> | ||
100 | <quantifiedVariables name="trg 1"> | ||
101 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
102 | </quantifiedVariables> | ||
103 | <quantifiedVariables name="trg 2"> | ||
104 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
105 | </quantifiedVariables> | ||
106 | <expression xsi:type="language_1:Impl"> | ||
107 | <leftOperand xsi:type="language_1:And"> | ||
108 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
109 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
110 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.1"/> | ||
111 | </operands> | ||
112 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
113 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
114 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.2"/> | ||
115 | </operands> | ||
116 | </leftOperand> | ||
117 | <rightOperand xsi:type="language_1:Not"> | ||
118 | <operand xsi:type="language_1:Distinct"> | ||
119 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.1"/> | ||
120 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.2"/> | ||
121 | </operand> | ||
122 | </rightOperand> | ||
123 | </expression> | ||
124 | </value> | ||
125 | </assertions> | ||
126 | <assertions name="upperMultiplicity data FAMTerminator" annotations="//@annotations.4"> | ||
127 | <value xsi:type="language_1:Forall"> | ||
128 | <quantifiedVariables name="src"> | ||
129 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
130 | </quantifiedVariables> | ||
131 | <quantifiedVariables name="trg 1"> | ||
132 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
133 | </quantifiedVariables> | ||
134 | <quantifiedVariables name="trg 2"> | ||
135 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
136 | </quantifiedVariables> | ||
137 | <expression xsi:type="language_1:Impl"> | ||
138 | <leftOperand xsi:type="language_1:And"> | ||
139 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5"> | ||
140 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.0"/> | ||
141 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.1"/> | ||
142 | </operands> | ||
143 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5"> | ||
144 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.0"/> | ||
145 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.2"/> | ||
146 | </operands> | ||
147 | </leftOperand> | ||
148 | <rightOperand xsi:type="language_1:Not"> | ||
149 | <operand xsi:type="language_1:Distinct"> | ||
150 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.1"/> | ||
151 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.2"/> | ||
152 | </operand> | ||
153 | </rightOperand> | ||
154 | </expression> | ||
155 | </value> | ||
156 | </assertions> | ||
157 | <assertions name="upperMultiplicity from InformationLink" annotations="//@annotations.5"> | ||
158 | <value xsi:type="language_1:Forall"> | ||
159 | <quantifiedVariables name="src"> | ||
160 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
161 | </quantifiedVariables> | ||
162 | <quantifiedVariables name="trg 1"> | ||
163 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
164 | </quantifiedVariables> | ||
165 | <quantifiedVariables name="trg 2"> | ||
166 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
167 | </quantifiedVariables> | ||
168 | <expression xsi:type="language_1:Impl"> | ||
169 | <leftOperand xsi:type="language_1:And"> | ||
170 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6"> | ||
171 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/> | ||
172 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.1"/> | ||
173 | </operands> | ||
174 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6"> | ||
175 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/> | ||
176 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.2"/> | ||
177 | </operands> | ||
178 | </leftOperand> | ||
179 | <rightOperand xsi:type="language_1:Not"> | ||
180 | <operand xsi:type="language_1:Distinct"> | ||
181 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.1"/> | ||
182 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.2"/> | ||
183 | </operand> | ||
184 | </rightOperand> | ||
185 | </expression> | ||
186 | </value> | ||
187 | </assertions> | ||
188 | <assertions name="lowerMultiplicity to InformationLink" annotations="//@annotations.6"> | ||
189 | <value xsi:type="language_1:Forall"> | ||
190 | <quantifiedVariables name="src"> | ||
191 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
192 | </quantifiedVariables> | ||
193 | <expression xsi:type="language_1:Exists"> | ||
194 | <quantifiedVariables name="trg 1"> | ||
195 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
196 | </quantifiedVariables> | ||
197 | <expression xsi:type="language_1:And"> | ||
198 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> | ||
199 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.0"/> | ||
200 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@expression/@quantifiedVariables.0"/> | ||
201 | </operands> | ||
202 | </expression> | ||
203 | </expression> | ||
204 | </value> | ||
205 | </assertions> | ||
206 | <assertions name="upperMultiplicity to InformationLink" annotations="//@annotations.7"> | ||
207 | <value xsi:type="language_1:Forall"> | ||
208 | <quantifiedVariables name="src"> | ||
209 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
210 | </quantifiedVariables> | ||
211 | <quantifiedVariables name="trg 1"> | ||
212 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
213 | </quantifiedVariables> | ||
214 | <quantifiedVariables name="trg 2"> | ||
215 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
216 | </quantifiedVariables> | ||
217 | <expression xsi:type="language_1:Impl"> | ||
218 | <leftOperand xsi:type="language_1:And"> | ||
219 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> | ||
220 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.0"/> | ||
221 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.1"/> | ||
222 | </operands> | ||
223 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> | ||
224 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.0"/> | ||
225 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.2"/> | ||
226 | </operands> | ||
227 | </leftOperand> | ||
228 | <rightOperand xsi:type="language_1:Not"> | ||
229 | <operand xsi:type="language_1:Distinct"> | ||
230 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.1"/> | ||
231 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.2"/> | ||
232 | </operand> | ||
233 | </rightOperand> | ||
234 | </expression> | ||
235 | </value> | ||
236 | </assertions> | ||
237 | <assertions name="upperMultiplicity element FunctionalInterface" annotations="//@annotations.8"> | ||
238 | <value xsi:type="language_1:Forall"> | ||
239 | <quantifiedVariables name="src"> | ||
240 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
241 | </quantifiedVariables> | ||
242 | <quantifiedVariables name="trg 1"> | ||
243 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
244 | </quantifiedVariables> | ||
245 | <quantifiedVariables name="trg 2"> | ||
246 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
247 | </quantifiedVariables> | ||
248 | <expression xsi:type="language_1:Impl"> | ||
249 | <leftOperand xsi:type="language_1:And"> | ||
250 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9"> | ||
251 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.0"/> | ||
252 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.1"/> | ||
253 | </operands> | ||
254 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9"> | ||
255 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.0"/> | ||
256 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.2"/> | ||
257 | </operands> | ||
258 | </leftOperand> | ||
259 | <rightOperand xsi:type="language_1:Not"> | ||
260 | <operand xsi:type="language_1:Distinct"> | ||
261 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.1"/> | ||
262 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.2"/> | ||
263 | </operand> | ||
264 | </rightOperand> | ||
265 | </expression> | ||
266 | </value> | ||
267 | </assertions> | ||
268 | <assertions name="upperMultiplicity terminator FunctionalData" annotations="//@annotations.9"> | ||
269 | <value xsi:type="language_1:Forall"> | ||
270 | <quantifiedVariables name="src"> | ||
271 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
272 | </quantifiedVariables> | ||
273 | <quantifiedVariables name="trg 1"> | ||
274 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
275 | </quantifiedVariables> | ||
276 | <quantifiedVariables name="trg 2"> | ||
277 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
278 | </quantifiedVariables> | ||
279 | <expression xsi:type="language_1:Impl"> | ||
280 | <leftOperand xsi:type="language_1:And"> | ||
281 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12"> | ||
282 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.0"/> | ||
283 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.1"/> | ||
284 | </operands> | ||
285 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12"> | ||
286 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.0"/> | ||
287 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.2"/> | ||
288 | </operands> | ||
289 | </leftOperand> | ||
290 | <rightOperand xsi:type="language_1:Not"> | ||
291 | <operand xsi:type="language_1:Distinct"> | ||
292 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.1"/> | ||
293 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.2"/> | ||
294 | </operand> | ||
295 | </rightOperand> | ||
296 | </expression> | ||
297 | </value> | ||
298 | </assertions> | ||
299 | <assertions name="upperMultiplicity interface FunctionalData" annotations="//@annotations.10"> | ||
300 | <value xsi:type="language_1:Forall"> | ||
301 | <quantifiedVariables name="src"> | ||
302 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
303 | </quantifiedVariables> | ||
304 | <quantifiedVariables name="trg 1"> | ||
305 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
306 | </quantifiedVariables> | ||
307 | <quantifiedVariables name="trg 2"> | ||
308 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
309 | </quantifiedVariables> | ||
310 | <expression xsi:type="language_1:Impl"> | ||
311 | <leftOperand xsi:type="language_1:And"> | ||
312 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13"> | ||
313 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.0"/> | ||
314 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.1"/> | ||
315 | </operands> | ||
316 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13"> | ||
317 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.0"/> | ||
318 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.2"/> | ||
319 | </operands> | ||
320 | </leftOperand> | ||
321 | <rightOperand xsi:type="language_1:Not"> | ||
322 | <operand xsi:type="language_1:Distinct"> | ||
323 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.1"/> | ||
324 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.2"/> | ||
325 | </operand> | ||
326 | </rightOperand> | ||
327 | </expression> | ||
328 | </value> | ||
329 | </assertions> | ||
330 | <assertions name="oppositeReference interface FunctionalElement" annotations="//@annotations.11"> | ||
331 | <value xsi:type="language_1:Forall"> | ||
332 | <quantifiedVariables name="src"> | ||
333 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
334 | </quantifiedVariables> | ||
335 | <quantifiedVariables name="trg"> | ||
336 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
337 | </quantifiedVariables> | ||
338 | <expression xsi:type="language_1:Iff"> | ||
339 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0"> | ||
340 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.0"/> | ||
341 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.1"/> | ||
342 | </leftOperand> | ||
343 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9"> | ||
344 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.1"/> | ||
345 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.0"/> | ||
346 | </rightOperand> | ||
347 | </expression> | ||
348 | </value> | ||
349 | </assertions> | ||
350 | <assertions name="oppositeReference parent FunctionalElement" annotations="//@annotations.12"> | ||
351 | <value xsi:type="language_1:Forall"> | ||
352 | <quantifiedVariables name="src"> | ||
353 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
354 | </quantifiedVariables> | ||
355 | <quantifiedVariables name="trg"> | ||
356 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
357 | </quantifiedVariables> | ||
358 | <expression xsi:type="language_1:Iff"> | ||
359 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
360 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.0"/> | ||
361 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.1"/> | ||
362 | </leftOperand> | ||
363 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4"> | ||
364 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.1"/> | ||
365 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.0"/> | ||
366 | </rightOperand> | ||
367 | </expression> | ||
368 | </value> | ||
369 | </assertions> | ||
370 | <assertions name="oppositeReference data FAMTerminator" annotations="//@annotations.13"> | ||
371 | <value xsi:type="language_1:Forall"> | ||
372 | <quantifiedVariables name="src"> | ||
373 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
374 | </quantifiedVariables> | ||
375 | <quantifiedVariables name="trg"> | ||
376 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
377 | </quantifiedVariables> | ||
378 | <expression xsi:type="language_1:Iff"> | ||
379 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5"> | ||
380 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.0"/> | ||
381 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.1"/> | ||
382 | </leftOperand> | ||
383 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12"> | ||
384 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.1"/> | ||
385 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.0"/> | ||
386 | </rightOperand> | ||
387 | </expression> | ||
388 | </value> | ||
389 | </assertions> | ||
390 | <assertions name="oppositeReference from InformationLink" annotations="//@annotations.14"> | ||
391 | <value xsi:type="language_1:Forall"> | ||
392 | <quantifiedVariables name="src"> | ||
393 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
394 | </quantifiedVariables> | ||
395 | <quantifiedVariables name="trg"> | ||
396 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
397 | </quantifiedVariables> | ||
398 | <expression xsi:type="language_1:Iff"> | ||
399 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6"> | ||
400 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.0"/> | ||
401 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.1"/> | ||
402 | </leftOperand> | ||
403 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11"> | ||
404 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.1"/> | ||
405 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.0"/> | ||
406 | </rightOperand> | ||
407 | </expression> | ||
408 | </value> | ||
409 | </assertions> | ||
410 | <assertions name="oppositeReference to InformationLink" annotations="//@annotations.15"> | ||
411 | <value xsi:type="language_1:Forall"> | ||
412 | <quantifiedVariables name="src"> | ||
413 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
414 | </quantifiedVariables> | ||
415 | <quantifiedVariables name="trg"> | ||
416 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
417 | </quantifiedVariables> | ||
418 | <expression xsi:type="language_1:Iff"> | ||
419 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> | ||
420 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.0"/> | ||
421 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.1"/> | ||
422 | </leftOperand> | ||
423 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10"> | ||
424 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.1"/> | ||
425 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.0"/> | ||
426 | </rightOperand> | ||
427 | </expression> | ||
428 | </value> | ||
429 | </assertions> | ||
430 | <assertions name="oppositeReference data FunctionalInterface" annotations="//@annotations.16"> | ||
431 | <value xsi:type="language_1:Forall"> | ||
432 | <quantifiedVariables name="src"> | ||
433 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
434 | </quantifiedVariables> | ||
435 | <quantifiedVariables name="trg"> | ||
436 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
437 | </quantifiedVariables> | ||
438 | <expression xsi:type="language_1:Iff"> | ||
439 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> | ||
440 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.0"/> | ||
441 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.1"/> | ||
442 | </leftOperand> | ||
443 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13"> | ||
444 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.1"/> | ||
445 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.0"/> | ||
446 | </rightOperand> | ||
447 | </expression> | ||
448 | </value> | ||
449 | </assertions> | ||
450 | <assertions name="lowerMultiplicity type Function" annotations="//@annotations.17"> | ||
451 | <value xsi:type="language_1:Forall"> | ||
452 | <quantifiedVariables name="src"> | ||
453 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
454 | </quantifiedVariables> | ||
455 | <expression xsi:type="language_1:Exists"> | ||
456 | <quantifiedVariables name="trg 1"> | ||
457 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> | ||
458 | </quantifiedVariables> | ||
459 | <expression xsi:type="language_1:And"> | ||
460 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14"> | ||
461 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.0"/> | ||
462 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@expression/@quantifiedVariables.0"/> | ||
463 | </operands> | ||
464 | </expression> | ||
465 | </expression> | ||
466 | </value> | ||
467 | </assertions> | ||
468 | <assertions name="upperMultiplicity type Function" annotations="//@annotations.18"> | ||
469 | <value xsi:type="language_1:Forall"> | ||
470 | <quantifiedVariables name="src"> | ||
471 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
472 | </quantifiedVariables> | ||
473 | <quantifiedVariables name="trg 1"> | ||
474 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> | ||
475 | </quantifiedVariables> | ||
476 | <quantifiedVariables name="trg 2"> | ||
477 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> | ||
478 | </quantifiedVariables> | ||
479 | <expression xsi:type="language_1:Impl"> | ||
480 | <leftOperand xsi:type="language_1:And"> | ||
481 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14"> | ||
482 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.0"/> | ||
483 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.1"/> | ||
484 | </operands> | ||
485 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14"> | ||
486 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.0"/> | ||
487 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.2"/> | ||
488 | </operands> | ||
489 | </leftOperand> | ||
490 | <rightOperand xsi:type="language_1:Not"> | ||
491 | <operand xsi:type="language_1:Distinct"> | ||
492 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.1"/> | ||
493 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.2"/> | ||
494 | </operand> | ||
495 | </rightOperand> | ||
496 | </expression> | ||
497 | </value> | ||
498 | </assertions> | ||
499 | <assertions name="errorpattern hu bme mit inf dslreasoner domains transima fam terminatorAndInformation" annotations="//@annotations.27"> | ||
500 | <value xsi:type="language_1:Forall"> | ||
501 | <quantifiedVariables name="p0"> | ||
502 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
503 | </quantifiedVariables> | ||
504 | <quantifiedVariables name="p1"> | ||
505 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
506 | </quantifiedVariables> | ||
507 | <expression xsi:type="language_1:Not"> | ||
508 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22"> | ||
509 | <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"/> | ||
511 | </operand> | ||
512 | </expression> | ||
513 | </value> | ||
514 | </assertions> | ||
515 | <relations xsi:type="language_1:RelationDeclaration" name="interface reference FunctionalElement"> | ||
516 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
517 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
518 | </relations> | ||
519 | <relations xsi:type="language_1:RelationDeclaration" name="model reference FunctionalElement"> | ||
520 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
521 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
522 | </relations> | ||
523 | <relations xsi:type="language_1:RelationDeclaration" name="parent reference FunctionalElement"> | ||
524 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
525 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
526 | </relations> | ||
527 | <relations xsi:type="language_1:RelationDeclaration" name="rootElements reference FunctionalArchitectureModel"> | ||
528 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
529 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
530 | </relations> | ||
531 | <relations xsi:type="language_1:RelationDeclaration" name="subElements reference Function"> | ||
532 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
533 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
534 | </relations> | ||
535 | <relations xsi:type="language_1:RelationDeclaration" name="data reference FAMTerminator"> | ||
536 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
537 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
538 | </relations> | ||
539 | <relations xsi:type="language_1:RelationDeclaration" name="from reference InformationLink"> | ||
540 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
541 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
542 | </relations> | ||
543 | <relations xsi:type="language_1:RelationDeclaration" name="to reference InformationLink"> | ||
544 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
545 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
546 | </relations> | ||
547 | <relations xsi:type="language_1:RelationDeclaration" name="data reference FunctionalInterface"> | ||
548 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
549 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
550 | </relations> | ||
551 | <relations xsi:type="language_1:RelationDeclaration" name="element reference FunctionalInterface"> | ||
552 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
553 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
554 | </relations> | ||
555 | <relations xsi:type="language_1:RelationDeclaration" name="IncomingLinks reference FunctionalInput"> | ||
556 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
557 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
558 | </relations> | ||
559 | <relations xsi:type="language_1:RelationDeclaration" name="outgoingLinks reference FunctionalOutput"> | ||
560 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
561 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
562 | </relations> | ||
563 | <relations xsi:type="language_1:RelationDeclaration" name="terminator reference FunctionalData"> | ||
564 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
565 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
566 | </relations> | ||
567 | <relations xsi:type="language_1:RelationDeclaration" name="interface reference FunctionalData"> | ||
568 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
569 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
570 | </relations> | ||
571 | <relations xsi:type="language_1:RelationDeclaration" name="type attribute Function"> | ||
572 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
573 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> | ||
574 | </relations> | ||
575 | <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains transima fam hasRoot" 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"/> | ||
805 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
806 | <variables name="parameter T"> | ||
807 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
808 | </variables> | ||
809 | <variables name="parameter I"> | ||
810 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
811 | </variables> | ||
812 | <value xsi:type="language_1:Or"> | ||
813 | <operands xsi:type="language_1:Exists"> | ||
814 | <quantifiedVariables name="variable Out"> | ||
815 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
816 | </quantifiedVariables> | ||
817 | <expression xsi:type="language_1:And"> | ||
818 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11"> | ||
819 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.0"/> | ||
820 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.1"/> | ||
821 | </operands> | ||
822 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12"> | ||
823 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.0"/> | ||
824 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.0"/> | ||
825 | </operands> | ||
826 | </expression> | ||
827 | </operands> | ||
828 | <operands xsi:type="language_1:Exists"> | ||
829 | <quantifiedVariables name="variable In"> | ||
830 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
831 | </quantifiedVariables> | ||
832 | <expression xsi:type="language_1:And"> | ||
833 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> | ||
834 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.1"/> | ||
835 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@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> | ||
841 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12"> | ||
842 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.1/@quantifiedVariables.0"/> | ||
843 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.0"/> | ||
844 | </operands> | ||
845 | </expression> | ||
846 | </operands> | ||
847 | </value> | ||
848 | </relations> | ||
849 | <elements name="Root literal FunctionType" definedInType="//@types.9"/> | ||
850 | <elements name="Intermediate literal FunctionType" definedInType="//@types.9"/> | ||
851 | <elements name="Leaf literal FunctionType" definedInType="//@types.9"/> | ||
852 | <elements name="o 1" definedInType="//@types.10"/> | ||
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"/> | ||
855 | <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"/> | ||
857 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.3" relation="//@relations.2" upper="1"/> | ||
858 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.4" relation="//@relations.5" upper="1"/> | ||
859 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.5" relation="//@relations.6" upper="1"/> | ||
860 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.6" relation="//@relations.7" lower="1"/> | ||
861 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.7" relation="//@relations.7" upper="1"/> | ||
862 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.8" relation="//@relations.9" upper="1"/> | ||
863 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.9" relation="//@relations.12" upper="1"/> | ||
864 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.10" relation="//@relations.13" upper="1"/> | ||
865 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.11" inverseA="//@relations.0" inverseB="//@relations.9"/> | ||
866 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.12" inverseA="//@relations.2" inverseB="//@relations.4"/> | ||
867 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.13" inverseA="//@relations.5" inverseB="//@relations.12"/> | ||
868 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.14" inverseA="//@relations.6" inverseB="//@relations.11"/> | ||
869 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.15" inverseA="//@relations.7" inverseB="//@relations.10"/> | ||
870 | <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"/> | ||
872 | <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"/> | ||
874 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.16" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.transima.fam.hasInt"/> | ||
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> | ||
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 new file mode 100644 index 00000000..242c404c --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/vampireProblem.tptp | |||
@@ -0,0 +1,55 @@ | |||
1 | % This is an initial Test Comment | ||
2 | fof ( typeDef_FunctionType_enum , axiom , ! [ A ] : ( type_FunctionType_enum ( A ) <=> ( A = "aRoot literal FunctionType" | ( A = "aIntermediate literal FunctionType" | A = "aLeaf literal FunctionType" ) ) ) ) . | ||
3 | fof ( typeDef_FunctionalArchitectureModel_class_DefinedPart , axiom , ! [ A ] : ( type_FunctionalArchitectureModel_class_DefinedPart ( A ) <=> A = "ao 1" ) ) . | ||
4 | fof ( 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 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) . | ||
5 | fof ( 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 ) ) ) ) . | ||
6 | fof ( 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 ) ) ) ) . | ||
7 | fof ( 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 ) ) ) ) . | ||
8 | fof ( 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 ) ) ) ) . | ||
9 | fof ( 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 ) ) ) ) . | ||
10 | fof ( 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 ) ) ) ) . | ||
11 | fof ( 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 ) ) ) ) . | ||
12 | fof ( 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 ) ) ) ) . | ||
13 | fof ( 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 ) ) ) ) . | ||
14 | fof ( 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 ) ) ) ) . | ||
15 | fof ( 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 ) ) ) ) . | ||
16 | fof ( 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 ) ) ) ) . | ||
17 | fof ( 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 ) ) ) ) . | ||
18 | fof ( 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 ) ) ) ) . | ||
19 | fof ( 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 ) ) ) ) . | ||
20 | fof ( 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 ) ) ) . | ||
21 | fof ( 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 ) ) ) ) ) . | ||
22 | fof ( 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 ) ) ) . | ||
23 | fof ( 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 ) ) ) ) ) ) ) . | ||
24 | fof ( 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 ) ) ) . | ||
25 | fof ( 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 ) ) ) ) ) ) ) . | ||
26 | fof ( 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 ) ) ) ) . | ||
27 | fof ( 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 ) ) ) ) ) . | ||
28 | fof ( 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 ) ) ) ) . | ||
29 | fof ( 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 ) ) ) ) ) . | ||
30 | fof ( 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 ) ) ) ) . | ||
31 | fof ( 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" ) ) ) ) ) ) ) ) ) . | ||
32 | fof ( 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 ) ) ) ) . | ||
33 | fof ( 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 ) ) ) ) ) ) . | ||
34 | fof ( 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 ) ) ) ) . | ||
35 | fof ( 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 ) ) ) ) ) ) ) ) . | ||
36 | fof ( 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 ) ) ) . | ||
37 | fof ( 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 ) ) ) ) . | ||
38 | fof ( 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 ) ) ) . | ||
39 | fof ( 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 ) ) ) . | ||
40 | fof ( 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 ) ) ) . | ||
41 | fof ( 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 ) ) ) . | ||
42 | fof ( 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 ) ) ) ) . | ||
43 | fof ( 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 ) ) ) . | ||
44 | fof ( 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 ) ) ) . | ||
45 | fof ( 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 ) ) ) . | ||
46 | fof ( 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 ) ) ) . | ||
47 | fof ( 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 ) ) ) ) . | ||
48 | fof ( 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 ) ) ) ) . | ||
49 | fof ( 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 ) ) ) ) . | ||
50 | fof ( 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 ) ) ) ) . | ||
51 | fof ( 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 ) ) ) ) . | ||
52 | fof ( 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 ) ) ) ) . | ||
53 | fof ( 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 ) ) ) ) . | ||
54 | fof ( 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 ) ) ) . | ||
55 | fof ( 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 new file mode 100644 index 00000000..aa088242 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/MedicalSystem/vampireProblem.tptp | |||
@@ -0,0 +1,67 @@ | |||
1 | % This is an initial Test Comment | ||
2 | fof ( typeDef_HealthSystem_class_DefinedPart , axiom , ! [ A ] : ( type_HealthSystem_class_DefinedPart ( A ) <=> A = "ao 1" ) ) . | ||
3 | fof ( 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 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) . | ||
4 | fof ( 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 ) ) ) ) . | ||
5 | fof ( 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 ) ) ) ) . | ||
6 | fof ( 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 ) ) ) ) . | ||
7 | fof ( compliance_examination_reference_HealthSystem , axiom , ! [ Var_0 , Var_1 ] : ( rel_examination_reference_HealthSystem ( Var_0 , Var_1 ) => ( type_HealthSystem_class ( Var_0 ) & type_Examination_class ( Var_1 ) ) ) ) . | ||
8 | fof ( compliance_medicine_reference_HealthSystem , axiom , ! [ Var_0 , Var_1 ] : ( rel_medicine_reference_HealthSystem ( Var_0 , Var_1 ) => ( type_HealthSystem_class ( Var_0 ) & type_Medicine_class ( Var_1 ) ) ) ) . | ||
9 | fof ( compliance_examinationResult_reference_Examination , axiom , ! [ Var_0 , Var_1 ] : ( rel_examinationResult_reference_Examination ( Var_0 , Var_1 ) => ( type_Examination_class ( Var_0 ) & type_ExaminationResult_class ( Var_1 ) ) ) ) . | ||
10 | fof ( compliance_healthsystem_reference_Examination , axiom , ! [ Var_0 , Var_1 ] : ( rel_healthsystem_reference_Examination ( Var_0 , Var_1 ) => ( type_Examination_class ( Var_0 ) & type_HealthSystem_class ( Var_1 ) ) ) ) . | ||
11 | fof ( compliance_medicalrecord_reference_Symptom , axiom , ! [ Var_0 , Var_1 ] : ( rel_medicalrecord_reference_Symptom ( Var_0 , Var_1 ) => ( type_Symptom_class ( Var_0 ) & type_MedicalRecord_class ( Var_1 ) ) ) ) . | ||
12 | fof ( compliance_examinationType_reference_ExaminationResult , axiom , ! [ Var_0 , Var_1 ] : ( rel_examinationType_reference_ExaminationResult ( Var_0 , Var_1 ) => ( type_ExaminationResult_class ( Var_0 ) & type_Examination_class ( Var_1 ) ) ) ) . | ||
13 | fof ( compliance_medicalrecord_reference_ExaminationResult , axiom , ! [ Var_0 , Var_1 ] : ( rel_medicalrecord_reference_ExaminationResult ( Var_0 , Var_1 ) => ( type_ExaminationResult_class ( Var_0 ) & type_MedicalRecord_class ( Var_1 ) ) ) ) . | ||
14 | fof ( compliance_patient_reference_MedicalRecord , axiom , ! [ Var_0 , Var_1 ] : ( rel_patient_reference_MedicalRecord ( Var_0 , Var_1 ) => ( type_MedicalRecord_class ( Var_0 ) & type_Patient_class ( Var_1 ) ) ) ) . | ||
15 | fof ( compliance_healthProblems_reference_MedicalRecord , axiom , ! [ Var_0 , Var_1 ] : ( rel_healthProblems_reference_MedicalRecord ( Var_0 , Var_1 ) => ( type_MedicalRecord_class ( Var_0 ) & type_HealthProblem_class ( Var_1 ) ) ) ) . | ||
16 | fof ( compliance_symptom_reference_MedicalRecord , axiom , ! [ Var_0 , Var_1 ] : ( rel_symptom_reference_MedicalRecord ( Var_0 , Var_1 ) => ( type_MedicalRecord_class ( Var_0 ) & type_Symptom_class ( Var_1 ) ) ) ) . | ||
17 | fof ( compliance_examinationResults_reference_MedicalRecord , axiom , ! [ Var_0 , Var_1 ] : ( rel_examinationResults_reference_MedicalRecord ( Var_0 , Var_1 ) => ( type_MedicalRecord_class ( Var_0 ) & type_ExaminationResult_class ( Var_1 ) ) ) ) . | ||
18 | fof ( compliance_treatment_reference_MedicalRecord , axiom , ! [ Var_0 , Var_1 ] : ( rel_treatment_reference_MedicalRecord ( Var_0 , Var_1 ) => ( type_MedicalRecord_class ( Var_0 ) & type_Treatment_class ( Var_1 ) ) ) ) . | ||
19 | fof ( compliance_record_reference_HealthProblem , axiom , ! [ Var_0 , Var_1 ] : ( rel_record_reference_HealthProblem ( Var_0 , Var_1 ) => ( type_HealthProblem_class ( Var_0 ) & type_MedicalRecord_class ( Var_1 ) ) ) ) . | ||
20 | fof ( compliance_recommended_medicine_reference_HealthProblem , axiom , ! [ Var_0 , Var_1 ] : ( rel_recommended_medicine_reference_HealthProblem ( Var_0 , Var_1 ) => ( type_HealthProblem_class ( Var_0 ) & type_Medicine_class ( Var_1 ) ) ) ) . | ||
21 | fof ( compliance_medicine_reference_Treatment , axiom , ! [ Var_0 , Var_1 ] : ( rel_medicine_reference_Treatment ( Var_0 , Var_1 ) => ( type_Treatment_class ( Var_0 ) & type_Medicine_class ( Var_1 ) ) ) ) . | ||
22 | fof ( compliance_pattern_ca_mcgill_dp19_queries_treatment , axiom , ! [ Var_parameter_mr , Var_parameter_tr ] : ( rel_pattern_ca_mcgill_dp19_queries_treatment ( Var_parameter_mr , Var_parameter_tr ) => ( type_MedicalRecord_class ( Var_parameter_mr ) & type_Treatment_class ( Var_parameter_tr ) ) ) ) . | ||
23 | fof ( relation_pattern_ca_mcgill_dp19_queries_treatment , axiom , ! [ Var_parameter_mr , Var_parameter_tr ] : ( ( type_MedicalRecord_class ( Var_parameter_mr ) & type_Treatment_class ( Var_parameter_tr ) ) => ( rel_pattern_ca_mcgill_dp19_queries_treatment ( Var_parameter_mr , Var_parameter_tr ) <=> ( rel_treatment_reference_MedicalRecord ( Var_parameter_mr , Var_parameter_tr ) & type_Treatment_class ( Var_parameter_tr ) ) ) ) ) . | ||
24 | fof ( compliance_pattern_ca_mcgill_dp19_queries_examinationresult , axiom , ! [ Var_parameter_mr , Var_parameter_er ] : ( rel_pattern_ca_mcgill_dp19_queries_examinationresult ( Var_parameter_mr , Var_parameter_er ) => ( type_ExaminationResult_class ( Var_parameter_er ) & type_MedicalRecord_class ( Var_parameter_mr ) ) ) ) . | ||
25 | fof ( relation_pattern_ca_mcgill_dp19_queries_examinationresult , axiom , ! [ Var_parameter_mr , Var_parameter_er ] : ( ( type_ExaminationResult_class ( Var_parameter_er ) & type_MedicalRecord_class ( Var_parameter_mr ) ) => ( rel_pattern_ca_mcgill_dp19_queries_examinationresult ( Var_parameter_mr , Var_parameter_er ) <=> rel_examinationResults_reference_MedicalRecord ( Var_parameter_mr , Var_parameter_er ) ) ) ) . | ||
26 | fof ( compliance_pattern_ca_mcgill_dp19_queries_symptom , axiom , ! [ Var_parameter_mr , Var_parameter_sy ] : ( rel_pattern_ca_mcgill_dp19_queries_symptom ( Var_parameter_mr , Var_parameter_sy ) => ( type_MedicalRecord_class ( Var_parameter_mr ) & type_Symptom_class ( Var_parameter_sy ) ) ) ) . | ||
27 | fof ( relation_pattern_ca_mcgill_dp19_queries_symptom , axiom , ! [ Var_parameter_mr , Var_parameter_sy ] : ( ( type_MedicalRecord_class ( Var_parameter_mr ) & type_Symptom_class ( Var_parameter_sy ) ) => ( rel_pattern_ca_mcgill_dp19_queries_symptom ( Var_parameter_mr , Var_parameter_sy ) <=> rel_symptom_reference_MedicalRecord ( Var_parameter_mr , Var_parameter_sy ) ) ) ) . | ||
28 | fof ( compliance_pattern_ca_mcgill_dp19_queries_treatmentWithoutSymptom , axiom , ! [ Var_parameter_mr ] : ( rel_pattern_ca_mcgill_dp19_queries_treatmentWithoutSymptom ( Var_parameter_mr ) => type_MedicalRecord_class ( Var_parameter_mr ) ) ) . | ||
29 | fof ( relation_pattern_ca_mcgill_dp19_queries_treatmentWithoutSymptom , axiom , ! [ Var_parameter_mr ] : ( type_MedicalRecord_class ( Var_parameter_mr ) => ( rel_pattern_ca_mcgill_dp19_queries_treatmentWithoutSymptom ( Var_parameter_mr ) <=> ? [ Var_variable_tr ] : ( type_Treatment_class ( Var_variable_tr ) & ! [ Var_variable_0 ] : ( type_Symptom_class ( Var_variable_0 ) => ( rel_pattern_ca_mcgill_dp19_queries_treatment ( Var_parameter_mr , Var_variable_tr ) & ~ rel_pattern_ca_mcgill_dp19_queries_symptom ( Var_parameter_mr , Var_variable_0 ) ) ) ) ) ) ) . | ||
30 | fof ( compliance_pattern_ca_mcgill_dp19_queries_healthProblems , axiom , ! [ Var_parameter_mr , Var_parameter_hp ] : ( rel_pattern_ca_mcgill_dp19_queries_healthProblems ( Var_parameter_mr , Var_parameter_hp ) => ( type_MedicalRecord_class ( Var_parameter_mr ) & type_HealthProblem_class ( Var_parameter_hp ) ) ) ) . | ||
31 | fof ( relation_pattern_ca_mcgill_dp19_queries_healthProblems , axiom , ! [ Var_parameter_mr , Var_parameter_hp ] : ( ( type_MedicalRecord_class ( Var_parameter_mr ) & type_HealthProblem_class ( Var_parameter_hp ) ) => ( rel_pattern_ca_mcgill_dp19_queries_healthProblems ( Var_parameter_mr , Var_parameter_hp ) <=> rel_healthProblems_reference_MedicalRecord ( Var_parameter_mr , Var_parameter_hp ) ) ) ) . | ||
32 | fof ( compliance_pattern_ca_mcgill_dp19_queries_healthProblemsWithoutExaminationResult , axiom , ! [ Var_parameter_mr ] : ( rel_pattern_ca_mcgill_dp19_queries_healthProblemsWithoutExaminationResult ( Var_parameter_mr ) => type_MedicalRecord_class ( Var_parameter_mr ) ) ) . | ||
33 | fof ( relation_pattern_ca_mcgill_dp19_queries_healthProblemsWithoutExaminationResult , axiom , ! [ Var_parameter_mr ] : ( type_MedicalRecord_class ( Var_parameter_mr ) => ( rel_pattern_ca_mcgill_dp19_queries_healthProblemsWithoutExaminationResult ( Var_parameter_mr ) <=> ? [ Var_variable_hp ] : ( type_HealthProblem_class ( Var_variable_hp ) & ! [ Var_variable_0 ] : ( type_ExaminationResult_class ( Var_variable_0 ) => ( rel_pattern_ca_mcgill_dp19_queries_healthProblems ( Var_parameter_mr , Var_variable_hp ) & ~ rel_pattern_ca_mcgill_dp19_queries_examinationresult ( Var_parameter_mr , Var_variable_0 ) ) ) ) ) ) ) . | ||
34 | fof ( compliance_pattern_ca_mcgill_dp19_queries_allergy , axiom , ! [ Var_parameter_mr , Var_parameter_al ] : ( rel_pattern_ca_mcgill_dp19_queries_allergy ( Var_parameter_mr , Var_parameter_al ) => ( type_Allergy_class ( Var_parameter_al ) & type_MedicalRecord_class ( Var_parameter_mr ) ) ) ) . | ||
35 | fof ( 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 ) ) ) ) ) . | ||
36 | fof ( 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 ) ) ) . | ||
37 | fof ( 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 ) ) ) ) ) ) ) . | ||
38 | fof ( 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 ) ) ) ) . | ||
39 | fof ( 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 ) ) ) ) ) . | ||
40 | fof ( 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 ) ) ) ) . | ||
41 | fof ( 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 ) ) ) ) ) ) ) ) ) ) . | ||
42 | fof ( 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 ) ) ) . | ||
43 | fof ( upperMultiplicity_examination_HealthSystem , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_HealthSystem_class ( Var_src ) & ( type_Examination_class ( Var_trg_1 ) & type_Examination_class ( Var_trg_2 ) ) ) => ( ( rel_examination_reference_HealthSystem ( Var_src , Var_trg_1 ) & rel_examination_reference_HealthSystem ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) . | ||
44 | fof ( upperMultiplicity_healthsystem_Examination , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_Examination_class ( Var_src ) & ( type_HealthSystem_class ( Var_trg_1 ) & type_HealthSystem_class ( Var_trg_2 ) ) ) => ( ( rel_healthsystem_reference_Examination ( Var_src , Var_trg_1 ) & rel_healthsystem_reference_Examination ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) . | ||
45 | fof ( lowerMultiplicity_medicalrecord_Symptom , axiom , ! [ Var_src ] : ( type_Symptom_class ( Var_src ) => ? [ Var_trg_1 ] : ( type_MedicalRecord_class ( Var_trg_1 ) & rel_medicalrecord_reference_Symptom ( Var_src , Var_trg_1 ) ) ) ) . | ||
46 | fof ( upperMultiplicity_medicalrecord_Symptom , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_Symptom_class ( Var_src ) & ( type_MedicalRecord_class ( Var_trg_1 ) & type_MedicalRecord_class ( Var_trg_2 ) ) ) => ( ( rel_medicalrecord_reference_Symptom ( Var_src , Var_trg_1 ) & rel_medicalrecord_reference_Symptom ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) . | ||
47 | fof ( lowerMultiplicity_examinationType_ExaminationResult , axiom , ! [ Var_src ] : ( type_ExaminationResult_class ( Var_src ) => ? [ Var_trg_1 ] : ( type_Examination_class ( Var_trg_1 ) & rel_examinationType_reference_ExaminationResult ( Var_src , Var_trg_1 ) ) ) ) . | ||
48 | fof ( upperMultiplicity_examinationType_ExaminationResult , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_ExaminationResult_class ( Var_src ) & ( type_Examination_class ( Var_trg_1 ) & type_Examination_class ( Var_trg_2 ) ) ) => ( ( rel_examinationType_reference_ExaminationResult ( Var_src , Var_trg_1 ) & rel_examinationType_reference_ExaminationResult ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) . | ||
49 | fof ( lowerMultiplicity_medicalrecord_ExaminationResult , axiom , ! [ Var_src ] : ( type_ExaminationResult_class ( Var_src ) => ? [ Var_trg_1 ] : ( type_MedicalRecord_class ( Var_trg_1 ) & rel_medicalrecord_reference_ExaminationResult ( Var_src , Var_trg_1 ) ) ) ) . | ||
50 | fof ( upperMultiplicity_medicalrecord_ExaminationResult , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_ExaminationResult_class ( Var_src ) & ( type_MedicalRecord_class ( Var_trg_1 ) & type_MedicalRecord_class ( Var_trg_2 ) ) ) => ( ( rel_medicalrecord_reference_ExaminationResult ( Var_src , Var_trg_1 ) & rel_medicalrecord_reference_ExaminationResult ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) . | ||
51 | fof ( lowerMultiplicity_patient_MedicalRecord , axiom , ! [ Var_src ] : ( type_MedicalRecord_class ( Var_src ) => ? [ Var_trg_1 ] : ( type_Patient_class ( Var_trg_1 ) & rel_patient_reference_MedicalRecord ( Var_src , Var_trg_1 ) ) ) ) . | ||
52 | fof ( upperMultiplicity_patient_MedicalRecord , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_MedicalRecord_class ( Var_src ) & ( type_Patient_class ( Var_trg_1 ) & type_Patient_class ( Var_trg_2 ) ) ) => ( ( rel_patient_reference_MedicalRecord ( Var_src , Var_trg_1 ) & rel_patient_reference_MedicalRecord ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) . | ||
53 | fof ( lowerMultiplicity_record_HealthProblem , axiom , ! [ Var_src ] : ( type_HealthProblem_class ( Var_src ) => ? [ Var_trg_1 ] : ( type_MedicalRecord_class ( Var_trg_1 ) & rel_record_reference_HealthProblem ( Var_src , Var_trg_1 ) ) ) ) . | ||
54 | fof ( upperMultiplicity_record_HealthProblem , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_HealthProblem_class ( Var_src ) & ( type_MedicalRecord_class ( Var_trg_1 ) & type_MedicalRecord_class ( Var_trg_2 ) ) ) => ( ( rel_record_reference_HealthProblem ( Var_src , Var_trg_1 ) & rel_record_reference_HealthProblem ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) . | ||
55 | fof ( lowerMultiplicity_medicine_Treatment , axiom , ! [ Var_src ] : ( type_Treatment_class ( Var_src ) => ? [ Var_trg_1 ] : ( type_Medicine_class ( Var_trg_1 ) & rel_medicine_reference_Treatment ( Var_src , Var_trg_1 ) ) ) ) . | ||
56 | fof ( upperMultiplicity_medicine_Treatment , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_Treatment_class ( Var_src ) & ( type_Medicine_class ( Var_trg_1 ) & type_Medicine_class ( Var_trg_2 ) ) ) => ( ( rel_medicine_reference_Treatment ( Var_src , Var_trg_1 ) & rel_medicine_reference_Treatment ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) . | ||
57 | fof ( oppositeReference_records_Patient , axiom , ! [ Var_src , Var_trg ] : ( ( type_Patient_class ( Var_src ) & type_MedicalRecord_class ( Var_trg ) ) => ( rel_records_reference_Patient ( Var_src , Var_trg ) <=> rel_patient_reference_MedicalRecord ( Var_trg , Var_src ) ) ) ) . | ||
58 | fof ( oppositeReference_healthsystem_Patient , axiom , ! [ Var_src , Var_trg ] : ( ( type_Patient_class ( Var_src ) & type_HealthSystem_class ( Var_trg ) ) => ( rel_healthsystem_reference_Patient ( Var_src , Var_trg ) <=> rel_patient_reference_HealthSystem ( Var_trg , Var_src ) ) ) ) . | ||
59 | fof ( oppositeReference_examination_HealthSystem , axiom , ! [ Var_src , Var_trg ] : ( ( type_HealthSystem_class ( Var_src ) & type_Examination_class ( Var_trg ) ) => ( rel_examination_reference_HealthSystem ( Var_src , Var_trg ) <=> rel_healthsystem_reference_Examination ( Var_trg , Var_src ) ) ) ) . | ||
60 | fof ( oppositeReference_examinationResult_Examination , axiom , ! [ Var_src , Var_trg ] : ( ( type_Examination_class ( Var_src ) & type_ExaminationResult_class ( Var_trg ) ) => ( rel_examinationResult_reference_Examination ( Var_src , Var_trg ) <=> rel_examinationType_reference_ExaminationResult ( Var_trg , Var_src ) ) ) ) . | ||
61 | fof ( oppositeReference_medicalrecord_Symptom , axiom , ! [ Var_src , Var_trg ] : ( ( type_Symptom_class ( Var_src ) & type_MedicalRecord_class ( Var_trg ) ) => ( rel_medicalrecord_reference_Symptom ( Var_src , Var_trg ) <=> rel_symptom_reference_MedicalRecord ( Var_trg , Var_src ) ) ) ) . | ||
62 | fof ( oppositeReference_medicalrecord_ExaminationResult , axiom , ! [ Var_src , Var_trg ] : ( ( type_ExaminationResult_class ( Var_src ) & type_MedicalRecord_class ( Var_trg ) ) => ( rel_medicalrecord_reference_ExaminationResult ( Var_src , Var_trg ) <=> rel_examinationResults_reference_MedicalRecord ( Var_trg , Var_src ) ) ) ) . | ||
63 | fof ( oppositeReference_healthProblems_MedicalRecord , axiom , ! [ Var_src , Var_trg ] : ( ( type_MedicalRecord_class ( Var_src ) & type_HealthProblem_class ( Var_trg ) ) => ( rel_healthProblems_reference_MedicalRecord ( Var_src , Var_trg ) <=> rel_record_reference_HealthProblem ( Var_trg , Var_src ) ) ) ) . | ||
64 | fof ( errorpattern_ca_mcgill_dp19_queries_treatmentWithoutSymptom , axiom , ! [ Var_mr ] : ( type_MedicalRecord_class ( Var_mr ) => ~ rel_pattern_ca_mcgill_dp19_queries_treatmentWithoutSymptom ( Var_mr ) ) ) . | ||
65 | fof ( errorpattern_ca_mcgill_dp19_queries_healthProblemsWithoutExaminationResult , axiom , ! [ Var_mr ] : ( type_MedicalRecord_class ( Var_mr ) => ~ rel_pattern_ca_mcgill_dp19_queries_healthProblemsWithoutExaminationResult ( Var_mr ) ) ) . | ||
66 | fof ( errorpattern_ca_mcgill_dp19_queries_allergyWithoutSymptom , axiom , ! [ Var_mr ] : ( type_MedicalRecord_class ( Var_mr ) => ~ rel_pattern_ca_mcgill_dp19_queries_allergyWithoutSymptom ( Var_mr ) ) ) . | ||
67 | fof ( errorpattern_ca_mcgill_dp19_queries_prescribedMedicineNotRecommended , axiom , ! [ Var_mr , Var_med ] : ( ( type_MedicalRecord_class ( Var_mr ) & type_Medicine_class ( Var_med ) ) => ~ rel_pattern_ca_mcgill_dp19_queries_prescribedMedicineNotRecommended ( Var_mr , Var_med ) ) ) . | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/VampireTest/problem.logicproblem b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/VampireTest/problem.logicproblem new file mode 100644 index 00000000..751860c5 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/VampireTest/problem.logicproblem | |||
@@ -0,0 +1,39 @@ | |||
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:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" xmlns:language_1="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language"> | ||
3 | <types xsi:type="language_1:TypeDefinition" name="oldRPS" elements="//@elements.0 //@elements.1 //@elements.2"/> | ||
4 | <assertions name="assertion1"> | ||
5 | <value xsi:type="language_1:Forall"> | ||
6 | <quantifiedVariables name="x"> | ||
7 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
8 | </quantifiedVariables> | ||
9 | <expression xsi:type="language_1:Exists"> | ||
10 | <quantifiedVariables name="y"> | ||
11 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
12 | </quantifiedVariables> | ||
13 | <expression xsi:type="language_1:And"> | ||
14 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0"> | ||
15 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/> | ||
16 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@expression/@quantifiedVariables.0"/> | ||
17 | </operands> | ||
18 | <operands xsi:type="language_1:Distinct"> | ||
19 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/> | ||
20 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@expression/@quantifiedVariables.0"/> | ||
21 | </operands> | ||
22 | <operands xsi:type="language_1:Not"> | ||
23 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0"> | ||
24 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@expression/@quantifiedVariables.0"/> | ||
25 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/> | ||
26 | </operand> | ||
27 | </operands> | ||
28 | </expression> | ||
29 | </expression> | ||
30 | </value> | ||
31 | </assertions> | ||
32 | <relations xsi:type="language_1:RelationDeclaration" name="beats2"> | ||
33 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
34 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
35 | </relations> | ||
36 | <elements name="Rock" definedInType="//@types.0"/> | ||
37 | <elements name="Paper" definedInType="//@types.0"/> | ||
38 | <elements name="Scissor" definedInType="//@types.0"/> | ||
39 | </language:LogicProblem> | ||
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 new file mode 100644 index 00000000..a4afb86e --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/VampireTest/vampireProblem.tptp | |||
@@ -0,0 +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 | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml new file mode 100644 index 00000000..2f4febdb --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml | |||
@@ -0,0 +1 @@ | |||
<?xml version="1.0" encoding="UTF-8"?><plugin/> | |||
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 new file mode 100644 index 00000000..54114189 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.xtend | |||
@@ -0,0 +1,105 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.icse | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver | ||
4 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration | ||
5 | import functionalarchitecture.FunctionalarchitecturePackage | ||
6 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic | ||
7 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration | ||
8 | import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor | ||
9 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner | ||
10 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult | ||
11 | import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore | ||
12 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic | ||
13 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic | ||
14 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace | ||
15 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace | ||
16 | import java.util.List | ||
17 | import org.eclipse.emf.ecore.EAttribute | ||
18 | import org.eclipse.emf.ecore.EClass | ||
19 | import org.eclipse.emf.ecore.EEnum | ||
20 | import org.eclipse.emf.ecore.EEnumLiteral | ||
21 | import org.eclipse.emf.ecore.EObject | ||
22 | import org.eclipse.emf.ecore.EReference | ||
23 | import org.eclipse.emf.ecore.resource.Resource | ||
24 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl | ||
25 | import hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns | ||
26 | import java.util.LinkedHashMap | ||
27 | import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor | ||
28 | |||
29 | class EcoreTest { | ||
30 | def static void main(String[] args) { | ||
31 | val inputs = new FileSystemWorkspace('''initialModels/''', "") | ||
32 | val workspace = new FileSystemWorkspace('''output/FAMTest/''', "") | ||
33 | workspace.initAndClear | ||
34 | |||
35 | println("Input and output workspaces are created") | ||
36 | |||
37 | val metamodel = loadMetamodel() | ||
38 | val partialModel = loadPartialModel(inputs) | ||
39 | // val queries = loadQueries(metamodel) | ||
40 | |||
41 | println("DSL loaded") | ||
42 | |||
43 | val Ecore2Logic ecore2Logic = new Ecore2Logic | ||
44 | val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic) | ||
45 | val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic) | ||
46 | val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic | ||
47 | |||
48 | val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration()) | ||
49 | val modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem,partialModel) | ||
50 | // val validModelExtensionProblem = viatra2Logic.transformQueries(queries,modelGenerationProblem,new Viatra2LogicConfiguration) | ||
51 | |||
52 | val logicProblem = modelGenerationProblem.output | ||
53 | // val logicProblem = modelExtensionProblem.output | ||
54 | // val logicProblem = validModelExtensionProblem.output | ||
55 | |||
56 | |||
57 | println("Problem created") | ||
58 | |||
59 | var LogicResult solution | ||
60 | var LogicReasoner reasoner | ||
61 | //* | ||
62 | reasoner = new VampireSolver | ||
63 | val vampireConfig = new VampireSolverConfiguration => [ | ||
64 | //add configuration things, in config file first | ||
65 | it.writeToFile = true | ||
66 | ] | ||
67 | |||
68 | solution = reasoner.solve(logicProblem, vampireConfig, workspace) | ||
69 | |||
70 | println("Problem solved") | ||
71 | |||
72 | |||
73 | } | ||
74 | |||
75 | def private static loadMetamodel() { | ||
76 | val pckg = FunctionalarchitecturePackage.eINSTANCE | ||
77 | val List<EClass> classes = pckg.getEClassifiers.filter(EClass).toList | ||
78 | val List<EEnum> enums = pckg.getEClassifiers.filter(EEnum).toList | ||
79 | val List<EEnumLiteral> literals = enums.map[getELiterals].flatten.toList | ||
80 | val List<EReference> references = classes.map[getEReferences].flatten.toList | ||
81 | val List<EAttribute> attributes = classes.map[getEAttributes].flatten.toList | ||
82 | return new EcoreMetamodelDescriptor(classes,#{},false,enums,literals,references,attributes) | ||
83 | } | ||
84 | |||
85 | def private static loadPartialModel(ReasonerWorkspace inputs) { | ||
86 | Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl()); | ||
87 | // inputs.readModel(EObject,"FunctionalArchitectureModel.xmi").eResource.allContents.toList | ||
88 | inputs.readModel(EObject,"FamInstance.xmi").eResource.allContents.toList | ||
89 | } | ||
90 | |||
91 | def private static loadQueries(EcoreMetamodelDescriptor metamodel) { | ||
92 | // val i = Patterns.instance | ||
93 | // val patterns = i.specifications.toList | ||
94 | // val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name== "Constraint"]].toSet | ||
95 | // val derivedFeatures = new LinkedHashMap | ||
96 | // derivedFeatures.put(i.type,metamodel.attributes.filter[it.name == "type"].head) | ||
97 | // derivedFeatures.put(i.model,metamodel.references.filter[it.name == "model"].head) | ||
98 | // val res = new ViatraQuerySetDescriptor( | ||
99 | // patterns, | ||
100 | // wfPatterns, | ||
101 | // derivedFeatures | ||
102 | // ) | ||
103 | // return res | ||
104 | } | ||
105 | } | ||
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 new file mode 100644 index 00000000..9ae00f8d --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend | |||
@@ -0,0 +1,33 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.icse | ||
2 | |||
3 | import functionalarchitecture.FunctionalarchitecturePackage | ||
4 | import hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns | ||
5 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace | ||
6 | import org.eclipse.emf.ecore.resource.Resource | ||
7 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl | ||
8 | |||
9 | class FAMTest { | ||
10 | def static void main(String[] args) { | ||
11 | //Workspace setup | ||
12 | val inputs = new FileSystemWorkspace('''initialModels/''', "") | ||
13 | val workspace = new FileSystemWorkspace('''output/FAMTest/''', "") | ||
14 | workspace.initAndClear | ||
15 | |||
16 | //Logicproblem writing setup | ||
17 | val reg = Resource.Factory.Registry.INSTANCE | ||
18 | val map = reg.extensionToFactoryMap | ||
19 | map.put("logicproblem", new XMIResourceFactoryImpl) | ||
20 | |||
21 | println("Input and output workspaces are created") | ||
22 | |||
23 | val metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE) | ||
24 | val partialModel = GeneralTest.loadPartialModel(inputs, "FunctionalArchitectureModel.xmi") | ||
25 | val queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance) | ||
26 | |||
27 | println("DSL loaded") | ||
28 | |||
29 | GeneralTest.createAndSolveProblem(metamodel, partialModel, queries, workspace) | ||
30 | } | ||
31 | |||
32 | |||
33 | } | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.xtend new file mode 100644 index 00000000..363b9356 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.xtend | |||
@@ -0,0 +1,33 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.icse | ||
2 | |||
3 | import functionalarchitecture.FunctionalarchitecturePackage | ||
4 | import hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns | ||
5 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace | ||
6 | import org.eclipse.emf.ecore.resource.Resource | ||
7 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl | ||
8 | |||
9 | class FileSystemTest { | ||
10 | def static void main(String[] args) { | ||
11 | //Workspace setup | ||
12 | val inputs = new FileSystemWorkspace('''initialModels/''', "") | ||
13 | val workspace = new FileSystemWorkspace('''output/FAMTest/''', "") | ||
14 | workspace.initAndClear | ||
15 | |||
16 | //Logicproblem writing setup | ||
17 | val reg = Resource.Factory.Registry.INSTANCE | ||
18 | val map = reg.extensionToFactoryMap | ||
19 | map.put("logicproblem", new XMIResourceFactoryImpl) | ||
20 | |||
21 | println("Input and output workspaces are created") | ||
22 | |||
23 | val metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE) | ||
24 | val partialModel = GeneralTest.loadPartialModel(inputs, "FunctionalArchitectureModel.xmi") | ||
25 | val queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance) | ||
26 | |||
27 | println("DSL loaded") | ||
28 | |||
29 | GeneralTest.createAndSolveProblem(metamodel, partialModel, queries, workspace) | ||
30 | } | ||
31 | |||
32 | |||
33 | } | ||
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 new file mode 100644 index 00000000..2c53d181 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.xtend | |||
@@ -0,0 +1,89 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.icse | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver | ||
4 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration | ||
5 | import hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns | ||
6 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic | ||
7 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration | ||
8 | import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor | ||
9 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner | ||
10 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult | ||
11 | import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore | ||
12 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic | ||
13 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration | ||
14 | import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor | ||
15 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic | ||
16 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace | ||
17 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace | ||
18 | import java.util.List | ||
19 | import org.eclipse.emf.ecore.EAttribute | ||
20 | import org.eclipse.emf.ecore.EClass | ||
21 | import org.eclipse.emf.ecore.EEnum | ||
22 | import org.eclipse.emf.ecore.EEnumLiteral | ||
23 | import org.eclipse.emf.ecore.EObject | ||
24 | import org.eclipse.emf.ecore.EPackage | ||
25 | import org.eclipse.emf.ecore.EReference | ||
26 | import org.eclipse.emf.ecore.resource.Resource | ||
27 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl | ||
28 | import org.eclipse.viatra.query.runtime.api.IQueryGroup | ||
29 | |||
30 | class GeneralTest { | ||
31 | def static String createAndSolveProblem(EcoreMetamodelDescriptor metamodel, List<EObject> partialModel, ViatraQuerySetDescriptor queries, FileSystemWorkspace workspace) { | ||
32 | val Ecore2Logic ecore2Logic = new Ecore2Logic | ||
33 | val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic) | ||
34 | val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic) | ||
35 | val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic | ||
36 | |||
37 | val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration()) | ||
38 | var problem = instanceModel2Logic.transform(modelGenerationProblem,partialModel).output | ||
39 | problem = viatra2Logic.transformQueries(queries,modelGenerationProblem,new Viatra2LogicConfiguration).output | ||
40 | |||
41 | workspace.writeModel(problem, "Fam.logicproblem") | ||
42 | |||
43 | println("Problem created") | ||
44 | |||
45 | var LogicResult solution | ||
46 | var LogicReasoner reasoner | ||
47 | //* | ||
48 | reasoner = new VampireSolver | ||
49 | val vampireConfig = new VampireSolverConfiguration => [ | ||
50 | //add configuration things, in config file first | ||
51 | it.writeToFile = true | ||
52 | ] | ||
53 | |||
54 | solution = reasoner.solve(problem, vampireConfig, workspace) | ||
55 | |||
56 | println("Problem solved") | ||
57 | } | ||
58 | |||
59 | def static loadMetamodel(EPackage pckg) { | ||
60 | val List<EClass> classes = pckg.getEClassifiers.filter(EClass).toList | ||
61 | val List<EEnum> enums = pckg.getEClassifiers.filter(EEnum).toList | ||
62 | val List<EEnumLiteral> literals = enums.map[getELiterals].flatten.toList | ||
63 | val List<EReference> references = classes.map[getEReferences].flatten.toList | ||
64 | val List<EAttribute> attributes = classes.map[getEAttributes].flatten.toList | ||
65 | return new EcoreMetamodelDescriptor(classes,#{},false,enums,literals,references,attributes) | ||
66 | } | ||
67 | |||
68 | def static loadPartialModel(ReasonerWorkspace inputs, String path) { | ||
69 | Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl()); | ||
70 | inputs.readModel(EObject,path).eResource.contents | ||
71 | // inputs.readModel(EObject,"FamInstance.xmi").eResource.allContents.toList | ||
72 | } | ||
73 | |||
74 | def static loadQueries(EcoreMetamodelDescriptor metamodel, IQueryGroup i) { | ||
75 | val patterns = i.specifications.toList | ||
76 | val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name== "Constraint"]].toSet | ||
77 | val derivedFeatures = emptyMap | ||
78 | //NO DERIVED FEATURES | ||
79 | // val derivedFeatures = new LinkedHashMap | ||
80 | // derivedFeatures.put(i.type,metamodel.attributes.filter[it.name == "type"].head) | ||
81 | // derivedFeatures.put(i.model,metamodel.references.filter[it.name == "model"].head) | ||
82 | val res = new ViatraQuerySetDescriptor( | ||
83 | patterns, | ||
84 | wfPatterns, | ||
85 | derivedFeatures | ||
86 | ) | ||
87 | return res | ||
88 | } | ||
89 | } \ No newline at end of file | ||
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 new file mode 100644 index 00000000..e4f6f87a --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend | |||
@@ -0,0 +1,34 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.icse | ||
2 | |||
3 | import functionalarchitecture.FunctionalarchitecturePackage | ||
4 | import hu.bme.mit.inf.dslreasoner.domains.y | ||
5 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace | ||
6 | import org.eclipse.emf.ecore.resource.Resource | ||
7 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl | ||
8 | import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage | ||
9 | |||
10 | class YakinduTest { | ||
11 | def static void main(String[] args) { | ||
12 | //Workspace setup | ||
13 | val inputs = new FileSystemWorkspace('''initialModels/''', "") | ||
14 | val workspace = new FileSystemWorkspace('''output/YakinduTest/''', "") | ||
15 | workspace.initAndClear | ||
16 | |||
17 | //Logicproblem writing setup | ||
18 | val reg = Resource.Factory.Registry.INSTANCE | ||
19 | val map = reg.extensionToFactoryMap | ||
20 | map.put("logicproblem", new XMIResourceFactoryImpl) | ||
21 | |||
22 | println("Input and output workspaces are created") | ||
23 | |||
24 | val metamodel = GeneralTest.loadMetamodel(YakindummPackage.eINSTANCE) | ||
25 | val partialModel = GeneralTest.loadPartialModel(inputs, "Yakindu.xmi") | ||
26 | val queries = GeneralTest.loadQueries(metamodel, | ||
27 | |||
28 | println("DSL loaded") | ||
29 | |||
30 | GeneralTest.createAndSolveProblem(metamodel, partialModel, queries, workspace) | ||
31 | } | ||
32 | |||
33 | |||
34 | } | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icseTests/FAMTest.xtend index a8b4dcfb..a8b4dcfb 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.xtend +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icseTests/FAMTest.xtend | |||
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 ccc17617..15f9e1fe 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 | |||
@@ -22,11 +22,12 @@ import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl | |||
22 | class MedicalSystem { | 22 | class MedicalSystem { |
23 | def static void main(String[] args) { | 23 | def static void main(String[] args) { |
24 | init() | 24 | init() |
25 | val workspace = new FileSystemWorkspace('''outputModels/''',"") | 25 | val workspace = new FileSystemWorkspace('''output/MedicalSystem/''',"") |
26 | workspace.initAndClear | 26 | workspace.initAndClear |
27 | val root = load() | 27 | val root = load() |
28 | println("Problem Loaded") | 28 | println("Problem Loaded") |
29 | 29 | ||
30 | |||
30 | // val rs = new ResourceSetImpl | 31 | // val rs = new ResourceSetImpl |
31 | // val logRes = rs.createResource(URI.createFileURI("vampireMidel.tptp")) | 32 | // val logRes = rs.createResource(URI.createFileURI("vampireMidel.tptp")) |
32 | // | 33 | // |
@@ -40,7 +41,7 @@ class MedicalSystem { | |||
40 | reasoner = new VampireSolver | 41 | reasoner = new VampireSolver |
41 | val vampireConfig = new VampireSolverConfiguration => [ | 42 | val vampireConfig = new VampireSolverConfiguration => [ |
42 | //add configuration things, in config file first | 43 | //add configuration things, in config file first |
43 | it.writeToFile = false | 44 | it.writeToFile = true |
44 | ] | 45 | ] |
45 | 46 | ||
46 | solution = reasoner.solve(root, vampireConfig, workspace) | 47 | solution = reasoner.solve(root, vampireConfig, workspace) |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend index 9d2235f0..f99f0a40 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend | |||
@@ -66,7 +66,7 @@ | |||
66 | // println("Problem created") | 66 | // println("Problem created") |
67 | // var LogicResult solution | 67 | // var LogicResult solution |
68 | // var LogicReasoner reasoner | 68 | // var LogicReasoner reasoner |
69 | // //* | 69 | // /* |
70 | // reasoner = new ViatraReasoner | 70 | // reasoner = new ViatraReasoner |
71 | // val viatraConfig = new ViatraReasonerConfiguration => [ | 71 | // val viatraConfig = new ViatraReasonerConfiguration => [ |
72 | // it.typeScopes.maxNewElements = 40 | 72 | // it.typeScopes.maxNewElements = 40 |
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 3d36bbf7..4fc81ad8 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 | |||
@@ -17,6 +17,7 @@ import org.eclipse.emf.common.util.URI | |||
17 | import org.eclipse.emf.ecore.resource.Resource | 17 | import org.eclipse.emf.ecore.resource.Resource |
18 | import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl | 18 | import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl |
19 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl | 19 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl |
20 | import java.io.File | ||
20 | 21 | ||
21 | class VampireTest { | 22 | class VampireTest { |
22 | 23 | ||
@@ -39,15 +40,11 @@ class VampireTest { | |||
39 | map.put("logicproblem", new XMIResourceFactoryImpl) | 40 | map.put("logicproblem", new XMIResourceFactoryImpl) |
40 | VampireLanguageStandaloneSetup.doSetup | 41 | VampireLanguageStandaloneSetup.doSetup |
41 | 42 | ||
42 | val workspace = new FileSystemWorkspace('''output/models/''',"") | 43 | val workspace = new FileSystemWorkspace('''output/VampireTest''',"") |
43 | workspace.initAndClear | 44 | workspace.initAndClear |
44 | 45 | ||
45 | // Load and create top level elements | 46 | //Storing the logicProblem |
46 | // Load source model | 47 | val filename = "problem.logicproblem" |
47 | val rs = new ResourceSetImpl | ||
48 | val logicURI = URI.createFileURI("output/files/logProb.logicproblem") | ||
49 | val logRes = rs.createResource(logicURI) | ||
50 | |||
51 | var LogicProblem problem = builder.createProblem | 48 | var LogicProblem problem = builder.createProblem |
52 | 49 | ||
53 | /* | 50 | /* |
@@ -56,8 +53,7 @@ class VampireTest { | |||
56 | rockPaperScisors(problem) | 53 | rockPaperScisors(problem) |
57 | //*/ | 54 | //*/ |
58 | 55 | ||
59 | logRes.contents.add(problem) | 56 | workspace.writeModel(problem, filename) |
60 | logRes.save(Collections.EMPTY_MAP) | ||
61 | 57 | ||
62 | //problem.add(Assertion( Y && X <=> X) ) | 58 | //problem.add(Assertion( Y && X <=> X) ) |
63 | 59 | ||
@@ -69,7 +65,7 @@ class VampireTest { | |||
69 | reasoner = new VampireSolver | 65 | reasoner = new VampireSolver |
70 | val vampireConfig = new VampireSolverConfiguration => [ | 66 | val vampireConfig = new VampireSolverConfiguration => [ |
71 | //add configuration things, in config file first | 67 | //add configuration things, in config file first |
72 | it.writeToFile = false | 68 | it.writeToFile = true |
73 | ] | 69 | ] |
74 | 70 | ||
75 | solution = reasoner.solve(problem, vampireConfig, workspace) | 71 | solution = reasoner.solve(problem, vampireConfig, workspace) |
@@ -88,6 +84,10 @@ class VampireTest { | |||
88 | 84 | ||
89 | } | 85 | } |
90 | 86 | ||
87 | def name() { | ||
88 | return this.class.simpleName | ||
89 | } | ||
90 | |||
91 | static def deMorgan(LogicProblem problem) { | 91 | static def deMorgan(LogicProblem problem) { |
92 | 92 | ||
93 | 93 | ||
@@ -144,7 +144,10 @@ class VampireTest { | |||
144 | //x.range | 144 | //x.range |
145 | Exists[ | 145 | Exists[ |
146 | val y = addVar("y",oldRPS) | 146 | val y = addVar("y",oldRPS) |
147 | beats2.call(x,y) | 147 | And(beats2.call(x,y), |
148 | x != y, | ||
149 | Not(beats2.call(y, x)) | ||
150 | ) | ||
148 | ] | 151 | ] |
149 | ])) | 152 | ])) |
150 | //*/ | 153 | //*/ |
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 new file mode 100644 index 00000000..cf5c79b4 --- /dev/null +++ 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 new file mode 100644 index 00000000..33fae225 --- /dev/null +++ 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 new file mode 100644 index 00000000..56144b8f --- /dev/null +++ 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 new file mode 100644 index 00000000..29d89e94 --- /dev/null +++ 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 new file mode 100644 index 00000000..c0d35b2f --- /dev/null +++ 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/.gitignore b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.gitignore new file mode 100644 index 00000000..1b426999 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.gitignore | |||
@@ -0,0 +1,6 @@ | |||
1 | /.FAMTest.java._trace | ||
2 | /.YakinduTest.java._trace | ||
3 | /.EcoreTest.java._trace | ||
4 | /.fileSystemTest.java._trace | ||
5 | /.FileSystemTest.java._trace | ||
6 | /.GeneralTest.java._trace | ||
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 new file mode 100644 index 00000000..f3dc8572 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.java | |||
@@ -0,0 +1,116 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.icse; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; | ||
4 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; | ||
5 | import com.google.common.collect.Iterables; | ||
6 | import functionalarchitecture.FunctionalarchitecturePackage; | ||
7 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic; | ||
8 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration; | ||
9 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; | ||
10 | import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; | ||
11 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; | ||
12 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; | ||
13 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; | ||
14 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; | ||
15 | import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore; | ||
16 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic; | ||
17 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic; | ||
18 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; | ||
19 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace; | ||
20 | import java.util.Collections; | ||
21 | import java.util.List; | ||
22 | import java.util.Map; | ||
23 | import org.eclipse.emf.common.util.EList; | ||
24 | import org.eclipse.emf.ecore.EAttribute; | ||
25 | import org.eclipse.emf.ecore.EClass; | ||
26 | import org.eclipse.emf.ecore.EEnum; | ||
27 | import org.eclipse.emf.ecore.EEnumLiteral; | ||
28 | import org.eclipse.emf.ecore.EObject; | ||
29 | import org.eclipse.emf.ecore.EReference; | ||
30 | import org.eclipse.emf.ecore.resource.Resource; | ||
31 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; | ||
32 | import org.eclipse.xtend2.lib.StringConcatenation; | ||
33 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; | ||
34 | import org.eclipse.xtext.xbase.lib.Exceptions; | ||
35 | import org.eclipse.xtext.xbase.lib.Functions.Function1; | ||
36 | import org.eclipse.xtext.xbase.lib.InputOutput; | ||
37 | import org.eclipse.xtext.xbase.lib.IterableExtensions; | ||
38 | import org.eclipse.xtext.xbase.lib.IteratorExtensions; | ||
39 | import org.eclipse.xtext.xbase.lib.ListExtensions; | ||
40 | import org.eclipse.xtext.xbase.lib.ObjectExtensions; | ||
41 | import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; | ||
42 | |||
43 | @SuppressWarnings("all") | ||
44 | public class EcoreTest { | ||
45 | public static void main(final String[] args) { | ||
46 | try { | ||
47 | StringConcatenation _builder = new StringConcatenation(); | ||
48 | _builder.append("initialModels/"); | ||
49 | final FileSystemWorkspace inputs = new FileSystemWorkspace(_builder.toString(), ""); | ||
50 | StringConcatenation _builder_1 = new StringConcatenation(); | ||
51 | _builder_1.append("output/FAMTest/"); | ||
52 | final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder_1.toString(), ""); | ||
53 | workspace.initAndClear(); | ||
54 | InputOutput.<String>println("Input and output workspaces are created"); | ||
55 | final EcoreMetamodelDescriptor metamodel = EcoreTest.loadMetamodel(); | ||
56 | final List<EObject> partialModel = EcoreTest.loadPartialModel(inputs); | ||
57 | InputOutput.<String>println("DSL loaded"); | ||
58 | final Ecore2Logic ecore2Logic = new Ecore2Logic(); | ||
59 | final Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic); | ||
60 | final Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic); | ||
61 | final InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic(); | ||
62 | Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration(); | ||
63 | final TracedOutput<LogicProblem, Ecore2Logic_Trace> modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration); | ||
64 | final TracedOutput<LogicProblem, Ecore2Logic_Trace> modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem, partialModel); | ||
65 | final LogicProblem logicProblem = modelGenerationProblem.getOutput(); | ||
66 | InputOutput.<String>println("Problem created"); | ||
67 | LogicResult solution = null; | ||
68 | LogicReasoner reasoner = null; | ||
69 | VampireSolver _vampireSolver = new VampireSolver(); | ||
70 | reasoner = _vampireSolver; | ||
71 | VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); | ||
72 | final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> { | ||
73 | it.writeToFile = true; | ||
74 | }; | ||
75 | final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function); | ||
76 | solution = reasoner.solve(logicProblem, vampireConfig, workspace); | ||
77 | InputOutput.<String>println("Problem solved"); | ||
78 | } catch (Throwable _e) { | ||
79 | throw Exceptions.sneakyThrow(_e); | ||
80 | } | ||
81 | } | ||
82 | |||
83 | private static EcoreMetamodelDescriptor loadMetamodel() { | ||
84 | final FunctionalarchitecturePackage pckg = FunctionalarchitecturePackage.eINSTANCE; | ||
85 | final List<EClass> classes = IterableExtensions.<EClass>toList(Iterables.<EClass>filter(pckg.getEClassifiers(), EClass.class)); | ||
86 | final List<EEnum> enums = IterableExtensions.<EEnum>toList(Iterables.<EEnum>filter(pckg.getEClassifiers(), EEnum.class)); | ||
87 | final Function1<EEnum, EList<EEnumLiteral>> _function = (EEnum it) -> { | ||
88 | return it.getELiterals(); | ||
89 | }; | ||
90 | final List<EEnumLiteral> literals = IterableExtensions.<EEnumLiteral>toList(Iterables.<EEnumLiteral>concat(ListExtensions.<EEnum, EList<EEnumLiteral>>map(enums, _function))); | ||
91 | final Function1<EClass, EList<EReference>> _function_1 = (EClass it) -> { | ||
92 | return it.getEReferences(); | ||
93 | }; | ||
94 | final List<EReference> references = IterableExtensions.<EReference>toList(Iterables.<EReference>concat(ListExtensions.<EClass, EList<EReference>>map(classes, _function_1))); | ||
95 | final Function1<EClass, EList<EAttribute>> _function_2 = (EClass it) -> { | ||
96 | return it.getEAttributes(); | ||
97 | }; | ||
98 | final List<EAttribute> attributes = IterableExtensions.<EAttribute>toList(Iterables.<EAttribute>concat(ListExtensions.<EClass, EList<EAttribute>>map(classes, _function_2))); | ||
99 | return new EcoreMetamodelDescriptor(classes, Collections.<EClass>unmodifiableSet(CollectionLiterals.<EClass>newHashSet()), false, enums, literals, references, attributes); | ||
100 | } | ||
101 | |||
102 | private static List<EObject> loadPartialModel(final ReasonerWorkspace inputs) { | ||
103 | List<EObject> _xblockexpression = null; | ||
104 | { | ||
105 | Map<String, Object> _extensionToFactoryMap = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap(); | ||
106 | XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl(); | ||
107 | _extensionToFactoryMap.put("*", _xMIResourceFactoryImpl); | ||
108 | _xblockexpression = IteratorExtensions.<EObject>toList(inputs.<EObject>readModel(EObject.class, "FamInstance.xmi").eResource().getAllContents()); | ||
109 | } | ||
110 | return _xblockexpression; | ||
111 | } | ||
112 | |||
113 | private static Object loadQueries(final EcoreMetamodelDescriptor metamodel) { | ||
114 | return null; | ||
115 | } | ||
116 | } | ||
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 new file mode 100644 index 00000000..92803b7f --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.java | |||
@@ -0,0 +1,38 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.icse; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest; | ||
4 | import functionalarchitecture.FunctionalarchitecturePackage; | ||
5 | import hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns; | ||
6 | import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; | ||
7 | import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor; | ||
8 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; | ||
9 | import java.util.Map; | ||
10 | import org.eclipse.emf.common.util.EList; | ||
11 | import org.eclipse.emf.ecore.EObject; | ||
12 | import org.eclipse.emf.ecore.resource.Resource; | ||
13 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; | ||
14 | import org.eclipse.xtend2.lib.StringConcatenation; | ||
15 | import org.eclipse.xtext.xbase.lib.InputOutput; | ||
16 | |||
17 | @SuppressWarnings("all") | ||
18 | public class FAMTest { | ||
19 | public static void main(final String[] args) { | ||
20 | StringConcatenation _builder = new StringConcatenation(); | ||
21 | _builder.append("initialModels/"); | ||
22 | final FileSystemWorkspace inputs = new FileSystemWorkspace(_builder.toString(), ""); | ||
23 | StringConcatenation _builder_1 = new StringConcatenation(); | ||
24 | _builder_1.append("output/FAMTest/"); | ||
25 | final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder_1.toString(), ""); | ||
26 | workspace.initAndClear(); | ||
27 | final Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; | ||
28 | final Map<String, Object> map = reg.getExtensionToFactoryMap(); | ||
29 | XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl(); | ||
30 | map.put("logicproblem", _xMIResourceFactoryImpl); | ||
31 | InputOutput.<String>println("Input and output workspaces are created"); | ||
32 | final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE); | ||
33 | final EList<EObject> partialModel = GeneralTest.loadPartialModel(inputs, "FunctionalArchitectureModel.xmi"); | ||
34 | final ViatraQuerySetDescriptor queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance()); | ||
35 | InputOutput.<String>println("DSL loaded"); | ||
36 | GeneralTest.createAndSolveProblem(metamodel, partialModel, queries, workspace); | ||
37 | } | ||
38 | } | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.java new file mode 100644 index 00000000..5994b4b4 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.java | |||
@@ -0,0 +1,38 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.icse; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest; | ||
4 | import functionalarchitecture.FunctionalarchitecturePackage; | ||
5 | import hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns; | ||
6 | import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; | ||
7 | import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor; | ||
8 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; | ||
9 | import java.util.Map; | ||
10 | import org.eclipse.emf.common.util.EList; | ||
11 | import org.eclipse.emf.ecore.EObject; | ||
12 | import org.eclipse.emf.ecore.resource.Resource; | ||
13 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; | ||
14 | import org.eclipse.xtend2.lib.StringConcatenation; | ||
15 | import org.eclipse.xtext.xbase.lib.InputOutput; | ||
16 | |||
17 | @SuppressWarnings("all") | ||
18 | public class FileSystemTest { | ||
19 | public static void main(final String[] args) { | ||
20 | StringConcatenation _builder = new StringConcatenation(); | ||
21 | _builder.append("initialModels/"); | ||
22 | final FileSystemWorkspace inputs = new FileSystemWorkspace(_builder.toString(), ""); | ||
23 | StringConcatenation _builder_1 = new StringConcatenation(); | ||
24 | _builder_1.append("output/FAMTest/"); | ||
25 | final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder_1.toString(), ""); | ||
26 | workspace.initAndClear(); | ||
27 | final Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; | ||
28 | final Map<String, Object> map = reg.getExtensionToFactoryMap(); | ||
29 | XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl(); | ||
30 | map.put("logicproblem", _xMIResourceFactoryImpl); | ||
31 | InputOutput.<String>println("Input and output workspaces are created"); | ||
32 | final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE); | ||
33 | final EList<EObject> partialModel = GeneralTest.loadPartialModel(inputs, "FunctionalArchitectureModel.xmi"); | ||
34 | final ViatraQuerySetDescriptor queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance()); | ||
35 | InputOutput.<String>println("DSL loaded"); | ||
36 | GeneralTest.createAndSolveProblem(metamodel, partialModel, queries, workspace); | ||
37 | } | ||
38 | } | ||
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 new file mode 100644 index 00000000..92cf666c --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.java | |||
@@ -0,0 +1,127 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.icse; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; | ||
4 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; | ||
5 | import com.google.common.base.Objects; | ||
6 | import com.google.common.collect.Iterables; | ||
7 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic; | ||
8 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration; | ||
9 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; | ||
10 | import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; | ||
11 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; | ||
12 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; | ||
13 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; | ||
14 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; | ||
15 | import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore; | ||
16 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic; | ||
17 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration; | ||
18 | import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor; | ||
19 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic; | ||
20 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; | ||
21 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace; | ||
22 | import java.util.Collections; | ||
23 | import java.util.List; | ||
24 | import java.util.Map; | ||
25 | import java.util.Set; | ||
26 | import org.eclipse.emf.common.util.EList; | ||
27 | import org.eclipse.emf.ecore.EAttribute; | ||
28 | import org.eclipse.emf.ecore.EClass; | ||
29 | import org.eclipse.emf.ecore.EEnum; | ||
30 | import org.eclipse.emf.ecore.EEnumLiteral; | ||
31 | import org.eclipse.emf.ecore.EObject; | ||
32 | import org.eclipse.emf.ecore.EPackage; | ||
33 | import org.eclipse.emf.ecore.EReference; | ||
34 | import org.eclipse.emf.ecore.EStructuralFeature; | ||
35 | import org.eclipse.emf.ecore.resource.Resource; | ||
36 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; | ||
37 | import org.eclipse.viatra.query.runtime.api.IQueryGroup; | ||
38 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
39 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation; | ||
40 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; | ||
41 | import org.eclipse.xtext.xbase.lib.Exceptions; | ||
42 | import org.eclipse.xtext.xbase.lib.Functions.Function1; | ||
43 | import org.eclipse.xtext.xbase.lib.InputOutput; | ||
44 | import org.eclipse.xtext.xbase.lib.IterableExtensions; | ||
45 | import org.eclipse.xtext.xbase.lib.ListExtensions; | ||
46 | import org.eclipse.xtext.xbase.lib.ObjectExtensions; | ||
47 | import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; | ||
48 | |||
49 | @SuppressWarnings("all") | ||
50 | public class GeneralTest { | ||
51 | public static String createAndSolveProblem(final EcoreMetamodelDescriptor metamodel, final List<EObject> partialModel, final ViatraQuerySetDescriptor queries, final FileSystemWorkspace workspace) { | ||
52 | try { | ||
53 | String _xblockexpression = null; | ||
54 | { | ||
55 | final Ecore2Logic ecore2Logic = new Ecore2Logic(); | ||
56 | final Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic); | ||
57 | final Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic); | ||
58 | final InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic(); | ||
59 | Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration(); | ||
60 | final TracedOutput<LogicProblem, Ecore2Logic_Trace> modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration); | ||
61 | LogicProblem problem = instanceModel2Logic.transform(modelGenerationProblem, partialModel).getOutput(); | ||
62 | Viatra2LogicConfiguration _viatra2LogicConfiguration = new Viatra2LogicConfiguration(); | ||
63 | problem = viatra2Logic.transformQueries(queries, modelGenerationProblem, _viatra2LogicConfiguration).getOutput(); | ||
64 | workspace.writeModel(problem, "Fam.logicproblem"); | ||
65 | InputOutput.<String>println("Problem created"); | ||
66 | LogicResult solution = null; | ||
67 | LogicReasoner reasoner = null; | ||
68 | VampireSolver _vampireSolver = new VampireSolver(); | ||
69 | reasoner = _vampireSolver; | ||
70 | VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); | ||
71 | final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> { | ||
72 | it.writeToFile = true; | ||
73 | }; | ||
74 | final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function); | ||
75 | solution = reasoner.solve(problem, vampireConfig, workspace); | ||
76 | _xblockexpression = InputOutput.<String>println("Problem solved"); | ||
77 | } | ||
78 | return _xblockexpression; | ||
79 | } catch (Throwable _e) { | ||
80 | throw Exceptions.sneakyThrow(_e); | ||
81 | } | ||
82 | } | ||
83 | |||
84 | public static EcoreMetamodelDescriptor loadMetamodel(final EPackage pckg) { | ||
85 | final List<EClass> classes = IterableExtensions.<EClass>toList(Iterables.<EClass>filter(pckg.getEClassifiers(), EClass.class)); | ||
86 | final List<EEnum> enums = IterableExtensions.<EEnum>toList(Iterables.<EEnum>filter(pckg.getEClassifiers(), EEnum.class)); | ||
87 | final Function1<EEnum, EList<EEnumLiteral>> _function = (EEnum it) -> { | ||
88 | return it.getELiterals(); | ||
89 | }; | ||
90 | final List<EEnumLiteral> literals = IterableExtensions.<EEnumLiteral>toList(Iterables.<EEnumLiteral>concat(ListExtensions.<EEnum, EList<EEnumLiteral>>map(enums, _function))); | ||
91 | final Function1<EClass, EList<EReference>> _function_1 = (EClass it) -> { | ||
92 | return it.getEReferences(); | ||
93 | }; | ||
94 | final List<EReference> references = IterableExtensions.<EReference>toList(Iterables.<EReference>concat(ListExtensions.<EClass, EList<EReference>>map(classes, _function_1))); | ||
95 | final Function1<EClass, EList<EAttribute>> _function_2 = (EClass it) -> { | ||
96 | return it.getEAttributes(); | ||
97 | }; | ||
98 | final List<EAttribute> attributes = IterableExtensions.<EAttribute>toList(Iterables.<EAttribute>concat(ListExtensions.<EClass, EList<EAttribute>>map(classes, _function_2))); | ||
99 | return new EcoreMetamodelDescriptor(classes, Collections.<EClass>unmodifiableSet(CollectionLiterals.<EClass>newHashSet()), false, enums, literals, references, attributes); | ||
100 | } | ||
101 | |||
102 | public static EList<EObject> loadPartialModel(final ReasonerWorkspace inputs, final String path) { | ||
103 | EList<EObject> _xblockexpression = null; | ||
104 | { | ||
105 | Map<String, Object> _extensionToFactoryMap = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap(); | ||
106 | XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl(); | ||
107 | _extensionToFactoryMap.put("*", _xMIResourceFactoryImpl); | ||
108 | _xblockexpression = inputs.<EObject>readModel(EObject.class, path).eResource().getContents(); | ||
109 | } | ||
110 | return _xblockexpression; | ||
111 | } | ||
112 | |||
113 | public static ViatraQuerySetDescriptor loadQueries(final EcoreMetamodelDescriptor metamodel, final IQueryGroup i) { | ||
114 | final List<IQuerySpecification<?>> patterns = IterableExtensions.<IQuerySpecification<?>>toList(i.getSpecifications()); | ||
115 | final Function1<IQuerySpecification<?>, Boolean> _function = (IQuerySpecification<?> it) -> { | ||
116 | final Function1<PAnnotation, Boolean> _function_1 = (PAnnotation it_1) -> { | ||
117 | String _name = it_1.getName(); | ||
118 | return Boolean.valueOf(Objects.equal(_name, "Constraint")); | ||
119 | }; | ||
120 | return Boolean.valueOf(IterableExtensions.<PAnnotation>exists(it.getAllAnnotations(), _function_1)); | ||
121 | }; | ||
122 | final Set<IQuerySpecification<?>> wfPatterns = IterableExtensions.<IQuerySpecification<?>>toSet(IterableExtensions.<IQuerySpecification<?>>filter(patterns, _function)); | ||
123 | final Map<IQuerySpecification<?>, EStructuralFeature> derivedFeatures = CollectionLiterals.<IQuerySpecification<?>, EStructuralFeature>emptyMap(); | ||
124 | final ViatraQuerySetDescriptor res = new ViatraQuerySetDescriptor(patterns, wfPatterns, derivedFeatures); | ||
125 | return res; | ||
126 | } | ||
127 | } | ||
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 new file mode 100644 index 00000000..fa4ef6b9 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java | |||
@@ -0,0 +1,10 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.icse; | ||
2 | |||
3 | @SuppressWarnings("all") | ||
4 | public class YakinduTest { | ||
5 | public static void main(final String[] args) { | ||
6 | throw new Error("Unresolved compilation problems:" | ||
7 | + "\nmissing \')\' at \'GeneralTest\'" | ||
8 | + "\nType mismatch: cannot convert from String to IQueryGroup"); | ||
9 | } | ||
10 | } | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icseTest/.gitignore b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icseTest/.gitignore new file mode 100644 index 00000000..f3e21798 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icseTest/.gitignore | |||
@@ -0,0 +1 @@ | |||
/.FAMTest.java._trace | |||
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 01664d90..fe447779 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 6a36d4d4..8e57f5e7 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 93a2e4f4..9d12dab4 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 15b5afc4..2760bac4 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 | |||
@@ -2,3 +2,11 @@ | |||
2 | /.SimpleRun.java._trace | 2 | /.SimpleRun.java._trace |
3 | /.DslTest.java._trace | 3 | /.DslTest.java._trace |
4 | /.MedicalSystem.java._trace | 4 | /.MedicalSystem.java._trace |
5 | /.DslTest.xtendbin | ||
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/DslTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/FAMTest.java index 7b4849e1..7b4849e1 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.java +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/FAMTest.java | |||
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 d4f53d65..ece0a9bb 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 | |||
@@ -29,7 +29,7 @@ public class MedicalSystem { | |||
29 | try { | 29 | try { |
30 | MedicalSystem.init(); | 30 | MedicalSystem.init(); |
31 | StringConcatenation _builder = new StringConcatenation(); | 31 | StringConcatenation _builder = new StringConcatenation(); |
32 | _builder.append("outputModels/"); | 32 | _builder.append("output/MedicalSystem/"); |
33 | final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder.toString(), ""); | 33 | final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder.toString(), ""); |
34 | workspace.initAndClear(); | 34 | workspace.initAndClear(); |
35 | final LogicProblem root = MedicalSystem.load(); | 35 | final LogicProblem root = MedicalSystem.load(); |
@@ -40,7 +40,7 @@ public class MedicalSystem { | |||
40 | reasoner = _vampireSolver; | 40 | reasoner = _vampireSolver; |
41 | VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); | 41 | VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); |
42 | final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> { | 42 | final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> { |
43 | it.writeToFile = false; | 43 | it.writeToFile = true; |
44 | }; | 44 | }; |
45 | final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function); | 45 | final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function); |
46 | solution = reasoner.solve(root, vampireConfig, workspace); | 46 | 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 d02174f7..74f117f2 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 | |||
@@ -11,6 +11,7 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.And; | |||
11 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Assertion; | 11 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Assertion; |
12 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDeclaration; | 12 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDeclaration; |
13 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement; | 13 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement; |
14 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Distinct; | ||
14 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Exists; | 15 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Exists; |
15 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Iff; | 16 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Iff; |
16 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Not; | 17 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Not; |
@@ -25,12 +26,9 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage; | |||
25 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; | 26 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; |
26 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage; | 27 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage; |
27 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; | 28 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; |
28 | import java.util.Collections; | ||
29 | import java.util.Map; | 29 | import java.util.Map; |
30 | import org.eclipse.emf.common.util.EList; | 30 | import org.eclipse.emf.common.util.EList; |
31 | import org.eclipse.emf.common.util.URI; | ||
32 | import org.eclipse.emf.ecore.resource.Resource; | 31 | import org.eclipse.emf.ecore.resource.Resource; |
33 | import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; | ||
34 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; | 32 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; |
35 | import org.eclipse.xtend2.lib.StringConcatenation; | 33 | import org.eclipse.xtend2.lib.StringConcatenation; |
36 | import org.eclipse.xtext.xbase.lib.Exceptions; | 34 | import org.eclipse.xtext.xbase.lib.Exceptions; |
@@ -56,16 +54,13 @@ public class VampireTest { | |||
56 | map.put("logicproblem", _xMIResourceFactoryImpl); | 54 | map.put("logicproblem", _xMIResourceFactoryImpl); |
57 | VampireLanguageStandaloneSetup.doSetup(); | 55 | VampireLanguageStandaloneSetup.doSetup(); |
58 | StringConcatenation _builder = new StringConcatenation(); | 56 | StringConcatenation _builder = new StringConcatenation(); |
59 | _builder.append("output/models/"); | 57 | _builder.append("output/VampireTest"); |
60 | final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder.toString(), ""); | 58 | final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder.toString(), ""); |
61 | workspace.initAndClear(); | 59 | workspace.initAndClear(); |
62 | final ResourceSetImpl rs = new ResourceSetImpl(); | 60 | final String filename = "problem.logicproblem"; |
63 | final URI logicURI = URI.createFileURI("output/files/logProb.logicproblem"); | ||
64 | final Resource logRes = rs.createResource(logicURI); | ||
65 | LogicProblem problem = VampireTest.builder.createProblem(); | 61 | LogicProblem problem = VampireTest.builder.createProblem(); |
66 | VampireTest.rockPaperScisors(problem); | 62 | VampireTest.rockPaperScisors(problem); |
67 | logRes.getContents().add(problem); | 63 | workspace.writeModel(problem, filename); |
68 | logRes.save(Collections.EMPTY_MAP); | ||
69 | InputOutput.<String>println("Problem Created"); | 64 | InputOutput.<String>println("Problem Created"); |
70 | LogicResult solution = null; | 65 | LogicResult solution = null; |
71 | LogicReasoner reasoner = null; | 66 | LogicReasoner reasoner = null; |
@@ -73,7 +68,7 @@ public class VampireTest { | |||
73 | reasoner = _vampireSolver; | 68 | reasoner = _vampireSolver; |
74 | VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); | 69 | VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); |
75 | final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> { | 70 | final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> { |
76 | it.writeToFile = false; | 71 | it.writeToFile = true; |
77 | }; | 72 | }; |
78 | final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function); | 73 | final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function); |
79 | solution = reasoner.solve(problem, vampireConfig, workspace); | 74 | solution = reasoner.solve(problem, vampireConfig, workspace); |
@@ -83,6 +78,10 @@ public class VampireTest { | |||
83 | } | 78 | } |
84 | } | 79 | } |
85 | 80 | ||
81 | public String name() { | ||
82 | return this.getClass().getSimpleName(); | ||
83 | } | ||
84 | |||
86 | public static Assertion deMorgan(final LogicProblem problem) { | 85 | public static Assertion deMorgan(final LogicProblem problem) { |
87 | Assertion _xblockexpression = null; | 86 | Assertion _xblockexpression = null; |
88 | { | 87 | { |
@@ -120,10 +119,13 @@ public class VampireTest { | |||
120 | { | 119 | { |
121 | final Variable x = it.addVar("x", oldRPS); | 120 | final Variable x = it.addVar("x", oldRPS); |
122 | final Function1<VariableContext, TermDescription> _function_1 = (VariableContext it_1) -> { | 121 | final Function1<VariableContext, TermDescription> _function_1 = (VariableContext it_1) -> { |
123 | SymbolicValue _xblockexpression_2 = null; | 122 | And _xblockexpression_2 = null; |
124 | { | 123 | { |
125 | final Variable y = it_1.addVar("y", oldRPS); | 124 | final Variable y = it_1.addVar("y", oldRPS); |
126 | _xblockexpression_2 = VampireTest.builder.call(beats2, x, y); | 125 | SymbolicValue _call = VampireTest.builder.call(beats2, x, y); |
126 | Distinct _notEquals = VampireTest.builder.operator_notEquals(x, y); | ||
127 | _xblockexpression_2 = VampireTest.builder.And(_call, _notEquals, | ||
128 | VampireTest.builder.Not(VampireTest.builder.call(beats2, y, x))); | ||
127 | } | 129 | } |
128 | return _xblockexpression_2; | 130 | return _xblockexpression_2; |
129 | }; | 131 | }; |