diff --git a/build.gradle b/build.gradle
index d3307461..106818b0 100644
--- a/build.gradle
+++ b/build.gradle
@@ -147,7 +147,7 @@ task check {
':coderules-test',
':samples/mpscore:mpscore-test',
':samples/lambdacalc:lambdacalc-test',
- ':samples/fitch:fitch-generate'
+ ':samples/fitch:fitch-test'
]
}
}
diff --git a/samples/fitch/build.gradle b/samples/fitch/build.gradle
index 47d06214..e4417a39 100644
--- a/samples/fitch/build.gradle
+++ b/samples/fitch/build.gradle
@@ -2,6 +2,18 @@ configurations {
junitAnt
}
+dependencies {
+ // initialize JUnit optional ant task
+ junitAnt 'junit:junit:4.8.2'
+ junitAnt('org.apache.ant:ant-junit:1.9.2') {
+ transitive = false
+ }
+}
+
+ant.taskdef(name: 'junit',
+ classname: 'org.apache.tools.ant.taskdefs.optional.junit.JUnitTask',
+ classpath: configurations.junitAnt.asPath)
+
ant.importBuild('build.xml') {antTarget ->
'fitch-'+antTarget
}
diff --git a/samples/fitch/build.xml b/samples/fitch/build.xml
index 64c5f9fc..7b075cb3 100644
--- a/samples/fitch/build.xml
+++ b/samples/fitch/build.xml
@@ -29,7 +29,402 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
mps.build.number=${mps.build.number}${line.separator}mps.date=${mps.date}${line.separator}mps.build.vcs.number=${mps.build.vcs.number}${line.separator}mps.teamcity.buildConfName=${mps.teamcity.buildConfName}${line.separator}mps.idea.platform.build.number=${mps.idea.platform.build.number}${line.separator}mps.mps.build.counter=${mps.mps.build.counter}${line.separator}mpsBootstrapCore.version=${mpsBootstrapCore.version}${line.separator}coderules.ci.build.num=${coderules.ci.build.num}
@@ -48,6 +443,7 @@
+
@@ -86,6 +482,7 @@
+
@@ -133,10 +530,17 @@
+
+
+
+
+
+
+
@@ -166,10 +570,12 @@
-
+
+
+
@@ -202,15 +608,26 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -300,17 +717,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -396,17 +827,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -493,13 +938,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -552,18 +1014,232 @@
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -574,5 +1250,6 @@
+
\ No newline at end of file
diff --git a/samples/fitch/languages/samples.fitch.firstOrderLogic/samples.fitch.firstOrderLogic.mpl b/samples/fitch/languages/samples.fitch.firstOrderLogic/samples.fitch.firstOrderLogic.mpl
index 39d74b38..d7235d11 100644
--- a/samples/fitch/languages/samples.fitch.firstOrderLogic/samples.fitch.firstOrderLogic.mpl
+++ b/samples/fitch/languages/samples.fitch.firstOrderLogic/samples.fitch.firstOrderLogic.mpl
@@ -50,7 +50,9 @@
ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)
- ddb01c98-e78e-4c79-b11a-aeba193668d4(samples.fitch.firstOrderLogic)
+ 4b5b4f8d-d30a-4ef8-9bf4-dfd26af9d462(jetbrains.mps.lang.typechecking)
+ 8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)
+ 6998f568-f0e9-473b-b4a8-9efb6499fc8d(jetbrains.mps.typechecking)
@@ -96,15 +98,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- 06b7c5c7-e359-4f4b-a581-5d0c9323af39(samples.fitch)
748b3ba1-2791-4ee8-b985-a5598baa7112(samples.fitch.herbrandLogic)
diff --git a/samples/fitch/languages/samples.fitch.herbrandLogic/samples.fitch.herbrandLogic.mpl b/samples/fitch/languages/samples.fitch.herbrandLogic/samples.fitch.herbrandLogic.mpl
index 33683f86..9c4e1a1b 100644
--- a/samples/fitch/languages/samples.fitch.herbrandLogic/samples.fitch.herbrandLogic.mpl
+++ b/samples/fitch/languages/samples.fitch.herbrandLogic/samples.fitch.herbrandLogic.mpl
@@ -48,10 +48,11 @@
- 748b3ba1-2791-4ee8-b985-a5598baa7112(samples.fitch.herbrandLogic)
daafa647-f1f7-4b0b-b096-69cd7c8408c0(jetbrains.mps.baseLanguage.regexp)
- 06b7c5c7-e359-4f4b-a581-5d0c9323af39(samples.fitch)
ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)
+ 4b5b4f8d-d30a-4ef8-9bf4-dfd26af9d462(jetbrains.mps.lang.typechecking)
+ 8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)
+ 6998f568-f0e9-473b-b4a8-9efb6499fc8d(jetbrains.mps.typechecking)
@@ -99,12 +100,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/fitch/languages/samples.fitch.propositionalLogic/samples.fitch.propositionalLogic.mpl b/samples/fitch/languages/samples.fitch.propositionalLogic/samples.fitch.propositionalLogic.mpl
index 0b13ad73..6341d77f 100644
--- a/samples/fitch/languages/samples.fitch.propositionalLogic/samples.fitch.propositionalLogic.mpl
+++ b/samples/fitch/languages/samples.fitch.propositionalLogic/samples.fitch.propositionalLogic.mpl
@@ -48,6 +48,9 @@
daafa647-f1f7-4b0b-b096-69cd7c8408c0(jetbrains.mps.baseLanguage.regexp)
+ 4b5b4f8d-d30a-4ef8-9bf4-dfd26af9d462(jetbrains.mps.lang.typechecking)
+ 8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)
+ 6998f568-f0e9-473b-b4a8-9efb6499fc8d(jetbrains.mps.typechecking)
@@ -95,12 +98,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/fitch/languages/samples.fitch/samples.fitch.mpl b/samples/fitch/languages/samples.fitch/samples.fitch.mpl
index 56856c3c..06463014 100644
--- a/samples/fitch/languages/samples.fitch/samples.fitch.mpl
+++ b/samples/fitch/languages/samples.fitch/samples.fitch.mpl
@@ -47,9 +47,10 @@
6998f568-f0e9-473b-b4a8-9efb6499fc8d(jetbrains.mps.typechecking)
- 06b7c5c7-e359-4f4b-a581-5d0c9323af39(samples.fitch)
6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)
2d3c70e9-aab2-4870-8d8d-6036800e4103(jetbrains.mps.kernel)
+ 8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)
+ 4b5b4f8d-d30a-4ef8-9bf4-dfd26af9d462(jetbrains.mps.lang.typechecking)
@@ -101,13 +102,24 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/fitch/solutions/samples.fitch.build/models/samples.fitch.build.mps b/samples/fitch/solutions/samples.fitch.build/models/samples.fitch.build.mps
index a2c1dafb..d86672dd 100644
--- a/samples/fitch/solutions/samples.fitch.build/models/samples.fitch.build.mps
+++ b/samples/fitch/solutions/samples.fitch.build/models/samples.fitch.build.mps
@@ -15,6 +15,15 @@
+
+
+
+
+
+
+
+
+
@@ -24,11 +33,18 @@
+
+
+
+
+
+
+
@@ -41,10 +57,18 @@
+
+
+
+
+
+
+
+
@@ -55,20 +79,23 @@
+
+
+
-
-
-
+
+
+
@@ -91,7 +118,6 @@
-
@@ -105,31 +131,31 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -137,7 +163,6 @@
-
@@ -152,11 +177,9 @@
-
-
@@ -165,12 +188,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
@@ -185,43 +222,42 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
@@ -236,16 +272,9 @@
-
-
-
-
-
-
-
@@ -254,10 +283,19 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -265,7 +303,7 @@
-
+
@@ -277,12 +315,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -329,6 +416,12 @@
+
+
+
+
+
+
diff --git a/samples/fitch/solutions/samples.fitch.demo/models/firstOrderLogic@tests.mps b/samples/fitch/solutions/samples.fitch.demo/models/firstOrderLogic@tests.mps
new file mode 100644
index 00000000..3fb56577
--- /dev/null
+++ b/samples/fitch/solutions/samples.fitch.demo/models/firstOrderLogic@tests.mps
@@ -0,0 +1,305 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/fitch/solutions/samples.fitch.demo/models/herbrandLogic@tests.mps b/samples/fitch/solutions/samples.fitch.demo/models/herbrandLogic@tests.mps
new file mode 100644
index 00000000..49d1f67c
--- /dev/null
+++ b/samples/fitch/solutions/samples.fitch.demo/models/herbrandLogic@tests.mps
@@ -0,0 +1,230 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/fitch/solutions/samples.fitch.demo/models/propositionalLogic.mps b/samples/fitch/solutions/samples.fitch.demo/models/propositionalLogic.mps
index 93d3851e..fbad1848 100644
--- a/samples/fitch/solutions/samples.fitch.demo/models/propositionalLogic.mps
+++ b/samples/fitch/solutions/samples.fitch.demo/models/propositionalLogic.mps
@@ -1657,7 +1657,7 @@
-
+
diff --git a/samples/fitch/solutions/samples.fitch.demo/models/propositionalLogic@tests.mps b/samples/fitch/solutions/samples.fitch.demo/models/propositionalLogic@tests.mps
new file mode 100644
index 00000000..efecf958
--- /dev/null
+++ b/samples/fitch/solutions/samples.fitch.demo/models/propositionalLogic@tests.mps
@@ -0,0 +1,505 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/fitch/solutions/samples.fitch.demo/samples.fitch.demo.msd b/samples/fitch/solutions/samples.fitch.demo/samples.fitch.demo.msd
index 09dfad50..87964858 100644
--- a/samples/fitch/solutions/samples.fitch.demo/samples.fitch.demo.msd
+++ b/samples/fitch/solutions/samples.fitch.demo/samples.fitch.demo.msd
@@ -6,15 +6,49 @@
+
+ 6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)
+ 6998f568-f0e9-473b-b4a8-9efb6499fc8d(jetbrains.mps.typechecking)
+ ec79e64d-4cbb-4f6c-b7b7-108dd125aba6(samples.fitch.propositionalLogic)
+ 748b3ba1-2791-4ee8-b985-a5598baa7112(samples.fitch.herbrandLogic)
+ ddb01c98-e78e-4c79-b11a-aeba193668d4(samples.fitch.firstOrderLogic)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+