Convert to reporting expressions, drop obsolete constraints.

This commit is contained in:
Fedor Isakov 2018-04-06 11:37:30 +02:00
parent 9f1632b018
commit dc662b97b9
3 changed files with 155 additions and 289 deletions

View File

@ -11,10 +11,13 @@
</imports>
<registry>
<language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
<concept id="1197027756228" name="jetbrains.mps.baseLanguage.structure.DotExpression" flags="nn" index="2OqwBi">
<child id="1197027771414" name="operand" index="2Oq$k0" />
<child id="1197027833540" name="operation" index="2OqNvi" />
</concept>
<concept id="1070475926800" name="jetbrains.mps.baseLanguage.structure.StringLiteral" flags="nn" index="Xl_RD">
<property id="1070475926801" name="value" index="Xl_RC" />
</concept>
<concept id="1225271177708" name="jetbrains.mps.baseLanguage.structure.StringType" flags="in" index="17QB3L" />
<concept id="6329021646629104957" name="jetbrains.mps.baseLanguage.structure.TextCommentPart" flags="nn" index="3SKdUq">
<property id="6329021646629104958" name="text" index="3SKdUp" />
</concept>
@ -32,9 +35,6 @@
<child id="6399471711045617306" name="dataType" index="3vLBG7" />
<child id="3063948360254832884" name="declaration" index="3XD1gS" />
</concept>
<concept id="8829335963593820278" name="jetbrains.mps.logic.structure.LogicalVariable" flags="ng" index="a7P8L">
<reference id="8829335963593822893" name="declaration" index="a7OzE" />
</concept>
<concept id="8829335963591572611" name="jetbrains.mps.logic.structure.LogicalVariableDeclaration" flags="ng" index="aZer4" />
</language>
<language id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel">
@ -48,6 +48,9 @@
<property id="1169194664001" name="name" index="TrG5h" />
</concept>
</language>
<language id="cba985fe-1e96-4f16-9f8d-b07434405d4f" name="jetbrains.mps.lang.smodel.types">
<concept id="7345257067587627589" name="jetbrains.mps.lang.smodel.types.structure.SNodeTypeOperation" flags="ng" index="2W$R8B" />
</language>
<language id="c4803b19-6d89-4a3b-bf82-390769514add" name="jetbrains.mps.lang.typesystem2">
<concept id="8456919074560454386" name="jetbrains.mps.lang.typesystem2.structure.ParameterContainer" flags="ng" index="0eUR_">
<child id="8456919074560454898" name="parameter" index="0eVf_" />
@ -56,6 +59,13 @@
<concept id="6086839168138086051" name="jetbrains.mps.lang.typesystem2.structure.TermTable" flags="ng" index="1HGPq">
<child id="6086839168138086052" name="termDeclaration" index="1HGPt" />
</concept>
<concept id="6958395084019752" name="jetbrains.mps.lang.typesystem2.structure.SNodeSetTypeOperation" flags="ng" index="2ra22R">
<child id="6958395084020241" name="typeExpr" index="2ra2ae" />
</concept>
<concept id="6958395097955138" name="jetbrains.mps.lang.typesystem2.structure.SNodeReportOperation" flags="ng" index="2s7oft">
<property id="6958395097963305" name="kind" index="2s7ueQ" />
<child id="6958395097963208" name="text" index="2s7u9n" />
</concept>
<concept id="6691972578451976398" name="jetbrains.mps.lang.typesystem2.structure.RuleInputSpecification" flags="ng" index="2t___k">
<reference id="6691972578451990912" name="applicableConcept" index="2t_S0q" />
<child id="6691972578451986151" name="input" index="2t_VXX" />
@ -69,21 +79,19 @@
<concept id="5524459797190399502" name="jetbrains.mps.lang.typesystem2.structure.TermDeclaration" flags="ng" index="BRKj$">
<child id="5524459797190401236" name="template" index="BRKSY" />
</concept>
<concept id="6856711987714624232" name="jetbrains.mps.lang.typesystem2.structure.ExpressionItem" flags="ng" index="HKQnh">
<child id="6856711987714624233" name="code" index="HKQng" />
</concept>
<concept id="5372587443975633709" name="jetbrains.mps.lang.typesystem2.structure.AbstractRule" flags="ng" index="3wqRzX">
<child id="8456919074560456757" name="parameter" index="0eVGy" />
<child id="7509376976631847095" name="input" index="20_v8_" />
<child id="1427485783570316357" name="head" index="3orSU4" />
<child id="1427485783571962463" name="body" index="3otmyu" />
</concept>
<concept id="5372587443968979218" name="jetbrains.mps.lang.typesystem2.structure.ExpressionConstraint" flags="ng" index="3wWvb2">
<child id="5372587443968983820" name="expression" index="3wWo3s" />
</concept>
<concept id="1878265754076919072" name="jetbrains.mps.lang.typesystem2.structure.Comment" flags="ng" index="1zAsnw">
<child id="5974055334837370567" name="part" index="27qylF" />
</concept>
<concept id="1878265754077060950" name="jetbrains.mps.lang.typesystem2.structure.ConstraintParameterDeclaration" flags="ng" index="1zAUYm">
<child id="6036655413802463897" name="dataType" index="3gTf24" />
</concept>
<concept id="1878265754077060950" name="jetbrains.mps.lang.typesystem2.structure.ConstraintParameterDeclaration" flags="ng" index="1zAUYm" />
<concept id="7368070394769089081" name="jetbrains.mps.lang.typesystem2.structure.RuleInputDeclaration" flags="ng" index="3A20r5" />
<concept id="7368070394769139970" name="jetbrains.mps.lang.typesystem2.structure.RuleInputReference" flags="ng" index="3A2sRY">
<reference id="7368070394769213644" name="declaration" index="3A2yKK" />
@ -105,10 +113,6 @@
<concept id="8581119423153238082" name="jetbrains.mps.lang.typesystem2.structure.NodeAnchor" flags="ng" index="3BlFb$">
<child id="8581119423153238083" name="node" index="3BlFb_" />
</concept>
<concept id="1877115349178398764" name="jetbrains.mps.lang.typesystem2.structure.EqualsConstraint" flags="ng" index="3GeI9q">
<child id="1877115349178398815" name="right" index="3GeI8D" />
<child id="1877115349178398813" name="left" index="3GeI8F" />
</concept>
<concept id="2316688792938826204" name="jetbrains.mps.lang.typesystem2.structure.ConstraintLogicalClause" flags="ng" index="3I6s7M">
<child id="2316688792938826214" name="constraint" index="3I6s78" />
</concept>
@ -151,25 +155,6 @@
</node>
</node>
</node>
<node concept="3AqmO8" id="2aBGSFge6oW" role="8PkJo">
<property role="TrG5h" value="typeNode" />
<node concept="1zAUYm" id="2aBGSFge6p4" role="1zAUyy">
<property role="TrG5h" value="typeNode" />
<node concept="3Tqbb2" id="2aBGSFge6p9" role="3gTf24" />
</node>
<node concept="1zAUYm" id="2aBGSFge6pc" role="1zAUyy">
<property role="TrG5h" value="ref" />
</node>
</node>
<node concept="3AqmO8" id="2YqrT$P6Qob" role="8PkJo">
<property role="TrG5h" value="error" />
<node concept="1zAUYm" id="2YqrT$P6Qo_" role="1zAUyy">
<property role="TrG5h" value="msg" />
</node>
<node concept="1zAUYm" id="2YqrT$P6QoB" role="1zAUyy">
<property role="TrG5h" value="ref" />
</node>
</node>
<node concept="AVZhu" id="2aBGSFge6lQ" role="3ArX_J">
<property role="TrG5h" value="check_All" />
<node concept="3Aq93q" id="2aBGSFge6lS" role="3orSU4">
@ -319,26 +304,16 @@
</node>
<node concept="3Aq9E8" id="2YqrT$P6Q3i" role="3otmyu">
<node concept="3I6sU6" id="2YqrT$P6Q3j" role="3Ip0Jz">
<node concept="3I6s7M" id="2YqrT$P6QuV" role="3I6sU7">
<node concept="3GeI9q" id="2YqrT$P6QuP" role="3I6s78">
<node concept="a7P8L" id="2YqrT$P6Qve" role="3GeI8F">
<ref role="a7OzE" node="2YqrT$P6Qsy" resolve="Msg" />
</node>
<node concept="HKQnh" id="2YqrT$P6Qvm" role="3GeI8D">
<node concept="Xl_RD" id="2YqrT$P6Qvr" role="HKQng">
<property role="Xl_RC" value="invalid" />
<node concept="3I6s7M" id="3dsgZcixPye" role="3I6sU7">
<node concept="3wWvb2" id="3dsgZcixPyc" role="3I6s78">
<node concept="2OqwBi" id="3dsgZcixPUk" role="3wWo3s">
<node concept="2s7oft" id="3dsgZcixQbH" role="2OqNvi">
<property role="2s7ueQ" value="error" />
<node concept="Xl_RD" id="3dsgZcixQc7" role="2s7u9n">
<property role="Xl_RC" value="invalid" />
</node>
</node>
</node>
</node>
</node>
<node concept="3I6s7M" id="2YqrT$P6Qon" role="3I6sU7">
<node concept="3Aqt3T" id="2YqrT$P6Qol" role="3I6s78">
<ref role="3AqCNq" node="2YqrT$P6Qob" resolve="error" />
<node concept="a7P8L" id="2YqrT$P6QvY" role="3AunhB">
<ref role="a7OzE" node="2YqrT$P6Qsy" resolve="Msg" />
</node>
<node concept="3BlFb$" id="2YqrT$P6Qxl" role="3AunhB">
<node concept="3A2sRY" id="2YqrT$P6Qxv" role="3BlFb_">
<node concept="3A2sRY" id="3dsgZcixQu7" role="2Oq$k0">
<ref role="3A2yKK" node="2YqrT$P6Q3h" resolve="rsn" />
</node>
</node>
@ -346,48 +321,26 @@
</node>
</node>
</node>
<node concept="0eUR_" id="3dsgZciwaju" role="0eVGy">
<node concept="3NuqgR" id="2YqrT$P6Q3v" role="0eVf_">
<node concept="aZer4" id="2YqrT$P6Q3w" role="3XD1gS">
<property role="TrG5h" value="Node" />
</node>
<node concept="3Tqbb2" id="2YqrT$P6Q3x" role="3vLBG7" />
</node>
<node concept="3NuqgR" id="2YqrT$P6Qsx" role="0eVf_">
<node concept="aZer4" id="2YqrT$P6Qsy" role="3XD1gS">
<property role="TrG5h" value="Msg" />
</node>
<node concept="17QB3L" id="2YqrT$P6Quu" role="3vLBG7" />
</node>
</node>
</node>
<node concept="AVZhu" id="2YqrT$P7Ssz" role="3ArX_J">
<property role="TrG5h" value="typeOf_Goal" />
<node concept="3Aq9E8" id="2YqrT$P7Suu" role="3otmyu">
<node concept="3I6sU6" id="2YqrT$P7Suv" role="3Ip0Jz">
<node concept="3I6s7M" id="2YqrT$P7Suw" role="3I6sU7">
<node concept="3GeI9q" id="2YqrT$P7Sux" role="3I6s78">
<node concept="a7P8L" id="2YqrT$P7Suy" role="3GeI8F">
<ref role="a7OzE" node="2YqrT$P7SuG" resolve="Node" />
</node>
<node concept="HKQnh" id="2YqrT$P7Suz" role="3GeI8D">
<node concept="2pJPEk" id="2YqrT$P7Su$" role="HKQng">
<node concept="2pJPED" id="2YqrT$P7Su_" role="2pJPEn">
<ref role="2pJxaS" to="jfgh:2aBGSFge6pw" resolve="Ok" />
<node concept="3I6s7M" id="3dsgZcixXN$" role="3I6sU7">
<node concept="3wWvb2" id="3dsgZcixXNy" role="3I6s78">
<node concept="2OqwBi" id="3dsgZcixYR8" role="3wWo3s">
<node concept="2OqwBi" id="3dsgZcixYhL" role="2Oq$k0">
<node concept="3A2sRY" id="3dsgZcixYaI" role="2Oq$k0">
<ref role="3A2yKK" node="2YqrT$P7StR" resolve="goal" />
</node>
<node concept="2W$R8B" id="3dsgZcixYAw" role="2OqNvi" />
</node>
</node>
</node>
</node>
<node concept="3I6s7M" id="2YqrT$P7SuA" role="3I6sU7">
<node concept="3Aqt3T" id="2YqrT$P7SuB" role="3I6s78">
<ref role="3AqCNq" node="2aBGSFge6oW" resolve="typeNode" />
<node concept="a7P8L" id="2YqrT$P7SuC" role="3AunhB">
<ref role="a7OzE" node="2YqrT$P7SuG" resolve="Node" />
</node>
<node concept="3BlFb$" id="2YqrT$P7SuD" role="3AunhB">
<node concept="3A2sRY" id="2YqrT$P7Sx0" role="3BlFb_">
<ref role="3A2yKK" node="2YqrT$P7StR" resolve="goal" />
<node concept="2ra22R" id="3dsgZcixZ06" role="2OqNvi">
<node concept="2pJPEk" id="3dsgZcixZmW" role="2ra2ae">
<node concept="2pJPED" id="3dsgZcixZmX" role="2pJPEn">
<ref role="2pJxaS" to="jfgh:2aBGSFge6pw" resolve="Ok" />
</node>
</node>
</node>
</node>
</node>
@ -462,47 +415,23 @@
</node>
<node concept="3Aq9E8" id="2YqrT$P7SAG" role="3otmyu">
<node concept="3I6sU6" id="2YqrT$P7SAH" role="3Ip0Jz">
<node concept="3I6s7M" id="2YqrT$P7SAI" role="3I6sU7">
<node concept="3GeI9q" id="2YqrT$P7SAJ" role="3I6s78">
<node concept="a7P8L" id="2YqrT$P7SAK" role="3GeI8F">
<ref role="a7OzE" node="2YqrT$P7SAW" resolve="Msg" />
</node>
<node concept="HKQnh" id="2YqrT$P7SAL" role="3GeI8D">
<node concept="Xl_RD" id="2YqrT$P7SAM" role="HKQng">
<property role="Xl_RC" value="invalid" />
</node>
</node>
</node>
</node>
<node concept="3I6s7M" id="2YqrT$P7SAN" role="3I6sU7">
<node concept="3Aqt3T" id="2YqrT$P7SAO" role="3I6s78">
<ref role="3AqCNq" node="2YqrT$P6Qob" resolve="error" />
<node concept="a7P8L" id="2YqrT$P7SAP" role="3AunhB">
<ref role="a7OzE" node="2YqrT$P7SAW" resolve="Msg" />
</node>
<node concept="3BlFb$" id="2YqrT$P7SAQ" role="3AunhB">
<node concept="3A2sRY" id="2YqrT$P7SAR" role="3BlFb_">
<node concept="3I6s7M" id="3dsgZcixQcO" role="3I6sU7">
<node concept="3wWvb2" id="3dsgZcixQcP" role="3I6s78">
<node concept="2OqwBi" id="3dsgZcixQcQ" role="3wWo3s">
<node concept="3A2sRY" id="3dsgZcixQvE" role="2Oq$k0">
<ref role="3A2yKK" node="2YqrT$P7SAF" resolve="goal" />
</node>
<node concept="2s7oft" id="3dsgZcixQcU" role="2OqNvi">
<property role="2s7ueQ" value="error" />
<node concept="Xl_RD" id="3dsgZcixQcV" role="2s7u9n">
<property role="Xl_RC" value="invalid" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="0eUR_" id="3dsgZciwajs" role="0eVGy">
<node concept="3NuqgR" id="2YqrT$P7SAS" role="0eVf_">
<node concept="aZer4" id="2YqrT$P7SAT" role="3XD1gS">
<property role="TrG5h" value="Node" />
</node>
<node concept="3Tqbb2" id="2YqrT$P7SAU" role="3vLBG7" />
</node>
<node concept="3NuqgR" id="2YqrT$P7SAV" role="0eVf_">
<node concept="aZer4" id="2YqrT$P7SAW" role="3XD1gS">
<property role="TrG5h" value="Msg" />
</node>
<node concept="17QB3L" id="2YqrT$P7SAX" role="3vLBG7" />
</node>
</node>
</node>
</node>
</model>

View File

@ -99,7 +99,6 @@
</language>
<language id="35320f26-77cb-4c55-be9f-a97a27770af1" name="jetbrains.mps.logic">
<concept id="8169506320648805904" name="jetbrains.mps.logic.structure.LogicalVariableDeclarationContainer" flags="ng" index="29MRiA">
<child id="6399471711045617306" name="dataType" index="3vLBG7" />
<child id="3063948360254832884" name="declaration" index="3XD1gS" />
</concept>
<concept id="8829335963593820278" name="jetbrains.mps.logic.structure.LogicalVariable" flags="ng" index="a7P8L">
@ -207,6 +206,10 @@
</concept>
<concept id="1797788903610635035" name="jetbrains.mps.lang.typesystem2.structure.BoundParameterBlock" flags="ng" index="2caHhw" />
<concept id="4992889260816483106" name="jetbrains.mps.lang.typesystem2.structure.Condition" flags="ng" index="cBwPQ" />
<concept id="6958395097955138" name="jetbrains.mps.lang.typesystem2.structure.SNodeReportOperation" flags="ng" index="2s7oft">
<property id="6958395097963305" name="kind" index="2s7ueQ" />
<child id="6958395097963208" name="text" index="2s7u9n" />
</concept>
<concept id="6691972578451976398" name="jetbrains.mps.lang.typesystem2.structure.RuleInputSpecification" flags="ng" index="2t___k">
<reference id="6691972578451990912" name="applicableConcept" index="2t_S0q" />
<child id="6691972578451986151" name="input" index="2t_VXX" />
@ -220,9 +223,6 @@
<concept id="5524459797190399502" name="jetbrains.mps.lang.typesystem2.structure.TermDeclaration" flags="ng" index="BRKj$">
<child id="5524459797190401236" name="template" index="BRKSY" />
</concept>
<concept id="6856711987714624232" name="jetbrains.mps.lang.typesystem2.structure.ExpressionItem" flags="ng" index="HKQnh">
<child id="6856711987714624233" name="code" index="HKQng" />
</concept>
<concept id="6678105047444342713" name="jetbrains.mps.lang.typesystem2.structure.RuleParameterDeclaration" flags="ng" index="391aah">
<child id="6678105047444743396" name="type" index="390C7c" />
</concept>
@ -831,26 +831,16 @@
</node>
<node concept="3Aq9E8" id="2CF5XF5v8Pa" role="3otmyu">
<node concept="3I6sU6" id="2CF5XF5v8Pb" role="3Ip0Jz">
<node concept="3I6s7M" id="2CF5XF5v8Pw" role="3I6sU7">
<node concept="3GeI9q" id="2CF5XF5v8Px" role="3I6s78">
<node concept="a7P8L" id="2CF5XF5v8Py" role="3GeI8F">
<ref role="a7OzE" node="2CF5XF5v8Q9" resolve="Msg" />
</node>
<node concept="HKQnh" id="2CF5XF5v8Pz" role="3GeI8D">
<node concept="Xl_RD" id="2CF5XF5v8P$" role="HKQng">
<property role="Xl_RC" value="replacement is not OK" />
<node concept="3I6s7M" id="3dsgZcixPye" role="3I6sU7">
<node concept="3wWvb2" id="3dsgZcixPyc" role="3I6s78">
<node concept="2OqwBi" id="3dsgZcixPUk" role="3wWo3s">
<node concept="2s7oft" id="3dsgZcixQbH" role="2OqNvi">
<property role="2s7ueQ" value="error" />
<node concept="Xl_RD" id="3dsgZcixQc7" role="2s7u9n">
<property role="Xl_RC" value="replacement is not OK" />
</node>
</node>
</node>
</node>
</node>
<node concept="3I6s7M" id="2CF5XF5v8P_" role="3I6sU7">
<node concept="3Aqt3T" id="2CF5XF5v8PA" role="3I6s78">
<ref role="3AqCNq" to="f3ld:2YqrT$P6Qob" resolve="error" />
<node concept="a7P8L" id="2CF5XF5v8PB" role="3AunhB">
<ref role="a7OzE" node="2CF5XF5v8Q9" resolve="Msg" />
</node>
<node concept="3BlFb$" id="2CF5XF5v8PC" role="3AunhB">
<node concept="3A2sRY" id="3w0n0hznpmC" role="3BlFb_">
<node concept="3A2sRY" id="3dsgZcixQJL" role="2Oq$k0">
<ref role="3A2yKK" node="3w0n0hzm3em" resolve="eqe" />
</node>
</node>
@ -1248,12 +1238,6 @@
<property role="TrG5h" value="Con" />
</node>
</node>
<node concept="3NuqgR" id="2CF5XF5v8Q8" role="0eVf_">
<node concept="aZer4" id="2CF5XF5v8Q9" role="3XD1gS">
<property role="TrG5h" value="Msg" />
</node>
<node concept="17QB3L" id="2CF5XF5vbtE" role="3vLBG7" />
</node>
</node>
</node>
<node concept="AVZhu" id="3w0n0hznwzA" role="3ArX_J">
@ -1493,26 +1477,16 @@
</node>
<node concept="3Aq9E8" id="3w0n0hznw_c" role="3otmyu">
<node concept="3I6sU6" id="3w0n0hznw_d" role="3Ip0Jz">
<node concept="3I6s7M" id="3w0n0hznw_e" role="3I6sU7">
<node concept="3GeI9q" id="3w0n0hznw_f" role="3I6s78">
<node concept="a7P8L" id="3w0n0hznw_g" role="3GeI8F">
<ref role="a7OzE" node="3w0n0hznw_p" resolve="Msg" />
</node>
<node concept="HKQnh" id="3w0n0hznw_h" role="3GeI8D">
<node concept="Xl_RD" id="3w0n0hznw_i" role="HKQng">
<property role="Xl_RC" value="replacement is not OK" />
<node concept="3I6s7M" id="3dsgZcixT1Z" role="3I6sU7">
<node concept="3wWvb2" id="3dsgZcixT20" role="3I6s78">
<node concept="2OqwBi" id="3dsgZcixT21" role="3wWo3s">
<node concept="2s7oft" id="3dsgZcixT22" role="2OqNvi">
<property role="2s7ueQ" value="error" />
<node concept="Xl_RD" id="3dsgZcixT23" role="2s7u9n">
<property role="Xl_RC" value="replacement is not OK" />
</node>
</node>
</node>
</node>
</node>
<node concept="3I6s7M" id="3w0n0hznw_j" role="3I6sU7">
<node concept="3Aqt3T" id="3w0n0hznw_k" role="3I6s78">
<ref role="3AqCNq" to="f3ld:2YqrT$P6Qob" resolve="error" />
<node concept="a7P8L" id="3w0n0hznw_l" role="3AunhB">
<ref role="a7OzE" node="3w0n0hznw_p" resolve="Msg" />
</node>
<node concept="3BlFb$" id="3w0n0hznw_m" role="3AunhB">
<node concept="3A2sRY" id="3w0n0hznw_n" role="3BlFb_">
<node concept="3A2sRY" id="3dsgZcixT24" role="2Oq$k0">
<ref role="3A2yKK" node="3w0n0hznw$J" resolve="eqe" />
</node>
</node>
@ -1910,12 +1884,6 @@
<property role="TrG5h" value="Con" />
</node>
</node>
<node concept="3NuqgR" id="3w0n0hznw_o" role="0eVf_">
<node concept="aZer4" id="3w0n0hznw_p" role="3XD1gS">
<property role="TrG5h" value="Msg" />
</node>
<node concept="17QB3L" id="3w0n0hznw_q" role="3vLBG7" />
</node>
</node>
</node>
</node>

View File

@ -295,6 +295,10 @@
</concept>
<concept id="1797788903610635035" name="jetbrains.mps.lang.typesystem2.structure.BoundParameterBlock" flags="ng" index="2caHhw" />
<concept id="4992889260816483106" name="jetbrains.mps.lang.typesystem2.structure.Condition" flags="ng" index="cBwPQ" />
<concept id="6958395097955138" name="jetbrains.mps.lang.typesystem2.structure.SNodeReportOperation" flags="ng" index="2s7oft">
<property id="6958395097963305" name="kind" index="2s7ueQ" />
<child id="6958395097963208" name="text" index="2s7u9n" />
</concept>
<concept id="6691972578451976398" name="jetbrains.mps.lang.typesystem2.structure.RuleInputSpecification" flags="ng" index="2t___k">
<reference id="6691972578451990912" name="applicableConcept" index="2t_S0q" />
<child id="6691972578451986151" name="input" index="2t_VXX" />
@ -308,9 +312,6 @@
<concept id="5524459797190399502" name="jetbrains.mps.lang.typesystem2.structure.TermDeclaration" flags="ng" index="BRKj$">
<child id="5524459797190401236" name="template" index="BRKSY" />
</concept>
<concept id="6856711987714624232" name="jetbrains.mps.lang.typesystem2.structure.ExpressionItem" flags="ng" index="HKQnh">
<child id="6856711987714624233" name="code" index="HKQng" />
</concept>
<concept id="6678105047444342713" name="jetbrains.mps.lang.typesystem2.structure.RuleParameterDeclaration" flags="ng" index="391aah">
<child id="6678105047444743396" name="type" index="390C7c" />
</concept>
@ -1339,26 +1340,16 @@
</node>
<node concept="3Aq9E8" id="2CF5XF5tgIy" role="3otmyu">
<node concept="3I6sU6" id="2CF5XF5tgIz" role="3Ip0Jz">
<node concept="3I6s7M" id="2YqrT$P6QuV" role="3I6sU7">
<node concept="3GeI9q" id="2YqrT$P6QuP" role="3I6s78">
<node concept="a7P8L" id="2YqrT$P6Qve" role="3GeI8F">
<ref role="a7OzE" node="2CF5XF5tE6i" resolve="Msg" />
</node>
<node concept="HKQnh" id="2YqrT$P6Qvm" role="3GeI8D">
<node concept="Xl_RD" id="2YqrT$P6Qvr" role="HKQng">
<property role="Xl_RC" value="variable is not OK" />
<node concept="3I6s7M" id="3dsgZcixU3v" role="3I6sU7">
<node concept="3wWvb2" id="3dsgZcixU3w" role="3I6s78">
<node concept="2OqwBi" id="3dsgZcixU3x" role="3wWo3s">
<node concept="2s7oft" id="3dsgZcixU3y" role="2OqNvi">
<property role="2s7ueQ" value="error" />
<node concept="Xl_RD" id="3dsgZcixU3z" role="2s7u9n">
<property role="Xl_RC" value="variable is not OK" />
</node>
</node>
</node>
</node>
</node>
<node concept="3I6s7M" id="2CF5XF5tgIT" role="3I6sU7">
<node concept="3Aqt3T" id="2CF5XF5tgIS" role="3I6s78">
<ref role="3AqCNq" to="f3ld:2YqrT$P6Qob" resolve="error" />
<node concept="a7P8L" id="2CF5XF5tFy6" role="3AunhB">
<ref role="a7OzE" node="2CF5XF5tE6i" resolve="Msg" />
</node>
<node concept="3BlFb$" id="2CF5XF5tgO5" role="3AunhB">
<node concept="3A2sRY" id="2CF5XF5tgOk" role="3BlFb_">
<node concept="3A2sRY" id="3dsgZcixU4f" role="2Oq$k0">
<ref role="3A2yKK" node="Vo$tzLEGtN" resolve="fi" />
</node>
</node>
@ -1513,12 +1504,6 @@
<property role="TrG5h" value="Var" />
</node>
</node>
<node concept="3NuqgR" id="2CF5XF5tE6h" role="0eVf_">
<node concept="aZer4" id="2CF5XF5tE6i" role="3XD1gS">
<property role="TrG5h" value="Msg" />
</node>
<node concept="17QB3L" id="2CF5XF5vcBK" role="3vLBG7" />
</node>
</node>
</node>
<node concept="AVZhu" id="2oO2uzBWNfg" role="3ArX_J">
@ -1661,26 +1646,16 @@
</node>
<node concept="3Aq9E8" id="2CF5XF5v8Pa" role="3otmyu">
<node concept="3I6sU6" id="2CF5XF5v8Pb" role="3Ip0Jz">
<node concept="3I6s7M" id="2CF5XF5v8Pw" role="3I6sU7">
<node concept="3GeI9q" id="2CF5XF5v8Px" role="3I6s78">
<node concept="a7P8L" id="2CF5XF5v8Py" role="3GeI8F">
<ref role="a7OzE" node="2CF5XF5v8Q9" resolve="Msg" />
</node>
<node concept="HKQnh" id="2CF5XF5v8Pz" role="3GeI8D">
<node concept="Xl_RD" id="2CF5XF5v8P$" role="HKQng">
<property role="Xl_RC" value="term is not OK" />
<node concept="3I6s7M" id="3dsgZcixVeS" role="3I6sU7">
<node concept="3wWvb2" id="3dsgZcixVeT" role="3I6s78">
<node concept="2OqwBi" id="3dsgZcixVeU" role="3wWo3s">
<node concept="2s7oft" id="3dsgZcixVeV" role="2OqNvi">
<property role="2s7ueQ" value="error" />
<node concept="Xl_RD" id="3dsgZcixVeW" role="2s7u9n">
<property role="Xl_RC" value="term is not OK" />
</node>
</node>
</node>
</node>
</node>
<node concept="3I6s7M" id="2CF5XF5v8P_" role="3I6sU7">
<node concept="3Aqt3T" id="2CF5XF5v8PA" role="3I6s78">
<ref role="3AqCNq" to="f3ld:2YqrT$P6Qob" resolve="error" />
<node concept="a7P8L" id="2CF5XF5v8PB" role="3AunhB">
<ref role="a7OzE" node="2CF5XF5v8Q9" resolve="Msg" />
</node>
<node concept="3BlFb$" id="2CF5XF5v8PC" role="3AunhB">
<node concept="3A2sRY" id="2CF5XF5vcC3" role="3BlFb_">
<node concept="3A2sRY" id="3dsgZcixVfL" role="2Oq$k0">
<ref role="3A2yKK" node="2oO2uzBWNhx" resolve="fe" />
</node>
</node>
@ -2052,12 +2027,6 @@
<property role="TrG5h" value="Con" />
</node>
</node>
<node concept="3NuqgR" id="2CF5XF5v8Q8" role="0eVf_">
<node concept="aZer4" id="2CF5XF5v8Q9" role="3XD1gS">
<property role="TrG5h" value="Msg" />
</node>
<node concept="17QB3L" id="2CF5XF5vbtE" role="3vLBG7" />
</node>
</node>
</node>
<node concept="AVZhu" id="2CF5XF5qrg8" role="3ArX_J">
@ -2321,22 +2290,27 @@
</node>
</node>
</node>
<node concept="3I6s7M" id="2CF5XF5qAz5" role="3I6sU7">
<node concept="3Aqt3T" id="2CF5XF5qAz3" role="3I6s78">
</node>
</node>
<node concept="3Aq93q" id="3dsgZcixZum" role="3orSU4">
<property role="3ArMco" value="true" />
<node concept="3I6sU6" id="3dsgZcixZun" role="3Ip0Jz">
<node concept="3I6s7M" id="3dsgZcixZvT" role="3I6sU7">
<node concept="3Aqt3T" id="3dsgZcixZvU" role="3I6s78">
<ref role="3AqCNq" to="6r1k:2aBGSFgfwNi" resolve="conclusion" />
<node concept="1uarlV" id="2CF5XF5qAAp" role="3AunhB">
<node concept="a7P8L" id="2CF5XF5qAAj" role="1uarlU">
<node concept="1uarlV" id="3dsgZcixZvV" role="3AunhB">
<node concept="a7P8L" id="3dsgZcixZvW" role="1uarlU">
<ref role="a7OzE" node="2CF5XF5qAzp" resolve="Uni" />
</node>
<node concept="1Q4cc8" id="2CF5XF5qAA_" role="1uarlW">
<node concept="1Q4cc8" id="3dsgZcixZvX" role="1uarlW">
<ref role="1nfQt" node="Vo$tzLEBAW" resolve="Forall" />
<node concept="1RziaG" id="2CF5XF5qAAB" role="1Ryyee">
<node concept="1RziaG" id="3dsgZcixZvY" role="1Ryyee">
<ref role="1RzibV" node="Vo$tzLEBB2" resolve="variable" />
<node concept="3AP2Rn" id="2CF5XF5qAAC" role="1RzmR7">
<node concept="3clFbS" id="2CF5XF5qAAD" role="16YjZG">
<node concept="3clFbF" id="2CF5XF5qABa" role="3cqZAp">
<node concept="1nq8_$" id="2CF5XF5qAB9" role="3clFbG">
<node concept="a7P8L" id="2CF5XF5rykS" role="1nq8_t">
<node concept="3AP2Rn" id="3dsgZcixZvZ" role="1RzmR7">
<node concept="3clFbS" id="3dsgZcixZw0" role="16YjZG">
<node concept="3clFbF" id="3dsgZcixZw1" role="3cqZAp">
<node concept="1nq8_$" id="3dsgZcixZw2" role="3clFbG">
<node concept="a7P8L" id="3dsgZcixZw3" role="1nq8_t">
<ref role="a7OzE" node="2CF5XF5qNbA" resolve="UniVar" />
</node>
</node>
@ -2344,21 +2318,21 @@
</node>
</node>
</node>
<node concept="1RziaG" id="2CF5XF5qAAQ" role="1Ryyee">
<node concept="1RziaG" id="3dsgZcixZw4" role="1Ryyee">
<ref role="1RzibV" node="Vo$tzLEBB8" resolve="sentence" />
<node concept="3AP2Rn" id="2CF5XF5qAAR" role="1RzmR7">
<node concept="3clFbS" id="2CF5XF5qAAS" role="16YjZG">
<node concept="3clFbF" id="2CF5XF5qEKu" role="3cqZAp">
<node concept="1nq8_$" id="2CF5XF5qEKt" role="3clFbG">
<node concept="1Q4cc8" id="2CF5XF5qEKs" role="1nq8_t">
<node concept="3AP2Rn" id="3dsgZcixZw5" role="1RzmR7">
<node concept="3clFbS" id="3dsgZcixZw6" role="16YjZG">
<node concept="3clFbF" id="3dsgZcixZw7" role="3cqZAp">
<node concept="1nq8_$" id="3dsgZcixZw8" role="3clFbG">
<node concept="1Q4cc8" id="3dsgZcixZw9" role="1nq8_t">
<ref role="1nfQt" to="6r1k:5RfK0kxiwkx" resolve="If" />
<node concept="1RziaG" id="2CF5XF5qEKG" role="1Ryyee">
<node concept="1RziaG" id="3dsgZcixZwa" role="1Ryyee">
<ref role="1RzibV" to="6r1k:5RfK0kxiwl4" resolve="antecedent" />
<node concept="3AP2Rn" id="2CF5XF5qEKH" role="1RzmR7">
<node concept="3clFbS" id="2CF5XF5qEKI" role="16YjZG">
<node concept="3clFbF" id="2CF5XF5qEM_" role="3cqZAp">
<node concept="1nq8_$" id="2CF5XF5qEM$" role="3clFbG">
<node concept="a7P8L" id="2CF5XF5qEMz" role="1nq8_t">
<node concept="3AP2Rn" id="3dsgZcixZwb" role="1RzmR7">
<node concept="3clFbS" id="3dsgZcixZwc" role="16YjZG">
<node concept="3clFbF" id="3dsgZcixZwd" role="3cqZAp">
<node concept="1nq8_$" id="3dsgZcixZwe" role="3clFbG">
<node concept="a7P8L" id="3dsgZcixZwf" role="1nq8_t">
<ref role="a7OzE" node="2CF5XF5qAtS" resolve="UniStc" />
</node>
</node>
@ -2366,13 +2340,13 @@
</node>
</node>
</node>
<node concept="1RziaG" id="2CF5XF5qF6y" role="1Ryyee">
<node concept="1RziaG" id="3dsgZcixZwg" role="1Ryyee">
<ref role="1RzibV" to="6r1k:5RfK0kxiwla" resolve="consequence" />
<node concept="3AP2Rn" id="2CF5XF5qF6z" role="1RzmR7">
<node concept="3clFbS" id="2CF5XF5qF6$" role="16YjZG">
<node concept="3clFbF" id="2CF5XF5qFc8" role="3cqZAp">
<node concept="1nq8_$" id="2CF5XF5qFc7" role="3clFbG">
<node concept="a7P8L" id="2CF5XF5qFc6" role="1nq8_t">
<node concept="3AP2Rn" id="3dsgZcixZwh" role="1RzmR7">
<node concept="3clFbS" id="3dsgZcixZwi" role="16YjZG">
<node concept="3clFbF" id="3dsgZcixZwj" role="3cqZAp">
<node concept="1nq8_$" id="3dsgZcixZwk" role="3clFbG">
<node concept="a7P8L" id="3dsgZcixZwl" role="1nq8_t">
<ref role="a7OzE" node="2CF5XF5qF8v" resolve="Con" />
</node>
</node>
@ -2388,36 +2362,41 @@
</node>
</node>
</node>
<node concept="3BlFb$" id="2CF5XF5qILz" role="3AunhB">
<node concept="2OqwBi" id="2CF5XF5qM4t" role="3BlFb_">
<node concept="1y4W85" id="2CF5XF5qLAs" role="2Oq$k0">
<node concept="3cmrfG" id="2CF5XF5qLAK" role="1y58nS">
<node concept="3BlFb$" id="3dsgZcixZwm" role="3AunhB">
<node concept="2OqwBi" id="3dsgZcixZwn" role="3BlFb_">
<node concept="1y4W85" id="3dsgZcixZwo" role="2Oq$k0">
<node concept="3cmrfG" id="3dsgZcixZwp" role="1y58nS">
<property role="3cmrfH" value="1" />
</node>
<node concept="2OqwBi" id="2CF5XF5qIVI" role="1y566C">
<node concept="3A2sRY" id="2CF5XF5qIM7" role="2Oq$k0">
<node concept="2OqwBi" id="3dsgZcixZwq" role="1y566C">
<node concept="3A2sRY" id="3dsgZcixZwr" role="2Oq$k0">
<ref role="3A2yKK" node="2CF5XF5q_lG" resolve="ee" />
</node>
<node concept="3Tsc0h" id="2CF5XF5qJLJ" role="2OqNvi">
<node concept="3Tsc0h" id="3dsgZcixZws" role="2OqNvi">
<ref role="3TtcxE" to="jfgh:3JXBM6C3MQ0" resolve="basis" />
</node>
</node>
</node>
<node concept="3TrEf2" id="2CF5XF5qMJf" role="2OqNvi">
<node concept="3TrEf2" id="3dsgZcixZwt" role="2OqNvi">
<ref role="3Tt5mk" to="jfgh:3JXBM6C3FuH" resolve="reasoning" />
</node>
</node>
</node>
</node>
</node>
<node concept="3I6s7M" id="2CF5XF5qNlO" role="3I6sU7">
<node concept="3Aqt3T" id="2CF5XF5qNlM" role="3I6s78">
</node>
</node>
<node concept="3Aq93q" id="3dsgZciy0ny" role="3orSU4">
<property role="3ArMco" value="true" />
<node concept="3I6sU6" id="3dsgZciy0n_" role="3Ip0Jz">
<node concept="3I6s7M" id="3dsgZciy0p7" role="3I6sU7">
<node concept="3Aqt3T" id="3dsgZciy0p8" role="3I6s78">
<ref role="3AqCNq" to="6r1k:2aBGSFgfwNi" resolve="conclusion" />
<node concept="a7P8L" id="2CF5XF5qNmR" role="3AunhB">
<node concept="a7P8L" id="3dsgZciy0p9" role="3AunhB">
<ref role="a7OzE" node="2CF5XF5qF8v" resolve="Con" />
</node>
<node concept="3BlFb$" id="2CF5XF5qNmZ" role="3AunhB">
<node concept="3A2sRY" id="2CF5XF5qNn9" role="3BlFb_">
<node concept="3BlFb$" id="3dsgZciy0pa" role="3AunhB">
<node concept="3A2sRY" id="3dsgZciy0pb" role="3BlFb_">
<ref role="3A2yKK" node="2CF5XF5q_lG" resolve="ee" />
</node>
</node>
@ -2531,26 +2510,16 @@
</node>
<node concept="3Aq9E8" id="2cLnr$rI$M8" role="3otmyu">
<node concept="3I6sU6" id="2cLnr$rI$M9" role="3Ip0Jz">
<node concept="3I6s7M" id="2cLnr$rI$Ma" role="3I6sU7">
<node concept="3GeI9q" id="2cLnr$rI$Mb" role="3I6s78">
<node concept="a7P8L" id="2cLnr$rI$Mc" role="3GeI8F">
<ref role="a7OzE" node="2cLnr$rI$Ml" resolve="Msg" />
</node>
<node concept="HKQnh" id="2cLnr$rI$Md" role="3GeI8D">
<node concept="Xl_RD" id="2cLnr$rI$Me" role="HKQng">
<property role="Xl_RC" value="variable is not OK" />
<node concept="3I6s7M" id="3dsgZcixPye" role="3I6sU7">
<node concept="3wWvb2" id="3dsgZcixPyc" role="3I6s78">
<node concept="2OqwBi" id="3dsgZcixPUk" role="3wWo3s">
<node concept="2s7oft" id="3dsgZcixQbH" role="2OqNvi">
<property role="2s7ueQ" value="error" />
<node concept="Xl_RD" id="3dsgZcixRqs" role="2s7u9n">
<property role="Xl_RC" value="variable is not OK" />
</node>
</node>
</node>
</node>
</node>
<node concept="3I6s7M" id="2cLnr$rI$Mf" role="3I6sU7">
<node concept="3Aqt3T" id="2cLnr$rI$Mg" role="3I6s78">
<ref role="3AqCNq" to="f3ld:2YqrT$P6Qob" resolve="error" />
<node concept="a7P8L" id="2cLnr$rI$Mh" role="3AunhB">
<ref role="a7OzE" node="2cLnr$rI$Ml" resolve="Msg" />
</node>
<node concept="3BlFb$" id="2cLnr$rI$Mi" role="3AunhB">
<node concept="3A2sRY" id="2cLnr$rI$Np" role="3BlFb_">
<node concept="3A2sRY" id="3dsgZcixRqW" role="2Oq$k0">
<ref role="3A2yKK" node="2CF5XF5q_lG" resolve="ee" />
</node>
</node>