Commit 9db29577 authored by André Pacak's avatar André Pacak

transformation to cleanup unnecessary projection judgments + rules

parent 01591f10
......@@ -140,7 +140,7 @@
<greater-priority-mapping>
<generator generatorUID="ce0e1895-596b-45a3-b9f2-37e83b452864(TypeLang#01)" />
<external-mapping>
<mapping-node modelUID="r:ba89f5db-6588-4ca4-b7a4-6f4bcdf92187(main@generator)" nodeID="7984092366528910010" />
<mapping-node modelUID="r:ba89f5db-6588-4ca4-b7a4-6f4bcdf92187(main@generator)" nodeID="3001671298539037239" />
</external-mapping>
</greater-priority-mapping>
<lesser-priority-mapping>
......@@ -164,6 +164,20 @@
</external-mapping>
</lesser-priority-mapping>
</mapping-priority-rule>
<mapping-priority-rule kind="strictly_before">
<greater-priority-mapping>
<generator generatorUID="ce0e1895-596b-45a3-b9f2-37e83b452864(TypeLang#01)" />
<external-mapping>
<mapping-node modelUID="r:ba89f5db-6588-4ca4-b7a4-6f4bcdf92187(main@generator)" nodeID="7984092366528910010" />
</external-mapping>
</greater-priority-mapping>
<lesser-priority-mapping>
<generator generatorUID="ce0e1895-596b-45a3-b9f2-37e83b452864(TypeLang#01)" />
<external-mapping>
<mapping-node modelUID="r:ba89f5db-6588-4ca4-b7a4-6f4bcdf92187(main@generator)" nodeID="3001671298539037239" />
</external-mapping>
</lesser-priority-mapping>
</mapping-priority-rule>
</mapping-priorities>
</generator>
</generators>
......
......@@ -6401,12 +6401,17 @@
</node>
</node>
<node concept="3cpWs3" id="7oauUzrUUZF" role="3uHU7B">
<node concept="2OqwBi" id="7oauUzrUSXY" role="3uHU7B">
<node concept="37vLTw" id="7oauUzrUSJR" role="2Oq$k0">
<ref role="3cqZAo" node="7oauUzrUAqi" resolve="projectionDeclaration" />
<node concept="3cpWs3" id="2AC52hTUiav" role="3uHU7B">
<node concept="Xl_RD" id="2AC52hTUig_" role="3uHU7B">
<property role="Xl_RC" value="projection_" />
</node>
<node concept="3TrcHB" id="7oauUzrUTUk" role="2OqNvi">
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
<node concept="2OqwBi" id="7oauUzrUSXY" role="3uHU7w">
<node concept="37vLTw" id="7oauUzrUSJR" role="2Oq$k0">
<ref role="3cqZAo" node="7oauUzrUAqi" resolve="projectionDeclaration" />
</node>
<node concept="3TrcHB" id="7oauUzrUTUk" role="2OqNvi">
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
</node>
<node concept="Xl_RD" id="7oauUzrUUZI" role="3uHU7w">
......@@ -8397,6 +8402,21 @@
</node>
</node>
</node>
<node concept="3clFbF" id="2AC52hUbCRe" role="3cqZAp">
<node concept="37vLTI" id="2AC52hUbEg1" role="3clFbG">
<node concept="3clFbT" id="2AC52hUbEkD" role="37vLTx">
<property role="3clFbU" value="true" />
</node>
<node concept="2OqwBi" id="2AC52hUbDdV" role="37vLTJ">
<node concept="37vLTw" id="2AC52hUbCRc" role="2Oq$k0">
<ref role="3cqZAo" node="7oauUzvNtT3" resolve="reconstructionPremise" />
</node>
<node concept="3TrcHB" id="2AC52hUbDIh" role="2OqNvi">
<ref role="3TsBF5" to="b83y:4QidbFwe$5C" resolve="ignoreStuck" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7oauUzvNtT9" role="3cqZAp">
<node concept="2OqwBi" id="7oauUzvNtTa" role="3clFbG">
<node concept="37vLTw" id="7oauUzvO24C" role="2Oq$k0">
......@@ -28297,6 +28317,85 @@
</node>
</node>
</node>
<node concept="3cpWs8" id="13xoOqI3nRE" role="3cqZAp">
<node concept="3cpWsn" id="13xoOqI3nRF" role="3cpWs9">
<property role="TrG5h" value="renamedConclusion" />
<node concept="3Tqbb2" id="13xoOqI3nRk" role="1tU5fm">
<ref role="ehGHo" to="b83y:2_58u12fwJB" resolve="JudgmentInstance" />
</node>
<node concept="2OqwBi" id="13xoOqI3nRG" role="33vP2m">
<node concept="2OqwBi" id="13xoOqI3nRH" role="2Oq$k0">
<node concept="37vLTw" id="13xoOqI3nRI" role="2Oq$k0">
<ref role="3cqZAo" node="2LROe3D2CDZ" resolve="renamedInlineRule" />
</node>
<node concept="3TrEf2" id="13xoOqI3nRJ" role="2OqNvi">
<ref role="3Tt5mk" to="b83y:2_58u12eCXl" resolve="conclusion" />
</node>
</node>
<node concept="2qgKlT" id="13xoOqI3nRK" role="2OqNvi">
<ref role="37wK5l" to="pgas:6faGdFABR2I" resolve="createNew" />
<node concept="37vLTw" id="13xoOqI3nRL" role="37wK5m">
<ref role="3cqZAo" node="aTgr8WGG5N" resolve="conclusionArgs" />
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="13xoOqI3_al" role="3cqZAp">
<node concept="3cpWsn" id="13xoOqI3_am" role="3cpWs9">
<property role="TrG5h" value="conclusionJudgment" />
<node concept="3Tqbb2" id="13xoOqI3_9S" role="1tU5fm">
<ref role="ehGHo" to="b83y:2_58u12eLDI" resolve="JudgmentDeclaration" />
</node>
<node concept="2OqwBi" id="13xoOqI3_an" role="33vP2m">
<node concept="2OqwBi" id="13xoOqI3_ao" role="2Oq$k0">
<node concept="37vLTw" id="13xoOqI3_ap" role="2Oq$k0">
<ref role="3cqZAo" node="2LROe3D2CDZ" resolve="renamedInlineRule" />
</node>
<node concept="3TrEf2" id="13xoOqI3_aq" role="2OqNvi">
<ref role="3Tt5mk" to="b83y:2_58u12eCXl" resolve="conclusion" />
</node>
</node>
<node concept="2qgKlT" id="13xoOqI3_ar" role="2OqNvi">
<ref role="37wK5l" to="pgas:iMPJyMM1Nb" resolve="getJudgment" />
</node>
</node>
</node>
</node>
<node concept="3SKdUt" id="13xoOqI5WHN" role="3cqZAp">
<node concept="3SKdUq" id="13xoOqI5WHP" role="3SKWNk">
<property role="3SKdUp" value="inlineSourceDecls are projections, therefore are not stuck by construction" />
</node>
</node>
<node concept="3clFbJ" id="13xoOqI3vAC" role="3cqZAp">
<node concept="3clFbS" id="13xoOqI3vAE" role="3clFbx">
<node concept="3clFbF" id="13xoOqI3qtp" role="3cqZAp">
<node concept="37vLTI" id="13xoOqI3sdt" role="3clFbG">
<node concept="3clFbT" id="13xoOqI3sio" role="37vLTx">
<property role="3clFbU" value="true" />
</node>
<node concept="2OqwBi" id="13xoOqI3rjD" role="37vLTJ">
<node concept="37vLTw" id="13xoOqI3qtn" role="2Oq$k0">
<ref role="3cqZAo" node="13xoOqI3nRF" resolve="renamedConclusion" />
</node>
<node concept="3TrcHB" id="13xoOqI3rJ_" role="2OqNvi">
<ref role="3TsBF5" to="b83y:4QidbFwe$5C" resolve="ignoreStuck" />
</node>
</node>
</node>
</node>
</node>
<node concept="2OqwBi" id="13xoOqI3Eo$" role="3clFbw">
<node concept="37vLTw" id="13xoOqI3AwN" role="2Oq$k0">
<ref role="3cqZAo" node="6faGdF_IPZ$" resolve="inlineSourceDecls" />
</node>
<node concept="3JPx81" id="13xoOqI3I3b" role="2OqNvi">
<node concept="37vLTw" id="13xoOqI3IqG" role="25WWJ7">
<ref role="3cqZAo" node="13xoOqI3_am" resolve="conclusionJudgment" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="3CBGuvMwjXj" role="3cqZAp">
<node concept="2OqwBi" id="3CBGuvMwjXk" role="3clFbG">
<node concept="2OqwBi" id="3CBGuvMwjXl" role="2Oq$k0">
......@@ -28312,21 +28411,8 @@
<node concept="37vLTw" id="3CBGuvMwjXp" role="37wK5m">
<ref role="3cqZAo" node="3CBGuvMnV0j" resolve="indexOfLastDuplicate" />
</node>
<node concept="2OqwBi" id="3CBGuvMwjXq" role="37wK5m">
<node concept="2OqwBi" id="3CBGuvMwjXr" role="2Oq$k0">
<node concept="37vLTw" id="2LROe3D2NoI" role="2Oq$k0">
<ref role="3cqZAo" node="2LROe3D2CDZ" resolve="renamedInlineRule" />
</node>
<node concept="3TrEf2" id="3CBGuvMwjXt" role="2OqNvi">
<ref role="3Tt5mk" to="b83y:2_58u12eCXl" resolve="conclusion" />
</node>
</node>
<node concept="2qgKlT" id="3CBGuvMwjXu" role="2OqNvi">
<ref role="37wK5l" to="pgas:6faGdFABR2I" resolve="createNew" />
<node concept="37vLTw" id="3CBGuvMwjXv" role="37wK5m">
<ref role="3cqZAo" node="aTgr8WGG5N" resolve="conclusionArgs" />
</node>
</node>
<node concept="37vLTw" id="13xoOqI3nRM" role="37wK5m">
<ref role="3cqZAo" node="13xoOqI3nRF" resolve="renamedConclusion" />
</node>
</node>
</node>
......@@ -33,6 +33,9 @@
</language>
<language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
<concept id="1080223426719" name="jetbrains.mps.baseLanguage.structure.OrExpression" flags="nn" index="22lmx$" />
<concept id="1082485599095" name="jetbrains.mps.baseLanguage.structure.BlockStatement" flags="nn" index="9aQIb">
<child id="1082485599096" name="statements" index="9aQI4" />
</concept>
<concept id="1215693861676" name="jetbrains.mps.baseLanguage.structure.BaseAssignmentExpression" flags="nn" index="d038R">
<child id="1068498886297" name="rValue" index="37vLTx" />
<child id="1068498886295" name="lValue" index="37vLTJ" />
......@@ -76,6 +79,7 @@
<child id="1164991057263" name="throwable" index="YScLw" />
</concept>
<concept id="1070534058343" name="jetbrains.mps.baseLanguage.structure.NullLiteral" flags="nn" index="10Nm6u" />
<concept id="1070534644030" name="jetbrains.mps.baseLanguage.structure.BooleanType" flags="in" index="10P_77" />
<concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
<child id="1068431790190" name="initializer" index="33vP2m" />
</concept>
......@@ -83,6 +87,7 @@
<reference id="1068581517664" name="variableDeclaration" index="3cqZAo" />
</concept>
<concept id="1068498886294" name="jetbrains.mps.baseLanguage.structure.AssignmentExpression" flags="nn" index="37vLTI" />
<concept id="1225271177708" name="jetbrains.mps.baseLanguage.structure.StringType" flags="in" index="17QB3L" />
<concept id="1225271283259" name="jetbrains.mps.baseLanguage.structure.NPEEqualsExpression" flags="nn" index="17R0WA" />
<concept id="4972933694980447171" name="jetbrains.mps.baseLanguage.structure.BaseVariableDeclaration" flags="ng" index="19Szcq">
<child id="5680397130376446158" name="type" index="1tU5fm" />
......@@ -93,6 +98,7 @@
</concept>
<concept id="1068580123157" name="jetbrains.mps.baseLanguage.structure.Statement" flags="nn" index="3clFbH" />
<concept id="1068580123159" name="jetbrains.mps.baseLanguage.structure.IfStatement" flags="nn" index="3clFbJ">
<child id="1082485599094" name="ifFalseStatement" index="9aQIa" />
<child id="1068580123160" name="condition" index="3clFbw" />
<child id="1068580123161" name="ifTrue" index="3clFbx" />
<child id="1206060520071" name="elsifClauses" index="3eNLev" />
......@@ -307,6 +313,8 @@
<concept id="1153944233411" name="jetbrains.mps.baseLanguage.collections.structure.ForEachVariableReference" flags="nn" index="2GrUjf">
<reference id="1153944258490" name="variable" index="2Gs0qQ" />
</concept>
<concept id="1235566554328" name="jetbrains.mps.baseLanguage.collections.structure.AnyOperation" flags="nn" index="2HwmR7" />
<concept id="1235566831861" name="jetbrains.mps.baseLanguage.collections.structure.AllOperation" flags="nn" index="2HxqBE" />
<concept id="1237721394592" name="jetbrains.mps.baseLanguage.collections.structure.AbstractContainerCreator" flags="nn" index="HWqM0">
<child id="1237721435807" name="elementType" index="HW$YZ" />
</concept>
......@@ -325,6 +333,14 @@
<child id="1240424402756" name="valueType" index="3f3$T$" />
</concept>
<concept id="1201872418428" name="jetbrains.mps.baseLanguage.collections.structure.GetKeysOperation" flags="nn" index="3lbrtF" />
<concept id="1197683403723" name="jetbrains.mps.baseLanguage.collections.structure.MapType" flags="in" index="3rvAFt">
<child id="1197683466920" name="keyType" index="3rvQeY" />
<child id="1197683475734" name="valueType" index="3rvSg0" />
</concept>
<concept id="1197686869805" name="jetbrains.mps.baseLanguage.collections.structure.HashMapCreator" flags="nn" index="3rGOSV">
<child id="1197687026896" name="keyType" index="3rHrn6" />
<child id="1197687035757" name="valueType" index="3rHtpV" />
</concept>
<concept id="1165525191778" name="jetbrains.mps.baseLanguage.collections.structure.GetFirstOperation" flags="nn" index="1uHKPH" />
<concept id="1165530316231" name="jetbrains.mps.baseLanguage.collections.structure.IsEmptyOperation" flags="nn" index="1v1jN8" />
<concept id="1225711141656" name="jetbrains.mps.baseLanguage.collections.structure.ListElementAccessExpression" flags="nn" index="1y4W85">
......@@ -3218,5 +3234,496 @@
<ref role="1puQsG" node="6VdcriKRhaJ" resolve="optimizeTypeRules" />
</node>
</node>
<node concept="1pmfR0" id="2AC52hTTU8w">
<property role="1v3f2W" value="pre_processing" />
<property role="1v3jST" value="true" />
<property role="TrG5h" value="deleteUnnecessaryProjectionRules" />
<node concept="1pplIY" id="2AC52hTTU8x" role="1pqMTA">
<node concept="3clFbS" id="2AC52hTTU8y" role="2VODD2">
<node concept="3SKdUt" id="2AC52hTTU8F" role="3cqZAp">
<node concept="3SKdUq" id="2AC52hTTU8G" role="3SKWNk">
<property role="3SKdUp" value="delete projection decls and rules if inlining was succesful and group of projection decl for a sort are not referenced anymore" />
</node>
</node>
<node concept="1DcWWT" id="2AC52hTUCsI" role="3cqZAp">
<node concept="3cpWsn" id="2AC52hTUCsJ" role="1Duv9x">
<property role="TrG5h" value="typeModule" />
<node concept="3Tqbb2" id="2AC52hTUCsK" role="1tU5fm">
<ref role="ehGHo" to="b83y:2_58u12cYEI" resolve="TypeLangModule" />
</node>
</node>
<node concept="2OqwBi" id="2AC52hTUCsL" role="1DdaDG">
<node concept="1Q6Npb" id="2AC52hTUCsM" role="2Oq$k0" />
<node concept="2SmgA7" id="2AC52hTUCsN" role="2OqNvi">
<node concept="chp4Y" id="2AC52hTUCsO" role="1dBWTz">
<ref role="cht4Q" to="b83y:2_58u12cYEI" resolve="TypeLangModule" />
</node>
</node>
</node>
<node concept="3clFbS" id="2AC52hTUCsP" role="2LFqv$">
<node concept="3cpWs8" id="2AC52hTUL3w" role="3cqZAp">
<node concept="3cpWsn" id="2AC52hTUL3x" role="3cpWs9">
<property role="TrG5h" value="projectionDecls" />
<node concept="2OqwBi" id="2AC52hTUPoG" role="33vP2m">
<node concept="2OqwBi" id="2AC52hTULNu" role="2Oq$k0">
<node concept="2OqwBi" id="2AC52hTUL3y" role="2Oq$k0">
<node concept="2OqwBi" id="2AC52hTUL3z" role="2Oq$k0">
<node concept="37vLTw" id="2AC52hTUL3$" role="2Oq$k0">
<ref role="3cqZAo" node="2AC52hTUCsJ" resolve="typeModule" />
</node>
<node concept="3Tsc0h" id="2AC52hTUL3_" role="2OqNvi">
<ref role="3TtcxE" to="b83y:2_58u12ftLX" resolve="content" />
</node>
</node>
<node concept="v3k3i" id="2AC52hTUL3A" role="2OqNvi">
<node concept="chp4Y" id="2AC52hTUL3B" role="v3oSu">
<ref role="cht4Q" to="b83y:2_58u12eLDI" resolve="JudgmentDeclaration" />
</node>
</node>
</node>
<node concept="3zZkjj" id="2AC52hTUMgK" role="2OqNvi">
<node concept="1bVj0M" id="2AC52hTUMgM" role="23t8la">
<node concept="3clFbS" id="2AC52hTUMgN" role="1bW5cS">
<node concept="3clFbF" id="2AC52hTUMoj" role="3cqZAp">
<node concept="2OqwBi" id="2AC52hTUNz8" role="3clFbG">
<node concept="2OqwBi" id="2AC52hTUMBT" role="2Oq$k0">
<node concept="37vLTw" id="2AC52hTUMoi" role="2Oq$k0">
<ref role="3cqZAo" node="2AC52hTUMgO" resolve="it" />
</node>
<node concept="3TrcHB" id="2AC52hTUMVw" role="2OqNvi">
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
<node concept="liA8E" id="2AC52hTUO8A" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~String.startsWith(java.lang.String)" resolve="startsWith" />
<node concept="Xl_RD" id="2AC52hTUOhy" role="37wK5m">
<property role="Xl_RC" value="projection_" />
</node>
</node>
</node>
</node>
</node>
<node concept="Rh6nW" id="2AC52hTUMgO" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="2AC52hTUMgP" role="1tU5fm" />
</node>
</node>
</node>
</node>
<node concept="ANE8D" id="2AC52hTUPNy" role="2OqNvi" />
</node>
<node concept="2I9FWS" id="2AC52hTUP8_" role="1tU5fm">
<ref role="2I9WkF" to="b83y:2_58u12eLDI" resolve="JudgmentDeclaration" />
</node>
</node>
</node>
<node concept="3clFbH" id="2AC52hU4KzA" role="3cqZAp" />
<node concept="3SKdUt" id="2AC52hU4MiA" role="3cqZAp">
<node concept="3SKdUq" id="2AC52hU4MiC" role="3SKWNk">
<property role="3SKdUp" value="group decls based on sort" />
</node>
</node>
<node concept="3cpWs8" id="2AC52hU4PW5" role="3cqZAp">
<node concept="3cpWsn" id="2AC52hU4PW8" role="3cpWs9">
<property role="TrG5h" value="groupedBySort" />
<node concept="3rvAFt" id="2AC52hU4PVZ" role="1tU5fm">
<node concept="2hMVRd" id="2AC52hU4SkE" role="3rvSg0">
<node concept="3Tqbb2" id="2AC52hU4Sl3" role="2hN53Y">
<ref role="ehGHo" to="b83y:2_58u12eLDI" resolve="JudgmentDeclaration" />
</node>
</node>
<node concept="17QB3L" id="2AC52hU53kt" role="3rvQeY" />
</node>
<node concept="2ShNRf" id="2AC52hU4SwW" role="33vP2m">
<node concept="3rGOSV" id="2AC52hU4SwK" role="2ShVmc">
<node concept="2hMVRd" id="2AC52hU4SwM" role="3rHtpV">
<node concept="3Tqbb2" id="2AC52hU4SwN" role="2hN53Y">
<ref role="ehGHo" to="b83y:2_58u12eLDI" resolve="JudgmentDeclaration" />
</node>
</node>
<node concept="17QB3L" id="2AC52hU5sy3" role="3rHrn6" />
</node>
</node>
</node>
</node>
<node concept="2Gpval" id="2AC52hU4T$c" role="3cqZAp">
<node concept="2GrKxI" id="2AC52hU4T$e" role="2Gsz3X">
<property role="TrG5h" value="decl" />
</node>
<node concept="37vLTw" id="2AC52hU4UAF" role="2GsD0m">
<ref role="3cqZAo" node="2AC52hTUL3x" resolve="projectionDecls" />
</node>
<node concept="3clFbS" id="2AC52hU4T$i" role="2LFqv$">
<node concept="3cpWs8" id="2AC52hU4YBW" role="3cqZAp">
<node concept="3cpWsn" id="2AC52hU4YBX" role="3cpWs9">
<property role="TrG5h" value="sort" />
<node concept="1PxgMI" id="2AC52hU9_Dq" role="33vP2m">
<node concept="chp4Y" id="2AC52hU9A_r" role="3oSUPX">
<ref role="cht4Q" to="b83y:2U2uJPpguJc" resolve="SortLattice" />
</node>
<node concept="2OqwBi" id="2AC52hU50gQ" role="1m5AlR">
<node concept="2OqwBi" id="2AC52hU4YBY" role="2Oq$k0">
<node concept="2GrUjf" id="2AC52hU4YBZ" role="2Oq$k0">
<ref role="2Gs0qQ" node="2AC52hU4T$e" resolve="decl" />
</node>
<node concept="2qgKlT" id="2AC52hU4YC0" role="2OqNvi">
<ref role="37wK5l" to="pgas:2AC52hU4WDH" resolve="getOutputSorts" />
</node>
</node>
<node concept="1uHKPH" id="2AC52hU51ru" role="2OqNvi" />
</node>
</node>
<node concept="3Tqbb2" id="2AC52hU51YL" role="1tU5fm">
<ref role="ehGHo" to="b83y:2U2uJPpguJc" resolve="SortLattice" />
</node>
</node>
</node>
<node concept="3cpWs8" id="2AC52hU9JXI" role="3cqZAp">
<node concept="3cpWsn" id="2AC52hU9JXJ" role="3cpWs9">
<property role="TrG5h" value="name" />
<node concept="17QB3L" id="2AC52hU9JWl" role="1tU5fm" />
<node concept="2OqwBi" id="2AC52hU9JXK" role="33vP2m">
<node concept="2OqwBi" id="2AC52hU9JXL" role="2Oq$k0">
<node concept="2OqwBi" id="2AC52hU9JXM" role="2Oq$k0">
<node concept="37vLTw" id="2AC52hU9JXN" role="2Oq$k0">
<ref role="3cqZAo" node="2AC52hU4YBX" resolve="sort" />
</node>
<node concept="3TrEf2" id="2AC52hU9JXO" role="2OqNvi">
<ref role="3Tt5mk" to="b83y:2U2uJPplZWT" resolve="lattice" />
</node>
</node>
<node concept="3TrEf2" id="2AC52hU9JXP" role="2OqNvi">
<ref role="3Tt5mk" to="uu1k:6fy2FM6nETA" resolve="constructor" />
</node>
</node>
<node concept="3TrcHB" id="2AC52hU9JXQ" role="2OqNvi">
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="2AC52hU5a7$" role="3cqZAp">
<node concept="3cpWsn" id="2AC52hU5a7_" role="3cpWs9">
<property role="TrG5h" value="decls" />
<node concept="2hMVRd" id="2AC52hU5a6c" role="1tU5fm">
<node concept="3Tqbb2" id="2AC52hU5a6f" role="2hN53Y">
<ref role="ehGHo" to="b83y:2_58u12eLDI" resolve="JudgmentDeclaration" />
</node>
</node>
<node concept="3EllGN" id="2AC52hU5a7A" role="33vP2m">
<node concept="37vLTw" id="2AC52hU9JXR" role="3ElVtu">
<ref role="3cqZAo" node="2AC52hU9JXJ" resolve="name" />
</node>
<node concept="37vLTw" id="2AC52hU5a7G" role="3ElQJh">
<ref role="3cqZAo" node="2AC52hU4PW8" resolve="groupedBySort" />
</node>
</node>
</node>
</node>
<node concept="3clFbJ" id="2AC52hU5aAJ" role="3cqZAp">
<node concept="3clFbS" id="2AC52hU5aAL" role="3clFbx">
<node concept="3clFbF" id="2AC52hU5ehL" role="3cqZAp">
<node concept="37vLTI" id="2AC52hU5l7X" role="3clFbG">
<node concept="2ShNRf" id="2AC52hU5lcq" role="37vLTx">
<node concept="2i4dXS" id="2AC52hU5lcl" role="2ShVmc">
<node concept="3Tqbb2" id="2AC52hU5lcm" role="HW$YZ">
<ref role="ehGHo" to="b83y:2_58u12eLDI" resolve="JudgmentDeclaration" />
</node>
</node>
</node>
<node concept="3EllGN" id="2AC52hU5iiK" role="37vLTJ">
<node concept="37vLTw" id="2AC52hU9KEZ" role="3ElVtu">
<ref role="3cqZAo" node="2AC52hU9JXJ" resolve="name" />
</node>
<node concept="37vLTw" id="2AC52hU5hAX" role="3ElQJh">
<ref role="3cqZAo" node="2AC52hU4PW8" resolve="groupedBySort" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="2AC52hU5lgZ" role="3cqZAp">
<node concept="2OqwBi" id="2AC52hU5pl1" role="3clFbG">
<node concept="3EllGN" id="2AC52hU5lAP" role="2Oq$k0">
<node concept="37vLTw" id="2AC52hU9KGt" role="3ElVtu">
<ref role="3cqZAo" node="2AC52hU9JXJ" resolve="name" />
</node>
<node concept="37vLTw" id="2AC52hU5lgX" role="3ElQJh">
<ref role="3cqZAo" node="2AC52hU4PW8" resolve="groupedBySort" />
</node>
</node>
<node concept="TSZUe" id="2AC52hU5qmL" role="2OqNvi">
<node concept="2GrUjf" id="2AC52hU5qsH" role="25WWJ7">
<ref role="2Gs0qQ" node="2AC52hU4T$e" resolve="decl" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbC" id="2AC52hU5bIu" role="3clFbw">
<node concept="10Nm6u" id="2AC52hU5c3k" role="3uHU7w" />
<node concept="37vLTw" id="2AC52hU5aKE" role="3uHU7B">
<ref role="3cqZAo" node="2AC52hU5a7_" resolve="decls" />
</node>
</node>
<node concept="9aQIb" id="2AC52hU5c3O" role="9aQIa">
<node concept="3clFbS" id="2AC52hU5c3P" role="9aQI4">
<node concept="3clFbF" id="2AC52hU5c4k" role="3cqZAp">
<node concept="2OqwBi" id="2AC52hU5cRI" role="3clFbG">
<node concept="TSZUe" id="2AC52hU5dQT" role="2OqNvi">
<node concept="2GrUjf" id="2AC52hU5eeu" role="25WWJ7">
<ref role="2Gs0qQ" node="2AC52hU4T$e" resolve="decl" />
</node>
</node>
<node concept="3EllGN" id="13xoOqI1$QO" role="2Oq$k0">
<node concept="37vLTw" id="13xoOqI1_qr" role="3ElVtu">
<ref role="3cqZAo" node="2AC52hU9JXJ" resolve="name" />
</node>
<node concept="37vLTw" id="13xoOqI1zFO" role="3ElQJh">
<ref role="3cqZAo" node="2AC52hU4PW8" resolve="groupedBySort" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="2AC52hU5Jtn" role="3cqZAp" />
<node concept="3cpWs8" id="2AC52hTURiD" role="3cqZAp">
<node concept="3cpWsn" id="2AC52hTURiE" role="3cpWs9">
<property role="TrG5h" value="querier" />
<node concept="3uibUv" id="2AC52hTURiA" role="1tU5fm">
<ref role="3uigEE" to="5tos:32CDcOyGKwu" resolve="TypeLangModuleQuerier" />
</node>
<node concept="2ShNRf" id="2AC52hTURiF" role="33vP2m">
<node concept="1pGfFk" id="2AC52hTURiG" role="2ShVmc">
<ref role="37wK5l" to="5tos:4RJJaub9nwG" resolve="TypeLangModuleQuerier" />
<node concept="37vLTw" id="2AC52hTURiH" role="37wK5m">
<ref role="3cqZAo" node="2AC52hTUCsJ" resolve="typeModule" />
</node>
</node>
</node>
</node>
</node>
<node concept="2Gpval" id="2AC52hU5CFf" role="3cqZAp">
<node concept="2GrKxI" id="2AC52hU5CFh" role="2Gsz3X">
<property role="TrG5h" value="group" />
</node>
<node concept="37vLTw" id="2AC52hU5DTa" role="2GsD0m">
<ref role="3cqZAo" node="2AC52hU4PW8" resolve="groupedBySort" />
</node>
<node concept="3clFbS" id="2AC52hU5CFl" role="2LFqv$">
<node concept="3cpWs8" id="2AC52hU5Exw" role="3cqZAp">
<node concept="3cpWsn" id="2AC52hU5Exz" role="3cpWs9">
<property role="TrG5h" value="rulesOfGroup" />
<node concept="2hMVRd" id="2AC52hU5SFM" role="1tU5fm">
<node concept="3Tqbb2" id="2AC52hU5TJG" role="2hN53Y">
<ref role="ehGHo" to="b83y:2_58u12eCWN" resolve="Rule" />
</node>
</node>
<node concept="2ShNRf" id="2AC52hU6222" role="33vP2m">
<node concept="2i4dXS" id="2AC52hU621X" role="2ShVmc">
<node concept="3Tqbb2" id="2AC52hU621Y" role="HW$YZ">
<ref role="ehGHo" to="b83y:2_58u12eCWN" resolve="Rule" />
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="2AC52hU68wa" role="3cqZAp">
<node concept="3cpWsn" id="2AC52hU68wd" role="3cpWs9">
<property role="TrG5h" value="rulesContainingGroup" />
<node concept="2hMVRd" id="2AC52hU68we" role="1tU5fm">
<node concept="3Tqbb2" id="2AC52hU68wf" role="2hN53Y">
<ref role="ehGHo" to="b83y:2_58u12eCWN" resolve="Rule" />
</node>
</node>
<node concept="2ShNRf" id="2AC52hU68wg" role="33vP2m">
<node concept="2i4dXS" id="2AC52hU68wh" role="2ShVmc">
<node concept="3Tqbb2" id="2AC52hU68wi" role="HW$YZ">
<ref role="ehGHo" to="b83y:2_58u12eCWN" resolve="Rule" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="2AC52hU67q0" role="3cqZAp" />
<node concept="2Gpval" id="2AC52hU5E$6" role="3cqZAp">
<node concept="2GrKxI" id="2AC52hU5E$8" role="2Gsz3X">
<property role="TrG5h" value="decl" />
</node>
<node concept="2OqwBi" id="2AC52hU5EMm" role="2GsD0m">
<node concept="2GrUjf" id="2AC52hU5E$A" role="2Oq$k0">
<ref role="2Gs0qQ" node="2AC52hU5CFh" resolve="group" />
</node>
<node concept="3AV6Ez" id="2AC52hU5F0Z" role="2OqNvi" />
</node>
<node concept="3clFbS" id="2AC52hU5E$c" role="2LFqv$">
<node concept="3clFbF" id="2AC52hU5MKy" role="3cqZAp">
<node concept="2OqwBi" id="2AC52hU5OHS" role="3clFbG">
<node concept="37vLTw" id="2AC52hU5MKw" role="2Oq$k0">
<ref role="3cqZAo" node="2AC52hU5Exz" resolve="rulesOfGroup" />
</node>
<node concept="X8dFx" id="2AC52hU5S76" role="2OqNvi">
<node concept="2OqwBi" id="2AC52hU63OW" role="25WWJ7">
<node concept="37vLTw" id="2AC52hU63OX" role="2Oq$k0">
<ref role="3cqZAo" node="2AC52hTURiE" resolve="querier" />
</node>
<node concept="liA8E" id="2AC52hU63OY" role="2OqNvi">
<ref role="37wK5l" to="5tos:6XUlM2nL3i2" resolve="getRulesForDeclaration" />
<node concept="2GrUjf" id="2AC52hU63OZ" role="37wK5m">
<ref role="2Gs0qQ" node="2AC52hU5E$8" resolve="decl" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="2AC52hU6913" role="3cqZAp">
<node concept="2OqwBi" id="2AC52hU69Z4" role="3clFbG">
<node concept="37vLTw" id="2AC52hU6911" role="2Oq$k0">
<ref role="3cqZAo" node="2AC52hU68wd" resolve="rulesContainingGroup" />
</node>
<node concept="X8dFx" id="2AC52hU6av0" role="2OqNvi">
<node concept="2OqwBi" id="2AC52hU6hlL" role="25WWJ7">
<node concept="2OqwBi" id="2AC52hU6cCK" role="2Oq$k0">
<node concept="37vLTw" id="2AC52hU6aSn" role="2Oq$k0">
<ref role="3cqZAo" node="2AC52hTURiE" resolve="querier" />
</node>
<node concept="liA8E" id="2AC52hU6dzp" role="2OqNvi">
<ref role="37wK5l" to="5tos:4RJJaub9DpF" resolve="getInstancesOfDeclaration" />
<node concept="2GrUjf" id="2AC52hU6fhj" role="37wK5m">
<ref role="2Gs0qQ" node="2AC52hU5E$8" resolve="decl" />
</node>
</node>
</node>
<node concept="3$u5V9" id="2AC52hU6nZ1" role="2OqNvi">
<node concept="1bVj0M" id="2AC52hU6nZ3" role="23t8la">
<node concept="3clFbS" id="2AC52hU6nZ4" role="1bW5cS">
<node concept="3clFbF" id="2AC52hU6pSj" role="3cqZAp">
<node concept="2OqwBi" id="2AC52hU6rx$" role="3clFbG">
<node concept="37vLTw" id="2AC52hU6pSi" role="2Oq$k0">
<ref role="3cqZAo" node="2AC52hU6nZ5" resolve="it" />
</node>
<node concept="2Xjw5R" id="2AC52hU6tTt" role="2OqNvi">
<node concept="1xMEDy" id="2AC52hU6tTv" role="1xVPHs">
<node concept="chp4Y" id="2AC52hU6uNP" role="ri$Ld">
<ref role="cht4Q" to="b83y:2_58u12eCWN" resolve="Rule" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="Rh6nW" id="2AC52hU6nZ5" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="2AC52hU6nZ6" role="1tU5fm" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="2AC52hU7r6F" role="3cqZAp">
<node concept="3cpWsn" id="2AC52hU7r6G" role="3cpWs9">
<property role="TrG5h" value="groupReferenced" />
<node concept="10P_77" id="2AC52hU7r6w" role="1tU5fm" />
<node concept="2OqwBi" id="2AC52hU7r6H" role="33vP2m">
<node concept="37vLTw" id="2AC52hU7r6I" role="2Oq$k0">
<ref role="3cqZAo" node="2AC52hU68wd" resolve="rulesContainingGroup" />
</node>
<node concept="2HwmR7" id="2AC52hU7r6J" role="2OqNvi">
<node concept="1bVj0M" id="2AC52hU7r6K" role="23t8la">
<node concept="3clFbS" id="2AC52hU7r6L" role="1bW5cS">
<node concept="3clFbF" id="2AC52hU7r6M" role="3cqZAp">
<node concept="2OqwBi" id="2AC52hU7r6N" role="3clFbG">
<node concept="37vLTw"