diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..da6c87c2e1621eb8eb9d39d34d763d5f2f55b2c3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,20 @@ +# Zeugs vom Antlr-Tool +ANTRL-Grammatiken/*/*.class +ANTRL-Grammatiken/*/*.java +ANTRL-Grammatiken/*/*.interp +ANTRL-Grammatiken/*/*.tokens + +# C# bin-Dateien und IDE Dateien +.vs + +BaumtransformationBewerter/bin/Debug/netcoreapp3.1/*.dll +BaumtransformationBewerter/bin/Debug/netcoreapp3.1/*.txt +BaumtransformationBewerter/bin/Debug/netcoreapp3.1/*.exe +BaumtransformationBewerter/bin/Debug/netcoreapp3.1/*.json +BaumtransformationBewerter/bin/Debug/netcoreapp3.1/*.pdb +BaumtransformationBewerter/bin/Debug/netcoreapp3.1/.config +BaumtransformationBewerter/bin/Debug/netcoreapp3.1/ex/ +BaumtransformationBewerter/bin/Debug/netcoreapp6.0/ +BaumtransformationBewerter/obj/ +BaumtransformationBewerter/Properties/ +BaumtransformationBewerter/*.user diff --git a/ANTRL-Grammatiken/ADT/ADT.g4 b/ANTRL-Grammatiken/ADT/ADT.g4 new file mode 100644 index 0000000000000000000000000000000000000000..ab0dcedad83d9c04e99d32bba229d10c368065eb --- /dev/null +++ b/ANTRL-Grammatiken/ADT/ADT.g4 @@ -0,0 +1,26 @@ +grammar ADT; + +import TreeAndLexerRules; + +/* + * Parser Rules + */ + +adt : name? sorts constructors? operations (vars axioms)? EOF ; + +name : 'name' BEZ ; + +sorts : 'sorts' sort (',' sort )* ; +sort: BEZ ; + +constructors: 'constructors' operation+ ; +operations : 'operations' operation+ ; +operation : BEZ ':' (sort ('><' sort)* '->')? sort ; + +vars: 'vars' var (',' var)* ; +var : BEZ ':' sort ; + +// mytree imported from TreeAndLexerRules + +axioms : 'axioms' axiom+ ; +axiom : BEZ ':' mytree '=' mytree; \ No newline at end of file diff --git a/ANTRL-Grammatiken/ADT/ADT_Bsp.txt b/ANTRL-Grammatiken/ADT/ADT_Bsp.txt new file mode 100644 index 0000000000000000000000000000000000000000..f0be162877eb7f20937ded6c8faa27dd2e3b4c04 --- /dev/null +++ b/ANTRL-Grammatiken/ADT/ADT_Bsp.txt @@ -0,0 +1,14 @@ +sorts Nat, Bool +operations + null: Nat + inc: Nat -> Nat + wahr: Bool + falsch: Bool + gerade: Nat -> Bool + ungerade: Nat -> Bool +vars n : Nat +axioms + a1: gerade(null) = wahr + a2: gerade(inc(null)) = falsch + a3: gerade(inc(inc(n))) = gerade(n) + a4: ungerade(n) = gerade(inc(n)) \ No newline at end of file diff --git a/ANTRL-Grammatiken/ADT/ADT_Bsp_NatTree.svg b/ANTRL-Grammatiken/ADT/ADT_Bsp_NatTree.svg new file mode 100644 index 0000000000000000000000000000000000000000..73905453a17dca0ed87b96bf0cdf11fdf59263d2 --- /dev/null +++ b/ANTRL-Grammatiken/ADT/ADT_Bsp_NatTree.svg @@ -0,0 +1,2230 @@ +<svg width="5294.3" height="832.7" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><line x1="1465.1875" y1="7.5" x2="53.0" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="53.0" y1="39.5" x2="14.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="53.0" y1="39.5" x2="47.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="47.5" y1="71.5" x2="47.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="53.0" y1="39.5" x2="69.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="53.0" y1="39.5" x2="91.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="91.5" y1="71.5" x2="91.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1465.1875" y1="7.5" x2="380.375" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="380.375" y1="39.5" x2="143.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="380.375" y1="39.5" x2="207.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="207.5" y1="71.5" x2="186.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="207.5" y1="71.5" x2="206.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="207.5" y1="71.5" x2="228.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="228.75" y1="103.5" x2="228.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="380.375" y1="39.5" x2="302.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="302.5" y1="71.5" x2="256.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="302.5" y1="71.5" x2="275.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="302.5" y1="71.5" x2="297.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="297.75" y1="103.5" x2="297.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="302.5" y1="71.5" x2="323.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="302.5" y1="71.5" x2="348.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="348.75" y1="103.5" x2="348.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="380.375" y1="39.5" x2="391.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="391.0" y1="71.5" x2="372.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="391.0" y1="71.5" x2="387.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="391.0" y1="71.5" x2="409.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="409.75" y1="103.5" x2="409.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="380.375" y1="39.5" x2="478.25" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="478.25" y1="71.5" x2="433.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="478.25" y1="71.5" x2="449.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="478.25" y1="71.5" x2="471.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="471.75" y1="103.5" x2="471.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="478.25" y1="71.5" x2="497.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="478.25" y1="71.5" x2="522.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="522.75" y1="103.5" x2="522.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="380.375" y1="39.5" x2="617.75" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="617.75" y1="71.5" x2="546.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="617.75" y1="71.5" x2="562.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="617.75" y1="71.5" x2="584.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="584.75" y1="103.5" x2="584.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="617.75" y1="71.5" x2="611.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="617.75" y1="71.5" x2="637.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="637.75" y1="103.5" x2="637.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="617.75" y1="71.5" x2="663.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="617.75" y1="71.5" x2="688.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="688.75" y1="103.5" x2="688.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1465.1875" y1="7.5" x2="1013.25" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1013.25" y1="39.5" x2="734.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1013.25" y1="39.5" x2="793.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="793.5" y1="71.5" x2="719.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="793.5" y1="71.5" x2="741.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="793.5" y1="71.5" x2="763.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="763.75" y1="103.5" x2="763.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="793.5" y1="71.5" x2="790.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="793.5" y1="71.5" x2="816.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="816.75" y1="103.5" x2="816.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="793.5" y1="71.5" x2="842.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="793.5" y1="71.5" x2="867.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="867.75" y1="103.5" x2="867.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1013.25" y1="39.5" x2="969.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="969.5" y1="71.5" x2="896.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="969.5" y1="71.5" x2="916.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="969.5" y1="71.5" x2="938.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="938.75" y1="103.5" x2="938.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="969.5" y1="71.5" x2="965.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="969.5" y1="71.5" x2="991.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="991.75" y1="103.5" x2="991.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="969.5" y1="71.5" x2="1017.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="969.5" y1="71.5" x2="1042.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1042.75" y1="103.5" x2="1042.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1013.25" y1="39.5" x2="1141.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1141.5" y1="71.5" x2="1069.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1141.5" y1="71.5" x2="1087.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1141.5" y1="71.5" x2="1109.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1109.75" y1="103.5" x2="1109.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1141.5" y1="71.5" x2="1136.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1141.5" y1="71.5" x2="1162.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1162.75" y1="103.5" x2="1162.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1141.5" y1="71.5" x2="1188.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1141.5" y1="71.5" x2="1213.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1213.75" y1="103.5" x2="1213.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1013.25" y1="39.5" x2="1292.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1292.0" y1="71.5" x2="1244.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1292.0" y1="71.5" x2="1266.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1292.0" y1="71.5" x2="1288.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1288.75" y1="103.5" x2="1288.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1292.0" y1="71.5" x2="1314.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1292.0" y1="71.5" x2="1339.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1339.75" y1="103.5" x2="1339.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1465.1875" y1="7.5" x2="1462.125" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1462.125" y1="39.5" x2="1352.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1462.125" y1="39.5" x2="1382.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1382.0" y1="71.5" x2="1363.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1382.0" y1="71.5" x2="1378.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1382.0" y1="71.5" x2="1400.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1400.75" y1="103.5" x2="1400.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1462.125" y1="39.5" x2="1413.25" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1462.125" y1="39.5" x2="1444.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1444.5" y1="71.5" x2="1425.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1444.5" y1="71.5" x2="1441.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1444.5" y1="71.5" x2="1463.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1463.75" y1="103.5" x2="1463.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1462.125" y1="39.5" x2="1476.375" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1462.125" y1="39.5" x2="1508.25" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1508.25" y1="71.5" x2="1488.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1508.25" y1="71.5" x2="1505.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1508.25" y1="71.5" x2="1527.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1527.75" y1="103.5" x2="1527.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1462.125" y1="39.5" x2="1540.25" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1462.125" y1="39.5" x2="1572.25" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1572.25" y1="71.5" x2="1552.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1572.25" y1="71.5" x2="1569.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1572.25" y1="71.5" x2="1591.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1591.75" y1="103.5" x2="1591.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1465.1875" y1="7.5" x2="2877.375" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2877.375" y1="39.5" x2="1643.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2877.375" y1="39.5" x2="1685.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1685.0" y1="71.5" x2="1618.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1685.0" y1="71.5" x2="1636.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1685.0" y1="71.5" x2="1665.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1665.75" y1="103.5" x2="1665.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1665.75" y1="135.5" x2="1595.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1665.75" y1="135.5" x2="1618.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1665.75" y1="135.5" x2="1648.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1648.25" y1="167.5" x2="1648.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1648.25" y1="199.5" x2="1648.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1665.75" y1="135.5" x2="1677.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1665.75" y1="135.5" x2="1706.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1706.25" y1="167.5" x2="1706.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1706.25" y1="199.5" x2="1706.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1665.75" y1="135.5" x2="1735.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1685.0" y1="71.5" x2="1708.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1685.0" y1="71.5" x2="1751.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1751.75" y1="103.5" x2="1751.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1751.75" y1="135.5" x2="1751.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2877.375" y1="39.5" x2="1905.375" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1905.375" y1="71.5" x2="1799.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1905.375" y1="71.5" x2="1818.0" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1905.375" y1="71.5" x2="1847.0" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1847.0" y1="103.5" x2="1847.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1847.0" y1="135.5" x2="1775.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1847.0" y1="135.5" x2="1798.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1847.0" y1="135.5" x2="1828.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1828.25" y1="167.5" x2="1828.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1828.25" y1="199.5" x2="1828.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1847.0" y1="135.5" x2="1858.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1847.0" y1="135.5" x2="1888.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1888.75" y1="167.5" x2="1888.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1888.75" y1="199.5" x2="1849.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1888.75" y1="199.5" x2="1869.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1888.75" y1="199.5" x2="1898.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1898.75" y1="231.5" x2="1898.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1898.75" y1="263.5" x2="1898.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1888.75" y1="199.5" x2="1928.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1847.0" y1="135.5" x2="1918.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1905.375" y1="71.5" x2="1929.125" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1905.375" y1="71.5" x2="2011.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2011.25" y1="103.5" x2="2011.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2011.25" y1="135.5" x2="1971.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2011.25" y1="135.5" x2="1991.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2011.25" y1="135.5" x2="2021.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2021.25" y1="167.5" x2="2021.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2021.25" y1="199.5" x2="1951.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2021.25" y1="199.5" x2="1974.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2021.25" y1="199.5" x2="2003.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2003.75" y1="231.5" x2="2003.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2003.75" y1="263.5" x2="2003.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2021.25" y1="199.5" x2="2032.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2021.25" y1="199.5" x2="2061.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2061.75" y1="231.5" x2="2061.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2061.75" y1="263.5" x2="2061.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2021.25" y1="199.5" x2="2091.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2011.25" y1="135.5" x2="2050.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2877.375" y1="39.5" x2="2161.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2161.5" y1="71.5" x2="2092.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2161.5" y1="71.5" x2="2111.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2161.5" y1="71.5" x2="2140.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2140.75" y1="103.5" x2="2140.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2140.75" y1="135.5" x2="2071.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2140.75" y1="135.5" x2="2092.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2140.75" y1="135.5" x2="2122.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2122.25" y1="167.5" x2="2122.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2122.25" y1="199.5" x2="2122.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2140.75" y1="135.5" x2="2151.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2140.75" y1="135.5" x2="2180.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2180.25" y1="167.5" x2="2180.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2180.25" y1="199.5" x2="2180.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2140.75" y1="135.5" x2="2209.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2161.5" y1="71.5" x2="2185.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2161.5" y1="71.5" x2="2230.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2230.75" y1="103.5" x2="2230.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2230.75" y1="135.5" x2="2230.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2877.375" y1="39.5" x2="2404.375" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2404.375" y1="71.5" x2="2279.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2404.375" y1="71.5" x2="2299.0" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2404.375" y1="71.5" x2="2328.0" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2328.0" y1="103.5" x2="2328.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2328.0" y1="135.5" x2="2257.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2328.0" y1="135.5" x2="2278.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2328.0" y1="135.5" x2="2308.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2308.25" y1="167.5" x2="2308.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2308.25" y1="199.5" x2="2308.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2328.0" y1="135.5" x2="2338.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2328.0" y1="135.5" x2="2368.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2368.75" y1="167.5" x2="2368.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2368.75" y1="199.5" x2="2329.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2368.75" y1="199.5" x2="2349.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2368.75" y1="199.5" x2="2378.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2378.75" y1="231.5" x2="2378.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2378.75" y1="263.5" x2="2378.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2368.75" y1="199.5" x2="2408.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2328.0" y1="135.5" x2="2398.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2404.375" y1="71.5" x2="2428.625" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2404.375" y1="71.5" x2="2529.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2529.25" y1="103.5" x2="2529.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2529.25" y1="135.5" x2="2445.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2529.25" y1="135.5" x2="2468.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2529.25" y1="135.5" x2="2498.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2498.25" y1="167.5" x2="2498.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2498.25" y1="199.5" x2="2429.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2498.25" y1="199.5" x2="2450.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2498.25" y1="199.5" x2="2479.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2479.75" y1="231.5" x2="2479.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2479.75" y1="263.5" x2="2479.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2498.25" y1="199.5" x2="2508.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2498.25" y1="199.5" x2="2537.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2537.75" y1="231.5" x2="2537.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2537.75" y1="263.5" x2="2537.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2498.25" y1="199.5" x2="2567.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2529.25" y1="135.5" x2="2540.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2529.25" y1="135.5" x2="2583.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2583.25" y1="167.5" x2="2583.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2583.25" y1="199.5" x2="2583.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2529.25" y1="135.5" x2="2612.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2877.375" y1="39.5" x2="2737.625" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2737.625" y1="71.5" x2="2653.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2737.625" y1="71.5" x2="2670.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2737.625" y1="71.5" x2="2699.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2699.75" y1="103.5" x2="2699.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2699.75" y1="135.5" x2="2631.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2699.75" y1="135.5" x2="2650.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2699.75" y1="135.5" x2="2680.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2680.25" y1="167.5" x2="2680.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2680.25" y1="199.5" x2="2680.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2699.75" y1="135.5" x2="2709.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2699.75" y1="135.5" x2="2738.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2738.25" y1="167.5" x2="2738.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2738.25" y1="199.5" x2="2738.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2699.75" y1="135.5" x2="2767.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2737.625" y1="71.5" x2="2760.875" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2737.625" y1="71.5" x2="2822.0" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2822.0" y1="103.5" x2="2822.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2822.0" y1="135.5" x2="2784.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2822.0" y1="135.5" x2="2800.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2822.0" y1="135.5" x2="2830.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2830.25" y1="167.5" x2="2830.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2830.25" y1="199.5" x2="2830.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2822.0" y1="135.5" x2="2859.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2877.375" y1="39.5" x2="3013.625" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3013.625" y1="71.5" x2="2900.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3013.625" y1="71.5" x2="2917.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3013.625" y1="71.5" x2="2946.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2946.75" y1="103.5" x2="2946.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2946.75" y1="135.5" x2="2878.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2946.75" y1="135.5" x2="2897.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2946.75" y1="135.5" x2="2927.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2927.25" y1="167.5" x2="2927.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2927.25" y1="199.5" x2="2927.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2946.75" y1="135.5" x2="2956.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2946.75" y1="135.5" x2="2985.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2985.25" y1="167.5" x2="2985.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2985.25" y1="199.5" x2="2947.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2985.25" y1="199.5" x2="2964.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2985.25" y1="199.5" x2="2993.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2993.5" y1="231.5" x2="2993.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2993.5" y1="263.5" x2="2993.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2985.25" y1="199.5" x2="3023.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2946.75" y1="135.5" x2="3014.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3013.625" y1="71.5" x2="3036.875" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3013.625" y1="71.5" x2="3127.0" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3127.0" y1="103.5" x2="3127.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3127.0" y1="135.5" x2="3031.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3127.0" y1="135.5" x2="3047.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3127.0" y1="135.5" x2="3077.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3077.25" y1="167.5" x2="3077.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3077.25" y1="199.5" x2="3077.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3127.0" y1="135.5" x2="3106.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3127.0" y1="135.5" x2="3135.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3135.25" y1="167.5" x2="3135.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3135.25" y1="199.5" x2="3135.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3127.0" y1="135.5" x2="3164.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3127.0" y1="135.5" x2="3193.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3193.25" y1="167.5" x2="3193.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3193.25" y1="199.5" x2="3155.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3193.25" y1="199.5" x2="3172.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3193.25" y1="199.5" x2="3201.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3201.5" y1="231.5" x2="3201.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3201.5" y1="263.5" x2="3201.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3193.25" y1="199.5" x2="3231.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3127.0" y1="135.5" x2="3222.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2877.375" y1="39.5" x2="3436.3125" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3436.3125" y1="71.5" x2="3290.875" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3436.3125" y1="71.5" x2="3308.375" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3436.3125" y1="71.5" x2="3337.375" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3337.375" y1="103.5" x2="3337.375" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3337.375" y1="135.5" x2="3241.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3337.375" y1="135.5" x2="3260.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3337.375" y1="135.5" x2="3290.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3290.25" y1="167.5" x2="3290.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3290.25" y1="199.5" x2="3290.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3337.375" y1="135.5" x2="3346.875" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3337.375" y1="135.5" x2="3403.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3403.5" y1="167.5" x2="3403.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3403.5" y1="199.5" x2="3307.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3403.5" y1="199.5" x2="3324.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3403.5" y1="199.5" x2="3353.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3353.75" y1="231.5" x2="3353.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3353.75" y1="263.5" x2="3353.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3403.5" y1="199.5" x2="3382.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3403.5" y1="199.5" x2="3411.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3411.75" y1="231.5" x2="3411.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3411.75" y1="263.5" x2="3411.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3403.5" y1="199.5" x2="3440.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3403.5" y1="199.5" x2="3469.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3469.75" y1="231.5" x2="3469.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3469.75" y1="263.5" x2="3469.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3403.5" y1="199.5" x2="3499.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3337.375" y1="135.5" x2="3433.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3436.3125" y1="71.5" x2="3459.5625" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3436.3125" y1="71.5" x2="3581.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3581.75" y1="103.5" x2="3581.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3581.75" y1="135.5" x2="3470.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3581.75" y1="135.5" x2="3486.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3581.75" y1="135.5" x2="3516.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3516.25" y1="167.5" x2="3516.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3516.25" y1="199.5" x2="3516.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3581.75" y1="135.5" x2="3545.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3581.75" y1="135.5" x2="3574.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3574.25" y1="167.5" x2="3574.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3574.25" y1="199.5" x2="3574.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3581.75" y1="135.5" x2="3619.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3581.75" y1="135.5" x2="3663.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3663.75" y1="167.5" x2="3663.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3663.75" y1="199.5" x2="3595.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3663.75" y1="199.5" x2="3614.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3663.75" y1="199.5" x2="3644.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3644.25" y1="231.5" x2="3644.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3644.25" y1="263.5" x2="3644.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3663.75" y1="199.5" x2="3673.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3663.75" y1="199.5" x2="3702.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3702.25" y1="231.5" x2="3702.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3702.25" y1="263.5" x2="3702.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3663.75" y1="199.5" x2="3731.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3581.75" y1="135.5" x2="3693.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2877.375" y1="39.5" x2="3764.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3764.5" y1="71.5" x2="3709.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3764.5" y1="71.5" x2="3728.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3764.5" y1="71.5" x2="3757.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3757.25" y1="103.5" x2="3757.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3757.25" y1="135.5" x2="3716.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3757.25" y1="135.5" x2="3739.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3757.25" y1="135.5" x2="3768.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3768.75" y1="167.5" x2="3768.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3768.75" y1="199.5" x2="3768.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3757.25" y1="135.5" x2="3798.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3764.5" y1="71.5" x2="3788.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3764.5" y1="71.5" x2="3819.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3819.25" y1="103.5" x2="3819.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3819.25" y1="135.5" x2="3819.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2877.375" y1="39.5" x2="3907.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3907.0" y1="71.5" x2="3852.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3907.0" y1="71.5" x2="3871.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3907.0" y1="71.5" x2="3900.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3900.25" y1="103.5" x2="3900.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3900.25" y1="135.5" x2="3859.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3900.25" y1="135.5" x2="3882.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3900.25" y1="135.5" x2="3911.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3911.75" y1="167.5" x2="3911.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3911.75" y1="199.5" x2="3874.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3911.75" y1="199.5" x2="3890.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3911.75" y1="199.5" x2="3920.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3920.0" y1="231.5" x2="3920.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3920.0" y1="263.5" x2="3920.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3911.75" y1="199.5" x2="3949.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3900.25" y1="135.5" x2="3941.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3907.0" y1="71.5" x2="3930.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3907.0" y1="71.5" x2="3961.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3961.25" y1="103.5" x2="3961.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3961.25" y1="135.5" x2="3961.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2877.375" y1="39.5" x2="4111.75" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4111.75" y1="71.5" x2="4002.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4111.75" y1="71.5" x2="4021.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4111.75" y1="71.5" x2="4050.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4050.25" y1="103.5" x2="4050.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4050.25" y1="135.5" x2="4009.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4050.25" y1="135.5" x2="4032.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4050.25" y1="135.5" x2="4061.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4061.75" y1="167.5" x2="4061.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4061.75" y1="199.5" x2="3966.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4061.75" y1="199.5" x2="3982.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4061.75" y1="199.5" x2="4012.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4012.0" y1="231.5" x2="4012.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4012.0" y1="263.5" x2="4012.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4061.75" y1="199.5" x2="4041.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4061.75" y1="199.5" x2="4070.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4070.0" y1="231.5" x2="4070.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4070.0" y1="263.5" x2="4070.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4061.75" y1="199.5" x2="4099.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4061.75" y1="199.5" x2="4128.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4128.0" y1="231.5" x2="4128.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4128.0" y1="263.5" x2="4128.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4061.75" y1="199.5" x2="4157.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4050.25" y1="135.5" x2="4091.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4111.75" y1="71.5" x2="4135.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4111.75" y1="71.5" x2="4220.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4220.75" y1="103.5" x2="4220.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4220.75" y1="135.5" x2="4121.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4220.75" y1="135.5" x2="4144.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4220.75" y1="135.5" x2="4173.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4173.5" y1="167.5" x2="4173.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4173.5" y1="199.5" x2="4173.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4220.75" y1="135.5" x2="4232.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4220.75" y1="135.5" x2="4291.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4291.0" y1="167.5" x2="4291.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4291.0" y1="199.5" x2="4197.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4291.0" y1="199.5" x2="4220.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4291.0" y1="199.5" x2="4250.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4250.0" y1="231.5" x2="4250.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4250.0" y1="263.5" x2="4209.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4250.0" y1="263.5" x2="4232.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4250.0" y1="263.5" x2="4261.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4261.5" y1="295.5" x2="4261.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4261.5" y1="327.5" x2="4261.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4250.0" y1="263.5" x2="4291.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4291.0" y1="199.5" x2="4302.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4291.0" y1="199.5" x2="4355.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4355.0" y1="231.5" x2="4355.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4355.0" y1="263.5" x2="4314.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4355.0" y1="263.5" x2="4337.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4355.0" y1="263.5" x2="4366.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4366.5" y1="295.5" x2="4366.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4366.5" y1="327.5" x2="4366.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4355.0" y1="263.5" x2="4396.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4291.0" y1="199.5" x2="4384.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4220.75" y1="135.5" x2="4320.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<rect x="2715.75" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2717" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3429.0" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3431" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3724.75" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3726" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1192.75" y="128.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1194" y="137" style="font-family:sans-serif;font-size:10px;"> +NatTree +</text> +<rect x="4007.0" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4009" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="753.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="755" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="2505.25" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2507" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="80.0" y="64.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="82" y="73" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="511.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="513" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="3103.0" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3105" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1992.75" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1994" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3320.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3322" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3945.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3947" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="927.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="929" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="2320.25" y="224.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2322" y="233" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1629.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1631" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2446.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2448" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1791.5" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1793" y="105" style="font-family:sans-serif;font-size:10px;"> +p1 +</text> +<rect x="1516.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1518" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="752.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="754" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1823.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1825" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="4063.5" y="288.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4065" y="297" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="3878.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3880" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1731.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1733" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1746.75" y="160.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1748" y="169" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="2295.5" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2297" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="2798.0" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2800" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="4392.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4394" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1449.125" y="32.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1451" y="41" style="font-family:sans-serif;font-size:10px;"> +vars +</text> +<rect x="1729.25" y="128.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1731" y="137" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="4302.0" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4304" y="297" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="3510.25" y="224.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3512" y="233" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="2433.75" y="160.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2435" y="169" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="4140.0" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4142" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3689.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3691" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="835.25" y="96.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="837" y="105" style="font-family:sans-serif;font-size:10px;"> +-> +</text> +<rect x="857.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="859" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="3227.0" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3229" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1128.25" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1130" y="105" style="font-family:sans-serif;font-size:10px;"> +>< +</text> +<rect x="4216.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4218" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3183.0" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3185" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1307.25" y="96.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1309" y="105" style="font-family:sans-serif;font-size:10px;"> +-> +</text> +<rect x="2855.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2857" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1870.25" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1872" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2997.625" y="64.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2999" y="73" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="3610.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3612" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3031.875" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3033" y="105" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="3625.75" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3627" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3901.5" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3903" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3463.25" y="288.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3465" y="297" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="2046.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2048" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1794.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1796" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3054.75" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3056" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="4130.5" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4132" y="105" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="2479.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2481" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2811.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2813" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3493.75" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3495" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2942.0" y="224.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2944" y="233" style="font-family:sans-serif;font-size:10px;"> +B +</text> +<rect x="3956.25" y="160.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3958" y="169" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="574.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="576" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="2344.75" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2346" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="667.75" y="128.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="669" y="137" style="font-family:sans-serif;font-size:10px;"> +NatTree +</text> +<rect x="367.25" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="369" y="105" style="font-family:sans-serif;font-size:10px;"> +E +</text> +<rect x="4272.5" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4274" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="37.5" y="96.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="39" y="105" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="218.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="220" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="2803.5" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2805" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3256.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3258" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1880.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1882" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2147.75" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2149" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2755.875" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2757" y="105" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="3331.25" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3333" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="501.75" y="128.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="503" y="137" style="font-family:sans-serif;font-size:10px;"> +NatTree +</text> +<rect x="3679.75" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3681" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3794.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3796" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1263.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1265" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="3867.75" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3869" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="247.25" y="96.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="249" y="105" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="3116.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3118" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3160.75" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3162" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3271.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3273" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3302.25" y="224.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3304" y="233" style="font-family:sans-serif;font-size:10px;"> +N +</text> +<rect x="3989.5" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3991" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1970.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1972" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="4095.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4097" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3994.75" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3996" y="105" style="font-family:sans-serif;font-size:10px;"> +s2 +</text> +<rect x="3130.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3132" y="233" style="font-family:sans-serif;font-size:10px;"> +E +</text> +<rect x="3168.0" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3170" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1438.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1440" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="626.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="628" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="2858.375" y="32.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2860" y="41" style="font-family:sans-serif;font-size:10px;"> +axioms +</text> +<rect x="985.75" y="32.0" width="55.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="987" y="41" style="font-family:sans-serif;font-size:10px;"> +operations +</text> +<rect x="2966.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2968" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3800.75" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3802" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2161.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2163" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1141.75" y="128.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1143" y="137" style="font-family:sans-serif;font-size:10px;"> +NatTree +</text> +<rect x="1010.25" y="96.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1012" y="105" style="font-family:sans-serif;font-size:10px;"> +-> +</text> +<rect x="2763.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2765" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3482.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3484" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3701.75" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3703" y="105" style="font-family:sans-serif;font-size:10px;"> +s0 +</text> +<rect x="805.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="807" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1329.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1331" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="2274.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2276" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3669.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3671" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3405.25" y="288.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3407" y="297" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="2563.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2565" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2039.25" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2041" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1924.125" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1926" y="105" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="1502.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1504" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="3639.25" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3641" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="4202.25" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4204" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2304.0" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2306" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="4155.0" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4157" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="603.25" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="605" y="105" style="font-family:sans-serif;font-size:10px;"> +>< +</text> +<rect x="656.25" y="96.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="658" y="105" style="font-family:sans-serif;font-size:10px;"> +-> +</text> +<rect x="1232.25" y="96.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1234" y="105" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="1703.75" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1705" y="105" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="4095.75" y="64.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4097" y="73" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="3420.3125" y="64.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3422" y="73" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="2961.25" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2963" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3150.0" y="224.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3152" y="233" style="font-family:sans-serif;font-size:10px;"> +B +</text> +<rect x="1610.25" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1612" y="105" style="font-family:sans-serif;font-size:10px;"> +p0 +</text> +<rect x="2464.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2466" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="286.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="288" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="36.0" y="64.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="38" y="73" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1763.75" y="160.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1765" y="169" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="3915.0" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3917" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="3174.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3176" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3541.75" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3543" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2212.25" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2214" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3733.25" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3735" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1267.75" y="128.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1269" y="137" style="font-family:sans-serif;font-size:10px;"> +NatTree +</text> +<rect x="1987.25" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1989" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1998.75" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2000" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="2893.25" y="96.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2895" y="105" style="font-family:sans-serif;font-size:10px;"> +r1 +</text> +<rect x="1643.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1645" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="3233.75" y="160.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3235" y="169" style="font-family:sans-serif;font-size:10px;"> +inr +</text> +<rect x="3567.75" y="224.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3569" y="233" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="2908.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2910" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3283.875" y="96.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3285" y="105" style="font-family:sans-serif;font-size:10px;"> +r2 +</text> +<rect x="2564.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2566" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2623.75" y="160.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2625" y="169" style="font-family:sans-serif;font-size:10px;"> +inr +</text> +<rect x="2825.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2827" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="338.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="340" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="981.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="983" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="1117.0" y="64.0" width="49.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1119" y="73" style="font-family:sans-serif;font-size:10px;"> +operation +</text> +<rect x="593.25" y="64.0" width="49.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="595" y="73" style="font-family:sans-serif;font-size:10px;"> +operation +</text> +<rect x="1536.75" y="64.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1538" y="73" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="4239.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4241" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1864.75" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1866" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1876.25" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1878" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2103.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2105" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="384.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="386" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="3551.75" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3553" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3019.0" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3021" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="738.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="740" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="2345.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2347" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="616.75" y="128.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="618" y="137" style="font-family:sans-serif;font-size:10px;"> +NatTree +</text> +<rect x="1419.25" y="96.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1421" y="105" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="1840.25" y="224.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1842" y="233" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1865.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1867" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="707.25" y="96.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="709" y="105" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="2289.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2291" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3897.5" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3899" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1647.25" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1649" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2061.75" y="160.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2063" y="169" style="font-family:sans-serif;font-size:10px;"> +mal +</text> +<rect x="2356.25" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2358" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="980.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="982" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="2952.75" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2954" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3639.75" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3641" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3108.5" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3110" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3196.5" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3198" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="769.0" y="64.0" width="49.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="771" y="73" style="font-family:sans-serif;font-size:10px;"> +operation +</text> +<rect x="4105.5" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4107" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1061.25" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1063" y="105" style="font-family:sans-serif;font-size:10px;"> +inr +</text> +<rect x="3010.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3012" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="541.25" y="96.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="543" y="105" style="font-family:sans-serif;font-size:10px;"> +N +</text> +<rect x="573.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="575" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1566.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1568" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="3318.875" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3320" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3555.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3557" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2088.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2090" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3727.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3729" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3891.0" y="64.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3893" y="73" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="856.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="858" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="66.0" y="64.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="68" y="73" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2960.0" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2962" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3738.75" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3740" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3335.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3337" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1453.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1455" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="2419.25" y="224.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2421" y="233" style="font-family:sans-serif;font-size:10px;"> +mal +</text> +<rect x="2515.25" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2517" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2646.25" y="96.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2648" y="105" style="font-family:sans-serif;font-size:10px;"> +r0 +</text> +<rect x="1624.0" y="64.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1626" y="73" style="font-family:sans-serif;font-size:10px;"> +axioms +</text> +<rect x="4299.0" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4301" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2537.25" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2539" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="677.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="679" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="2893.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2895" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3997.25" y="160.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3999" y="169" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="1985.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1987" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3763.75" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3765" y="233" style="font-family:sans-serif;font-size:10px;"> +E +</text> +<rect x="3437.25" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3439" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2270.5" y="96.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2272" y="105" style="font-family:sans-serif;font-size:10px;"> +m1 +</text> +<rect x="3868.5" y="224.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3870" y="233" style="font-family:sans-serif;font-size:10px;"> +B +</text> +<rect x="4037.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4039" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="4121.5" y="288.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4123" y="297" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="4331.0" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4333" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="203.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="205" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="4109.5" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4111" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3645.25" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3647" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2116.75" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2118" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="4153.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4155" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="945.0" y="64.0" width="49.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="947" y="73" style="font-family:sans-serif;font-size:10px;"> +operation +</text> +<rect x="1202.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1204" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="3043.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3045" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3876.25" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3878" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1914.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1916" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3112.75" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3114" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3748.5" y="64.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3750" y="73" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="4017.75" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4019" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="806.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="808" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="1583.75" y="160.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1585" y="169" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="2423.625" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2425" y="105" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="2675.75" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2677" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3683.75" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3685" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1614.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1616" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2309.5" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2311" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1372.0" y="64.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1374" y="73" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="1892.75" y="288.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1894" y="297" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="38.5" y="32.0" width="29.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="40" y="41" style="font-family:sans-serif;font-size:10px;"> +sorts +</text> +<rect x="3169.25" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3171" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="176.25" y="96.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="178" y="105" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="1452.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1454" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="3389.25" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3391" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1570.75" y="128.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1572" y="137" style="font-family:sans-serif;font-size:10px;"> +NatTree +</text> +<rect x="2778.75" y="160.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2780" y="169" style="font-family:sans-serif;font-size:10px;"> +B +</text> +<rect x="2870.75" y="160.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2872" y="169" style="font-family:sans-serif;font-size:10px;"> +inr +</text> +<rect x="4037.75" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4039" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3495.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3497" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3942.75" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3944" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2646.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2648" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1277.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1279" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="4333.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4335" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1987.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1989" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1855.0" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1857" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="461.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="463" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="1733.25" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1735" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="4043.25" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4045" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3497.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3499" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1409.75" y="64.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1411" y="73" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3960.5" y="224.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3962" y="233" style="font-family:sans-serif;font-size:10px;"> +N +</text> +<rect x="1683.75" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1685" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3796.75" y="128.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3798" y="137" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3887.75" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3889" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2705.75" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2707" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="183.0" y="64.0" width="49.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="185" y="73" style="font-family:sans-serif;font-size:10px;"> +operation +</text> +<rect x="2510.75" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2512" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2531.75" y="288.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2533" y="297" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="3393.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3395" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="4026.25" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4028" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1997.25" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1999" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="4243.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4245" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="70.5" y="96.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="72" y="105" style="font-family:sans-serif;font-size:10px;"> +NatTree +</text> +<rect x="3447.25" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3449" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="4226.0" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4228" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="287.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="289" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="3313.375" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3315" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2117.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2119" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="2303.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2305" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="3464.75" y="160.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3466" y="169" style="font-family:sans-serif;font-size:10px;"> +N +</text> +<rect x="2394.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2396" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3893.25" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3895" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2335.0" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2337" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2099.75" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2101" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1339.0" y="64.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1341" y="73" style="font-family:sans-serif;font-size:10px;"> +vars +</text> +<rect x="1625.75" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1627" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="490.25" y="96.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="492" y="105" style="font-family:sans-serif;font-size:10px;"> +-> +</text> +<rect x="316.25" y="96.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="318" y="105" style="font-family:sans-serif;font-size:10px;"> +-> +</text> +<rect x="1472.875" y="64.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1474" y="73" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3454.5625" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3456" y="105" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="3304.875" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3306" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="4228.75" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4230" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1358.25" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1360" y="105" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="428.25" y="96.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="430" y="105" style="font-family:sans-serif;font-size:10px;"> +B +</text> +<rect x="2087.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2089" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="4348.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4350" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3451.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3453" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2721.625" y="64.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2723" y="73" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="3267.75" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3269" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1151.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1153" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1939.25" y="224.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1941" y="233" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="707.0" y="64.0" width="55.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="709" y="73" style="font-family:sans-serif;font-size:10px;"> +operations +</text> +<rect x="2029.25" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2031" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="4087.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4089" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1633.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1635" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="3937.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3939" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2922.75" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2924" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3379.25" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3381" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="0.0" y="64.0" width="29.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2" y="73" style="font-family:sans-serif;font-size:10px;"> +sorts +</text> +<rect x="3783.25" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3785" y="105" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="2975.0" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2977" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="446.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="448" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1696.25" y="224.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1698" y="233" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="1181.25" y="96.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1183" y="105" style="font-family:sans-serif;font-size:10px;"> +-> +</text> +<rect x="2247.75" y="160.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2249" y="169" style="font-family:sans-serif;font-size:10px;"> +mal +</text> +<rect x="4255.0" y="352.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4257" y="361" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="3844.75" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3846" y="105" style="font-family:sans-serif;font-size:10px;"> +s1 +</text> +<rect x="4231.5" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4233" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3750.25" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3752" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="4047.5" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4049" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2505.25" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2507" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="886.25" y="96.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="888" y="105" style="font-family:sans-serif;font-size:10px;"> +mal +</text> +<rect x="913.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="915" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="928.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="930" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="1823.0" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1825" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1562.25" y="64.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1564" y="73" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="2180.75" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2182" y="105" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="1546.25" y="96.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1548" y="105" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="2719.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2721" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2157.75" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2159" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2796.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2798" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3557.75" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3559" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1328.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1330" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="2661.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2663" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="460.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="462" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="2220.75" y="160.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2222" y="169" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="1962.75" y="160.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1964" y="169" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="3058.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3060" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3735.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3737" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1580.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1582" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="3621.75" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3623" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="388.75" y="128.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="390" y="137" style="font-family:sans-serif;font-size:10px;"> +NatTree +</text> +<rect x="2122.25" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2124" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3993.5" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3995" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3938.75" y="128.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3940" y="137" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1098.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1100" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1099.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1101" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="2519.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2521" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1482.25" y="96.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1484" y="105" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="1434.5" y="64.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1436" y="73" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="4031.75" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4033" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2675.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2677" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="4360.0" y="352.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4362" y="361" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="2474.25" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2476" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="110.0" y="64.0" width="66.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="112" y="73" style="font-family:sans-serif;font-size:10px;"> +constructors +</text> +<rect x="1084.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1086" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="2083.25" y="96.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2085" y="105" style="font-family:sans-serif;font-size:10px;"> +m0 +</text> +<rect x="3025.75" y="160.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3027" y="169" style="font-family:sans-serif;font-size:10px;"> +N +</text> +<rect x="4196.75" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4198" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="398.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="400" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="2108.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2110" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="3379.5" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3381" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="559.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="561" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="3809.25" y="160.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3811" y="169" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="1809.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1811" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2055.75" y="288.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2057" y="297" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="2807.75" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2809" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3615.5" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3617" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2350.25" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2352" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="4267.0" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4269" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3347.75" y="288.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3349" y="297" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="3746.25" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3748" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1267.5" y="64.0" width="49.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1269" y="73" style="font-family:sans-serif;font-size:10px;"> +operation +</text> +<rect x="2987.5" y="288.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2989" y="297" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="3071.25" y="224.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3073" y="233" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="1506.75" y="128.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1508" y="137" style="font-family:sans-serif;font-size:10px;"> +NatTree +</text> +<rect x="2205.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2207" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2404.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2406" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2608.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2610" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="4380.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4382" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2971.0" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2973" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2043.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2045" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2285.75" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2287" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1375.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1377" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="4197.0" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4199" y="297" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="2681.25" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2683" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2657.75" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2659" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2002.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2004" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2145.5" y="64.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2147" y="73" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="782.25" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="784" y="105" style="font-family:sans-serif;font-size:10px;"> +>< +</text> +<rect x="1889.375" y="64.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1891" y="73" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="4051.5" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4053" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1390.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1392" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="1687.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1689" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2904.75" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2906" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1032.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1034" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="1498.25" y="64.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1500" y="73" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="272.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="274" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="3343.375" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3345" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3695.75" y="288.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3697" y="297" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="3881.75" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3883" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2360.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2362" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3886.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3888" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1673.75" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1675" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3847.25" y="160.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3849" y="169" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="347.375" y="32.0" width="66.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="349" y="41" style="font-family:sans-serif;font-size:10px;"> +constructors +</text> +<rect x="1455.6875" y="0.0" width="19.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1457" y="9" style="font-family:sans-serif;font-size:10px;"> +adt +</text> +<rect x="2474.75" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2476" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="2928.25" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2930" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2733.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2735" y="233" style="font-family:sans-serif;font-size:10px;"> +E +</text> +<rect x="3978.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3980" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1641.75" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1643" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2208.25" y="128.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2210" y="137" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3704.25" y="160.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3706" y="169" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="2578.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2580" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="3925.75" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3927" y="105" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="2667.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2669" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="2372.75" y="288.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2374" y="297" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="4028.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4030" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2914.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2916" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="4228.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4230" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="957.25" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="959" y="105" style="font-family:sans-serif;font-size:10px;"> +>< +</text> +<rect x="4344.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4346" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1828.5" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1830" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1805.75" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1807" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3563.25" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3565" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2170.25" y="224.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2172" y="233" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="4336.5" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4338" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2560.75" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2562" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1031.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1033" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="4109.0" y="160.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4111" y="169" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="4316.5" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4318" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="337.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="339" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1669.0" y="64.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1671" y="73" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="2922.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2924" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1981.25" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1983" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3385.0" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3387" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="278.0" y="64.0" width="49.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="280" y="73" style="font-family:sans-serif;font-size:10px;"> +operation +</text> +<rect x="453.75" y="64.0" width="49.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="455" y="73" style="font-family:sans-serif;font-size:10px;"> +operation +</text> +<rect x="4168.5" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4170" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1924.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1926" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3179.0" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3181" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="217.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="219" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="366.5" y="64.0" width="49.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="368" y="73" style="font-family:sans-serif;font-size:10px;"> +operation +</text> +<rect x="1814.5" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1816" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="2388.375" y="64.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2390" y="73" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="4151.0" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4153" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="4185.5" y="224.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4187" y="233" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="3587.75" y="224.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3589" y="233" style="font-family:sans-serif;font-size:10px;"> +inr +</text> +<rect x="2457.25" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2459" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3285.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3287" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="3102.75" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3104" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3218.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3220" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1389.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1391" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="4287.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4289" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2461.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2463" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +</svg> \ No newline at end of file diff --git a/ANTRL-Grammatiken/ADT/ADT_Bsp_NatTree.txt b/ANTRL-Grammatiken/ADT/ADT_Bsp_NatTree.txt new file mode 100644 index 0000000000000000000000000000000000000000..0db31bc8b4ead4126f7de814388876e72e6fb719 --- /dev/null +++ b/ANTRL-Grammatiken/ADT/ADT_Bsp_NatTree.txt @@ -0,0 +1,21 @@ +sorts Nat, NatTree +constructors null: Nat + inc : Nat -> Nat + E: NatTree + B: Nat -> NatTree + N: Nat >< NatTree -> NatTree +operations plus: Nat >< Nat -> Nat + mal: Nat >< Nat -> Nat + inr: Nat >< NatTree -> NatTree + sum: NatTree -> Nat +vars n : Nat, m : Nat, t1 : NatTree, t2 : NatTree +axioms p0: plus(n,null) = n + p1: plus(n,inc(m)) = inc(plus(n,m)) + m0: mal(n,null) = null + m1: mal(n,inc(m)) = plus(mal(n,m),n) + r0: inr(n,E) = B(n) + r1: inr(n,B(m)) = N(m,E,B(n)) + r2: inr(n,N(m,t1,t2)) = N(m,t1,inr(n,t2)) + s0: sum(E) = null + s1: sum(B(n)) = n + s2: sum(N(n,t1,t2)) = plus(n,plus(sum(t1),sum(t2))) \ No newline at end of file diff --git a/ANTRL-Grammatiken/ADT/ADT_Bsp_Peano.svg b/ANTRL-Grammatiken/ADT/ADT_Bsp_Peano.svg new file mode 100644 index 0000000000000000000000000000000000000000..f06fb71d3353a06b902f05522c7b38337ddbc4a1 --- /dev/null +++ b/ANTRL-Grammatiken/ADT/ADT_Bsp_Peano.svg @@ -0,0 +1,900 @@ +<svg width="2305.6000000000004" height="832.7" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><line x1="672.8125" y1="7.5" x2="34.5" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="34.5" y1="39.5" x2="15.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="34.5" y1="39.5" x2="54.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="672.8125" y1="7.5" x2="109.0" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="109.0" y1="39.5" x2="92.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="109.0" y1="39.5" x2="125.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="125.5" y1="71.5" x2="125.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="672.8125" y1="7.5" x2="260.5" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="260.5" y1="39.5" x2="177.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="260.5" y1="39.5" x2="241.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="241.5" y1="71.5" x2="220.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="241.5" y1="71.5" x2="240.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="241.5" y1="71.5" x2="262.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="262.75" y1="103.5" x2="262.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="260.5" y1="39.5" x2="344.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="344.0" y1="71.5" x2="295.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="344.0" y1="71.5" x2="319.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="344.0" y1="71.5" x2="341.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="341.75" y1="103.5" x2="341.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="344.0" y1="71.5" x2="367.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="344.0" y1="71.5" x2="392.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="392.75" y1="103.5" x2="392.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="672.8125" y1="7.5" x2="556.0" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="556.0" y1="39.5" x2="438.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="556.0" y1="39.5" x2="497.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="497.5" y1="71.5" x2="423.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="497.5" y1="71.5" x2="445.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="497.5" y1="71.5" x2="467.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="467.75" y1="103.5" x2="467.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="497.5" y1="71.5" x2="494.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="497.5" y1="71.5" x2="520.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="520.75" y1="103.5" x2="520.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="497.5" y1="71.5" x2="546.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="497.5" y1="71.5" x2="571.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="571.75" y1="103.5" x2="571.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="556.0" y1="39.5" x2="673.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="673.5" y1="71.5" x2="600.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="673.5" y1="71.5" x2="620.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="673.5" y1="71.5" x2="642.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="642.75" y1="103.5" x2="642.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="673.5" y1="71.5" x2="669.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="673.5" y1="71.5" x2="695.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="695.75" y1="103.5" x2="695.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="673.5" y1="71.5" x2="721.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="673.5" y1="71.5" x2="746.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="746.75" y1="103.5" x2="746.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="672.8125" y1="7.5" x2="805.25" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="805.25" y1="39.5" x2="759.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="805.25" y1="39.5" x2="789.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="789.0" y1="71.5" x2="770.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="789.0" y1="71.5" x2="785.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="789.0" y1="71.5" x2="807.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="807.75" y1="103.5" x2="807.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="805.25" y1="39.5" x2="820.25" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="805.25" y1="39.5" x2="851.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="851.5" y1="71.5" x2="832.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="851.5" y1="71.5" x2="848.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="851.5" y1="71.5" x2="870.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="870.75" y1="103.5" x2="870.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="672.8125" y1="7.5" x2="1311.125" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1311.125" y1="39.5" x2="922.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1311.125" y1="39.5" x2="964.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="964.0" y1="71.5" x2="897.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="964.0" y1="71.5" x2="915.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="964.0" y1="71.5" x2="944.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="944.75" y1="103.5" x2="944.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="944.75" y1="135.5" x2="874.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="944.75" y1="135.5" x2="897.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="944.75" y1="135.5" x2="927.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="927.25" y1="167.5" x2="927.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="927.25" y1="199.5" x2="927.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="944.75" y1="135.5" x2="956.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="944.75" y1="135.5" x2="985.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="985.25" y1="167.5" x2="985.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="985.25" y1="199.5" x2="985.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="944.75" y1="135.5" x2="1014.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="964.0" y1="71.5" x2="987.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="964.0" y1="71.5" x2="1030.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1030.75" y1="103.5" x2="1030.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1030.75" y1="135.5" x2="1030.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1311.125" y1="39.5" x2="1190.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1190.0" y1="71.5" x2="1082.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1190.0" y1="71.5" x2="1100.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1190.0" y1="71.5" x2="1129.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1129.75" y1="103.5" x2="1129.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1129.75" y1="135.5" x2="1054.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1129.75" y1="135.5" x2="1077.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1129.75" y1="135.5" x2="1107.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1107.25" y1="167.5" x2="1107.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1107.25" y1="199.5" x2="1107.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1129.75" y1="135.5" x2="1141.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1129.75" y1="135.5" x2="1175.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1175.25" y1="167.5" x2="1175.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1175.25" y1="199.5" x2="1133.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1175.25" y1="199.5" x2="1158.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1175.25" y1="199.5" x2="1187.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1187.75" y1="231.5" x2="1187.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1187.75" y1="263.5" x2="1187.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1175.25" y1="199.5" x2="1217.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1129.75" y1="135.5" x2="1204.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1190.0" y1="71.5" x2="1213.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1190.0" y1="71.5" x2="1297.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1297.75" y1="103.5" x2="1297.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1297.75" y1="135.5" x2="1255.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1297.75" y1="135.5" x2="1280.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1297.75" y1="135.5" x2="1310.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1310.25" y1="167.5" x2="1310.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1310.25" y1="199.5" x2="1240.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1310.25" y1="199.5" x2="1263.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1310.25" y1="199.5" x2="1292.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1292.75" y1="231.5" x2="1292.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1292.75" y1="263.5" x2="1292.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1310.25" y1="199.5" x2="1321.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1310.25" y1="199.5" x2="1350.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1350.75" y1="231.5" x2="1350.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1350.75" y1="263.5" x2="1350.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1310.25" y1="199.5" x2="1380.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1297.75" y1="135.5" x2="1339.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1311.125" y1="39.5" x2="1450.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1450.5" y1="71.5" x2="1381.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1450.5" y1="71.5" x2="1400.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1450.5" y1="71.5" x2="1429.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1429.75" y1="103.5" x2="1429.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1429.75" y1="135.5" x2="1360.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1429.75" y1="135.5" x2="1381.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1429.75" y1="135.5" x2="1411.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1411.25" y1="167.5" x2="1411.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1411.25" y1="199.5" x2="1411.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1429.75" y1="135.5" x2="1440.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1429.75" y1="135.5" x2="1469.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1469.25" y1="167.5" x2="1469.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1469.25" y1="199.5" x2="1469.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1429.75" y1="135.5" x2="1498.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1450.5" y1="71.5" x2="1474.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1450.5" y1="71.5" x2="1519.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1519.75" y1="103.5" x2="1519.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1519.75" y1="135.5" x2="1519.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1311.125" y1="39.5" x2="1700.25" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1700.25" y1="71.5" x2="1572.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1700.25" y1="71.5" x2="1591.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1700.25" y1="71.5" x2="1620.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1620.75" y1="103.5" x2="1620.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1620.75" y1="135.5" x2="1546.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1620.75" y1="135.5" x2="1567.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1620.75" y1="135.5" x2="1597.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1597.25" y1="167.5" x2="1597.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1597.25" y1="199.5" x2="1597.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1620.75" y1="135.5" x2="1631.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1620.75" y1="135.5" x2="1665.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1665.25" y1="167.5" x2="1665.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1665.25" y1="199.5" x2="1623.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1665.25" y1="199.5" x2="1648.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1665.25" y1="199.5" x2="1677.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1677.75" y1="231.5" x2="1677.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1677.75" y1="263.5" x2="1677.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1665.25" y1="199.5" x2="1707.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1620.75" y1="135.5" x2="1694.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1700.25" y1="71.5" x2="1724.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1700.25" y1="71.5" x2="1828.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1828.25" y1="103.5" x2="1828.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1828.25" y1="135.5" x2="1744.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1828.25" y1="135.5" x2="1767.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1828.25" y1="135.5" x2="1797.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1797.25" y1="167.5" x2="1797.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1797.25" y1="199.5" x2="1728.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1797.25" y1="199.5" x2="1749.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1797.25" y1="199.5" x2="1778.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1778.75" y1="231.5" x2="1778.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1778.75" y1="263.5" x2="1778.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1797.25" y1="199.5" x2="1807.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1797.25" y1="199.5" x2="1836.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1836.75" y1="231.5" x2="1836.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1836.75" y1="263.5" x2="1836.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1797.25" y1="199.5" x2="1866.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1828.25" y1="135.5" x2="1839.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1828.25" y1="135.5" x2="1882.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1882.25" y1="167.5" x2="1882.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1882.25" y1="199.5" x2="1882.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1828.25" y1="135.5" x2="1911.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<rect x="1156.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1158" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1578.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1580" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="114.0" y="64.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="116" y="73" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1097.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1099" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="797.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="799" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="78.0" y="64.0" width="29.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="80" y="73" style="font-family:sans-serif;font-size:10px;"> +sorts +</text> +<rect x="561.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="563" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="94.5" y="32.0" width="29.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="96" y="41" style="font-family:sans-serif;font-size:10px;"> +sorts +</text> +<rect x="1241.75" y="160.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1243" y="169" style="font-family:sans-serif;font-size:10px;"> +nach +</text> +<rect x="1773.25" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1775" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1286.25" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1288" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="893.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="895" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1372.25" y="96.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1374" y="105" style="font-family:sans-serif;font-size:10px;"> +m0 +</text> +<rect x="1469.75" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1471" y="105" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="1088.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1090" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1328.25" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1330" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="796.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="798" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1596.75" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1598" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1563.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1565" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="486.25" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="488" y="105" style="font-family:sans-serif;font-size:10px;"> +>< +</text> +<rect x="1494.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1496" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1563.25" y="96.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1565" y="105" style="font-family:sans-serif;font-size:10px;"> +m1 +</text> +<rect x="1388.75" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1390" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1446.75" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1448" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1200.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1202" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="735.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="737" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1377.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1379" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1450.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1452" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="0.0" y="64.0" width="30.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2" y="73" style="font-family:sans-serif;font-size:10px;"> +name +</text> +<rect x="210.25" y="96.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="212" y="105" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="826.25" y="96.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="828" y="105" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="845.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="847" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1830.75" y="288.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1832" y="297" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="1012.25" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1014" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="115.5" y="96.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="117" y="105" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="1137.75" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1139" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="251.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="253" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1655.25" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1657" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1863.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1865" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1818.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1820" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1151.25" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1153" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1684.25" y="64.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1686" y="73" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="509.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="511" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1501.25" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1503" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="217.0" y="64.0" width="49.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="219" y="73" style="font-family:sans-serif;font-size:10px;"> +operation +</text> +<rect x="1228.25" y="224.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1230" y="233" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="473.0" y="64.0" width="49.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="475" y="73" style="font-family:sans-serif;font-size:10px;"> +operation +</text> +<rect x="685.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="687" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="1181.75" y="288.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1183" y="297" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="457.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="459" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="1804.25" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1806" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="381.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="383" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="528.5" y="32.0" width="55.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="530" y="41" style="font-family:sans-serif;font-size:10px;"> +operations +</text> +<rect x="1859.75" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1861" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="948.0" y="64.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="950" y="73" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="1602.25" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1604" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="859.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="861" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1745.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1747" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1273.75" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1275" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1609.25" y="224.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1611" y="233" style="font-family:sans-serif;font-size:10px;"> +nach +</text> +<rect x="539.25" y="96.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="541" y="105" style="font-family:sans-serif;font-size:10px;"> +-> +</text> +<rect x="456.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="458" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1102.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1104" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="237.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="239" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1350.75" y="160.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1352" y="169" style="font-family:sans-serif;font-size:10px;"> +mal +</text> +<rect x="1719.5" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1721" y="105" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="1074.25" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1076" y="105" style="font-family:sans-serif;font-size:10px;"> +p1 +</text> +<rect x="1111.25" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1113" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="631.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="633" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="649.0" y="64.0" width="49.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="651" y="73" style="font-family:sans-serif;font-size:10px;"> +operation +</text> +<rect x="736.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="738" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="889.25" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="891" y="105" style="font-family:sans-serif;font-size:10px;"> +p0 +</text> +<rect x="912.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="914" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="862.75" y="160.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="864" y="169" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="1703.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1705" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1270.25" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1272" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="903.0" y="64.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="905" y="73" style="font-family:sans-serif;font-size:10px;"> +axioms +</text> +<rect x="952.75" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="954" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1332.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1334" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1154.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1156" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="816.75" y="64.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="818" y="73" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="510.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="512" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="1119.25" y="224.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1121" y="233" style="font-family:sans-serif;font-size:10px;"> +nach +</text> +<rect x="1690.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1692" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1291.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1293" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1756.25" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1758" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="411.25" y="96.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="413" y="105" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="1646.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1648" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1318.25" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1320" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1008.25" y="128.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1010" y="137" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1025.75" y="160.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1027" y="169" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1274.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1276" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="617.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="619" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="661.25" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="663" y="105" style="font-family:sans-serif;font-size:10px;"> +>< +</text> +<rect x="1073.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1075" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="663.3125" y="0.0" width="19.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="665" y="9" style="font-family:sans-serif;font-size:10px;"> +adt +</text> +<rect x="1459.25" y="224.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1461" y="233" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="1276.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1278" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1907.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1909" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1335.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1337" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1292.125" y="32.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1294" y="41" style="font-family:sans-serif;font-size:10px;"> +axioms +</text> +<rect x="982.75" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="984" y="105" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="144.0" y="64.0" width="66.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="146" y="73" style="font-family:sans-serif;font-size:10px;"> +constructors +</text> +<rect x="1497.25" y="128.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1499" y="137" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="442.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="444" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="411.0" y="64.0" width="55.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="413" y="73" style="font-family:sans-serif;font-size:10px;"> +operations +</text> +<rect x="1084.75" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1086" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1732.75" y="160.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1734" y="169" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="1862.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1864" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1536.75" y="160.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1538" y="169" style="font-family:sans-serif;font-size:10px;"> +mal +</text> +<rect x="1773.75" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1775" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1434.5" y="64.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1436" y="73" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="920.75" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="922" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="281.25" y="96.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="283" y="105" style="font-family:sans-serif;font-size:10px;"> +nach +</text> +<rect x="904.75" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="906" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1344.75" y="288.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1346" y="297" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="1010.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1012" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="382.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="384" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="1287.75" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1289" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1627.75" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1629" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1671.75" y="288.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1673" y="297" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="1760.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1762" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1165.25" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1167" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="319.5" y="64.0" width="49.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="321" y="73" style="font-family:sans-serif;font-size:10px;"> +operation +</text> +<rect x="782.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="784" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="632.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="634" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="1814.25" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1816" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1836.25" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1838" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1105.75" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1107" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="746.0" y="64.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="748" y="73" style="font-family:sans-serif;font-size:10px;"> +vars +</text> +<rect x="1592.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1594" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1574.75" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1576" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="765.25" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="767" y="105" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1778.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1780" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1169.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1171" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1406.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1408" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1436.75" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1438" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="908.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="910" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="975.25" y="224.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="977" y="233" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="1259.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1261" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="252.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="254" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="841.5" y="64.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="843" y="73" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="926.25" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="928" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1397.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1399" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="560.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="562" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="590.25" y="96.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="592" y="105" style="font-family:sans-serif;font-size:10px;"> +mal +</text> +<rect x="1376.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1378" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="714.25" y="96.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="716" y="105" style="font-family:sans-serif;font-size:10px;"> +-> +</text> +<rect x="1809.75" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1811" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="860.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="862" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="19.5" y="32.0" width="30.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21" y="41" style="font-family:sans-serif;font-size:10px;"> +name +</text> +<rect x="1392.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1394" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1208.75" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1210" y="105" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="37.0" y="64.0" width="34.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="39" y="73" style="font-family:sans-serif;font-size:10px;"> +Peano +</text> +<rect x="1405.75" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1407" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="922.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="924" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="684.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="686" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1718.25" y="224.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1720" y="233" style="font-family:sans-serif;font-size:10px;"> +mal +</text> +<rect x="1641.25" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1643" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1588.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1590" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="962.75" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="964" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="316.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="318" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1411.25" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1413" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1763.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1765" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="331.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="333" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="360.25" y="96.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="362" y="105" style="font-family:sans-serif;font-size:10px;"> +-> +</text> +<rect x="227.5" y="32.0" width="66.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="229" y="41" style="font-family:sans-serif;font-size:10px;"> +constructors +</text> +<rect x="1644.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1646" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="966.75" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="968" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="330.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="332" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="792.25" y="32.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="794" y="41" style="font-family:sans-serif;font-size:10px;"> +vars +</text> +<rect x="1042.75" y="160.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1044" y="169" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="1509.75" y="160.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1511" y="169" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="1877.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1879" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1659.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1661" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1804.25" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1806" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="779.0" y="64.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="781" y="73" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="1279.25" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1281" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1213.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1215" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1174.0" y="64.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1176" y="73" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +</svg> \ No newline at end of file diff --git a/ANTRL-Grammatiken/ADT/ADT_Bsp_Peano.txt b/ANTRL-Grammatiken/ADT/ADT_Bsp_Peano.txt new file mode 100644 index 0000000000000000000000000000000000000000..81bcfaacd179f083d9d284954e0c0fd462aae8e7 --- /dev/null +++ b/ANTRL-Grammatiken/ADT/ADT_Bsp_Peano.txt @@ -0,0 +1,11 @@ +name Peano +sorts Nat +constructors null: Nat + nach: Nat -> Nat +operations plus: Nat >< Nat -> Nat + mal: Nat >< Nat -> Nat +vars n : Nat, m : Nat +axioms p0: plus(n,null) = n + p1: plus(n,nach(m)) = nach(plus(n,m)) + m0: mal(n,null) = null + m1: mal(n,nach(m)) = plus(mal(n,m),n) \ No newline at end of file diff --git a/ANTRL-Grammatiken/ADT/ADT_Bsp_parse_tree.svg b/ANTRL-Grammatiken/ADT/ADT_Bsp_parse_tree.svg new file mode 100644 index 0000000000000000000000000000000000000000..a333e5151495f54d3ace3fafdcfbdc85de97a646 --- /dev/null +++ b/ANTRL-Grammatiken/ADT/ADT_Bsp_parse_tree.svg @@ -0,0 +1,740 @@ +<svg width="1872.2" height="445.50000000000006" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><line x1="634.3125" y1="7.5" x2="53.0" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="53.0" y1="39.5" x2="14.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="53.0" y1="39.5" x2="47.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="47.5" y1="71.5" x2="47.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="53.0" y1="39.5" x2="69.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="53.0" y1="39.5" x2="91.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="91.5" y1="71.5" x2="91.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="634.3125" y1="7.5" x2="439.5" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="439.5" y1="39.5" x2="137.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="439.5" y1="39.5" x2="196.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="196.5" y1="71.5" x2="175.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="196.5" y1="71.5" x2="195.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="196.5" y1="71.5" x2="217.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="217.75" y1="103.5" x2="217.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="439.5" y1="39.5" x2="291.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="291.5" y1="71.5" x2="245.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="291.5" y1="71.5" x2="264.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="291.5" y1="71.5" x2="286.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="286.75" y1="103.5" x2="286.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="291.5" y1="71.5" x2="312.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="291.5" y1="71.5" x2="337.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="337.75" y1="103.5" x2="337.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="439.5" y1="39.5" x2="395.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="395.0" y1="71.5" x2="371.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="395.0" y1="71.5" x2="396.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="395.0" y1="71.5" x2="418.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="418.75" y1="103.5" x2="418.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="439.5" y1="39.5" x2="479.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="479.0" y1="71.5" x2="454.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="479.0" y1="71.5" x2="481.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="479.0" y1="71.5" x2="503.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="503.75" y1="103.5" x2="503.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="439.5" y1="39.5" x2="592.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="592.5" y1="71.5" x2="541.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="592.5" y1="71.5" x2="570.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="592.5" y1="71.5" x2="592.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="592.75" y1="103.5" x2="592.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="592.5" y1="71.5" x2="618.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="592.5" y1="71.5" x2="643.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="643.75" y1="103.5" x2="643.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="439.5" y1="39.5" x2="741.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="741.5" y1="71.5" x2="687.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="741.5" y1="71.5" x2="722.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="741.5" y1="71.5" x2="744.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="744.75" y1="103.5" x2="744.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="741.5" y1="71.5" x2="770.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="741.5" y1="71.5" x2="795.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="795.75" y1="103.5" x2="795.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="634.3125" y1="7.5" x2="823.0" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="823.0" y1="39.5" x2="808.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="823.0" y1="39.5" x2="838.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="838.0" y1="71.5" x2="819.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="838.0" y1="71.5" x2="834.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="838.0" y1="71.5" x2="856.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="856.75" y1="103.5" x2="856.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="634.3125" y1="7.5" x2="1215.625" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1215.625" y1="39.5" x2="900.25" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1215.625" y1="39.5" x2="942.25" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="942.25" y1="71.5" x2="883.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="942.25" y1="71.5" x2="901.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="942.25" y1="71.5" x2="930.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="930.75" y1="103.5" x2="930.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="930.75" y1="135.5" x2="886.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="930.75" y1="135.5" x2="916.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="930.75" y1="135.5" x2="945.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="945.75" y1="167.5" x2="945.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="945.75" y1="199.5" x2="945.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="930.75" y1="135.5" x2="975.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="942.25" y1="71.5" x2="966.0" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="942.25" y1="71.5" x2="1001.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1001.25" y1="103.5" x2="1001.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1001.25" y1="135.5" x2="1001.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1215.625" y1="39.5" x2="1099.25" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1099.25" y1="71.5" x2="1039.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1099.25" y1="71.5" x2="1057.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1099.25" y1="71.5" x2="1086.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1086.75" y1="103.5" x2="1086.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1086.75" y1="135.5" x2="1042.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1086.75" y1="135.5" x2="1072.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1086.75" y1="135.5" x2="1101.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1101.75" y1="167.5" x2="1101.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1101.75" y1="199.5" x2="1062.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1101.75" y1="199.5" x2="1082.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1101.75" y1="199.5" x2="1111.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1111.75" y1="231.5" x2="1111.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1111.75" y1="263.5" x2="1111.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1101.75" y1="199.5" x2="1141.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1086.75" y1="135.5" x2="1131.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1099.25" y1="71.5" x2="1123.0" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1099.25" y1="71.5" x2="1159.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1159.25" y1="103.5" x2="1159.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1159.25" y1="135.5" x2="1159.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1215.625" y1="39.5" x2="1282.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1282.5" y1="71.5" x2="1199.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1282.5" y1="71.5" x2="1217.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1282.5" y1="71.5" x2="1246.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1246.75" y1="103.5" x2="1246.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1246.75" y1="135.5" x2="1202.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1246.75" y1="135.5" x2="1232.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1246.75" y1="135.5" x2="1261.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1261.75" y1="167.5" x2="1261.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1261.75" y1="199.5" x2="1222.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1261.75" y1="199.5" x2="1242.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1261.75" y1="199.5" x2="1271.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1271.75" y1="231.5" x2="1271.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1271.75" y1="263.5" x2="1232.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1271.75" y1="263.5" x2="1252.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1271.75" y1="263.5" x2="1281.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1281.75" y1="295.5" x2="1281.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1281.75" y1="327.5" x2="1281.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1271.75" y1="263.5" x2="1311.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1261.75" y1="199.5" x2="1301.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1246.75" y1="135.5" x2="1291.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1282.5" y1="71.5" x2="1306.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1282.5" y1="71.5" x2="1365.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1365.75" y1="103.5" x2="1365.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1365.75" y1="135.5" x2="1321.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1365.75" y1="135.5" x2="1351.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1365.75" y1="135.5" x2="1380.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1380.75" y1="167.5" x2="1380.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1380.75" y1="199.5" x2="1380.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1365.75" y1="135.5" x2="1410.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1215.625" y1="39.5" x2="1531.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1531.0" y1="71.5" x2="1446.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1531.0" y1="71.5" x2="1464.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1531.0" y1="71.5" x2="1493.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1493.75" y1="103.5" x2="1493.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1493.75" y1="135.5" x2="1446.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1493.75" y1="135.5" x2="1482.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1493.75" y1="135.5" x2="1511.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1511.75" y1="167.5" x2="1511.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1511.75" y1="199.5" x2="1511.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1493.75" y1="135.5" x2="1541.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1531.0" y1="71.5" x2="1554.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1531.0" y1="71.5" x2="1615.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1615.75" y1="103.5" x2="1615.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1615.75" y1="135.5" x2="1571.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1615.75" y1="135.5" x2="1601.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1615.75" y1="135.5" x2="1630.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1630.75" y1="167.5" x2="1630.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1630.75" y1="199.5" x2="1591.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1630.75" y1="199.5" x2="1611.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1630.75" y1="199.5" x2="1640.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1640.75" y1="231.5" x2="1640.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1640.75" y1="263.5" x2="1640.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1630.75" y1="199.5" x2="1670.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1615.75" y1="135.5" x2="1660.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<rect x="717.0" y="64.0" width="49.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="719" y="73" style="font-family:sans-serif;font-size:10px;"> +operation +</text> +<rect x="1438.25" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1440" y="105" style="font-family:sans-serif;font-size:10px;"> +a4 +</text> +<rect x="814.25" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="816" y="105" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1469.75" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1471" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="867.25" y="160.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="869" y="169" style="font-family:sans-serif;font-size:10px;"> +gerade +</text> +<rect x="986.25" y="160.0" width="30.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="988" y="169" style="font-family:sans-serif;font-size:10px;"> +wahr +</text> +<rect x="276.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="278" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="1093.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1095" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1238.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1240" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="810.0" y="32.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="812" y="41" style="font-family:sans-serif;font-size:10px;"> +vars +</text> +<rect x="1263.25" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1265" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="906.75" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="908" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="356.25" y="96.0" width="30.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="358" y="105" style="font-family:sans-serif;font-size:10px;"> +wahr +</text> +<rect x="923.25" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="925" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1347.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1349" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1142.25" y="160.0" width="34.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1144" y="169" style="font-family:sans-serif;font-size:10px;"> +falsch +</text> +<rect x="1301.25" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1303" y="105" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="1248.25" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1250" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1341.75" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1343" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="763.25" y="96.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="765" y="105" style="font-family:sans-serif;font-size:10px;"> +-> +</text> +<rect x="1083.25" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1085" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1223.25" y="288.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1225" y="297" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="275.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="277" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="845.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="847" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1247.75" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1249" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="926.25" y="64.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="928" y="73" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="1191.25" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1193" y="105" style="font-family:sans-serif;font-size:10px;"> +a3 +</text> +<rect x="1068.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1070" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1137.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1139" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1302.25" y="160.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1304" y="169" style="font-family:sans-serif;font-size:10px;"> +gerade +</text> +<rect x="1552.25" y="160.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1554" y="169" style="font-family:sans-serif;font-size:10px;"> +gerade +</text> +<rect x="1287.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1289" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="172.0" y="64.0" width="49.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="174" y="73" style="font-family:sans-serif;font-size:10px;"> +operation +</text> +<rect x="1140.75" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1142" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="110.0" y="64.0" width="55.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="112" y="73" style="font-family:sans-serif;font-size:10px;"> +operations +</text> +<rect x="1237.75" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1239" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1214.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1216" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="327.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="329" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="491.25" y="128.0" width="25.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="493" y="137" style="font-family:sans-serif;font-size:10px;"> +Bool +</text> +<rect x="437.25" y="96.0" width="34.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="439" y="105" style="font-family:sans-serif;font-size:10px;"> +falsch +</text> +<rect x="1347.25" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1349" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1591.75" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1593" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1118.0" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1120" y="105" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="1618.25" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1620" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="261.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="263" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="305.25" y="96.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="307" y="105" style="font-family:sans-serif;font-size:10px;"> +-> +</text> +<rect x="581.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="583" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1077.75" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1079" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1582.25" y="224.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1584" y="233" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="631.25" y="128.0" width="25.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="633" y="137" style="font-family:sans-serif;font-size:10px;"> +Bool +</text> +<rect x="567.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="569" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="831.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="833" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1101.75" y="288.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1103" y="297" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="1493.25" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1495" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1537.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1539" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="393.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="395" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="492.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="494" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="912.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="914" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="846.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="848" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="38.5" y="32.0" width="29.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="40" y="41" style="font-family:sans-serif;font-size:10px;"> +sorts +</text> +<rect x="1031.25" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1033" y="105" style="font-family:sans-serif;font-size:10px;"> +a2 +</text> +<rect x="1228.25" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1230" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1276.75" y="352.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1278" y="361" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="935.75" y="224.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="937" y="233" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="875.25" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="877" y="105" style="font-family:sans-serif;font-size:10px;"> +a1 +</text> +<rect x="1062.75" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1064" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="734.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="736" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="1068.25" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1070" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="881.25" y="64.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="883" y="73" style="font-family:sans-serif;font-size:10px;"> +axioms +</text> +<rect x="1406.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1408" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1136.75" y="128.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1138" y="137" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="236.25" y="96.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="238" y="105" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1612.25" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1614" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="898.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="900" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1253.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1255" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1478.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1480" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1635.75" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1637" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1375.75" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1377" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1089.25" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1091" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="927.25" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="929" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="406.25" y="128.0" width="25.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="408" y="137" style="font-family:sans-serif;font-size:10px;"> +Bool +</text> +<rect x="1297.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1299" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="784.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="786" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="207.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="209" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="37.5" y="96.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="39" y="105" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="1622.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1624" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="582.75" y="128.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="584" y="137" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="1023.25" y="160.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1025" y="169" style="font-family:sans-serif;font-size:10px;"> +gerade +</text> +<rect x="1243.25" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1245" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1421.25" y="160.0" width="50.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1423" y="169" style="font-family:sans-serif;font-size:10px;"> +ungerade +</text> +<rect x="1656.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1658" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="36.0" y="64.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="38" y="73" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="407.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="409" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1054.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1056" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="66.0" y="64.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="68" y="73" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="971.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="973" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="783.25" y="128.0" width="25.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="785" y="137" style="font-family:sans-serif;font-size:10px;"> +Bool +</text> +<rect x="961.0" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="963" y="105" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="632.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="634" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1053.25" y="224.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1055" y="233" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="454.5" y="64.0" width="49.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="456" y="73" style="font-family:sans-serif;font-size:10px;"> +operation +</text> +<rect x="1266.5" y="64.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1268" y="73" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="1222.75" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1224" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1127.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1129" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1213.25" y="224.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1215" y="233" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1475.25" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1477" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1506.75" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1508" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1597.25" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1599" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="412.0" y="32.0" width="55.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="414" y="41" style="font-family:sans-serif;font-size:10px;"> +operations +</text> +<rect x="733.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="735" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1183.25" y="160.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1185" y="169" style="font-family:sans-serif;font-size:10px;"> +gerade +</text> +<rect x="1489.25" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1491" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="478.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="480" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1666.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1668" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="624.8125" y="0.0" width="19.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="626" y="9" style="font-family:sans-serif;font-size:10px;"> +adt +</text> +<rect x="1307.25" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1309" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="79.0" y="96.0" width="25.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="81" y="105" style="font-family:sans-serif;font-size:10px;"> +Bool +</text> +<rect x="370.5" y="64.0" width="49.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="372" y="73" style="font-family:sans-serif;font-size:10px;"> +operation +</text> +<rect x="1228.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1230" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1515.0" y="64.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1517" y="73" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="522.25" y="96.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="524" y="105" style="font-family:sans-serif;font-size:10px;"> +gerade +</text> +<rect x="568.0" y="64.0" width="49.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="570" y="73" style="font-family:sans-serif;font-size:10px;"> +operation +</text> +<rect x="1259.25" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1261" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1461.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1463" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="795.0" y="64.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="797" y="73" style="font-family:sans-serif;font-size:10px;"> +vars +</text> +<rect x="1083.25" y="64.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1085" y="73" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="1078.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1080" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="192.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="194" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="978.75" y="128.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="980" y="137" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1196.625" y="32.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1198" y="41" style="font-family:sans-serif;font-size:10px;"> +axioms +</text> +<rect x="611.25" y="96.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="613" y="105" style="font-family:sans-serif;font-size:10px;"> +-> +</text> +<rect x="828.0" y="64.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="830" y="73" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="1358.25" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1360" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="0.0" y="64.0" width="29.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2" y="73" style="font-family:sans-serif;font-size:10px;"> +sorts +</text> +<rect x="1606.75" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1608" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1362.25" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1364" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1549.75" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1551" y="105" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="165.25" y="96.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="167" y="105" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="1607.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1609" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="912.25" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="914" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="80.0" y="64.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="82" y="73" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="206.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="208" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="662.25" y="96.0" width="50.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="664" y="105" style="font-family:sans-serif;font-size:10px;"> +ungerade +</text> +<rect x="982.75" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="984" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="326.25" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="328" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="267.0" y="64.0" width="49.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="269" y="73" style="font-family:sans-serif;font-size:10px;"> +operation +</text> +<rect x="1597.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1599" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="719.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="721" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +</svg> \ No newline at end of file diff --git a/ANTRL-Grammatiken/ADT/ADT_Bsp_small.txt b/ANTRL-Grammatiken/ADT/ADT_Bsp_small.txt new file mode 100644 index 0000000000000000000000000000000000000000..b611912d7510a359dbe45e334ae7a6d2a32b1310 --- /dev/null +++ b/ANTRL-Grammatiken/ADT/ADT_Bsp_small.txt @@ -0,0 +1,4 @@ +sorts Zahl +operations plus: Zahl >< Zahl -> Zahl +vars x : Zahl , y : Zahl +axioms a1: plus(x,y) = plus(y,x) \ No newline at end of file diff --git a/ANTRL-Grammatiken/ADT/ADT_Bsp_small_parse_tree.svg b/ANTRL-Grammatiken/ADT/ADT_Bsp_small_parse_tree.svg new file mode 100644 index 0000000000000000000000000000000000000000..fd901233766c59bb918aa996bf785ebb3d4199ea --- /dev/null +++ b/ANTRL-Grammatiken/ADT/ADT_Bsp_small_parse_tree.svg @@ -0,0 +1,305 @@ +<svg width="1872.2" height="445.50000000000006" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><line x1="245.625" y1="7.5" x2="31.0" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="31.0" y1="39.5" x2="14.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="31.0" y1="39.5" x2="47.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="47.5" y1="71.5" x2="47.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="245.625" y1="7.5" x2="123.75" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="123.75" y1="39.5" x2="94.25" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="123.75" y1="39.5" x2="153.25" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="153.25" y1="71.5" x2="79.0" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="153.25" y1="71.5" x2="101.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="153.25" y1="71.5" x2="123.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="123.5" y1="103.5" x2="123.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="153.25" y1="71.5" x2="150.0" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="153.25" y1="71.5" x2="176.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="176.5" y1="103.5" x2="176.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="153.25" y1="71.5" x2="202.0" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="153.25" y1="71.5" x2="227.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="227.5" y1="103.5" x2="227.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="245.625" y1="7.5" x2="285.25" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="285.25" y1="39.5" x2="239.75" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="285.25" y1="39.5" x2="269.75" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="269.75" y1="71.5" x2="251.0" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="269.75" y1="71.5" x2="266.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="269.75" y1="71.5" x2="288.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="288.5" y1="103.5" x2="288.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="285.25" y1="39.5" x2="300.25" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="285.25" y1="39.5" x2="330.75" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="330.75" y1="71.5" x2="312.0" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="330.75" y1="71.5" x2="327.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="330.75" y1="71.5" x2="349.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="349.5" y1="103.5" x2="349.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="245.625" y1="7.5" x2="460.25" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="460.25" y1="39.5" x2="439.25" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="460.25" y1="39.5" x2="481.25" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="481.25" y1="71.5" x2="376.0" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="481.25" y1="71.5" x2="394.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="481.25" y1="71.5" x2="423.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="423.5" y1="103.5" x2="423.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="423.5" y1="135.5" x2="353.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="423.5" y1="135.5" x2="376.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="423.5" y1="135.5" x2="406.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="406.0" y1="167.5" x2="406.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="406.0" y1="199.5" x2="406.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="423.5" y1="135.5" x2="435.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="423.5" y1="135.5" x2="464.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="464.0" y1="167.5" x2="464.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="464.0" y1="199.5" x2="464.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="423.5" y1="135.5" x2="493.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="481.25" y1="71.5" x2="505.0" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="481.25" y1="71.5" x2="586.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="586.5" y1="103.5" x2="586.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="586.5" y1="135.5" x2="516.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="586.5" y1="135.5" x2="539.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="586.5" y1="135.5" x2="569.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="569.0" y1="167.5" x2="569.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="569.0" y1="199.5" x2="569.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="586.5" y1="135.5" x2="598.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="586.5" y1="135.5" x2="627.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="627.0" y1="167.5" x2="627.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="627.0" y1="199.5" x2="627.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="586.5" y1="135.5" x2="656.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<rect x="259.75" y="64.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="261" y="73" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="550.5" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="552" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="324.0" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="326" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="420.25" y="64.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="422" y="73" style="font-family:sans-serif;font-size:10px;"> +axioms +</text> +<rect x="504.5" y="160.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="506" y="169" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="128.75" y="64.0" width="49.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="130" y="73" style="font-family:sans-serif;font-size:10px;"> +operation +</text> +<rect x="164.0" y="128.0" width="25.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="166" y="137" style="font-family:sans-serif;font-size:10px;"> +Zahl +</text> +<rect x="35.0" y="96.0" width="25.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="37" y="105" style="font-family:sans-serif;font-size:10px;"> +Zahl +</text> +<rect x="564.0" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="566" y="233" style="font-family:sans-serif;font-size:10px;"> +y +</text> +<rect x="401.0" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="403" y="233" style="font-family:sans-serif;font-size:10px;"> +x +</text> +<rect x="296.75" y="64.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="298" y="73" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="36.0" y="64.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="38" y="73" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="337.0" y="128.0" width="25.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="339" y="137" style="font-family:sans-serif;font-size:10px;"> +Zahl +</text> +<rect x="16.5" y="32.0" width="29.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18" y="41" style="font-family:sans-serif;font-size:10px;"> +sorts +</text> +<rect x="405.0" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="407" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="500.0" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="502" y="105" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="459.0" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="461" y="233" style="font-family:sans-serif;font-size:10px;"> +y +</text> +<rect x="277.0" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="279" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="96.25" y="32.0" width="55.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="98" y="41" style="font-family:sans-serif;font-size:10px;"> +operations +</text> +<rect x="604.5" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="606" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="399.5" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="401" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="535.5" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="537" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="320.75" y="64.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="322" y="73" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="67.0" y="96.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="69" y="105" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="276.0" y="128.0" width="25.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="278" y="137" style="font-family:sans-serif;font-size:10px;"> +Zahl +</text> +<rect x="215.0" y="128.0" width="25.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="217" y="137" style="font-family:sans-serif;font-size:10px;"> +Zahl +</text> +<rect x="341.5" y="160.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="343" y="169" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="195.0" y="96.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="197" y="105" style="font-family:sans-serif;font-size:10px;"> +-> +</text> +<rect x="226.75" y="64.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="228" y="73" style="font-family:sans-serif;font-size:10px;"> +vars +</text> +<rect x="441.25" y="32.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="443" y="41" style="font-family:sans-serif;font-size:10px;"> +axioms +</text> +<rect x="368.0" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="370" y="105" style="font-family:sans-serif;font-size:10px;"> +a1 +</text> +<rect x="338.0" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="340" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="608.5" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="610" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="66.75" y="64.0" width="55.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="68" y="73" style="font-family:sans-serif;font-size:10px;"> +operations +</text> +<rect x="142.0" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="144" y="105" style="font-family:sans-serif;font-size:10px;"> +>< +</text> +<rect x="272.25" y="32.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="274" y="41" style="font-family:sans-serif;font-size:10px;"> +vars +</text> +<rect x="383.5" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="385" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="431.5" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="433" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="372.5" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="374" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="546.5" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="548" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="387.5" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="389" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="594.5" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="596" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="652.5" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="654" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="0.0" y="64.0" width="29.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2" y="73" style="font-family:sans-serif;font-size:10px;"> +sorts +</text> +<rect x="307.0" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="309" y="105" style="font-family:sans-serif;font-size:10px;"> +y +</text> +<rect x="391.0" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="393" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="465.25" y="64.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="467" y="73" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="622.0" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="624" y="233" style="font-family:sans-serif;font-size:10px;"> +x +</text> +<rect x="111.0" y="128.0" width="25.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="113" y="137" style="font-family:sans-serif;font-size:10px;"> +Zahl +</text> +<rect x="112.0" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="114" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="98.0" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="100" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="236.125" y="0.0" width="19.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="238" y="9" style="font-family:sans-serif;font-size:10px;"> +adt +</text> +<rect x="165.0" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="167" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="441.5" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="443" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="246.0" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="248" y="105" style="font-family:sans-serif;font-size:10px;"> +x +</text> +<rect x="562.5" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="564" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="489.5" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="491" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="216.0" y="96.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="218" y="105" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="263.0" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="265" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="568.0" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="570" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="445.5" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="447" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +</svg> \ No newline at end of file diff --git a/ANTRL-Grammatiken/Aufgabenstellung/Task.g4 b/ANTRL-Grammatiken/Aufgabenstellung/Task.g4 new file mode 100644 index 0000000000000000000000000000000000000000..8111a9b79c3bf3a80aa6771d6ce701720f43909b --- /dev/null +++ b/ANTRL-Grammatiken/Aufgabenstellung/Task.g4 @@ -0,0 +1,30 @@ +grammar Task; + +import EquationRules; + +/* + * Parser Rules + */ + +task : task_eq lemma_tasks? task_lemmata? EOF ; + +task_eq: 'task' eq ind_var? config ; + +lemma_tasks : 'proof lemmata' lemma_task+ ; +lemma_task : BEZ ':' eq ind_var? config ; + +task_lemmata: 'lemmata' task_lemma+ ; +task_lemma : BEZ ':' eq ; + +ind_var : 'induction' BEZ ; + +config : (task_pt | ind_pt) ; + +ind_pt : case_pt+ ih_pt ; +case_pt : 'case' BEZ task_pt ; +ih_pt : 'IH' maxpt ; + +task_pt : maxpt minsteps maxsteps ; +maxpt : ('maxpt' | 'maxPt') NAT ; +minsteps : 'minsteps' NAT ; +maxsteps : 'maxsteps' NAT ; \ No newline at end of file diff --git a/ANTRL-Grammatiken/Aufgabenstellung/Task_Bsp.txt b/ANTRL-Grammatiken/Aufgabenstellung/Task_Bsp.txt new file mode 100644 index 0000000000000000000000000000000000000000..891cda8d93ac733f1c69f83b68f6592a913c15aa --- /dev/null +++ b/ANTRL-Grammatiken/Aufgabenstellung/Task_Bsp.txt @@ -0,0 +1 @@ +task ungerade(inc(n)) = gerade(n) \ No newline at end of file diff --git a/ANTRL-Grammatiken/Aufgabenstellung/Task_Bsp_Lemma.svg b/ANTRL-Grammatiken/Aufgabenstellung/Task_Bsp_Lemma.svg new file mode 100644 index 0000000000000000000000000000000000000000..4bf1c25ddd7810891567efcb1d49dfae8d75121b --- /dev/null +++ b/ANTRL-Grammatiken/Aufgabenstellung/Task_Bsp_Lemma.svg @@ -0,0 +1,610 @@ +<svg width="1030.7" height="832.7" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><line x1="378.78125" y1="7.5" x2="179.625" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="179.625" y1="39.5" x2="82.25" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="179.625" y1="39.5" x2="109.25" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="109.25" y1="71.5" x2="72.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="72.5" y1="103.5" x2="72.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="72.5" y1="135.5" x2="25.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="72.5" y1="135.5" x2="61.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="72.5" y1="135.5" x2="90.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="90.5" y1="167.5" x2="90.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="90.5" y1="199.5" x2="51.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="90.5" y1="199.5" x2="71.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="90.5" y1="199.5" x2="100.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="100.5" y1="231.5" x2="100.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="100.5" y1="263.5" x2="61.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="100.5" y1="263.5" x2="81.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="100.5" y1="263.5" x2="110.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="110.5" y1="295.5" x2="110.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="110.5" y1="327.5" x2="71.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="110.5" y1="327.5" x2="91.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="110.5" y1="327.5" x2="120.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="120.5" y1="359.5" x2="120.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="120.5" y1="391.5" x2="81.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="120.5" y1="391.5" x2="101.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="120.5" y1="391.5" x2="130.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="130.5" y1="423.5" x2="130.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="130.5" y1="455.5" x2="91.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="130.5" y1="455.5" x2="111.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="130.5" y1="455.5" x2="140.5" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="140.5" y1="487.5" x2="140.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="140.5" y1="519.5" x2="101.0" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="140.5" y1="519.5" x2="121.0" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="140.5" y1="519.5" x2="150.5" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="150.5" y1="551.5" x2="150.5" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="150.5" y1="583.5" x2="111.0" y2="608.0" style="stroke:black; stroke-width:1px;" /> +<line x1="150.5" y1="583.5" x2="131.0" y2="608.0" style="stroke:black; stroke-width:1px;" /> +<line x1="150.5" y1="583.5" x2="160.5" y2="608.0" style="stroke:black; stroke-width:1px;" /> +<line x1="160.5" y1="615.5" x2="160.5" y2="640.0" style="stroke:black; stroke-width:1px;" /> +<line x1="160.5" y1="647.5" x2="160.5" y2="672.0" style="stroke:black; stroke-width:1px;" /> +<line x1="150.5" y1="583.5" x2="190.0" y2="608.0" style="stroke:black; stroke-width:1px;" /> +<line x1="140.5" y1="519.5" x2="180.0" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="130.5" y1="455.5" x2="170.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="120.5" y1="391.5" x2="160.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="110.5" y1="327.5" x2="150.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="100.5" y1="263.5" x2="140.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="90.5" y1="199.5" x2="130.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="72.5" y1="135.5" x2="120.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="109.25" y1="71.5" x2="109.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="109.25" y1="71.5" x2="146.0" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="146.0" y1="103.5" x2="146.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="146.0" y1="135.5" x2="146.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="179.625" y1="39.5" x2="277.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="277.0" y1="71.5" x2="206.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="206.25" y1="103.5" x2="192.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="206.25" y1="103.5" x2="220.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="277.0" y1="71.5" x2="273.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="273.75" y1="103.5" x2="256.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="273.75" y1="103.5" x2="291.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="277.0" y1="71.5" x2="347.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="347.75" y1="103.5" x2="329.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="347.75" y1="103.5" x2="366.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="378.78125" y1="7.5" x2="577.9375" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="577.9375" y1="39.5" x2="541.1875" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="577.9375" y1="39.5" x2="614.6875" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="614.6875" y1="71.5" x2="469.125" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="614.6875" y1="71.5" x2="491.625" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="614.6875" y1="71.5" x2="510.125" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="510.125" y1="103.5" x2="392.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="392.5" y1="135.5" x2="377.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="392.5" y1="135.5" x2="408.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="408.0" y1="167.5" x2="389.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="408.0" y1="167.5" x2="404.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="408.0" y1="167.5" x2="426.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="426.75" y1="199.5" x2="426.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="510.125" y1="103.5" x2="448.375" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="510.125" y1="103.5" x2="508.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="508.75" y1="135.5" x2="508.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="508.75" y1="167.5" x2="464.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="508.75" y1="167.5" x2="494.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="508.75" y1="167.5" x2="523.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="523.75" y1="199.5" x2="523.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="523.75" y1="231.5" x2="484.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="523.75" y1="231.5" x2="504.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="523.75" y1="231.5" x2="533.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="533.75" y1="263.5" x2="533.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="533.75" y1="295.5" x2="494.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="533.75" y1="295.5" x2="514.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="533.75" y1="295.5" x2="543.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="543.75" y1="327.5" x2="543.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="543.75" y1="359.5" x2="504.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="543.75" y1="359.5" x2="524.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="543.75" y1="359.5" x2="553.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="553.75" y1="391.5" x2="553.75" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="553.75" y1="423.5" x2="514.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="553.75" y1="423.5" x2="534.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="553.75" y1="423.5" x2="563.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="563.75" y1="455.5" x2="563.75" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="563.75" y1="487.5" x2="563.75" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="553.75" y1="423.5" x2="593.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="543.75" y1="359.5" x2="583.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="533.75" y1="295.5" x2="573.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="523.75" y1="231.5" x2="563.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="508.75" y1="167.5" x2="553.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="510.125" y1="103.5" x2="568.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="510.125" y1="103.5" x2="627.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="627.75" y1="135.5" x2="627.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="627.75" y1="167.5" x2="583.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="627.75" y1="167.5" x2="613.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="627.75" y1="167.5" x2="642.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="642.75" y1="199.5" x2="642.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="642.75" y1="231.5" x2="642.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="627.75" y1="167.5" x2="672.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="614.6875" y1="71.5" x2="760.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="760.25" y1="103.5" x2="689.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="689.5" y1="135.5" x2="675.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="689.5" y1="135.5" x2="703.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="760.25" y1="103.5" x2="757.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="757.0" y1="135.5" x2="739.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="757.0" y1="135.5" x2="774.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="760.25" y1="103.5" x2="831.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="831.0" y1="135.5" x2="812.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="831.0" y1="135.5" x2="849.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<rect x="490.25" y="128.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="492" y="137" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="495.25" y="384.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="497" y="393" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="138.0" y="640.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="140" y="649" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="97.0" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="99" y="425" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="117.0" y="544.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="119" y="553" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="232.5" y="128.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="234" y="137" style="font-family:sans-serif;font-size:10px;"> +minsteps +</text> +<rect x="589.25" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="591" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="92.0" y="544.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="94" y="553" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="76.5" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="78" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="102.0" y="608.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="104" y="617" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="637.75" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="639" y="265" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="156.0" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="158" y="425" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="805.5" y="128.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="807" y="137" style="font-family:sans-serif;font-size:10px;"> +maxsteps +</text> +<rect x="415.25" y="192.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="417" y="201" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="126.0" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="128" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="519.75" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="521" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="525.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="527" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="544.9375" y="32.0" width="66.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="546" y="41" style="font-family:sans-serif;font-size:10px;"> +lemma_tasks +</text> +<rect x="715.75" y="160.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="717" y="169" style="font-family:sans-serif;font-size:10px;"> +minsteps +</text> +<rect x="286.5" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="288" y="137" style="font-family:sans-serif;font-size:10px;"> +4 +</text> +<rect x="146.0" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="148" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="77.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="79" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="563.25" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="565" y="137" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="485.25" y="320.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="487" y="329" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="101.25" y="64.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="103" y="73" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="186.0" y="608.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="188" y="617" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="398.0" y="160.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="400" y="169" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="500.25" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="502" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="673.0" y="128.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="675" y="137" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="122.0" y="480.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="124" y="489" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="603.75" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="605" y="169" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="361.5" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="363" y="137" style="font-family:sans-serif;font-size:10px;"> +6 +</text> +<rect x="106.5" y="448.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="108" y="457" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="257.5" y="64.0" width="39.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="259" y="73" style="font-family:sans-serif;font-size:10px;"> +task_pt +</text> +<rect x="499.75" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="501" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="189.75" y="96.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="191" y="105" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="107.0" y="480.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="109" y="489" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="530.25" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="532" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="569.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="571" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="150.5" y="672.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="152" y="681" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="48.5" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="50" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="609.25" y="128.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="611" y="137" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="250.25" y="96.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="252" y="105" style="font-family:sans-serif;font-size:10px;"> +minsteps +</text> +<rect x="52.0" y="288.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="54" y="297" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="215.5" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="217" y="137" style="font-family:sans-serif;font-size:10px;"> +8 +</text> +<rect x="505.25" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="507" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="57.0" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="59" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="484.75" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="486" y="169" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="366.78125" y="0.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="368" y="9" style="font-family:sans-serif;font-size:10px;"> +task +</text> +<rect x="378.5" y="128.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="380" y="137" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="92.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="94" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="142.0" y="608.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="144" y="617" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="624.25" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="626" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="445.25" y="192.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="447" y="201" style="font-family:sans-serif;font-size:10px;"> +gerade +</text> +<rect x="668.25" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="670" y="201" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="488.125" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="490" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="66.5" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="68" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="131.0" y="160.0" width="30.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="133" y="169" style="font-family:sans-serif;font-size:10px;"> +wahr +</text> +<rect x="559.25" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="561" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="96.5" y="384.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="98" y="393" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="166.0" y="480.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="168" y="489" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="510.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="512" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="541.25" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="543" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="72.0" y="416.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="74" y="425" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="457.125" y="96.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="459" y="105" style="font-family:sans-serif;font-size:10px;"> +G32 +</text> +<rect x="740.75" y="96.0" width="39.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="742" y="105" style="font-family:sans-serif;font-size:10px;"> +task_pt +</text> +<rect x="72.0" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="74" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="82.0" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="84" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="733.5" y="128.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="735" y="137" style="font-family:sans-serif;font-size:10px;"> +minsteps +</text> +<rect x="136.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="138" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="127.5" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="129" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="102.0" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="104" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="579.25" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="581" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="158.625" y="32.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="160" y="41" style="font-family:sans-serif;font-size:10px;"> +task_eq +</text> +<rect x="82.0" y="480.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="84" y="489" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="0.0" y="160.0" width="50.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2" y="169" style="font-family:sans-serif;font-size:10px;"> +ungerade +</text> +<rect x="609.25" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="611" y="201" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="545.25" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="547" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="67.0" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="69" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="87.0" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="89" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="564.25" y="192.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="566" y="201" style="font-family:sans-serif;font-size:10px;"> +gerade +</text> +<rect x="54.0" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="56" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="363.0" y="160.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="365" y="169" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="175.5" y="128.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="177" y="137" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="70.25" y="64.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="72" y="73" style="font-family:sans-serif;font-size:10px;"> +task +</text> +<rect x="123.5" y="128.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="125" y="137" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="384.25" y="192.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="386" y="201" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="401.25" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="403" y="201" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="416.75" y="224.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="418" y="233" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="502.125" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="504" y="105" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="62.0" y="352.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="64" y="361" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="444.875" y="128.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="446" y="137" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="42.0" y="224.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="44" y="233" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="558.75" y="512.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="560" y="521" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="769.75" y="160.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="771" y="169" style="font-family:sans-serif;font-size:10px;"> +2 +</text> +<rect x="490.25" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="492" y="201" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="515.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="517" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="303.5" y="128.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="305" y="137" style="font-family:sans-serif;font-size:10px;"> +maxsteps +</text> +<rect x="86.5" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="88" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="126.5" y="576.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="128" y="585" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="509.75" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="511" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="132.0" y="544.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="134" y="553" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="116.5" y="512.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="118" y="521" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="127.0" y="608.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="129" y="617" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="786.75" y="160.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="788" y="169" style="font-family:sans-serif;font-size:10px;"> +maxsteps +</text> +<rect x="475.25" y="256.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="477" y="265" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="112.0" y="416.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="114" y="425" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="176.0" y="544.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="178" y="553" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="529.75" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="531" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="698.75" y="160.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="700" y="169" style="font-family:sans-serif;font-size:10px;"> +2 +</text> +<rect x="520.25" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="522" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="505.25" y="448.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="507" y="457" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="658.75" y="160.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="660" y="169" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="116.0" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="118" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="104.25" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="106" y="105" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="535.25" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="537" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="620.25" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="622" y="233" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="322.25" y="96.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="324" y="105" style="font-family:sans-serif;font-size:10px;"> +maxsteps +</text> +<rect x="504.6875" y="64.0" width="73.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="506" y="73" style="font-family:sans-serif;font-size:10px;"> +proof·lemmata +</text> +<rect x="549.25" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="551" y="201" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="844.75" y="160.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="846" y="169" style="font-family:sans-serif;font-size:10px;"> +2 +</text> +<rect x="584.6875" y="64.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="586" y="73" style="font-family:sans-serif;font-size:10px;"> +lemma_task +</text> +</svg> \ No newline at end of file diff --git a/ANTRL-Grammatiken/Aufgabenstellung/Task_Bsp_Lemma.txt b/ANTRL-Grammatiken/Aufgabenstellung/Task_Bsp_Lemma.txt new file mode 100644 index 0000000000000000000000000000000000000000..b076b894875df60240cea2ab47ae95efba504fb1 --- /dev/null +++ b/ANTRL-Grammatiken/Aufgabenstellung/Task_Bsp_Lemma.txt @@ -0,0 +1,4 @@ +task ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))) = wahr + maxpt 8 minsteps 4 maxsteps 6 +proof lemmata G32: forall n:Nat : gerade(inc(inc(inc(inc(n))))) = gerade(n) + maxpt 2 minsteps 2 maxsteps 2 \ No newline at end of file diff --git a/ANTRL-Grammatiken/Aufgabenstellung/Task_Bsp_NatTree.svg b/ANTRL-Grammatiken/Aufgabenstellung/Task_Bsp_NatTree.svg new file mode 100644 index 0000000000000000000000000000000000000000..9aa483977adaf9d069ef93f756b405a450e5e327 --- /dev/null +++ b/ANTRL-Grammatiken/Aufgabenstellung/Task_Bsp_NatTree.svg @@ -0,0 +1,1830 @@ +<svg width="4376.900000000001" height="832.7" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><line x1="1870.640625" y1="7.5" x2="525.03125" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="525.03125" y1="39.5" x2="184.4375" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="525.03125" y1="39.5" x2="211.4375" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="211.4375" y1="71.5" x2="71.125" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="71.125" y1="103.5" x2="58.875" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="58.875" y1="135.5" x2="14.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="58.875" y1="135.5" x2="45.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="45.0" y1="167.5" x2="26.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="45.0" y1="167.5" x2="41.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="45.0" y1="167.5" x2="63.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="63.75" y1="199.5" x2="63.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="58.875" y1="135.5" x2="74.375" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="58.875" y1="135.5" x2="103.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="103.75" y1="167.5" x2="85.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="103.75" y1="167.5" x2="99.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="103.75" y1="167.5" x2="121.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="121.75" y1="199.5" x2="121.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="71.125" y1="103.5" x2="83.375" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="211.4375" y1="71.5" x2="214.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="214.25" y1="103.5" x2="214.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="214.25" y1="135.5" x2="173.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="214.25" y1="135.5" x2="196.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="214.25" y1="135.5" x2="225.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="225.75" y1="167.5" x2="225.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="225.75" y1="199.5" x2="157.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="225.75" y1="199.5" x2="176.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="225.75" y1="199.5" x2="206.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="206.25" y1="231.5" x2="206.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="206.25" y1="263.5" x2="206.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="225.75" y1="199.5" x2="235.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="225.75" y1="199.5" x2="264.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="264.25" y1="231.5" x2="264.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="264.25" y1="263.5" x2="264.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="225.75" y1="199.5" x2="293.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="214.25" y1="135.5" x2="255.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="211.4375" y1="71.5" x2="283.0" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="211.4375" y1="71.5" x2="351.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="351.75" y1="103.5" x2="351.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="351.75" y1="135.5" x2="278.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="351.75" y1="135.5" x2="301.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="351.75" y1="135.5" x2="330.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="330.75" y1="167.5" x2="330.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="330.75" y1="199.5" x2="330.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="351.75" y1="135.5" x2="363.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="351.75" y1="135.5" x2="395.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="395.75" y1="167.5" x2="395.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="395.75" y1="199.5" x2="354.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="395.75" y1="199.5" x2="377.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="395.75" y1="199.5" x2="407.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="407.25" y1="231.5" x2="407.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="407.25" y1="263.5" x2="407.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="395.75" y1="199.5" x2="436.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="351.75" y1="135.5" x2="425.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="525.03125" y1="39.5" x2="488.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="488.0" y1="71.5" x2="413.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="413.5" y1="103.5" x2="399.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="413.5" y1="103.5" x2="427.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="488.0" y1="71.5" x2="482.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="482.5" y1="103.5" x2="463.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="482.5" y1="103.5" x2="501.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="488.0" y1="71.5" x2="562.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="562.5" y1="103.5" x2="542.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="562.5" y1="103.5" x2="582.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="525.03125" y1="39.5" x2="865.625" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="865.625" y1="71.5" x2="835.125" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="865.625" y1="71.5" x2="869.125" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="865.625" y1="71.5" x2="896.125" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="896.125" y1="103.5" x2="619.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="619.25" y1="135.5" x2="590.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="619.25" y1="135.5" x2="616.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="619.25" y1="135.5" x2="648.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="648.0" y1="167.5" x2="577.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="577.25" y1="199.5" x2="563.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="577.25" y1="199.5" x2="591.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="648.0" y1="167.5" x2="644.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="644.75" y1="199.5" x2="627.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="644.75" y1="199.5" x2="662.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="648.0" y1="167.5" x2="718.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="718.75" y1="199.5" x2="700.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="718.75" y1="199.5" x2="737.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="896.125" y1="103.5" x2="821.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="821.75" y1="135.5" x2="792.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="821.75" y1="135.5" x2="819.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="821.75" y1="135.5" x2="851.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="851.0" y1="167.5" x2="780.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="780.25" y1="199.5" x2="766.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="780.25" y1="199.5" x2="794.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="851.0" y1="167.5" x2="847.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="847.75" y1="199.5" x2="830.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="847.75" y1="199.5" x2="865.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="851.0" y1="167.5" x2="921.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="921.75" y1="199.5" x2="903.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="921.75" y1="199.5" x2="940.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="896.125" y1="103.5" x2="1024.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1024.75" y1="135.5" x2="995.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1024.75" y1="135.5" x2="1022.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1024.75" y1="135.5" x2="1054.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1054.0" y1="167.5" x2="983.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="983.25" y1="199.5" x2="969.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="983.25" y1="199.5" x2="997.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1054.0" y1="167.5" x2="1050.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1050.75" y1="199.5" x2="1033.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1050.75" y1="199.5" x2="1068.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1054.0" y1="167.5" x2="1124.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1124.75" y1="199.5" x2="1106.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1124.75" y1="199.5" x2="1143.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="896.125" y1="103.5" x2="1173.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1173.0" y1="135.5" x2="1158.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1173.0" y1="135.5" x2="1188.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1188.0" y1="167.5" x2="1173.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1188.0" y1="167.5" x2="1202.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1870.640625" y1="7.5" x2="2150.921875" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2150.921875" y1="39.5" x2="1614.0625" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2150.921875" y1="39.5" x2="1687.5625" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1687.5625" y1="71.5" x2="1390.0" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1687.5625" y1="71.5" x2="1417.0" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1687.5625" y1="71.5" x2="1435.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1435.5" y1="103.5" x2="1287.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1287.25" y1="135.5" x2="1275.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1275.0" y1="167.5" x2="1228.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1275.0" y1="167.5" x2="1259.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1259.25" y1="199.5" x2="1240.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1259.25" y1="199.5" x2="1256.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1259.25" y1="199.5" x2="1278.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1278.0" y1="231.5" x2="1278.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1275.0" y1="167.5" x2="1290.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1275.0" y1="167.5" x2="1321.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1321.75" y1="199.5" x2="1302.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1321.75" y1="199.5" x2="1319.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1321.75" y1="199.5" x2="1341.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1341.0" y1="231.5" x2="1341.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1287.25" y1="135.5" x2="1299.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1435.5" y1="103.5" x2="1420.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1420.75" y1="135.5" x2="1420.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1420.75" y1="167.5" x2="1350.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1420.75" y1="167.5" x2="1373.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1420.75" y1="167.5" x2="1403.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1403.25" y1="199.5" x2="1403.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1403.25" y1="231.5" x2="1403.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1420.75" y1="167.5" x2="1432.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1420.75" y1="167.5" x2="1461.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1461.25" y1="199.5" x2="1461.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1461.25" y1="231.5" x2="1461.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1420.75" y1="167.5" x2="1490.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1435.5" y1="103.5" x2="1502.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1435.5" y1="103.5" x2="1583.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1583.75" y1="135.5" x2="1583.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1583.75" y1="167.5" x2="1513.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1583.75" y1="167.5" x2="1536.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1583.75" y1="167.5" x2="1566.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1566.25" y1="199.5" x2="1566.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1566.25" y1="231.5" x2="1566.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1583.75" y1="167.5" x2="1595.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1583.75" y1="167.5" x2="1624.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1624.25" y1="199.5" x2="1624.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1624.25" y1="231.5" x2="1624.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1583.75" y1="167.5" x2="1653.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1687.5625" y1="71.5" x2="1716.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1716.25" y1="103.5" x2="1645.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1645.5" y1="135.5" x2="1631.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1645.5" y1="135.5" x2="1659.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1716.25" y1="103.5" x2="1713.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1713.0" y1="135.5" x2="1695.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1713.0" y1="135.5" x2="1730.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1716.25" y1="103.5" x2="1787.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1787.0" y1="135.5" x2="1768.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1787.0" y1="135.5" x2="1805.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1687.5625" y1="71.5" x2="1985.125" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1985.125" y1="103.5" x2="1953.125" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1985.125" y1="103.5" x2="1988.625" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1985.125" y1="103.5" x2="2017.125" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2017.125" y1="135.5" x2="1839.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1839.25" y1="167.5" x2="1805.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1839.25" y1="167.5" x2="1836.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1839.25" y1="167.5" x2="1873.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1873.0" y1="199.5" x2="1802.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1802.25" y1="231.5" x2="1788.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1802.25" y1="231.5" x2="1816.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1873.0" y1="199.5" x2="1869.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1869.75" y1="231.5" x2="1852.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1869.75" y1="231.5" x2="1887.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1873.0" y1="199.5" x2="1943.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1943.75" y1="231.5" x2="1925.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1943.75" y1="231.5" x2="1962.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2017.125" y1="135.5" x2="2043.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2043.25" y1="167.5" x2="2010.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2043.25" y1="167.5" x2="2040.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2043.25" y1="167.5" x2="2076.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2076.0" y1="199.5" x2="2005.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2005.25" y1="231.5" x2="1991.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2005.25" y1="231.5" x2="2019.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2076.0" y1="199.5" x2="2072.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2072.75" y1="231.5" x2="2055.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2072.75" y1="231.5" x2="2090.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2076.0" y1="199.5" x2="2146.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2146.75" y1="231.5" x2="2128.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2146.75" y1="231.5" x2="2165.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2017.125" y1="135.5" x2="2195.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2195.0" y1="167.5" x2="2180.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2195.0" y1="167.5" x2="2210.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2210.0" y1="199.5" x2="2195.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2210.0" y1="199.5" x2="2224.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2150.921875" y1="39.5" x2="2687.78125" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2687.78125" y1="71.5" x2="2497.0625" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2687.78125" y1="71.5" x2="2522.5625" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2687.78125" y1="71.5" x2="2541.0625" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2541.0625" y1="103.5" x2="2336.875" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2336.875" y1="135.5" x2="2324.625" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2324.625" y1="167.5" x2="2247.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2324.625" y1="167.5" x2="2278.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2278.5" y1="199.5" x2="2259.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2278.5" y1="199.5" x2="2275.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2278.5" y1="199.5" x2="2297.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2297.25" y1="231.5" x2="2297.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2324.625" y1="167.5" x2="2309.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2324.625" y1="167.5" x2="2341.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2341.0" y1="199.5" x2="2321.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2341.0" y1="199.5" x2="2338.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2341.0" y1="199.5" x2="2360.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2360.25" y1="231.5" x2="2360.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2324.625" y1="167.5" x2="2371.375" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2324.625" y1="167.5" x2="2401.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2401.75" y1="199.5" x2="2383.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2401.75" y1="199.5" x2="2398.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2401.75" y1="199.5" x2="2420.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2420.25" y1="231.5" x2="2420.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2336.875" y1="135.5" x2="2349.125" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2541.0625" y1="103.5" x2="2550.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2550.5" y1="135.5" x2="2550.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2550.5" y1="167.5" x2="2466.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2550.5" y1="167.5" x2="2489.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2550.5" y1="167.5" x2="2519.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2519.25" y1="199.5" x2="2519.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2519.25" y1="231.5" x2="2449.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2519.25" y1="231.5" x2="2472.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2519.25" y1="231.5" x2="2501.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2501.75" y1="263.5" x2="2501.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2501.75" y1="295.5" x2="2501.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2519.25" y1="231.5" x2="2530.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2519.25" y1="231.5" x2="2559.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2559.75" y1="263.5" x2="2559.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2559.75" y1="295.5" x2="2559.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2519.25" y1="231.5" x2="2589.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2550.5" y1="167.5" x2="2562.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2550.5" y1="167.5" x2="2604.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2604.75" y1="199.5" x2="2604.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2604.75" y1="231.5" x2="2604.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2550.5" y1="167.5" x2="2634.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2541.0625" y1="103.5" x2="2647.875" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2541.0625" y1="103.5" x2="2745.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2745.25" y1="135.5" x2="2745.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2745.25" y1="167.5" x2="2657.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2745.25" y1="167.5" x2="2680.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2745.25" y1="167.5" x2="2709.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2709.75" y1="199.5" x2="2709.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2709.75" y1="231.5" x2="2709.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2745.25" y1="167.5" x2="2756.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2745.25" y1="167.5" x2="2803.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2803.75" y1="199.5" x2="2803.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2803.75" y1="231.5" x2="2733.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2803.75" y1="231.5" x2="2756.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2803.75" y1="231.5" x2="2786.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2786.25" y1="263.5" x2="2786.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2786.25" y1="295.5" x2="2786.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2803.75" y1="231.5" x2="2815.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2803.75" y1="231.5" x2="2844.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2844.25" y1="263.5" x2="2844.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2844.25" y1="295.5" x2="2844.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2803.75" y1="231.5" x2="2873.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2745.25" y1="167.5" x2="2833.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2687.78125" y1="71.5" x2="2878.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2878.5" y1="103.5" x2="2807.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2807.0" y1="135.5" x2="2792.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2807.0" y1="135.5" x2="2821.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2878.5" y1="103.5" x2="2874.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2874.5" y1="135.5" x2="2856.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2874.5" y1="135.5" x2="2892.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2878.5" y1="103.5" x2="2950.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2950.0" y1="135.5" x2="2929.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2950.0" y1="135.5" x2="2970.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1870.640625" y1="7.5" x2="3216.25" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3216.25" y1="39.5" x2="3030.125" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3216.25" y1="39.5" x2="3088.625" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3088.625" y1="71.5" x2="3070.125" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3088.625" y1="71.5" x2="3088.625" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3088.625" y1="71.5" x2="3107.125" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3107.125" y1="103.5" x2="3012.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3012.5" y1="135.5" x2="3000.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3000.25" y1="167.5" x2="2984.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3000.25" y1="167.5" x2="3015.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3015.75" y1="199.5" x2="2996.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3015.75" y1="199.5" x2="3013.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3015.75" y1="199.5" x2="3035.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3035.0" y1="231.5" x2="3035.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3012.5" y1="135.5" x2="3024.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3107.125" y1="103.5" x2="3114.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3114.75" y1="135.5" x2="3114.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3114.75" y1="167.5" x2="3044.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3114.75" y1="167.5" x2="3067.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3114.75" y1="167.5" x2="3097.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3097.25" y1="199.5" x2="3097.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3097.25" y1="231.5" x2="3097.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3114.75" y1="167.5" x2="3126.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3114.75" y1="167.5" x2="3155.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3155.25" y1="199.5" x2="3155.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3155.25" y1="231.5" x2="3155.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3114.75" y1="167.5" x2="3184.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3107.125" y1="103.5" x2="3158.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3107.125" y1="103.5" x2="3201.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3201.75" y1="135.5" x2="3201.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3201.75" y1="167.5" x2="3201.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3216.25" y1="39.5" x2="3402.375" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3402.375" y1="71.5" x2="3383.875" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3402.375" y1="71.5" x2="3402.375" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3402.375" y1="71.5" x2="3420.875" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3420.875" y1="103.5" x2="3287.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3287.75" y1="135.5" x2="3275.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3275.5" y1="167.5" x2="3228.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3275.5" y1="167.5" x2="3259.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3259.75" y1="199.5" x2="3241.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3259.75" y1="199.5" x2="3256.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3259.75" y1="199.5" x2="3278.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3278.5" y1="231.5" x2="3278.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3275.5" y1="167.5" x2="3291.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3275.5" y1="167.5" x2="3322.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3322.25" y1="199.5" x2="3303.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3322.25" y1="199.5" x2="3319.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3322.25" y1="199.5" x2="3341.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3341.5" y1="231.5" x2="3341.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3287.75" y1="135.5" x2="3300.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3420.875" y1="103.5" x2="3424.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3424.5" y1="135.5" x2="3424.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3424.5" y1="167.5" x2="3354.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3424.5" y1="167.5" x2="3377.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3424.5" y1="167.5" x2="3407.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3407.0" y1="199.5" x2="3407.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3407.0" y1="231.5" x2="3367.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3407.0" y1="231.5" x2="3387.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3407.0" y1="231.5" x2="3417.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3417.0" y1="263.5" x2="3417.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3417.0" y1="295.5" x2="3417.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3407.0" y1="231.5" x2="3446.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3424.5" y1="167.5" x2="3436.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3424.5" y1="167.5" x2="3465.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3465.0" y1="199.5" x2="3465.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3465.0" y1="231.5" x2="3465.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3424.5" y1="167.5" x2="3494.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3420.875" y1="103.5" x2="3489.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3420.875" y1="103.5" x2="3554.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3554.0" y1="135.5" x2="3554.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3554.0" y1="167.5" x2="3514.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3554.0" y1="167.5" x2="3534.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3554.0" y1="167.5" x2="3564.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3564.0" y1="199.5" x2="3564.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3564.0" y1="231.5" x2="3494.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3564.0" y1="231.5" x2="3517.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3564.0" y1="231.5" x2="3546.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3546.5" y1="263.5" x2="3546.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3546.5" y1="295.5" x2="3546.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3564.0" y1="231.5" x2="3575.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3564.0" y1="231.5" x2="3604.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3604.5" y1="263.5" x2="3604.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3604.5" y1="295.5" x2="3604.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3564.0" y1="231.5" x2="3634.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3554.0" y1="167.5" x2="3593.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<rect x="2526.5" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2528" y="169" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3331.5" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3333" y="265" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="3524.0" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3526" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="628.5" y="160.0" width="39.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="630" y="169" style="font-family:sans-serif;font-size:10px;"> +task_pt +</text> +<rect x="432.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="434" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2408.75" y="224.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2410" y="233" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="207.25" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="209" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3078.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3080" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1929.625" y="128.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1931" y="137" style="font-family:sans-serif;font-size:10px;"> +induction +</text> +<rect x="3179.25" y="160.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3181" y="169" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="537.0" y="96.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="539" y="105" style="font-family:sans-serif;font-size:10px;"> +maxsteps +</text> +<rect x="2482.0625" y="96.0" width="30.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2484" y="105" style="font-family:sans-serif;font-size:10px;"> +Asso +</text> +<rect x="1268.0" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1270" y="265" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="2391.75" y="192.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2393" y="201" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="1369.75" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1371" y="201" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1034.5" y="160.0" width="39.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1036" y="169" style="font-family:sans-serif;font-size:10px;"> +task_pt +</text> +<rect x="371.75" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="373" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1428.75" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1430" y="201" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1296.5" y="224.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1298" y="233" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="1311.75" y="192.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1313" y="201" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="2179.25" y="224.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2181" y="233" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="2780.25" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2782" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="373.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="375" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1261.0" y="160.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1263" y="169" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="3342.5" y="192.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3344" y="201" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="2348.75" y="224.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2350" y="233" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="3530.5" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3532" y="201" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="172.4375" y="64.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="174" y="73" style="font-family:sans-serif;font-size:10px;"> +task +</text> +<rect x="203.4375" y="64.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="205" y="73" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="3032.75" y="192.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3034" y="201" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="621.25" y="192.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="623" y="201" style="font-family:sans-serif;font-size:10px;"> +minsteps +</text> +<rect x="2982.5" y="128.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2984" y="137" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="763.75" y="192.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="765" y="201" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="1811.5" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1813" y="265" style="font-family:sans-serif;font-size:10px;"> +2 +</text> +<rect x="1560.25" y="256.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1562" y="265" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="2752.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2754" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3388.5" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3390" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2962.25" y="160.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2964" y="169" style="font-family:sans-serif;font-size:10px;"> +10 +</text> +<rect x="3442.5" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3444" y="233" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3267.0" y="224.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3269" y="233" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1696.75" y="96.0" width="39.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1698" y="105" style="font-family:sans-serif;font-size:10px;"> +task_pt +</text> +<rect x="1384.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1386" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3181.75" y="32.0" width="69.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3183" y="41" style="font-family:sans-serif;font-size:10px;"> +task_lemmata +</text> +<rect x="2437.25" y="256.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2439" y="265" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="2721.75" y="256.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2723" y="265" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="3373.5" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3375" y="201" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2829.25" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2831" y="201" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="195.75" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="197" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2233.5" y="192.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2235" y="201" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="308.25" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="310" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="172.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="174" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="21.25" y="192.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="23" y="201" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="52.25" y="192.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="54" y="201" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="2763.75" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2765" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="38.25" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="40" y="201" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="3180.75" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3182" y="201" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1565.25" y="128.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1567" y="137" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1974.5" y="256.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1976" y="265" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="2676.25" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2678" y="201" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3008.625" y="64.0" width="43.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3010" y="73" style="font-family:sans-serif;font-size:10px;"> +lemmata +</text> +<rect x="201.75" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="203" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3400.5" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3402" y="169" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3630.0" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3632" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="813.5" y="160.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="815" y="169" style="font-family:sans-serif;font-size:10px;"> +B +</text> +<rect x="82.25" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="84" y="201" style="font-family:sans-serif;font-size:10px;"> +t +</text> +<rect x="3023.5" y="224.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3025" y="233" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="3025.0" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3027" y="265" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="3153.25" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3155" y="137" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="3195.75" y="192.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3197" y="201" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="1559.75" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1561" y="169" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2990.5" y="224.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2992" y="233" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="3005.75" y="192.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3007" y="201" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="981.5" y="160.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="983" y="169" style="font-family:sans-serif;font-size:10px;"> +case +</text> +<rect x="297.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="299" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="403.75" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="405" y="297" style="font-family:sans-serif;font-size:10px;"> +t +</text> +<rect x="342.75" y="224.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="344" y="233" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="2887.25" y="160.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2889" y="169" style="font-family:sans-serif;font-size:10px;"> +7 +</text> +<rect x="3372.375" y="64.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3374" y="73" style="font-family:sans-serif;font-size:10px;"> +task_lemma +</text> +<rect x="2031.5" y="256.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2033" y="265" style="font-family:sans-serif;font-size:10px;"> +minsteps +</text> +<rect x="693.25" y="192.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="695" y="201" style="font-family:sans-serif;font-size:10px;"> +maxsteps +</text> +<rect x="845.625" y="64.0" width="40.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="847" y="73" style="font-family:sans-serif;font-size:10px;"> +ind_var +</text> +<rect x="2642.875" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2644" y="137" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="3257.75" y="128.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3259" y="137" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="3541.5" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3543" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="327.75" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="329" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="806.5" y="224.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="808" y="233" style="font-family:sans-serif;font-size:10px;"> +minsteps +</text> +<rect x="2173.5" y="192.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2175" y="201" style="font-family:sans-serif;font-size:10px;"> +IH +</text> +<rect x="3446.5" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3448" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3398.875" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3400" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="2454.75" y="192.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2456" y="201" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="1725.75" y="160.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1727" y="169" style="font-family:sans-serif;font-size:10px;"> +0 +</text> +<rect x="1619.25" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1621" y="265" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1080.5" y="224.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1082" y="233" style="font-family:sans-serif;font-size:10px;"> +maxsteps +</text> +<rect x="3432.5" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3434" y="201" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2315.75" y="224.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2317" y="233" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="333.25" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="335" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="325.75" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="327" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="778.5" y="160.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="780" y="169" style="font-family:sans-serif;font-size:10px;"> +case +</text> +<rect x="1329.5" y="224.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1331" y="233" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1846.25" y="224.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1848" y="233" style="font-family:sans-serif;font-size:10px;"> +minsteps +</text> +<rect x="1785.75" y="224.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1787" y="233" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="2833.25" y="160.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2835" y="169" style="font-family:sans-serif;font-size:10px;"> +minsteps +</text> +<rect x="2970.75" y="192.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2972" y="201" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="879.625" y="96.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="881" y="105" style="font-family:sans-serif;font-size:10px;"> +ind_pt +</text> +<rect x="2331.0" y="192.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2333" y="201" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="110.25" y="192.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="112" y="201" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1380.75" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1382" y="233" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3087.25" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3089" y="265" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="3383.5" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3385" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2021.75" y="160.0" width="43.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2023" y="169" style="font-family:sans-serif;font-size:10px;"> +case_pt +</text> +<rect x="3540.0" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3542" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="749.5" y="224.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="751" y="233" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="1427.5" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1429" y="105" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="1965.125" y="96.0" width="40.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1967" y="105" style="font-family:sans-serif;font-size:10px;"> +ind_var +</text> +<rect x="2767.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2769" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1235.5" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1237" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="3136.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3138" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3412.0" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3414" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="2779.75" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2781" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3149.25" y="256.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3151" y="265" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="2483.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2485" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2495.25" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2497" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2691.25" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2693" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="44.875" y="128.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="46" y="137" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="574.75" y="128.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="576" y="137" style="font-family:sans-serif;font-size:10px;"> +15 +</text> +<rect x="611.5" y="160.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="613" y="169" style="font-family:sans-serif;font-size:10px;"> +E +</text> +<rect x="149.75" y="224.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="151" y="233" style="font-family:sans-serif;font-size:10px;"> +inr +</text> +<rect x="1063.5" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1065" y="233" style="font-family:sans-serif;font-size:10px;"> +5 +</text> +<rect x="1497.25" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1499" y="137" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="1532.75" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1534" y="201" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2031.5" y="192.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2033" y="201" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="201.25" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="203" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="3394.5" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3396" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2790.5" y="128.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2792" y="137" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="388.75" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="390" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2519.0625" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2521" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="266.25" y="160.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="268" y="169" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="1159.5" y="128.0" width="27.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1161" y="137" style="font-family:sans-serif;font-size:10px;"> +ih_pt +</text> +<rect x="1486.75" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1488" y="201" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1396.75" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1398" y="169" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="384.75" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="386" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1577.5625" y="64.0" width="73.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1579" y="73" style="font-family:sans-serif;font-size:10px;"> +proof·lemmata +</text> +<rect x="1331.0" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1333" y="265" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="1957.5" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1959" y="265" style="font-family:sans-serif;font-size:10px;"> +3 +</text> +<rect x="2271.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2273" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="468.5" y="64.0" width="39.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="470" y="73" style="font-family:sans-serif;font-size:10px;"> +task_pt +</text> +<rect x="2785.25" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2787" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3535.5" y="128.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3537" y="137" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2986.25" y="160.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2988" y="169" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="3122.75" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3124" y="201" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="397.0" y="96.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="399" y="105" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="586.5" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="588" y="233" style="font-family:sans-serif;font-size:10px;"> +4 +</text> +<rect x="2851.0" y="128.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2853" y="137" style="font-family:sans-serif;font-size:10px;"> +minsteps +</text> +<rect x="251.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="253" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="278.0" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="280" y="105" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="1197.25" y="192.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1199" y="201" style="font-family:sans-serif;font-size:10px;"> +1 +</text> +<rect x="3312.25" y="192.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3314" y="201" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="3398.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3400" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1853.5" y="192.0" width="39.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1855" y="201" style="font-family:sans-serif;font-size:10px;"> +task_pt +</text> +<rect x="1882.5" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1884" y="265" style="font-family:sans-serif;font-size:10px;"> +2 +</text> +<rect x="3484.25" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3486" y="137" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="382.75" y="128.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="384" y="137" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="2721.25" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2723" y="169" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3545.5" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3547" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3058.625" y="64.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3060" y="73" style="font-family:sans-serif;font-size:10px;"> +task_lemma +</text> +<rect x="1016.5" y="160.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1018" y="169" style="font-family:sans-serif;font-size:10px;"> +N +</text> +<rect x="2367.875" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2369" y="201" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2345.625" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2347" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="2541.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2543" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1257.25" y="128.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1259" y="137" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="2468.25" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2470" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="312.25" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="314" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2821.75" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2823" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1654.75" y="160.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1656" y="169" style="font-family:sans-serif;font-size:10px;"> +0 +</text> +<rect x="3598.5" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3600" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="3268.5" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3270" y="265" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="2181.5" y="160.0" width="27.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2183" y="169" style="font-family:sans-serif;font-size:10px;"> +ih_pt +</text> +<rect x="53.75" y="224.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="55" y="233" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="3505.5" y="192.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3507" y="201" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="2049.25" y="224.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2051" y="233" style="font-family:sans-serif;font-size:10px;"> +minsteps +</text> +<rect x="576.5" y="160.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="578" y="169" style="font-family:sans-serif;font-size:10px;"> +case +</text> +<rect x="597.75" y="128.0" width="43.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="599" y="137" style="font-family:sans-serif;font-size:10px;"> +case_pt +</text> +<rect x="2657.78125" y="64.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2659" y="73" style="font-family:sans-serif;font-size:10px;"> +lemma_task +</text> +<rect x="1543.75" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1545" y="233" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3009.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3011" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1828.5" y="256.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1830" y="265" style="font-family:sans-serif;font-size:10px;"> +minsteps +</text> +<rect x="421.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="423" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1373.5" y="96.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1375" y="105" style="font-family:sans-serif;font-size:10px;"> +Komm +</text> +<rect x="2350.25" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2352" y="265" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="2726.75" y="128.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2728" y="137" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3406.0" y="128.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3408" y="137" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1413.5" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1415" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="2334.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2336" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="800.25" y="128.0" width="43.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="802" y="137" style="font-family:sans-serif;font-size:10px;"> +case_pt +</text> +<rect x="1402.25" y="128.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1404" y="137" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3063.75" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3065" y="201" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="952.5" y="224.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="954" y="233" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="3236.0" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3238" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1151.5" y="160.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1153" y="169" style="font-family:sans-serif;font-size:10px;"> +IH +</text> +<rect x="2704.75" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2706" y="265" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="2839.75" y="320.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2841" y="329" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="3287.5" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3289" y="201" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2500.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2502" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="789.5" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="791" y="233" style="font-family:sans-serif;font-size:10px;"> +5 +</text> +<rect x="1605.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1607" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1442.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1444" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="241.75" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="243" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1296.0" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1298" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="3358.5" y="256.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3360" y="265" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1003.25" y="128.0" width="43.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1005" y="137" style="font-family:sans-serif;font-size:10px;"> +case_pt +</text> +<rect x="1249.25" y="192.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1251" y="201" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="3412.875" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3414" y="105" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="2586.25" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2588" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="70.875" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="72" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2537.25" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2539" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2310.625" y="160.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2312" y="169" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="3253.0" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3255" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1742.75" y="160.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1744" y="169" style="font-family:sans-serif;font-size:10px;"> +maxsteps +</text> +<rect x="3214.75" y="192.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3216" y="201" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="100.75" y="224.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="102" y="233" style="font-family:sans-serif;font-size:10px;"> +NatTree +</text> +<rect x="3330.0" y="224.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3332" y="233" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1817.75" y="160.0" width="43.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1819" y="169" style="font-family:sans-serif;font-size:10px;"> +case_pt +</text> +<rect x="2193.5" y="192.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2195" y="201" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="3296.5" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3298" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="2306.25" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2308" y="201" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1657.5625" y="64.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1659" y="73" style="font-family:sans-serif;font-size:10px;"> +lemma_task +</text> +<rect x="1996.5" y="192.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1998" y="201" style="font-family:sans-serif;font-size:10px;"> +case +</text> +<rect x="831.5" y="160.0" width="39.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="833" y="169" style="font-family:sans-serif;font-size:10px;"> +task_pt +</text> +<rect x="1252.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1254" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="289.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="291" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="93.75" y="160.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="95" y="169" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="966.75" y="192.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="968" y="201" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="3261.5" y="160.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3263" y="169" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="3132.75" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3134" y="233" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="824.25" y="192.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="826" y="201" style="font-family:sans-serif;font-size:10px;"> +minsteps +</text> +<rect x="231.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="233" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1761.5" y="128.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1763" y="137" style="font-family:sans-serif;font-size:10px;"> +maxsteps +</text> +<rect x="3249.75" y="192.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3251" y="201" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="1771.5" y="256.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1773" y="265" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="3096.25" y="128.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3098" y="137" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="674.5" y="224.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="676" y="233" style="font-family:sans-serif;font-size:10px;"> +maxsteps +</text> +<rect x="1649.75" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1651" y="201" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="422.75" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="424" y="137" style="font-family:sans-serif;font-size:10px;"> +5 +</text> +<rect x="1629.0" y="128.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1631" y="137" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="504.03125" y="32.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="506" y="41" style="font-family:sans-serif;font-size:10px;"> +task_eq +</text> +<rect x="2924.5" y="128.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2926" y="137" style="font-family:sans-serif;font-size:10px;"> +maxsteps +</text> +<rect x="3375.875" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3377" y="105" style="font-family:sans-serif;font-size:10px;"> +L2 +</text> +<rect x="3589.5" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3591" y="201" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2816.25" y="160.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2818" y="169" style="font-family:sans-serif;font-size:10px;"> +7 +</text> +<rect x="260.75" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="262" y="297" style="font-family:sans-serif;font-size:10px;"> +t +</text> +<rect x="1214.25" y="192.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1216" y="201" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="732.5" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="734" y="233" style="font-family:sans-serif;font-size:10px;"> +6 +</text> +<rect x="2219.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2221" y="233" style="font-family:sans-serif;font-size:10px;"> +1 +</text> +<rect x="1858.640625" y="0.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1860" y="9" style="font-family:sans-serif;font-size:10px;"> +task +</text> +<rect x="3586.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3588" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2553.75" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2555" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="439.75" y="128.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="441" y="137" style="font-family:sans-serif;font-size:10px;"> +minsteps +</text> +<rect x="493.75" y="128.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="495" y="137" style="font-family:sans-serif;font-size:10px;"> +10 +</text> +<rect x="459.0" y="96.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="461" y="105" style="font-family:sans-serif;font-size:10px;"> +minsteps +</text> +<rect x="1547.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1549" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1027.25" y="192.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1029" y="201" style="font-family:sans-serif;font-size:10px;"> +minsteps +</text> +<rect x="2102.5" y="256.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2104" y="265" style="font-family:sans-serif;font-size:10px;"> +maxsteps +</text> +<rect x="1157.25" y="192.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1159" y="201" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="2532.0" y="128.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2534" y="137" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1988.75" y="224.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1990" y="233" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="2687.25" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2689" y="233" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3482.0" y="256.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3484" y="265" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="860.5" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="862" y="233" style="font-family:sans-serif;font-size:10px;"> +5 +</text> +<rect x="2582.25" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2584" y="233" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="245.75" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="247" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2160.5" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2162" y="265" style="font-family:sans-serif;font-size:10px;"> +4 +</text> +<rect x="1601.75" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1603" y="233" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3062.125" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3064" y="105" style="font-family:sans-serif;font-size:10px;"> +L1 +</text> +<rect x="3572.0" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3574" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1171.5" y="160.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1173" y="169" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="3459.0" y="256.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3461" y="265" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="183.75" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="185" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2121.25" y="224.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2123" y="233" style="font-family:sans-serif;font-size:10px;"> +maxsteps +</text> +<rect x="603.5" y="224.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="605" y="233" style="font-family:sans-serif;font-size:10px;"> +minsteps +</text> +<rect x="657.5" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="659" y="233" style="font-family:sans-serif;font-size:10px;"> +4 +</text> +<rect x="2306.875" y="128.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2308" y="137" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="1099.25" y="192.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1101" y="201" style="font-family:sans-serif;font-size:10px;"> +maxsteps +</text> +<rect x="992.5" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="994" y="233" style="font-family:sans-serif;font-size:10px;"> +5 +</text> +<rect x="2558.5" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2560" y="201" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2485.75" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2487" y="201" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="35.0" y="160.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="37" y="169" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="560.75" y="192.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="562" y="201" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="1918.25" y="224.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1920" y="233" style="font-family:sans-serif;font-size:10px;"> +maxsteps +</text> +<rect x="2859.0" y="96.0" width="39.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2861" y="105" style="font-family:sans-serif;font-size:10px;"> +task_pt +</text> +<rect x="187.75" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="189" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1899.5" y="256.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1901" y="265" style="font-family:sans-serif;font-size:10px;"> +maxsteps +</text> +<rect x="3297.0" y="224.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3299" y="233" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="190.25" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="192" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3530.0" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3532" y="169" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1438.75" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1440" y="233" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1671.75" y="160.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1673" y="169" style="font-family:sans-serif;font-size:10px;"> +minsteps +</text> +<rect x="2753.25" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2755" y="201" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3442.5" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3444" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2268.5" y="192.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2270" y="201" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="3099.125" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3101" y="105" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="3582.0" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3584" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="546.5" y="224.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="548" y="233" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="2117.921875" y="32.0" width="66.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2119" y="41" style="font-family:sans-serif;font-size:10px;"> +lemma_tasks +</text> +<rect x="2533.0625" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2535" y="105" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="1138.5" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1140" y="233" style="font-family:sans-serif;font-size:10px;"> +7 +</text> +<rect x="2085.5" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2087" y="265" style="font-family:sans-serif;font-size:10px;"> +3 +</text> +<rect x="2285.75" y="224.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2287" y="233" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="2527.25" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2529" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2776.25" y="160.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2778" y="169" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="1689.5" y="128.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1691" y="137" style="font-family:sans-serif;font-size:10px;"> +minsteps +</text> +<rect x="2000.625" y="128.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2002" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_pt +</text> +<rect x="896.25" y="192.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="898" y="201" style="font-family:sans-serif;font-size:10px;"> +maxsteps +</text> +<rect x="2645.25" y="192.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2647" y="201" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="2600.25" y="256.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2602" y="265" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="1800.75" y="160.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1802" y="169" style="font-family:sans-serif;font-size:10px;"> +0 +</text> +<rect x="1791.5" y="192.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1793" y="201" style="font-family:sans-serif;font-size:10px;"> +case +</text> +<rect x="377.25" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="379" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1983.625" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1985" y="137" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="877.5" y="224.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="879" y="233" style="font-family:sans-serif;font-size:10px;"> +maxsteps +</text> +<rect x="1287.0" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1289" y="201" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2869.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2871" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="811.625" y="96.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="813" y="105" style="font-family:sans-serif;font-size:10px;"> +induction +</text> +<rect x="1009.5" y="224.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1011" y="233" style="font-family:sans-serif;font-size:10px;"> +minsteps +</text> +<rect x="96.25" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="98" y="201" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="3183.25" y="128.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3185" y="137" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3490.5" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3492" y="201" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2287.25" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2289" y="265" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="1266.5" y="224.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1268" y="233" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="359.75" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="361" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2378.75" y="224.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2380" y="233" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="2904.25" y="160.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2906" y="169" style="font-family:sans-serif;font-size:10px;"> +maxsteps +</text> +<rect x="2630.25" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2632" y="201" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1315.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1317" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="2056.5" y="192.0" width="39.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2058" y="201" style="font-family:sans-serif;font-size:10px;"> +task_pt +</text> +<rect x="3528.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3530" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2496.75" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2498" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="2585.25" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2587" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2254.75" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2256" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="2811.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2813" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="516.75" y="128.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="518" y="137" style="font-family:sans-serif;font-size:10px;"> +maxsteps +</text> +<rect x="1591.75" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1593" y="201" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1455.25" y="256.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1457" y="265" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="3513.0" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3515" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2014.5" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2016" y="265" style="font-family:sans-serif;font-size:10px;"> +3 +</text> +<rect x="2479.25" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2481" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="865.625" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="867" y="105" style="font-family:sans-serif;font-size:10px;"> +t +</text> +<rect x="79.875" y="128.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="81" y="137" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1338.75" y="192.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1340" y="201" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="2825.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2827" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1614.75" y="160.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1616" y="169" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="3316.0" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3318" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="41.125" y="96.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="43" y="105" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="192.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="194" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1501.75" y="192.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1503" y="201" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="3021.25" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3023" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="0.0" y="160.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2" y="169" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="161.25" y="160.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="163" y="169" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="1398.25" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1400" y="265" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1826.5" y="192.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1828" y="201" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="3383.0" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3385" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2394.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2396" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="3090.75" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3092" y="169" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3085.125" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3087" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="3074.75" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3076" y="233" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="935.5" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="937" y="233" style="font-family:sans-serif;font-size:10px;"> +7 +</text> +<rect x="2410.25" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2412" y="265" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +</svg> \ No newline at end of file diff --git a/ANTRL-Grammatiken/Aufgabenstellung/Task_Bsp_NatTree.txt b/ANTRL-Grammatiken/Aufgabenstellung/Task_Bsp_NatTree.txt new file mode 100644 index 0000000000000000000000000000000000000000..db1626b1e2a794d23e9e24b05f4c18b9e36698f9 --- /dev/null +++ b/ANTRL-Grammatiken/Aufgabenstellung/Task_Bsp_NatTree.txt @@ -0,0 +1,21 @@ +task forall n:Nat, t:NatTree : sum(inr(n,t)) = plus(n,sum(t)) + maxpt 3 minsteps 3 maxsteps 3 + induction t + case E maxpt 4 minsteps 4 maxsteps 6 + case B maxpt 5 minsteps 5 maxsteps 7 + case N maxpt 6 minsteps 6 maxsteps 10 + IH maxpt 1 + +proof lemmata + Komm: forall n:Nat, m:Nat : plus(n,m) = plus(m,n) + maxpt 0 minsteps 0 maxsteps 0 + induction n + case null maxpt 2 minsteps 2 maxsteps 3 + case inc maxpt 3 minsteps 3 maxsteps 4 + IH maxpt 1 + Asso: forall n:Nat, m:Nat, k:Nat : plus(plus(n,m),k) = plus(n,plus(m,k)) + maxpt 7 minsteps 7 maxsteps 10 + +lemmata + L1: forall m:Nat : plus(null,m) = m + L2: forall n:Nat, m:Nat : plus(inc(n),m) = inc(plus(n,m)) \ No newline at end of file diff --git a/ANTRL-Grammatiken/Aufgabenstellung/Task_Bsp_plus_komm.svg b/ANTRL-Grammatiken/Aufgabenstellung/Task_Bsp_plus_komm.svg new file mode 100644 index 0000000000000000000000000000000000000000..4d5c9eb6f7d30e951bf5c542f20a5d3138ec05f1 --- /dev/null +++ b/ANTRL-Grammatiken/Aufgabenstellung/Task_Bsp_plus_komm.svg @@ -0,0 +1,400 @@ +<svg width="1070.3000000000002" height="832.7" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><line x1="435.5625" y1="7.5" x2="435.5625" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="435.5625" y1="39.5" x2="194.25" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="435.5625" y1="39.5" x2="221.25" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="221.25" y1="71.5" x2="73.0" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="73.0" y1="103.5" x2="60.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="60.75" y1="135.5" x2="14.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="60.75" y1="135.5" x2="45.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="45.0" y1="167.5" x2="26.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="45.0" y1="167.5" x2="41.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="45.0" y1="167.5" x2="63.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="63.75" y1="199.5" x2="63.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="60.75" y1="135.5" x2="76.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="60.75" y1="135.5" x2="107.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="107.5" y1="167.5" x2="88.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="107.5" y1="167.5" x2="104.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="107.5" y1="167.5" x2="126.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="126.75" y1="199.5" x2="126.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="73.0" y1="103.5" x2="85.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="221.25" y1="71.5" x2="206.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="206.5" y1="103.5" x2="206.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="206.5" y1="135.5" x2="136.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="206.5" y1="135.5" x2="159.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="206.5" y1="135.5" x2="189.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="189.0" y1="167.5" x2="189.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="189.0" y1="199.5" x2="189.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="206.5" y1="135.5" x2="218.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="206.5" y1="135.5" x2="247.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="247.0" y1="167.5" x2="247.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="247.0" y1="199.5" x2="247.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="206.5" y1="135.5" x2="276.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="221.25" y1="71.5" x2="288.0" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="221.25" y1="71.5" x2="369.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="369.5" y1="103.5" x2="369.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="369.5" y1="135.5" x2="299.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="369.5" y1="135.5" x2="322.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="369.5" y1="135.5" x2="352.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="352.0" y1="167.5" x2="352.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="352.0" y1="199.5" x2="352.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="369.5" y1="135.5" x2="381.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="369.5" y1="135.5" x2="410.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="410.0" y1="167.5" x2="410.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="410.0" y1="199.5" x2="410.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="369.5" y1="135.5" x2="439.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="435.5625" y1="39.5" x2="533.4375" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="533.4375" y1="71.5" x2="515.6875" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="533.4375" y1="71.5" x2="551.1875" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="435.5625" y1="39.5" x2="676.875" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="676.875" y1="71.5" x2="676.875" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="676.875" y1="103.5" x2="498.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="498.25" y1="135.5" x2="464.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="498.25" y1="135.5" x2="495.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="498.25" y1="135.5" x2="532.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="532.0" y1="167.5" x2="461.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="461.25" y1="199.5" x2="447.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="461.25" y1="199.5" x2="475.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="532.0" y1="167.5" x2="528.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="528.75" y1="199.5" x2="511.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="528.75" y1="199.5" x2="546.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="532.0" y1="167.5" x2="602.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="602.75" y1="199.5" x2="584.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="602.75" y1="199.5" x2="621.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="676.875" y1="103.5" x2="698.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="698.0" y1="135.5" x2="660.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="698.0" y1="135.5" x2="695.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="698.0" y1="135.5" x2="735.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="735.75" y1="167.5" x2="664.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="664.25" y1="199.5" x2="650.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="664.25" y1="199.5" x2="678.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="735.75" y1="167.5" x2="731.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="731.75" y1="199.5" x2="714.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="731.75" y1="199.5" x2="749.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="735.75" y1="167.5" x2="807.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="807.25" y1="199.5" x2="787.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="807.25" y1="199.5" x2="827.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="676.875" y1="103.5" x2="855.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="855.5" y1="135.5" x2="840.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="855.5" y1="135.5" x2="870.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="870.5" y1="167.5" x2="856.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="870.5" y1="167.5" x2="884.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<rect x="21.25" y="192.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="23" y="201" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="761.5" y="224.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="763" y="233" style="font-family:sans-serif;font-size:10px;"> +maxsteps +</text> +<rect x="35.0" y="160.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="37" y="169" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="52.25" y="192.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="54" y="201" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="819.5" y="224.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="821" y="233" style="font-family:sans-serif;font-size:10px;"> +12 +</text> +<rect x="115.25" y="192.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="117" y="201" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="38.25" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="40" y="201" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="505.25" y="192.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="507" y="201" style="font-family:sans-serif;font-size:10px;"> +minsteps +</text> +<rect x="659.875" y="64.0" width="34.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="661" y="73" style="font-family:sans-serif;font-size:10px;"> +config +</text> +<rect x="854.0" y="160.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="856" y="169" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="879.75" y="192.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="881" y="201" style="font-family:sans-serif;font-size:10px;"> +1 +</text> +<rect x="351.0" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="353" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="287.5" y="160.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="289" y="169" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="329.5" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="331" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="241.0" y="224.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="243" y="233" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="283.0" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="285" y="105" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="345.5" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="347" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="476.75" y="128.0" width="43.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="478" y="137" style="font-family:sans-serif;font-size:10px;"> +case_pt +</text> +<rect x="228.5" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="230" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="318.5" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="320" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="423.5625" y="0.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="425" y="9" style="font-family:sans-serif;font-size:10px;"> +task +</text> +<rect x="541.5" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="543" y="233" style="font-family:sans-serif;font-size:10px;"> +6 +</text> +<rect x="82.25" y="192.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="84" y="201" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="450.5" y="160.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="452" y="169" style="font-family:sans-serif;font-size:10px;"> +case +</text> +<rect x="272.5" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="274" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="834.0" y="160.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="836" y="169" style="font-family:sans-serif;font-size:10px;"> +IH +</text> +<rect x="781.75" y="192.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="783" y="201" style="font-family:sans-serif;font-size:10px;"> +maxsteps +</text> +<rect x="213.25" y="64.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="215" y="73" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="46.75" y="128.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="48" y="137" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="405.0" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="407" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="492.1875" y="96.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="494" y="105" style="font-family:sans-serif;font-size:10px;"> +induction +</text> +<rect x="182.25" y="64.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="184" y="73" style="font-family:sans-serif;font-size:10px;"> +task +</text> +<rect x="646.25" y="160.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="648" y="169" style="font-family:sans-serif;font-size:10px;"> +case +</text> +<rect x="435.5" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="437" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="681.25" y="160.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="683" y="169" style="font-family:sans-serif;font-size:10px;"> +nach +</text> +<rect x="708.25" y="192.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="710" y="201" style="font-family:sans-serif;font-size:10px;"> +minsteps +</text> +<rect x="184.0" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="186" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="616.5" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="618" y="233" style="font-family:sans-serif;font-size:10px;"> +8 +</text> +<rect x="558.5" y="224.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="560" y="233" style="font-family:sans-serif;font-size:10px;"> +maxsteps +</text> +<rect x="512.5" y="160.0" width="39.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="514" y="169" style="font-family:sans-serif;font-size:10px;"> +task_pt +</text> +<rect x="839.75" y="192.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="841" y="201" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="673.5" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="675" y="233" style="font-family:sans-serif;font-size:10px;"> +6 +</text> +<rect x="72.75" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="74" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="444.75" y="192.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="446" y="201" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="170.5" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="172" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="487.5" y="224.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="489" y="233" style="font-family:sans-serif;font-size:10px;"> +minsteps +</text> +<rect x="690.5" y="224.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="692" y="233" style="font-family:sans-serif;font-size:10px;"> +minsteps +</text> +<rect x="470.5" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="472" y="233" style="font-family:sans-serif;font-size:10px;"> +4 +</text> +<rect x="81.75" y="128.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="83" y="137" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="182.5" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="184" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="513.4375" y="64.0" width="40.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="515" y="73" style="font-family:sans-serif;font-size:10px;"> +ind_var +</text> +<rect x="842.0" y="128.0" width="27.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="844" y="137" style="font-family:sans-serif;font-size:10px;"> +ih_pt +</text> +<rect x="116.75" y="224.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="118" y="233" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="43.0" y="96.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="45" y="105" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="155.5" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="157" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="377.5" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="379" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="53.75" y="224.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="55" y="233" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="485.5" y="160.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="487" y="169" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="546.1875" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="548" y="105" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="744.5" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="746" y="233" style="font-family:sans-serif;font-size:10px;"> +9 +</text> +<rect x="0.0" y="160.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2" y="169" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="124.5" y="160.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="126" y="169" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="214.5" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="216" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="660.375" y="96.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="662" y="105" style="font-family:sans-serif;font-size:10px;"> +ind_pt +</text> +<rect x="633.5" y="224.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="635" y="233" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="188.0" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="190" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="676.5" y="128.0" width="43.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="678" y="137" style="font-family:sans-serif;font-size:10px;"> +case_pt +</text> +<rect x="97.5" y="160.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="99" y="169" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="716.25" y="160.0" width="39.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="718" y="169" style="font-family:sans-serif;font-size:10px;"> +task_pt +</text> +<rect x="647.75" y="192.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="649" y="201" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="101.25" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="103" y="201" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="333.5" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="335" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="414.5625" y="32.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="416" y="41" style="font-family:sans-serif;font-size:10px;"> +task_eq +</text> +<rect x="387.5" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="389" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="577.25" y="192.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="579" y="201" style="font-family:sans-serif;font-size:10px;"> +maxsteps +</text> +<rect x="346.0" y="224.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="348" y="233" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="391.5" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="393" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="430.5" y="224.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="432" y="233" style="font-family:sans-serif;font-size:10px;"> +maxpt +</text> +<rect x="224.5" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="226" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="166.5" y="192.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="168" y="201" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +</svg> \ No newline at end of file diff --git a/ANTRL-Grammatiken/Aufgabenstellung/Task_Bsp_plus_komm.txt b/ANTRL-Grammatiken/Aufgabenstellung/Task_Bsp_plus_komm.txt new file mode 100644 index 0000000000000000000000000000000000000000..de27ffc8ec18756ae30445ec69a0a0b5f1d6ce08 --- /dev/null +++ b/ANTRL-Grammatiken/Aufgabenstellung/Task_Bsp_plus_komm.txt @@ -0,0 +1,5 @@ +task forall n:Nat, m:Nat : plus(n,m) = plus(m,n) + induction n + case null maxpt 4 minsteps 6 maxsteps 8 + case nach maxpt 6 minsteps 9 maxsteps 12 + IH maxpt 1 \ No newline at end of file diff --git a/ANTRL-Grammatiken/Aufgabenstellung/Task_Bsp_small.txt b/ANTRL-Grammatiken/Aufgabenstellung/Task_Bsp_small.txt new file mode 100644 index 0000000000000000000000000000000000000000..728c684cf8400d53a1fcd88066f03f70ba542aed --- /dev/null +++ b/ANTRL-Grammatiken/Aufgabenstellung/Task_Bsp_small.txt @@ -0,0 +1 @@ +task plus(y,x) = plus(x,y) \ No newline at end of file diff --git a/ANTRL-Grammatiken/Beweis/Induction_Bsp_plus_komm.svg b/ANTRL-Grammatiken/Beweis/Induction_Bsp_plus_komm.svg new file mode 100644 index 0000000000000000000000000000000000000000..88f3ae8232dcbbd6b482f5cdf9b098c88199b85d --- /dev/null +++ b/ANTRL-Grammatiken/Beweis/Induction_Bsp_plus_komm.svg @@ -0,0 +1,2385 @@ +<svg width="5034.700000000001" height="832.7" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><line x1="1978.8515625" y1="7.5" x2="544.109375" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="544.109375" y1="39.5" x2="101.375" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="101.375" y1="71.5" x2="66.875" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="101.375" y1="71.5" x2="98.875" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="101.375" y1="71.5" x2="117.375" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="101.375" y1="71.5" x2="135.875" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="135.875" y1="103.5" x2="41.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="41.75" y1="135.5" x2="29.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="29.5" y1="167.5" x2="14.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="29.5" y1="167.5" x2="45.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="45.0" y1="199.5" x2="26.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="45.0" y1="199.5" x2="41.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="45.0" y1="199.5" x2="63.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="63.75" y1="231.5" x2="63.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="41.75" y1="135.5" x2="54.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="135.875" y1="103.5" x2="144.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="144.0" y1="135.5" x2="144.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="144.0" y1="167.5" x2="74.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="144.0" y1="167.5" x2="97.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="144.0" y1="167.5" x2="126.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="126.5" y1="199.5" x2="126.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="126.5" y1="231.5" x2="126.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="144.0" y1="167.5" x2="155.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="144.0" y1="167.5" x2="184.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="184.5" y1="199.5" x2="184.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="184.5" y1="231.5" x2="184.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="144.0" y1="167.5" x2="214.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="135.875" y1="103.5" x2="187.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="135.875" y1="103.5" x2="230.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="230.0" y1="135.5" x2="230.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="230.0" y1="167.5" x2="230.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="544.109375" y1="39.5" x2="986.84375" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="986.84375" y1="71.5" x2="986.84375" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="986.84375" y1="103.5" x2="300.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="300.75" y1="135.5" x2="283.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="300.75" y1="135.5" x2="318.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="986.84375" y1="103.5" x2="512.65625" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="512.65625" y1="135.5" x2="337.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="512.65625" y1="135.5" x2="355.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="512.65625" y1="135.5" x2="389.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="389.5" y1="167.5" x2="368.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="389.5" y1="167.5" x2="410.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="410.75" y1="199.5" x2="337.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="410.75" y1="199.5" x2="393.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="393.0" y1="231.5" x2="393.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="393.0" y1="263.5" x2="323.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="393.0" y1="263.5" x2="346.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="393.0" y1="263.5" x2="375.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="375.5" y1="295.5" x2="375.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="375.5" y1="327.5" x2="375.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="393.0" y1="263.5" x2="404.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="393.0" y1="263.5" x2="433.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="433.5" y1="295.5" x2="433.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="433.5" y1="327.5" x2="433.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="393.0" y1="263.5" x2="463.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="410.75" y1="199.5" x2="438.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="410.75" y1="199.5" x2="484.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="484.0" y1="231.5" x2="484.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="484.0" y1="263.5" x2="484.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="512.65625" y1="135.5" x2="687.8125" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="687.8125" y1="167.5" x2="583.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="583.0" y1="199.5" x2="583.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="583.0" y1="231.5" x2="583.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="583.0" y1="263.5" x2="513.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="583.0" y1="263.5" x2="536.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="583.0" y1="263.5" x2="565.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="565.5" y1="295.5" x2="565.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="565.5" y1="327.5" x2="565.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="583.0" y1="263.5" x2="594.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="583.0" y1="263.5" x2="623.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="623.5" y1="295.5" x2="623.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="623.5" y1="327.5" x2="623.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="583.0" y1="263.5" x2="653.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="687.8125" y1="167.5" x2="792.625" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="792.625" y1="199.5" x2="612.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="792.625" y1="199.5" x2="639.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="639.5" y1="231.5" x2="639.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="792.625" y1="199.5" x2="666.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="792.625" y1="199.5" x2="699.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="699.0" y1="231.5" x2="699.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="792.625" y1="199.5" x2="732.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="792.625" y1="199.5" x2="764.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="764.5" y1="231.5" x2="764.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="764.5" y1="263.5" x2="764.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="764.5" y1="295.5" x2="694.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="764.5" y1="295.5" x2="717.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="764.5" y1="295.5" x2="747.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="747.0" y1="327.5" x2="747.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="747.0" y1="359.5" x2="747.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="764.5" y1="295.5" x2="776.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="764.5" y1="295.5" x2="805.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="805.0" y1="327.5" x2="805.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="805.0" y1="359.5" x2="805.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="764.5" y1="295.5" x2="834.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="792.625" y1="199.5" x2="830.625" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="792.625" y1="199.5" x2="890.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="890.25" y1="231.5" x2="868.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="890.25" y1="231.5" x2="890.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="890.25" y1="263.5" x2="868.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="868.0" y1="295.5" x2="868.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="868.0" y1="327.5" x2="868.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="890.25" y1="263.5" x2="897.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="890.25" y1="263.5" x2="912.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="890.25" y1="231.5" x2="911.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="792.625" y1="199.5" x2="916.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="792.625" y1="199.5" x2="932.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="792.625" y1="199.5" x2="972.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="972.75" y1="231.5" x2="972.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="972.75" y1="263.5" x2="972.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="972.75" y1="295.5" x2="972.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="986.84375" y1="103.5" x2="1116.375" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1116.375" y1="135.5" x2="1098.625" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1116.375" y1="135.5" x2="1115.625" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1116.375" y1="135.5" x2="1134.125" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1134.125" y1="167.5" x2="1040.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1040.0" y1="199.5" x2="1027.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1027.75" y1="231.5" x2="1012.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1027.75" y1="231.5" x2="1043.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1043.25" y1="263.5" x2="1024.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1043.25" y1="263.5" x2="1040.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1043.25" y1="263.5" x2="1062.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1062.0" y1="295.5" x2="1062.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1040.0" y1="199.5" x2="1052.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1134.125" y1="167.5" x2="1142.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1142.25" y1="199.5" x2="1142.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1142.25" y1="231.5" x2="1072.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1142.25" y1="231.5" x2="1095.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1142.25" y1="231.5" x2="1124.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1124.75" y1="263.5" x2="1124.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1124.75" y1="295.5" x2="1124.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1142.25" y1="231.5" x2="1153.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1142.25" y1="231.5" x2="1182.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1182.75" y1="263.5" x2="1182.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1182.75" y1="295.5" x2="1182.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1142.25" y1="231.5" x2="1212.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1134.125" y1="167.5" x2="1185.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1134.125" y1="167.5" x2="1228.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1228.25" y1="199.5" x2="1228.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1228.25" y1="231.5" x2="1228.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="986.84375" y1="103.5" x2="1672.9375" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1672.9375" y1="135.5" x2="1342.125" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1672.9375" y1="135.5" x2="1359.125" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1672.9375" y1="135.5" x2="1393.625" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1393.625" y1="167.5" x2="1372.375" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1393.625" y1="167.5" x2="1414.875" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1414.875" y1="199.5" x2="1287.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1287.75" y1="231.5" x2="1275.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1275.5" y1="263.5" x2="1260.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1275.5" y1="263.5" x2="1291.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1291.0" y1="295.5" x2="1272.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1291.0" y1="295.5" x2="1287.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1291.0" y1="295.5" x2="1309.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1309.75" y1="327.5" x2="1309.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1287.75" y1="231.5" x2="1300.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1414.875" y1="199.5" x2="1397.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1397.5" y1="231.5" x2="1397.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1397.5" y1="263.5" x2="1320.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1397.5" y1="263.5" x2="1343.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1397.5" y1="263.5" x2="1372.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1372.5" y1="295.5" x2="1372.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1372.5" y1="327.5" x2="1372.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1397.5" y1="263.5" x2="1409.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1397.5" y1="263.5" x2="1445.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1445.5" y1="295.5" x2="1445.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1445.5" y1="327.5" x2="1403.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1445.5" y1="327.5" x2="1428.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1445.5" y1="327.5" x2="1458.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1458.0" y1="359.5" x2="1458.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1458.0" y1="391.5" x2="1458.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1445.5" y1="327.5" x2="1487.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1397.5" y1="263.5" x2="1475.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1414.875" y1="199.5" x2="1469.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1414.875" y1="199.5" x2="1542.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1542.0" y1="231.5" x2="1542.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1542.0" y1="263.5" x2="1500.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1542.0" y1="263.5" x2="1525.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1542.0" y1="263.5" x2="1554.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1554.5" y1="295.5" x2="1554.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1554.5" y1="327.5" x2="1554.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1542.0" y1="263.5" x2="1584.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1672.9375" y1="135.5" x2="2003.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2003.75" y1="167.5" x2="1684.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1684.5" y1="199.5" x2="1684.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1684.5" y1="231.5" x2="1684.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1684.5" y1="263.5" x2="1607.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1684.5" y1="263.5" x2="1630.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1684.5" y1="263.5" x2="1659.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1659.5" y1="295.5" x2="1659.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1659.5" y1="327.5" x2="1659.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1684.5" y1="263.5" x2="1696.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1684.5" y1="263.5" x2="1732.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1732.5" y1="295.5" x2="1732.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1732.5" y1="327.5" x2="1690.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1732.5" y1="327.5" x2="1715.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1732.5" y1="327.5" x2="1745.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1745.0" y1="359.5" x2="1745.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1745.0" y1="391.5" x2="1745.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1732.5" y1="327.5" x2="1774.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1684.5" y1="263.5" x2="1762.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2003.75" y1="167.5" x2="1925.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1925.75" y1="199.5" x2="1714.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1925.75" y1="199.5" x2="1741.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1741.0" y1="231.5" x2="1741.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1925.75" y1="199.5" x2="1767.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1925.75" y1="199.5" x2="1800.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1800.5" y1="231.5" x2="1800.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1925.75" y1="199.5" x2="1833.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1925.75" y1="199.5" x2="1866.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1866.0" y1="231.5" x2="1866.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1866.0" y1="263.5" x2="1866.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1866.0" y1="295.5" x2="1788.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1866.0" y1="295.5" x2="1811.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1866.0" y1="295.5" x2="1841.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1841.0" y1="327.5" x2="1841.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1841.0" y1="359.5" x2="1841.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1866.0" y1="295.5" x2="1877.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1866.0" y1="295.5" x2="1914.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1914.0" y1="327.5" x2="1914.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1914.0" y1="359.5" x2="1872.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1914.0" y1="359.5" x2="1897.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1914.0" y1="359.5" x2="1926.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1926.5" y1="391.5" x2="1926.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1926.5" y1="423.5" x2="1926.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1914.0" y1="359.5" x2="1956.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1866.0" y1="295.5" x2="1943.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1925.75" y1="199.5" x2="1954.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1925.75" y1="199.5" x2="2037.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2037.0" y1="231.5" x2="1977.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2037.0" y1="231.5" x2="1999.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1999.25" y1="263.5" x2="1977.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1977.0" y1="295.5" x2="1977.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1977.0" y1="327.5" x2="1977.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1999.25" y1="263.5" x2="2006.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1999.25" y1="263.5" x2="2021.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2037.0" y1="231.5" x2="2037.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2037.0" y1="231.5" x2="2074.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2074.75" y1="263.5" x2="2052.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2052.0" y1="295.5" x2="2052.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2052.0" y1="327.5" x2="2052.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2074.75" y1="263.5" x2="2081.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2074.75" y1="263.5" x2="2097.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2037.0" y1="231.5" x2="2096.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1925.75" y1="199.5" x2="2069.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1925.75" y1="199.5" x2="2091.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1925.75" y1="199.5" x2="2137.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2137.5" y1="231.5" x2="2137.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2137.5" y1="263.5" x2="2137.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2137.5" y1="295.5" x2="2095.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2137.5" y1="295.5" x2="2120.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2137.5" y1="295.5" x2="2150.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2150.0" y1="327.5" x2="2150.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2150.0" y1="359.5" x2="2080.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2150.0" y1="359.5" x2="2103.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2150.0" y1="359.5" x2="2132.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2132.5" y1="391.5" x2="2132.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2132.5" y1="423.5" x2="2132.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2150.0" y1="359.5" x2="2161.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2150.0" y1="359.5" x2="2190.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2190.5" y1="391.5" x2="2190.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2190.5" y1="423.5" x2="2190.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2150.0" y1="359.5" x2="2220.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2137.5" y1="295.5" x2="2179.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2003.75" y1="167.5" x2="2323.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2323.0" y1="199.5" x2="2176.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2323.0" y1="199.5" x2="2203.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2203.5" y1="231.5" x2="2203.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2323.0" y1="199.5" x2="2230.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2323.0" y1="199.5" x2="2263.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2263.0" y1="231.5" x2="2263.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2323.0" y1="199.5" x2="2296.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2323.0" y1="199.5" x2="2328.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2328.5" y1="231.5" x2="2328.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2328.5" y1="263.5" x2="2328.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2328.5" y1="295.5" x2="2258.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2328.5" y1="295.5" x2="2281.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2328.5" y1="295.5" x2="2311.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2311.0" y1="327.5" x2="2311.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2311.0" y1="359.5" x2="2311.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2328.5" y1="295.5" x2="2340.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2328.5" y1="295.5" x2="2369.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2369.0" y1="327.5" x2="2369.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2369.0" y1="359.5" x2="2369.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2328.5" y1="295.5" x2="2398.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2323.0" y1="199.5" x2="2361.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2323.0" y1="199.5" x2="2387.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2387.0" y1="231.5" x2="2380.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2387.0" y1="231.5" x2="2394.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2323.0" y1="199.5" x2="2413.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2323.0" y1="199.5" x2="2429.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2323.0" y1="199.5" x2="2469.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2469.5" y1="231.5" x2="2469.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2469.5" y1="263.5" x2="2469.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2469.5" y1="295.5" x2="2427.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2469.5" y1="295.5" x2="2452.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2469.5" y1="295.5" x2="2482.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2482.0" y1="327.5" x2="2482.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2482.0" y1="359.5" x2="2482.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2469.5" y1="295.5" x2="2511.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1978.8515625" y1="7.5" x2="3413.59375" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3413.59375" y1="39.5" x2="3388.09375" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3413.59375" y1="39.5" x2="3439.09375" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3439.09375" y1="71.5" x2="3439.09375" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3439.09375" y1="103.5" x2="2934.4375" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2934.4375" y1="135.5" x2="2603.875" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2934.4375" y1="135.5" x2="2621.375" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2934.4375" y1="135.5" x2="2655.875" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2655.875" y1="167.5" x2="2634.625" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2655.875" y1="167.5" x2="2677.125" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2677.125" y1="199.5" x2="2544.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2544.5" y1="231.5" x2="2532.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2532.25" y1="263.5" x2="2516.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2532.25" y1="263.5" x2="2547.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2547.75" y1="295.5" x2="2528.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2547.75" y1="295.5" x2="2545.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2547.75" y1="295.5" x2="2567.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2567.0" y1="327.5" x2="2567.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2544.5" y1="231.5" x2="2556.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2677.125" y1="199.5" x2="2646.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2646.75" y1="231.5" x2="2646.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2646.75" y1="263.5" x2="2576.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2646.75" y1="263.5" x2="2599.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2646.75" y1="263.5" x2="2629.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2629.25" y1="295.5" x2="2629.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2629.25" y1="327.5" x2="2629.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2646.75" y1="263.5" x2="2658.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2646.75" y1="263.5" x2="2687.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2687.25" y1="295.5" x2="2687.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2687.25" y1="327.5" x2="2687.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2646.75" y1="263.5" x2="2716.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2677.125" y1="199.5" x2="2728.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2677.125" y1="199.5" x2="2809.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2809.75" y1="231.5" x2="2809.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2809.75" y1="263.5" x2="2739.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2809.75" y1="263.5" x2="2762.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2809.75" y1="263.5" x2="2792.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2792.25" y1="295.5" x2="2792.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2792.25" y1="327.5" x2="2792.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2809.75" y1="263.5" x2="2821.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2809.75" y1="263.5" x2="2850.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2850.25" y1="295.5" x2="2850.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2850.25" y1="327.5" x2="2850.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2809.75" y1="263.5" x2="2879.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2934.4375" y1="135.5" x2="3265.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3265.0" y1="167.5" x2="2972.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2972.75" y1="199.5" x2="2972.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2972.75" y1="231.5" x2="2972.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2972.75" y1="263.5" x2="2902.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2972.75" y1="263.5" x2="2925.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2972.75" y1="263.5" x2="2955.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2955.25" y1="295.5" x2="2955.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2955.25" y1="327.5" x2="2955.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2972.75" y1="263.5" x2="2984.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2972.75" y1="263.5" x2="3013.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3013.25" y1="295.5" x2="3013.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3013.25" y1="327.5" x2="3013.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2972.75" y1="263.5" x2="3042.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3265.0" y1="167.5" x2="3182.375" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3182.375" y1="199.5" x2="3002.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3182.375" y1="199.5" x2="3029.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3029.25" y1="231.5" x2="3029.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3182.375" y1="199.5" x2="3055.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3182.375" y1="199.5" x2="3088.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3088.75" y1="231.5" x2="3088.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3182.375" y1="199.5" x2="3121.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3182.375" y1="199.5" x2="3154.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3154.25" y1="231.5" x2="3154.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3154.25" y1="263.5" x2="3154.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3154.25" y1="295.5" x2="3084.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3154.25" y1="295.5" x2="3107.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3154.25" y1="295.5" x2="3136.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3136.75" y1="327.5" x2="3136.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3136.75" y1="359.5" x2="3136.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3154.25" y1="295.5" x2="3165.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3154.25" y1="295.5" x2="3194.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3194.75" y1="327.5" x2="3194.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3194.75" y1="359.5" x2="3194.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3154.25" y1="295.5" x2="3224.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3182.375" y1="199.5" x2="3220.375" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3182.375" y1="199.5" x2="3280.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3280.0" y1="231.5" x2="3258.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3280.0" y1="231.5" x2="3280.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3280.0" y1="263.5" x2="3257.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3257.75" y1="295.5" x2="3257.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3257.75" y1="327.5" x2="3257.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3280.0" y1="263.5" x2="3286.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3280.0" y1="263.5" x2="3302.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3280.0" y1="231.5" x2="3301.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3182.375" y1="199.5" x2="3306.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3182.375" y1="199.5" x2="3322.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3182.375" y1="199.5" x2="3362.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3362.5" y1="231.5" x2="3362.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3362.5" y1="263.5" x2="3362.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3362.5" y1="295.5" x2="3362.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3265.0" y1="167.5" x2="3557.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3557.25" y1="199.5" x2="3401.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3557.25" y1="199.5" x2="3428.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3428.5" y1="231.5" x2="3428.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3557.25" y1="199.5" x2="3455.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3557.25" y1="199.5" x2="3488.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3488.0" y1="231.5" x2="3488.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3557.25" y1="199.5" x2="3521.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3557.25" y1="199.5" x2="3553.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3553.5" y1="231.5" x2="3553.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3553.5" y1="263.5" x2="3553.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3553.5" y1="295.5" x2="3553.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3557.25" y1="199.5" x2="3591.875" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3557.25" y1="199.5" x2="3623.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3623.75" y1="231.5" x2="3602.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3623.75" y1="231.5" x2="3623.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3623.75" y1="263.5" x2="3601.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3601.5" y1="295.5" x2="3601.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3601.5" y1="327.5" x2="3601.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3623.75" y1="263.5" x2="3630.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3623.75" y1="263.5" x2="3646.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3623.75" y1="231.5" x2="3645.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3557.25" y1="199.5" x2="3652.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3557.25" y1="199.5" x2="3670.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3557.25" y1="199.5" x2="3713.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3713.0" y1="231.5" x2="3713.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3713.0" y1="263.5" x2="3713.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3713.0" y1="295.5" x2="3643.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3713.0" y1="295.5" x2="3666.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3713.0" y1="295.5" x2="3695.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3695.5" y1="327.5" x2="3695.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3695.5" y1="359.5" x2="3695.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3713.0" y1="295.5" x2="3724.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3713.0" y1="295.5" x2="3753.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3753.5" y1="327.5" x2="3753.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3753.5" y1="359.5" x2="3753.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3713.0" y1="295.5" x2="3783.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3439.09375" y1="103.5" x2="3943.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3943.75" y1="135.5" x2="3926.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3943.75" y1="135.5" x2="3943.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3943.75" y1="135.5" x2="3961.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3961.5" y1="167.5" x2="3813.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3813.25" y1="199.5" x2="3769.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3769.75" y1="231.5" x2="3754.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3769.75" y1="231.5" x2="3785.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3785.25" y1="263.5" x2="3766.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3785.25" y1="263.5" x2="3782.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3785.25" y1="263.5" x2="3804.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3804.0" y1="295.5" x2="3804.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3813.25" y1="199.5" x2="3801.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3813.25" y1="199.5" x2="3832.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3832.25" y1="231.5" x2="3816.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3832.25" y1="231.5" x2="3847.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3847.75" y1="263.5" x2="3828.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3847.75" y1="263.5" x2="3845.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3847.75" y1="263.5" x2="3867.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3867.0" y1="295.5" x2="3867.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3813.25" y1="199.5" x2="3856.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3961.5" y1="167.5" x2="3946.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3946.75" y1="199.5" x2="3946.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3946.75" y1="231.5" x2="3876.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3946.75" y1="231.5" x2="3899.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3946.75" y1="231.5" x2="3929.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3929.25" y1="263.5" x2="3929.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3929.25" y1="295.5" x2="3929.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3946.75" y1="231.5" x2="3958.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3946.75" y1="231.5" x2="3987.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3987.25" y1="263.5" x2="3987.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3987.25" y1="295.5" x2="3987.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3946.75" y1="231.5" x2="4016.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3961.5" y1="167.5" x2="4028.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3961.5" y1="167.5" x2="4109.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4109.75" y1="199.5" x2="4109.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4109.75" y1="231.5" x2="4039.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4109.75" y1="231.5" x2="4062.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4109.75" y1="231.5" x2="4092.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4092.25" y1="263.5" x2="4092.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4092.25" y1="295.5" x2="4092.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4109.75" y1="231.5" x2="4121.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4109.75" y1="231.5" x2="4150.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4150.25" y1="263.5" x2="4150.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4150.25" y1="295.5" x2="4150.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4109.75" y1="231.5" x2="4179.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<rect x="2002.5" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2004" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="2555.5" y="320.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2557" y="329" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="2785.75" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2787" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="555.5" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="557" y="361" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="3251.75" y="352.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3253" y="361" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="225.0" y="192.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="227" y="201" style="font-family:sans-serif;font-size:10px;"> +y +</text> +<rect x="1830.0" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1832" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="15.5" y="160.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17" y="169" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="2310.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2312" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1296.5" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1298" y="265" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="2459.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2461" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3740.25" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3742" y="265" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="3066.25" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3068" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="357.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="359" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1692.5" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1694" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="908.25" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="910" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="1725.0" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1727" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="1112.125" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1114" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="740.5" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="742" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="207.5" y="160.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="209" y="169" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3775.25" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3777" y="265" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="1050.5" y="288.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1052" y="297" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="3297.25" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3299" y="297" style="font-family:sans-serif;font-size:10px;"> +y +</text> +<rect x="2947.25" y="192.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2949" y="201" style="font-family:sans-serif;font-size:10px;"> +start_tree +</text> +<rect x="962.75" y="320.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="964" y="329" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="650.8125" y="160.0" width="74.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="652" y="169" style="font-family:sans-serif;font-size:10px;"> +transformation +</text> +<rect x="1406.875" y="192.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1408" y="201" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="2021.5" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2023" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="3864.75" y="256.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3866" y="265" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="3685.0" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3687" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="120.0" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="122" y="169" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="487.65625" y="128.0" width="50.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="489" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_basis +</text> +<rect x="3755.75" y="224.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3757" y="233" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="3612.75" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3614" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="2564.75" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2566" y="297" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="1659.0" y="192.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1661" y="201" style="font-family:sans-serif;font-size:10px;"> +start_tree +</text> +<rect x="3412.5" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3414" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="2840.25" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2842" y="361" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="3939.5" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3941" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1963.8515625" y="0.0" width="30.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1965" y="9" style="font-family:sans-serif;font-size:10px;"> +proof +</text> +<rect x="280.75" y="128.0" width="40.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="282" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_var +</text> +<rect x="313.5" y="160.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="315" y="169" style="font-family:sans-serif;font-size:10px;"> +y +</text> +<rect x="2346.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2348" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="402.75" y="192.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="404" y="201" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="3531.0" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3533" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2364.0" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2366" y="393" style="font-family:sans-serif;font-size:10px;"> +y +</text> +<rect x="605.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="607" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1350.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1352" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1150.25" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1152" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2092.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2094" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="2712.75" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2714" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1875.25" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1877" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="2723.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2725" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="3083.75" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3085" y="265" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="527.109375" y="32.0" width="34.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="529" y="41" style="font-family:sans-serif;font-size:10px;"> +lemma +</text> +<rect x="1281.0" y="288.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1283" y="297" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="3373.09375" y="64.0" width="30.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3375" y="73" style="font-family:sans-serif;font-size:10px;"> +proof +</text> +<rect x="1052.0" y="320.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1054" y="329" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="2187.5" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2189" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="3420.5" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3422" y="265" style="font-family:sans-serif;font-size:10px;"> +p0 +</text> +<rect x="1874.0" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1876" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2063.75" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2065" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="2595.75" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2597" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2114.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2116" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3162.25" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3164" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="62.0" y="192.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="64" y="201" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="1770.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1772" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="179.5" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="181" y="265" style="font-family:sans-serif;font-size:10px;"> +y +</text> +<rect x="3677.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3679" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2065.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2067" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="2371.5" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2373" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="1114.75" y="320.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1116" y="329" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="1373.5" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1375" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2047.0" y="352.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2049" y="361" style="font-family:sans-serif;font-size:10px;"> +y +</text> +<rect x="2507.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2509" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="35.0" y="192.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="37" y="201" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="2758.75" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2760" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2945.25" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2947" y="361" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="3387.59375" y="32.0" width="52.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3389" y="41" style="font-family:sans-serif;font-size:10px;"> +mainProof +</text> +<rect x="591.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="593" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3415.59375" y="96.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3417" y="105" style="font-family:sans-serif;font-size:10px;"> +induction +</text> +<rect x="2948.75" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2950" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2246.5" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2248" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="2277.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2279" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2413.5" y="320.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2415" y="329" style="font-family:sans-serif;font-size:10px;"> +nach +</text> +<rect x="2477.0" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2479" y="393" style="font-family:sans-serif;font-size:10px;"> +y +</text> +<rect x="3235.25" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3237" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1209.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1211" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3298.0" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3300" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="3176.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3178" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2240.5" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2242" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="2288.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2290" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="728.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="730" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="108.0" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="110" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="125.5" y="128.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="127" y="137" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="210.0" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="212" y="201" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2131.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2133" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3778.5" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3780" y="297" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="2994.75" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2996" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1523.5" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1525" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="365.5" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="367" y="169" style="font-family:sans-serif;font-size:10px;"> +ind_case +</text> +<rect x="415.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="417" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1974.25" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1976" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="3968.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3970" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2514.5" y="224.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2516" y="233" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="2875.75" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2877" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="259.5" y="160.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="261" y="169" style="font-family:sans-serif;font-size:10px;"> +induction +</text> +<rect x="3761.5" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3763" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="4145.25" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4147" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="649.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="651" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1595.0" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1597" y="297" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="2791.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2793" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2441.5" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2443" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="1818.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1820" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1267.25" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1269" y="329" style="font-family:sans-serif;font-size:10px;"> +y +</text> +<rect x="3853.25" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3855" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1208.25" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1210" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="786.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="788" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2622.75" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2624" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3731.0" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3733" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1758.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1760" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3465.5" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3467" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="116.5" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="118" y="265" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="152.0" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="154" y="201" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="547.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="549" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="742.125" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="744" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="1424.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1426" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1354.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1356" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2126.0" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2128" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="4012.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4014" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2301.0" y="384.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2303" y="393" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="845.5" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="847" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1733.0" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1735" y="265" style="font-family:sans-serif;font-size:10px;"> +p1 +</text> +<rect x="1036.5" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1038" y="297" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="3013.25" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3015" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="2394.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2396" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="4086.25" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4088" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="2606.75" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2608" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1518.0" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1520" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2932.75" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2934" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3841.5" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3843" y="297" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="613.5" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="615" y="361" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="1223.25" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1225" y="265" style="font-family:sans-serif;font-size:10px;"> +y +</text> +<rect x="1261.5" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1263" y="265" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="2086.5" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2088" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="865.25" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="867" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="2390.5" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2392" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="3922.75" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3924" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2610.75" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2612" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2122.5" y="448.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2124" y="457" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="2357.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2359" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1904.0" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1906" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1842.0" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1844" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2077.5" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2079" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="3924.25" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3926" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="423.5" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="425" y="361" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="374.5" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="376" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="38.25" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="40" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="772.5" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="774" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3595.5" y="352.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3597" y="361" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="1091.25" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1093" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1106.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1108" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1471.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1473" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2654.75" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2656" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2216.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2218" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3857.0" y="320.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3859" y="329" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="211.5" y="128.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="213" y="137" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1676.5" y="352.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1678" y="361" style="font-family:sans-serif;font-size:10px;"> +nach +</text> +<rect x="104.0" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="106" y="233" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="676.5" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="678" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="1048.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1050" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1010.0" y="192.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1012" y="201" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="182.0" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="184" y="137" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="1637.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1639" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3052.25" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3054" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="954.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="956" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1439.5" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1441" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1740.0" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1742" y="425" style="font-family:sans-serif;font-size:10px;"> +y +</text> +<rect x="411.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="413" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2110.0" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2112" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2773.75" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2775" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2306.5" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2308" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="2292.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2294" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="311.0" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="313" y="297" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="3302.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3304" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="474.0" y="288.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="476" y="297" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="2175.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2177" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3797.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3799" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="50.5" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="52" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="93.0" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="95" y="201" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="742.5" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="744" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="2537.75" y="288.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2539" y="297" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="2681.25" y="352.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2683" y="361" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="1389.5" y="352.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1391" y="361" style="font-family:sans-serif;font-size:10px;"> +nach +</text> +<rect x="1483.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1485" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2769.75" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2771" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="330.5" y="160.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="332" y="169" style="font-family:sans-serif;font-size:10px;"> +IA +</text> +<rect x="2158.0" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2160" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2936.75" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2938" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2445.5" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2447" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="682.5" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="684" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="3792.5" y="288.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3794" y="297" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1710.0" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1712" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="1807.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1809" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3895.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3897" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1895.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1897" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1650.4375" y="128.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1652" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_step +</text> +<rect x="3598.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3600" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="1858.0" y="384.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1860" y="393" style="font-family:sans-serif;font-size:10px;"> +nach +</text> +<rect x="162.0" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="164" y="233" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2116.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2118" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3130.25" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3132" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1126.125" y="160.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1128" y="169" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="2631.875" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2633" y="169" style="font-family:sans-serif;font-size:10px;"> +ind_case +</text> +<rect x="957.84375" y="64.0" width="58.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="959" y="73" style="font-family:sans-serif;font-size:10px;"> +singleProof +</text> +<rect x="1344.875" y="192.0" width="55.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1346" y="201" style="font-family:sans-serif;font-size:10px;"> +zu·zeigen: +</text> +<rect x="4058.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4060" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3906.75" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3908" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3021.25" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3023" y="265" style="font-family:sans-serif;font-size:10px;"> +L1 +</text> +<rect x="3283.25" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3285" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="3910.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3912" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3953.5" y="160.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3955" y="169" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="3264.5" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3266" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="4073.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4075" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3818.25" y="224.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3820" y="233" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="3631.0" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3633" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="3317.5" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3319" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="2817.75" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2819" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1521.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1523" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3334.5" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3336" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="307.5" y="224.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="309" y="233" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="543.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="545" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2197.0" y="256.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2199" y="265" style="font-family:sans-serif;font-size:10px;"> +IH +</text> +<rect x="3126.75" y="384.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3128" y="393" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="4175.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4177" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1177.75" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1179" y="329" style="font-family:sans-serif;font-size:10px;"> +y +</text> +<rect x="2292.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2294" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1405.5" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1407" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3220.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3222" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="75.875" y="64.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="77" y="73" style="font-family:sans-serif;font-size:10px;"> +lemmaDef +</text> +<rect x="893.5" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="895" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="1666.0" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1668" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1988.25" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1990" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="2786.25" y="352.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2788" y="361" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="907.5" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="909" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1660.5" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1662" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="662.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="664" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1060.25" y="256.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1062" y="265" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="3694.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3696" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2350.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2352" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="713.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="715" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1966.75" y="160.0" width="74.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1968" y="169" style="font-family:sans-serif;font-size:10px;"> +transformation +</text> +<rect x="827.125" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="829" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2029.5" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2031" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2081.5" y="320.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2083" y="329" style="font-family:sans-serif;font-size:10px;"> +nach +</text> +<rect x="3356.5" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3358" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="2522.5" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2524" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="3922.75" y="128.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3924" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_hyp +</text> +<rect x="3172.25" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3174" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1847.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1849" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="4117.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4119" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="601.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="603" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3641.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3643" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="1123.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1125" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1013.75" y="224.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1015" y="233" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="53.75" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="55" y="265" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="1095.375" y="128.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1097" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_hyp +</text> +<rect x="3340.0" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3342" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="4085.75" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4087" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2619.25" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2621" y="361" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="694.0" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="696" y="265" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="3132.25" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3134" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="927.75" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="929" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="2990.75" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2992" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3855.5" y="288.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3857" y="297" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="3118.25" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3120" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1954.5" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1956" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1890.0" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1892" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1776.5" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1778" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="963.34375" y="96.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="965" y="105" style="font-family:sans-serif;font-size:10px;"> +induction +</text> +<rect x="3131.875" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3133" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="1298.25" y="320.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1300" y="329" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="3579.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3581" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2596.875" y="160.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2598" y="169" style="font-family:sans-serif;font-size:10px;"> +IA +</text> +<rect x="3627.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3629" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="2502.75" y="288.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2504" y="297" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="1421.5" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1423" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1626.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1628" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2553.25" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2555" y="265" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1714.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1716" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3072.25" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3074" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="1641.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1643" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1427.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1429" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="623.5" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="625" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="879.25" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="881" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="0.0" y="192.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2" y="201" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="724.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="726" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2518.25" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2520" y="265" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="2376.5" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2378" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="3517.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3519" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="564.5" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="566" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1299.75" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1301" y="361" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="3665.75" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3667" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="4091.25" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4093" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2617.875" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2619" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1362.5" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1364" y="361" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="2424.5" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2426" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="501.0" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="503" y="297" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="1180.25" y="192.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1182" y="201" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="351.5" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="353" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1335.625" y="160.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1337" y="169" style="font-family:sans-serif;font-size:10px;"> +IS +</text> +<rect x="3344.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3346" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="849.5" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="851" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3103.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3105" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2113.5" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2115" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2451.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2453" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2980.75" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2982" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2172.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2174" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3689.0" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3691" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="912.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="914" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="3928.25" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3930" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3783.25" y="192.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3785" y="201" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="532.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="534" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3228.0" y="160.0" width="74.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3230" y="169" style="font-family:sans-serif;font-size:10px;"> +transformation +</text> +<rect x="4131.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4133" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1369.625" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1371" y="169" style="font-family:sans-serif;font-size:10px;"> +ind_case +</text> +<rect x="3588.375" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3590" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3038.75" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3040" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3641.0" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3643" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="2921.75" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2923" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3779.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3781" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3255.0" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3257" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="1952.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1954" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="342.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="344" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="365.5" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="367" y="361" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="353.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="355" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1160.25" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1162" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="795.0" y="384.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="797" y="393" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="1532.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1534" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="746.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="748" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2016.5" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2018" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1464.75" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1466" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="2033.5" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2035" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2827.75" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2829" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3954.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3956" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="4027.75" y="256.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4029" y="265" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="559.0" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="561" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1967.0" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1969" y="361" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="52.25" y="224.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="54" y="233" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1536.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1538" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1118.25" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1120" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2226.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2228" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2669.125" y="192.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2671" y="201" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="858.0" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="860" y="361" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="2628.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2630" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1549.5" y="352.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1551" y="361" style="font-family:sans-serif;font-size:10px;"> +y +</text> +<rect x="3239.25" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3241" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3188.75" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3190" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="4023.25" y="192.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4025" y="201" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="4127.75" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4129" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="340.75" y="192.0" width="55.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="342" y="201" style="font-family:sans-serif;font-size:10px;"> +zu·zeigen: +</text> +<rect x="465.5" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="467" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1831.0" y="384.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1833" y="393" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="782.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="784" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="737.0" y="384.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="739" y="393" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="3506.75" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3508" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="1844.0" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1846" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="3608.25" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3610" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="1822.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1824" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="461.5" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="463" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1453.0" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1455" y="425" style="font-family:sans-serif;font-size:10px;"> +y +</text> +<rect x="2272.5" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2274" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="4069.75" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4071" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3743.5" y="384.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3745" y="393" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="1435.5" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1437" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2541.5" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2543" y="329" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="11.75" y="128.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13" y="137" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="3007.25" y="352.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3009" y="361" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="1033.25" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1035" y="265" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="1355.625" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1357" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="2091.5" y="288.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2093" y="297" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="2664.75" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2666" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1708.5" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1710" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3673.0" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3675" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2463.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2465" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2890.75" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2892" y="297" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="433.5" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="435" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="2185.5" y="448.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2187" y="457" style="font-family:sans-serif;font-size:10px;"> +y +</text> +<rect x="2172.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2174" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="830.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="832" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1486.0" y="288.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1488" y="297" style="font-family:sans-serif;font-size:10px;"> +nach +</text> +<rect x="1726.5" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1728" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1908.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1910" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3410.09375" y="64.0" width="58.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3412" y="73" style="font-family:sans-serif;font-size:10px;"> +singleProof +</text> +<rect x="3689.5" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3691" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="2168.0" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2170" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1284.25" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1286" y="329" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1649.5" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1651" y="361" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="557.5" y="192.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="559" y="201" style="font-family:sans-serif;font-size:10px;"> +start_tree +</text> +<rect x="3535.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3537" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2033.5" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2035" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1951.25" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1953" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1246.0" y="288.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1248" y="297" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="1308.0" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1310" y="297" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="127.875" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="129" y="105" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="1257.75" y="224.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1259" y="233" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="3269.0" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3271" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="631.5" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="633" y="265" style="font-family:sans-serif;font-size:10px;"> +p0 +</text> +<rect x="944.75" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="946" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="2099.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2101" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="459.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="461" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="728.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="730" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2448.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2450" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3964.75" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3966" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2727.75" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2729" y="297" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="3114.25" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3116" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1722.5" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1724" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2998.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3000" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="874.75" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="876" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="2954.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2956" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3794.0" y="320.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3796" y="329" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="166.0" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="168" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3735.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3737" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1764.0" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1766" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2119.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2121" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1958.5" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1960" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3216.875" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3218" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="950.25" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="952" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1580.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1582" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3822.5" y="288.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3824" y="297" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="3981.25" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3983" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="2607.125" y="192.0" width="55.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2609" y="201" style="font-family:sans-serif;font-size:10px;"> +zu·zeigen: +</text> +<rect x="1893.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1895" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3118.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3120" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1939.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1941" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1711.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1713" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3135.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3137" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2109.5" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2111" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="3531.5" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3533" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="401.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="403" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="49.875" y="96.0" width="34.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="51" y="105" style="font-family:sans-serif;font-size:10px;"> +lemma +</text> +<rect x="3648.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3650" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="3837.75" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3839" y="265" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="1164.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1166" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="998.25" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1000" y="265" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="2831.75" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2833" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1379.0" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1381" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3662.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3664" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1921.5" y="448.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1923" y="457" style="font-family:sans-serif;font-size:10px;"> +y +</text> +<rect x="369.0" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="371" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2909.4375" y="128.0" width="50.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2911" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_basis +</text> +<rect x="3397.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3399" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="3721.0" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3723" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1092.125" y="160.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1094" y="169" style="font-family:sans-serif;font-size:10px;"> +IH +</text> +<rect x="2068.0" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2070" y="393" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="1205.75" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1207" y="233" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2557.0" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2559" y="361" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="90.875" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="92" y="105" style="font-family:sans-serif;font-size:10px;"> +L1 +</text> +<rect x="21.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="23" y="233" style="font-family:sans-serif;font-size:10px;"> +y +</text> +<rect x="3451.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3453" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3919.5" y="160.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3921" y="169" style="font-family:sans-serif;font-size:10px;"> +IH +</text> +<rect x="3802.75" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3804" y="265" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="1102.25" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1104" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2336.5" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2338" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="113.875" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="115" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1019.5" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1021" y="297" style="font-family:sans-serif;font-size:10px;"> +y +</text> +<rect x="1339.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1341" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3483.0" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3485" y="265" style="font-family:sans-serif;font-size:10px;"> +rl +</text> +<rect x="3547.5" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3549" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="2668.75" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2670" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1795.5" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1797" y="265" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="2409.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2411" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="2258.0" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2260" y="265" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="2304.5" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2306" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="608.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="610" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="3583.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3585" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1778.0" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1780" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +</svg> \ No newline at end of file diff --git a/ANTRL-Grammatiken/Beweis/Induction_Bsp_plus_komm.txt b/ANTRL-Grammatiken/Beweis/Induction_Bsp_plus_komm.txt new file mode 100644 index 0000000000000000000000000000000000000000..1558959564cfd92aa240008729049be43549d9ae --- /dev/null +++ b/ANTRL-Grammatiken/Beweis/Induction_Bsp_plus_komm.txt @@ -0,0 +1,21 @@ +lemma L1: forall y:Nat : plus(null,y) = y induction y +IA: zu zeigen: plus(null,null) = null +plus(null,null) + {p0, lr, plus(null,null), [null/n]} += null +IH: fixed y:Nat : plus(null,y) = y +IS: zu zeigen: fixed y:Nat : plus(null,nach(y)) = nach(y) +plus(null,nach(y)) + {p1, lr, plus(null,nach(y)), [null/n,y/m]} += nach(plus(null,y)) + {IH, lr, plus(null,y), []} += nach(y) + +proof +IA: zu zeigen: forall m:Nat : plus(null,m) = plus(m,null) +plus(null,m) + {L1,lr,plus(null,m),[m/y]} += m + {p0,rl,m,[m/n]} += plus(m,null) +IH: fixed n:Nat : forall m:Nat : plus(n,m) = plus(m,n) \ No newline at end of file diff --git a/ANTRL-Grammatiken/Beweis/Induction_Bsp_plus_null.txt b/ANTRL-Grammatiken/Beweis/Induction_Bsp_plus_null.txt new file mode 100644 index 0000000000000000000000000000000000000000..ba66fa8df5aca4c6818e9894af706d8b0929e124 --- /dev/null +++ b/ANTRL-Grammatiken/Beweis/Induction_Bsp_plus_null.txt @@ -0,0 +1,12 @@ +proof induction m +IA zu zeigen: plus(null,null) = null +plus(null,null) + {p0, lr, plus(null,null), [null/n]} += null +IH fixed m:Nat : plus(null,m) = m +IS zu zeigen: fixed m:Nat : plus(null,nach(m)) = nach(m) +plus(null,nach(m)) + {p1, lr, plus(null,nach(m)), [null/n]} += nach(plus(null,m)) + {IH, lr, plus(null,m), []} += nach(m) \ No newline at end of file diff --git a/ANTRL-Grammatiken/Beweis/Proof.g4 b/ANTRL-Grammatiken/Beweis/Proof.g4 new file mode 100644 index 0000000000000000000000000000000000000000..84138d0976bf40a53086d9744c86391bfc34a5e3 --- /dev/null +++ b/ANTRL-Grammatiken/Beweis/Proof.g4 @@ -0,0 +1,34 @@ +grammar Proof; + +import EquationRules; + +/* + * Parser Rules + */ + +proof : lemma* mainProof lemma* EOF ; +mainProof : 'proof' singleProof proof_end? ; +lemma : lemmaDef singleProof ; +lemmaDef :'lemma' BEZ ':' eq ; +singleProof: induction | transformation ; +proof_end : 'q.e.d.' | 'w.z.b.w.' | 'Q.E.D.' | 'W.Z.B.W.'; + +// Induction +induction: ind_var? ind_basis+ ind_hyp+ ind_step* ; +ind_var : 'induction' BEZ ; +ind_basis: 'IA' ':'? ind_case transformation ; +ind_step : 'IS' ':'? ind_case transformation ; +ind_case : 'zu zeigen:' eq ; +ind_hyp : 'IH' ':'? (BEZ ':'?)? eq; + +// Transformation +transformation : start_tree transformation_step+ ; +start_tree : mytree ; +transformation_step: '{' axiom',' direction ',' termpart ',' subst '}' '=' result_tree ; +axiom : BEZ | 'IH'; +direction : ( 'lr' | 'rl' ) ; +termpart : mytree ; +subst : '[' (sub (',' sub)*)? ']' ; +sub : mytree '/' BEZ ; +result_tree : mytree ; + diff --git a/ANTRL-Grammatiken/Beweis/Proof_Bsp_Lemma.svg b/ANTRL-Grammatiken/Beweis/Proof_Bsp_Lemma.svg new file mode 100644 index 0000000000000000000000000000000000000000..31e9f89e1558aa72a5255c7b772ece3bd12ed714 --- /dev/null +++ b/ANTRL-Grammatiken/Beweis/Proof_Bsp_Lemma.svg @@ -0,0 +1,3010 @@ +<svg width="3274.7000000000003" height="1018.6000000000001" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><line x1="1341.5625" y1="7.5" x2="713.625" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="713.625" y1="39.5" x2="688.125" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="713.625" y1="39.5" x2="739.125" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="739.125" y1="71.5" x2="739.125" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="739.125" y1="103.5" x2="72.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="72.5" y1="135.5" x2="72.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="72.5" y1="167.5" x2="72.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="72.5" y1="199.5" x2="25.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="72.5" y1="199.5" x2="61.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="72.5" y1="199.5" x2="90.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="90.5" y1="231.5" x2="90.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="90.5" y1="263.5" x2="51.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="90.5" y1="263.5" x2="71.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="90.5" y1="263.5" x2="100.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="100.5" y1="295.5" x2="100.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="100.5" y1="327.5" x2="61.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="100.5" y1="327.5" x2="81.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="100.5" y1="327.5" x2="110.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="110.5" y1="359.5" x2="110.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="110.5" y1="391.5" x2="71.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="110.5" y1="391.5" x2="91.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="110.5" y1="391.5" x2="120.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="120.5" y1="423.5" x2="120.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="120.5" y1="455.5" x2="81.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="120.5" y1="455.5" x2="101.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="120.5" y1="455.5" x2="130.5" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="130.5" y1="487.5" x2="130.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="130.5" y1="519.5" x2="91.0" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="130.5" y1="519.5" x2="111.0" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="130.5" y1="519.5" x2="140.5" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="140.5" y1="551.5" x2="140.5" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="140.5" y1="583.5" x2="101.0" y2="608.0" style="stroke:black; stroke-width:1px;" /> +<line x1="140.5" y1="583.5" x2="121.0" y2="608.0" style="stroke:black; stroke-width:1px;" /> +<line x1="140.5" y1="583.5" x2="150.5" y2="608.0" style="stroke:black; stroke-width:1px;" /> +<line x1="150.5" y1="615.5" x2="150.5" y2="640.0" style="stroke:black; stroke-width:1px;" /> +<line x1="150.5" y1="647.5" x2="111.0" y2="672.0" style="stroke:black; stroke-width:1px;" /> +<line x1="150.5" y1="647.5" x2="131.0" y2="672.0" style="stroke:black; stroke-width:1px;" /> +<line x1="150.5" y1="647.5" x2="160.5" y2="672.0" style="stroke:black; stroke-width:1px;" /> +<line x1="160.5" y1="679.5" x2="160.5" y2="704.0" style="stroke:black; stroke-width:1px;" /> +<line x1="160.5" y1="711.5" x2="160.5" y2="736.0" style="stroke:black; stroke-width:1px;" /> +<line x1="150.5" y1="647.5" x2="190.0" y2="672.0" style="stroke:black; stroke-width:1px;" /> +<line x1="140.5" y1="583.5" x2="180.0" y2="608.0" style="stroke:black; stroke-width:1px;" /> +<line x1="130.5" y1="519.5" x2="170.0" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="120.5" y1="455.5" x2="160.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="110.5" y1="391.5" x2="150.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="100.5" y1="327.5" x2="140.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="90.5" y1="263.5" x2="130.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="72.5" y1="199.5" x2="120.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="739.125" y1="103.5" x2="279.125" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="279.125" y1="135.5" x2="102.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="279.125" y1="135.5" x2="129.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="129.0" y1="167.5" x2="129.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="279.125" y1="135.5" x2="155.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="279.125" y1="135.5" x2="188.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="188.5" y1="167.5" x2="188.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="279.125" y1="135.5" x2="221.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="279.125" y1="135.5" x2="254.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="254.0" y1="167.5" x2="254.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="254.0" y1="199.5" x2="254.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="254.0" y1="231.5" x2="206.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="254.0" y1="231.5" x2="242.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="254.0" y1="231.5" x2="272.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="272.0" y1="263.5" x2="272.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="272.0" y1="295.5" x2="232.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="272.0" y1="295.5" x2="252.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="272.0" y1="295.5" x2="282.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="282.0" y1="327.5" x2="282.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="282.0" y1="359.5" x2="242.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="282.0" y1="359.5" x2="262.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="282.0" y1="359.5" x2="292.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="292.0" y1="391.5" x2="292.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="292.0" y1="423.5" x2="252.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="292.0" y1="423.5" x2="272.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="292.0" y1="423.5" x2="302.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="302.0" y1="455.5" x2="302.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="302.0" y1="487.5" x2="262.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="302.0" y1="487.5" x2="282.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="302.0" y1="487.5" x2="312.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="312.0" y1="519.5" x2="312.0" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="312.0" y1="551.5" x2="272.5" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="312.0" y1="551.5" x2="292.5" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="312.0" y1="551.5" x2="322.0" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="322.0" y1="583.5" x2="322.0" y2="608.0" style="stroke:black; stroke-width:1px;" /> +<line x1="322.0" y1="615.5" x2="282.5" y2="640.0" style="stroke:black; stroke-width:1px;" /> +<line x1="322.0" y1="615.5" x2="302.5" y2="640.0" style="stroke:black; stroke-width:1px;" /> +<line x1="322.0" y1="615.5" x2="332.0" y2="640.0" style="stroke:black; stroke-width:1px;" /> +<line x1="332.0" y1="647.5" x2="332.0" y2="672.0" style="stroke:black; stroke-width:1px;" /> +<line x1="332.0" y1="679.5" x2="292.5" y2="704.0" style="stroke:black; stroke-width:1px;" /> +<line x1="332.0" y1="679.5" x2="312.5" y2="704.0" style="stroke:black; stroke-width:1px;" /> +<line x1="332.0" y1="679.5" x2="342.0" y2="704.0" style="stroke:black; stroke-width:1px;" /> +<line x1="342.0" y1="711.5" x2="342.0" y2="736.0" style="stroke:black; stroke-width:1px;" /> +<line x1="342.0" y1="743.5" x2="342.0" y2="768.0" style="stroke:black; stroke-width:1px;" /> +<line x1="332.0" y1="679.5" x2="371.5" y2="704.0" style="stroke:black; stroke-width:1px;" /> +<line x1="322.0" y1="615.5" x2="361.5" y2="640.0" style="stroke:black; stroke-width:1px;" /> +<line x1="312.0" y1="551.5" x2="351.5" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="302.0" y1="487.5" x2="341.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="292.0" y1="423.5" x2="331.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="282.0" y1="359.5" x2="321.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="272.0" y1="295.5" x2="311.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="254.0" y1="231.5" x2="301.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="279.125" y1="135.5" x2="317.125" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="279.125" y1="135.5" x2="373.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="373.75" y1="167.5" x2="352.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="373.75" y1="167.5" x2="373.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="373.75" y1="199.5" x2="351.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="351.5" y1="231.5" x2="351.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="351.5" y1="263.5" x2="312.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="351.5" y1="263.5" x2="332.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="351.5" y1="263.5" x2="361.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="361.5" y1="295.5" x2="361.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="361.5" y1="327.5" x2="322.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="361.5" y1="327.5" x2="342.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="361.5" y1="327.5" x2="371.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="371.5" y1="359.5" x2="371.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="371.5" y1="391.5" x2="332.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="371.5" y1="391.5" x2="352.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="371.5" y1="391.5" x2="381.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="381.5" y1="423.5" x2="381.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="381.5" y1="455.5" x2="342.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="381.5" y1="455.5" x2="362.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="381.5" y1="455.5" x2="391.5" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="391.5" y1="487.5" x2="391.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="391.5" y1="519.5" x2="352.0" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="391.5" y1="519.5" x2="372.0" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="391.5" y1="519.5" x2="401.5" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="401.5" y1="551.5" x2="401.5" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="401.5" y1="583.5" x2="362.0" y2="608.0" style="stroke:black; stroke-width:1px;" /> +<line x1="401.5" y1="583.5" x2="382.0" y2="608.0" style="stroke:black; stroke-width:1px;" /> +<line x1="401.5" y1="583.5" x2="411.5" y2="608.0" style="stroke:black; stroke-width:1px;" /> +<line x1="411.5" y1="615.5" x2="411.5" y2="640.0" style="stroke:black; stroke-width:1px;" /> +<line x1="411.5" y1="647.5" x2="372.0" y2="672.0" style="stroke:black; stroke-width:1px;" /> +<line x1="411.5" y1="647.5" x2="392.0" y2="672.0" style="stroke:black; stroke-width:1px;" /> +<line x1="411.5" y1="647.5" x2="421.5" y2="672.0" style="stroke:black; stroke-width:1px;" /> +<line x1="421.5" y1="679.5" x2="421.5" y2="704.0" style="stroke:black; stroke-width:1px;" /> +<line x1="421.5" y1="711.5" x2="421.5" y2="736.0" style="stroke:black; stroke-width:1px;" /> +<line x1="411.5" y1="647.5" x2="451.0" y2="672.0" style="stroke:black; stroke-width:1px;" /> +<line x1="401.5" y1="583.5" x2="441.0" y2="608.0" style="stroke:black; stroke-width:1px;" /> +<line x1="391.5" y1="519.5" x2="431.0" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="381.5" y1="455.5" x2="421.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="371.5" y1="391.5" x2="411.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="361.5" y1="327.5" x2="401.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="351.5" y1="263.5" x2="391.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="373.75" y1="199.5" x2="380.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="373.75" y1="199.5" x2="396.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="373.75" y1="167.5" x2="395.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="279.125" y1="135.5" x2="400.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="279.125" y1="135.5" x2="416.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="279.125" y1="135.5" x2="456.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="456.25" y1="167.5" x2="456.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="456.25" y1="199.5" x2="456.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="456.25" y1="231.5" x2="411.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="456.25" y1="231.5" x2="441.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="456.25" y1="231.5" x2="471.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="471.25" y1="263.5" x2="471.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="471.25" y1="295.5" x2="431.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="471.25" y1="295.5" x2="451.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="471.25" y1="295.5" x2="481.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="481.25" y1="327.5" x2="481.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="481.25" y1="359.5" x2="441.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="481.25" y1="359.5" x2="461.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="481.25" y1="359.5" x2="491.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="491.25" y1="391.5" x2="491.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="491.25" y1="423.5" x2="451.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="491.25" y1="423.5" x2="471.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="491.25" y1="423.5" x2="501.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="501.25" y1="455.5" x2="501.25" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="501.25" y1="487.5" x2="461.75" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="501.25" y1="487.5" x2="481.75" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="501.25" y1="487.5" x2="511.25" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="511.25" y1="519.5" x2="511.25" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="511.25" y1="551.5" x2="471.75" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="511.25" y1="551.5" x2="491.75" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="511.25" y1="551.5" x2="521.25" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="521.25" y1="583.5" x2="521.25" y2="608.0" style="stroke:black; stroke-width:1px;" /> +<line x1="521.25" y1="615.5" x2="481.75" y2="640.0" style="stroke:black; stroke-width:1px;" /> +<line x1="521.25" y1="615.5" x2="501.75" y2="640.0" style="stroke:black; stroke-width:1px;" /> +<line x1="521.25" y1="615.5" x2="531.25" y2="640.0" style="stroke:black; stroke-width:1px;" /> +<line x1="531.25" y1="647.5" x2="531.25" y2="672.0" style="stroke:black; stroke-width:1px;" /> +<line x1="531.25" y1="679.5" x2="491.75" y2="704.0" style="stroke:black; stroke-width:1px;" /> +<line x1="531.25" y1="679.5" x2="511.75" y2="704.0" style="stroke:black; stroke-width:1px;" /> +<line x1="531.25" y1="679.5" x2="541.25" y2="704.0" style="stroke:black; stroke-width:1px;" /> +<line x1="541.25" y1="711.5" x2="541.25" y2="736.0" style="stroke:black; stroke-width:1px;" /> +<line x1="541.25" y1="743.5" x2="501.75" y2="768.0" style="stroke:black; stroke-width:1px;" /> +<line x1="541.25" y1="743.5" x2="521.75" y2="768.0" style="stroke:black; stroke-width:1px;" /> +<line x1="541.25" y1="743.5" x2="551.25" y2="768.0" style="stroke:black; stroke-width:1px;" /> +<line x1="551.25" y1="775.5" x2="551.25" y2="800.0" style="stroke:black; stroke-width:1px;" /> +<line x1="551.25" y1="807.5" x2="551.25" y2="832.0" style="stroke:black; stroke-width:1px;" /> +<line x1="541.25" y1="743.5" x2="580.75" y2="768.0" style="stroke:black; stroke-width:1px;" /> +<line x1="531.25" y1="679.5" x2="570.75" y2="704.0" style="stroke:black; stroke-width:1px;" /> +<line x1="521.25" y1="615.5" x2="560.75" y2="640.0" style="stroke:black; stroke-width:1px;" /> +<line x1="511.25" y1="551.5" x2="550.75" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="501.25" y1="487.5" x2="540.75" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="491.25" y1="423.5" x2="530.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="481.25" y1="359.5" x2="520.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="471.25" y1="295.5" x2="510.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="456.25" y1="231.5" x2="500.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="739.125" y1="103.5" x2="670.875" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="670.875" y1="135.5" x2="495.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="670.875" y1="135.5" x2="522.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="522.25" y1="167.5" x2="522.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="670.875" y1="135.5" x2="548.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="670.875" y1="135.5" x2="581.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="581.75" y1="167.5" x2="581.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="670.875" y1="135.5" x2="614.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="670.875" y1="135.5" x2="647.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="647.25" y1="167.5" x2="647.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="647.25" y1="199.5" x2="647.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="647.25" y1="231.5" x2="602.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="647.25" y1="231.5" x2="632.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="647.25" y1="231.5" x2="662.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="662.25" y1="263.5" x2="662.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="662.25" y1="295.5" x2="622.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="662.25" y1="295.5" x2="642.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="662.25" y1="295.5" x2="672.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="672.25" y1="327.5" x2="672.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="672.25" y1="359.5" x2="632.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="672.25" y1="359.5" x2="652.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="672.25" y1="359.5" x2="682.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="682.25" y1="391.5" x2="682.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="682.25" y1="423.5" x2="642.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="682.25" y1="423.5" x2="662.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="682.25" y1="423.5" x2="692.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="692.25" y1="455.5" x2="692.25" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="692.25" y1="487.5" x2="652.75" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="692.25" y1="487.5" x2="672.75" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="692.25" y1="487.5" x2="702.25" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="702.25" y1="519.5" x2="702.25" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="702.25" y1="551.5" x2="662.75" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="702.25" y1="551.5" x2="682.75" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="702.25" y1="551.5" x2="712.25" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="712.25" y1="583.5" x2="712.25" y2="608.0" style="stroke:black; stroke-width:1px;" /> +<line x1="712.25" y1="615.5" x2="672.75" y2="640.0" style="stroke:black; stroke-width:1px;" /> +<line x1="712.25" y1="615.5" x2="692.75" y2="640.0" style="stroke:black; stroke-width:1px;" /> +<line x1="712.25" y1="615.5" x2="722.25" y2="640.0" style="stroke:black; stroke-width:1px;" /> +<line x1="722.25" y1="647.5" x2="722.25" y2="672.0" style="stroke:black; stroke-width:1px;" /> +<line x1="722.25" y1="679.5" x2="682.75" y2="704.0" style="stroke:black; stroke-width:1px;" /> +<line x1="722.25" y1="679.5" x2="702.75" y2="704.0" style="stroke:black; stroke-width:1px;" /> +<line x1="722.25" y1="679.5" x2="732.25" y2="704.0" style="stroke:black; stroke-width:1px;" /> +<line x1="732.25" y1="711.5" x2="732.25" y2="736.0" style="stroke:black; stroke-width:1px;" /> +<line x1="732.25" y1="743.5" x2="692.75" y2="768.0" style="stroke:black; stroke-width:1px;" /> +<line x1="732.25" y1="743.5" x2="712.75" y2="768.0" style="stroke:black; stroke-width:1px;" /> +<line x1="732.25" y1="743.5" x2="742.25" y2="768.0" style="stroke:black; stroke-width:1px;" /> +<line x1="742.25" y1="775.5" x2="742.25" y2="800.0" style="stroke:black; stroke-width:1px;" /> +<line x1="742.25" y1="807.5" x2="742.25" y2="832.0" style="stroke:black; stroke-width:1px;" /> +<line x1="732.25" y1="743.5" x2="771.75" y2="768.0" style="stroke:black; stroke-width:1px;" /> +<line x1="722.25" y1="679.5" x2="761.75" y2="704.0" style="stroke:black; stroke-width:1px;" /> +<line x1="712.25" y1="615.5" x2="751.75" y2="640.0" style="stroke:black; stroke-width:1px;" /> +<line x1="702.25" y1="551.5" x2="741.75" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="692.25" y1="487.5" x2="731.75" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="682.25" y1="423.5" x2="721.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="672.25" y1="359.5" x2="711.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="662.25" y1="295.5" x2="701.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="647.25" y1="231.5" x2="691.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="670.875" y1="135.5" x2="708.875" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="670.875" y1="135.5" x2="764.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="764.0" y1="167.5" x2="742.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="764.0" y1="167.5" x2="764.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="764.0" y1="199.5" x2="741.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="741.75" y1="231.5" x2="741.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="741.75" y1="263.5" x2="702.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="741.75" y1="263.5" x2="722.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="741.75" y1="263.5" x2="751.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="751.75" y1="295.5" x2="751.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="751.75" y1="327.5" x2="712.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="751.75" y1="327.5" x2="732.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="751.75" y1="327.5" x2="761.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="761.75" y1="359.5" x2="761.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="761.75" y1="391.5" x2="722.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="761.75" y1="391.5" x2="742.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="761.75" y1="391.5" x2="771.75" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="771.75" y1="423.5" x2="771.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="771.75" y1="455.5" x2="732.25" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="771.75" y1="455.5" x2="752.25" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="771.75" y1="455.5" x2="781.75" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="781.75" y1="487.5" x2="781.75" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="781.75" y1="519.5" x2="781.75" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="771.75" y1="455.5" x2="811.25" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="761.75" y1="391.5" x2="801.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="751.75" y1="327.5" x2="791.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="741.75" y1="263.5" x2="781.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="764.0" y1="199.5" x2="770.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="764.0" y1="199.5" x2="786.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="764.0" y1="167.5" x2="785.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="670.875" y1="135.5" x2="790.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="670.875" y1="135.5" x2="806.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="670.875" y1="135.5" x2="846.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="846.5" y1="167.5" x2="846.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="846.5" y1="199.5" x2="846.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="846.5" y1="231.5" x2="802.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="846.5" y1="231.5" x2="832.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="846.5" y1="231.5" x2="861.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="861.5" y1="263.5" x2="861.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="861.5" y1="295.5" x2="822.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="861.5" y1="295.5" x2="842.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="861.5" y1="295.5" x2="871.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="871.5" y1="327.5" x2="871.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="871.5" y1="359.5" x2="832.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="871.5" y1="359.5" x2="852.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="871.5" y1="359.5" x2="881.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="881.5" y1="391.5" x2="881.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="881.5" y1="423.5" x2="842.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="881.5" y1="423.5" x2="862.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="881.5" y1="423.5" x2="891.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="891.5" y1="455.5" x2="891.5" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="891.5" y1="487.5" x2="852.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="891.5" y1="487.5" x2="872.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="891.5" y1="487.5" x2="901.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="901.5" y1="519.5" x2="901.5" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="901.5" y1="551.5" x2="901.5" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="891.5" y1="487.5" x2="931.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="881.5" y1="423.5" x2="921.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="871.5" y1="359.5" x2="911.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="861.5" y1="295.5" x2="901.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="846.5" y1="231.5" x2="891.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="739.125" y1="103.5" x2="1052.875" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1052.875" y1="135.5" x2="885.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1052.875" y1="135.5" x2="912.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="912.5" y1="167.5" x2="912.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1052.875" y1="135.5" x2="939.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1052.875" y1="135.5" x2="972.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="972.0" y1="167.5" x2="972.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1052.875" y1="135.5" x2="1005.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1052.875" y1="135.5" x2="1037.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1037.5" y1="167.5" x2="1037.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1037.5" y1="199.5" x2="1037.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1037.5" y1="231.5" x2="993.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1037.5" y1="231.5" x2="1023.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1037.5" y1="231.5" x2="1052.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1052.5" y1="263.5" x2="1052.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1052.5" y1="295.5" x2="1013.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1052.5" y1="295.5" x2="1033.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1052.5" y1="295.5" x2="1062.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1062.5" y1="327.5" x2="1062.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1062.5" y1="359.5" x2="1023.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1062.5" y1="359.5" x2="1043.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1062.5" y1="359.5" x2="1072.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1072.5" y1="391.5" x2="1072.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1072.5" y1="423.5" x2="1033.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1072.5" y1="423.5" x2="1053.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1072.5" y1="423.5" x2="1082.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1082.5" y1="455.5" x2="1082.5" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1082.5" y1="487.5" x2="1043.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1082.5" y1="487.5" x2="1063.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1082.5" y1="487.5" x2="1092.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1092.5" y1="519.5" x2="1092.5" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1092.5" y1="551.5" x2="1092.5" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1082.5" y1="487.5" x2="1122.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1072.5" y1="423.5" x2="1112.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1062.5" y1="359.5" x2="1102.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1052.5" y1="295.5" x2="1092.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1037.5" y1="231.5" x2="1082.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1052.875" y1="135.5" x2="1090.875" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1052.875" y1="135.5" x2="1137.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1137.75" y1="167.5" x2="1116.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1137.75" y1="167.5" x2="1137.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1137.75" y1="199.5" x2="1115.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1115.5" y1="231.5" x2="1115.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1115.5" y1="263.5" x2="1115.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1137.75" y1="199.5" x2="1144.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1137.75" y1="199.5" x2="1160.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1137.75" y1="167.5" x2="1159.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1052.875" y1="135.5" x2="1164.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1052.875" y1="135.5" x2="1180.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1052.875" y1="135.5" x2="1220.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1220.25" y1="167.5" x2="1220.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1220.25" y1="199.5" x2="1220.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1220.25" y1="231.5" x2="1175.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1220.25" y1="231.5" x2="1205.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1220.25" y1="231.5" x2="1235.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1235.25" y1="263.5" x2="1235.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1235.25" y1="295.5" x2="1235.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1220.25" y1="231.5" x2="1264.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="739.125" y1="103.5" x2="1405.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1405.75" y1="135.5" x2="1259.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1405.75" y1="135.5" x2="1286.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1286.25" y1="167.5" x2="1286.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1405.75" y1="135.5" x2="1312.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1405.75" y1="135.5" x2="1345.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1345.75" y1="167.5" x2="1345.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1405.75" y1="135.5" x2="1378.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1405.75" y1="135.5" x2="1411.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1411.25" y1="167.5" x2="1411.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1411.25" y1="199.5" x2="1411.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1411.25" y1="231.5" x2="1366.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1411.25" y1="231.5" x2="1396.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1411.25" y1="231.5" x2="1426.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1426.25" y1="263.5" x2="1426.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1426.25" y1="295.5" x2="1426.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1411.25" y1="231.5" x2="1455.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1405.75" y1="135.5" x2="1443.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1405.75" y1="135.5" x2="1469.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1469.75" y1="167.5" x2="1462.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1469.75" y1="167.5" x2="1476.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1405.75" y1="135.5" x2="1496.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1405.75" y1="135.5" x2="1512.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1405.75" y1="135.5" x2="1552.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1552.25" y1="167.5" x2="1552.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1552.25" y1="199.5" x2="1552.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1552.25" y1="231.5" x2="1552.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1341.5625" y1="7.5" x2="1969.5" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1969.5" y1="39.5" x2="1695.875" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1695.875" y1="71.5" x2="1657.375" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1695.875" y1="71.5" x2="1693.375" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1695.875" y1="71.5" x2="1715.875" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1695.875" y1="71.5" x2="1734.375" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1734.375" y1="103.5" x2="1616.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1616.75" y1="135.5" x2="1601.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1616.75" y1="135.5" x2="1632.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1632.25" y1="167.5" x2="1613.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1632.25" y1="167.5" x2="1629.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1632.25" y1="167.5" x2="1651.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1651.0" y1="199.5" x2="1651.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1734.375" y1="103.5" x2="1672.625" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1734.375" y1="103.5" x2="1733.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1733.0" y1="135.5" x2="1733.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1733.0" y1="167.5" x2="1688.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1733.0" y1="167.5" x2="1718.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1733.0" y1="167.5" x2="1748.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1748.0" y1="199.5" x2="1748.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1748.0" y1="231.5" x2="1708.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1748.0" y1="231.5" x2="1728.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1748.0" y1="231.5" x2="1758.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1758.0" y1="263.5" x2="1758.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1758.0" y1="295.5" x2="1718.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1758.0" y1="295.5" x2="1738.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1758.0" y1="295.5" x2="1768.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1768.0" y1="327.5" x2="1768.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1768.0" y1="359.5" x2="1728.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1768.0" y1="359.5" x2="1748.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1768.0" y1="359.5" x2="1778.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1778.0" y1="391.5" x2="1778.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1778.0" y1="423.5" x2="1738.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1778.0" y1="423.5" x2="1758.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1778.0" y1="423.5" x2="1788.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1788.0" y1="455.5" x2="1788.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1788.0" y1="487.5" x2="1788.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1778.0" y1="423.5" x2="1817.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1768.0" y1="359.5" x2="1807.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1758.0" y1="295.5" x2="1797.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1748.0" y1="231.5" x2="1787.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1733.0" y1="167.5" x2="1777.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1734.375" y1="103.5" x2="1792.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1734.375" y1="103.5" x2="1852.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1852.0" y1="135.5" x2="1852.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1852.0" y1="167.5" x2="1807.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1852.0" y1="167.5" x2="1837.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1852.0" y1="167.5" x2="1867.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1867.0" y1="199.5" x2="1867.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1867.0" y1="231.5" x2="1867.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1852.0" y1="167.5" x2="1896.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1969.5" y1="39.5" x2="2243.125" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2243.125" y1="71.5" x2="2243.125" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2243.125" y1="103.5" x2="1960.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1960.0" y1="135.5" x2="1960.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1960.0" y1="167.5" x2="1960.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1960.0" y1="199.5" x2="1915.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1960.0" y1="199.5" x2="1945.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1960.0" y1="199.5" x2="1975.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1975.0" y1="231.5" x2="1975.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1975.0" y1="263.5" x2="1935.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1975.0" y1="263.5" x2="1955.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1975.0" y1="263.5" x2="1985.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1985.0" y1="295.5" x2="1985.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1985.0" y1="327.5" x2="1945.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1985.0" y1="327.5" x2="1965.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1985.0" y1="327.5" x2="1995.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1995.0" y1="359.5" x2="1995.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1995.0" y1="391.5" x2="1955.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1995.0" y1="391.5" x2="1975.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1995.0" y1="391.5" x2="2005.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2005.0" y1="423.5" x2="2005.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2005.0" y1="455.5" x2="1965.5" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2005.0" y1="455.5" x2="1985.5" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2005.0" y1="455.5" x2="2015.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2015.0" y1="487.5" x2="2015.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2015.0" y1="519.5" x2="2015.0" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2005.0" y1="455.5" x2="2044.5" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1995.0" y1="391.5" x2="2034.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1985.0" y1="327.5" x2="2024.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1975.0" y1="263.5" x2="2014.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1960.0" y1="199.5" x2="2004.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2243.125" y1="103.5" x2="2165.125" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2165.125" y1="135.5" x2="1989.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2165.125" y1="135.5" x2="2016.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2016.5" y1="167.5" x2="2016.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2165.125" y1="135.5" x2="2043.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2165.125" y1="135.5" x2="2076.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2076.0" y1="167.5" x2="2076.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2165.125" y1="135.5" x2="2109.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2165.125" y1="135.5" x2="2141.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2141.5" y1="167.5" x2="2141.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2141.5" y1="199.5" x2="2141.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2141.5" y1="231.5" x2="2097.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2141.5" y1="231.5" x2="2127.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2141.5" y1="231.5" x2="2156.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2156.5" y1="263.5" x2="2156.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2156.5" y1="295.5" x2="2117.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2156.5" y1="295.5" x2="2137.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2156.5" y1="295.5" x2="2166.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2166.5" y1="327.5" x2="2166.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2166.5" y1="359.5" x2="2127.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2166.5" y1="359.5" x2="2147.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2166.5" y1="359.5" x2="2176.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2176.5" y1="391.5" x2="2176.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2176.5" y1="423.5" x2="2137.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2176.5" y1="423.5" x2="2157.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2176.5" y1="423.5" x2="2186.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2186.5" y1="455.5" x2="2186.5" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2186.5" y1="487.5" x2="2147.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2186.5" y1="487.5" x2="2167.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2186.5" y1="487.5" x2="2196.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2196.5" y1="519.5" x2="2196.5" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2196.5" y1="551.5" x2="2196.5" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2186.5" y1="487.5" x2="2226.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2176.5" y1="423.5" x2="2216.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2166.5" y1="359.5" x2="2206.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2156.5" y1="295.5" x2="2196.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2141.5" y1="231.5" x2="2186.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2165.125" y1="135.5" x2="2203.125" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2165.125" y1="135.5" x2="2258.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2258.25" y1="167.5" x2="2236.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2258.25" y1="167.5" x2="2258.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2258.25" y1="199.5" x2="2236.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2236.0" y1="231.5" x2="2236.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2236.0" y1="263.5" x2="2196.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2236.0" y1="263.5" x2="2216.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2236.0" y1="263.5" x2="2246.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2246.0" y1="295.5" x2="2246.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2246.0" y1="327.5" x2="2206.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2246.0" y1="327.5" x2="2226.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2246.0" y1="327.5" x2="2256.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2256.0" y1="359.5" x2="2256.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2256.0" y1="391.5" x2="2256.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2246.0" y1="327.5" x2="2285.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2236.0" y1="263.5" x2="2275.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2258.25" y1="199.5" x2="2265.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2258.25" y1="199.5" x2="2280.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2258.25" y1="167.5" x2="2279.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2165.125" y1="135.5" x2="2284.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2165.125" y1="135.5" x2="2300.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2165.125" y1="135.5" x2="2340.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2340.75" y1="167.5" x2="2340.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2340.75" y1="199.5" x2="2340.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2340.75" y1="231.5" x2="2296.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2340.75" y1="231.5" x2="2326.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2340.75" y1="231.5" x2="2355.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2355.75" y1="263.5" x2="2355.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2355.75" y1="295.5" x2="2316.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2355.75" y1="295.5" x2="2336.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2355.75" y1="295.5" x2="2365.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2365.75" y1="327.5" x2="2365.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2365.75" y1="359.5" x2="2326.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2365.75" y1="359.5" x2="2346.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2365.75" y1="359.5" x2="2375.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2375.75" y1="391.5" x2="2375.75" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2375.75" y1="423.5" x2="2375.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2365.75" y1="359.5" x2="2405.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2355.75" y1="295.5" x2="2395.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2340.75" y1="231.5" x2="2385.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2243.125" y1="103.5" x2="2526.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2526.25" y1="135.5" x2="2379.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2526.25" y1="135.5" x2="2406.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2406.75" y1="167.5" x2="2406.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2526.25" y1="135.5" x2="2433.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2526.25" y1="135.5" x2="2466.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2466.25" y1="167.5" x2="2466.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2526.25" y1="135.5" x2="2499.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2526.25" y1="135.5" x2="2531.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2531.75" y1="167.5" x2="2531.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2531.75" y1="199.5" x2="2531.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2531.75" y1="231.5" x2="2487.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2531.75" y1="231.5" x2="2517.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2531.75" y1="231.5" x2="2546.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2546.75" y1="263.5" x2="2546.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2546.75" y1="295.5" x2="2507.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2546.75" y1="295.5" x2="2527.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2546.75" y1="295.5" x2="2556.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2556.75" y1="327.5" x2="2556.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2556.75" y1="359.5" x2="2517.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2556.75" y1="359.5" x2="2537.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2556.75" y1="359.5" x2="2566.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2566.75" y1="391.5" x2="2566.75" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2566.75" y1="423.5" x2="2566.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2556.75" y1="359.5" x2="2596.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2546.75" y1="295.5" x2="2586.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2531.75" y1="231.5" x2="2576.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2526.25" y1="135.5" x2="2564.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2526.25" y1="135.5" x2="2590.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2590.25" y1="167.5" x2="2583.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2590.25" y1="167.5" x2="2597.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2526.25" y1="135.5" x2="2616.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2526.25" y1="135.5" x2="2632.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2526.25" y1="135.5" x2="2672.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2672.75" y1="167.5" x2="2672.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2672.75" y1="199.5" x2="2672.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2672.75" y1="231.5" x2="2628.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2672.75" y1="231.5" x2="2658.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2672.75" y1="231.5" x2="2687.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2687.75" y1="263.5" x2="2687.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2687.75" y1="295.5" x2="2687.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2672.75" y1="231.5" x2="2717.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<rect x="678.25" y="544.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="680" y="553" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="900.5" y="192.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="902" y="201" style="font-family:sans-serif;font-size:10px;"> +G32 +</text> +<rect x="1028.5" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1030" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2281.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2283" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="308.5" y="704.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="310" y="713" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1407.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1409" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="76.5" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="78" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="643.75" y="512.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="645" y="521" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="2233.25" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2235" y="201" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="2199.625" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2201" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="142.0" y="672.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="144" y="681" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="813.0" y="320.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="815" y="329" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="472.75" y="640.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="474" y="649" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="927.0" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="929" y="521" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1833.5" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1835" y="201" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1212.75" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1214" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="183.5" y="192.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="185" y="201" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="2143.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2145" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="228.625" y="128.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="230" y="137" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="2261.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2263" y="233" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="368.0" y="544.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="370" y="553" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2391.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2393" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="623.75" y="384.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="625" y="393" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="427.0" y="544.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="429" y="553" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="232.0" y="160.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="234" y="169" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="82.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="84" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1862.0" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1864" y="265" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="357.5" y="448.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="359" y="457" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1389.25" y="160.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1391" y="169" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="1160.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1162" y="169" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="411.5" y="736.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="413" y="745" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="387.5" y="640.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="389" y="649" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="462.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="464" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="638.25" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="640" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1961.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1963" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2217.5" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2219" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1783.0" y="512.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1785" y="521" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="146.0" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="148" y="425" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="393.0" y="608.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="395" y="617" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1844.5" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1846" y="233" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2538.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2540" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2192.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2194" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1734.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1736" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1001.5" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1003" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="628.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="630" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1640.375" y="96.0" width="34.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1642" y="105" style="font-family:sans-serif;font-size:10px;"> +lemma +</text> +<rect x="1098.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1100" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1709.0" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1711" y="169" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2197.5" y="352.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2199" y="361" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="116.0" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="118" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="48.5" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="50" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="801.5" y="160.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="803" y="169" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="2078.0" y="256.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2080" y="265" style="font-family:sans-serif;font-size:10px;"> +gerade +</text> +<rect x="288.5" y="576.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="290" y="585" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1639.5" y="192.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1641" y="201" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="786.5" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="788" y="169" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="313.5" y="640.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="315" y="649" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="517.75" y="768.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="519" y="777" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="377.0" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="379" y="233" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="697.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="699" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1034.0" y="512.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1036" y="521" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="797.25" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="799" y="425" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1070.0" y="544.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1072" y="553" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1225.25" y="320.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1227" y="329" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="897.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="899" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="462.75" y="576.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="464" y="585" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="2071.0" y="192.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2073" y="201" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="2114.625" y="128.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2116" y="137" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="417.0" y="480.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="419" y="489" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="727.75" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="729" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="710.125" y="64.0" width="58.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="712" y="73" style="font-family:sans-serif;font-size:10px;"> +singleProof +</text> +<rect x="653.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="655" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="673.75" y="704.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="675" y="713" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="974.0" y="256.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="976" y="265" style="font-family:sans-serif;font-size:10px;"> +gerade +</text> +<rect x="728.25" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="730" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1270.25" y="160.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1272" y="169" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="132.0" y="608.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="134" y="617" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="506.25" y="160.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="508" y="169" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="2316.75" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2318" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2357.25" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2359" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="112.0" y="480.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="114" y="489" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2443.75" y="160.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2445" y="169" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="2233.5" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2235" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="102.0" y="672.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="104" y="681" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1759.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1761" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="643.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="645" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2277.25" y="256.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2279" y="265" style="font-family:sans-serif;font-size:10px;"> +gerade +</text> +<rect x="2682.75" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2684" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="858.0" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="860" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2331.75" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2333" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="387.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="389" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="502.75" y="576.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="504" y="585" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="717.75" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="719" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="873.0" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="875" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="138.0" y="704.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="140" y="713" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1058.5" y="480.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1060" y="489" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1087.375" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1089" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2158.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2160" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2212.0" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2214" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2039.5" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2041" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="323.5" y="704.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="325" y="713" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2105.5" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2107" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2612.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2614" y="169" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="1155.75" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1157" y="201" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="67.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="69" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2312.75" y="160.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2314" y="169" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="767.25" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="769" y="233" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="781.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="783" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="891.5" y="576.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="893" y="585" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="883.0" y="512.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="885" y="521" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1451.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1453" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="428.25" y="160.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="430" y="169" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="1473.25" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1475" y="201" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="1323.25" y="160.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1325" y="169" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="717.75" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="719" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="753.0" y="192.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="755" y="201" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="2669.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2671" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="268.0" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="270" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="166.0" y="544.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="168" y="553" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="86.5" y="384.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="88" y="393" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="102.0" y="416.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="104" y="425" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="763.25" y="480.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="765" y="489" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1787.5" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1789" y="137" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="1112.75" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1114" y="201" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="2390.75" y="160.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2392" y="169" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="492.75" y="512.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="494" y="521" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="273.5" y="640.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="275" y="649" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="238.5" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="240" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2522.75" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2524" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="727.75" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="729" y="521" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2040.5" y="480.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2042" y="489" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="949.5" y="160.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="951" y="169" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="1088.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1090" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="72.0" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="74" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1714.5" y="128.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1716" y="137" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2000.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2002" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="357.5" y="640.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="359" y="649" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="447.25" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="449" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1074.0" y="512.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1076" y="521" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="863.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="865" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2307.25" y="320.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2309" y="329" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="663.75" y="640.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="665" y="649" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="457.75" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="459" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1951.5" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1953" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2592.25" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2594" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="391.75" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="393" y="201" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="230.0" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="232" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1059.0" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1061" y="521" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1749.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1751" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2123.0" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2125" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="559.25" y="160.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="561" y="169" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="1608.5" y="192.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1610" y="201" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="116.5" y="576.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="118" y="585" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="106.5" y="512.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="108" y="521" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="319.5" y="736.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="321" y="745" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="447.0" y="672.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="449" y="681" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="576.75" y="768.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="578" y="777" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="541.25" y="832.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="543" y="841" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="759.25" y="512.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="761" y="521" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2498.25" y="320.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2500" y="329" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1981.0" y="448.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1983" y="457" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="739.0" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="741" y="201" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="338.0" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="340" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="613.75" y="320.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="615" y="329" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="2627.75" y="160.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2629" y="169" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="62.0" y="416.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="64" y="425" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="373.0" y="480.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="375" y="489" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1156.75" y="256.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1158" y="265" style="font-family:sans-serif;font-size:10px;"> +gerade +</text> +<rect x="783.0" y="256.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="785" y="265" style="font-family:sans-serif;font-size:10px;"> +gerade +</text> +<rect x="1966.5" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1968" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1004.0" y="320.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1006" y="329" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="516.75" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="518" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1105.5" y="288.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1107" y="297" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="1828.0" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1830" y="169" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="367.5" y="704.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="369" y="713" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="392.75" y="256.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="394" y="265" style="font-family:sans-serif;font-size:10px;"> +gerade +</text> +<rect x="487.75" y="576.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="489" y="585" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2123.0" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2125" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="687.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="689" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="358.0" y="480.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="360" y="489" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="833.0" y="448.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="835" y="457" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1986.5" y="416.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1988" y="425" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2148.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2150" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1029.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1031" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2375.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2377" y="169" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="718.25" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="720" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2495.75" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2497" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="823.0" y="384.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="825" y="393" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="732.25" y="832.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="734" y="841" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="757.75" y="704.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="759" y="713" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2429.75" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2431" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="707.75" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="709" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1971.5" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1973" y="425" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="72.0" y="480.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="74" y="489" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="218.0" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="220" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2353.25" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2355" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="258.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="260" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="117.0" y="608.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="119" y="617" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2509.75" y="160.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2511" y="169" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="248.0" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="250" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1669.125" y="128.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1671" y="137" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="333.0" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="335" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="343.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="345" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2609.25" y="256.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2611" y="265" style="font-family:sans-serif;font-size:10px;"> +gerade +</text> +<rect x="497.25" y="608.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="499" y="617" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="127.0" y="672.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="129" y="681" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1014.0" y="384.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1016" y="393" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="771.75" y="544.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="773" y="553" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="1726.375" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1728" y="105" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="136.0" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="138" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="620.375" y="128.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="622" y="137" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="122.0" y="544.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="124" y="553" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="327.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="329" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="353.0" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="355" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="397.0" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="399" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="92.0" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="94" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="432.25" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="434" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1201.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1203" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="403.0" y="672.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="405" y="681" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="566.75" y="704.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="568" y="713" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1355.25" y="128.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1357" y="137" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="181.5" y="256.0" width="50.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="183" y="265" style="font-family:sans-serif;font-size:10px;"> +ungerade +</text> +<rect x="703.25" y="352.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="705" y="361" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="2222.0" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2224" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1048.5" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1050" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2654.25" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2656" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="782.0" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="784" y="201" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="838.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="840" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="121.0" y="192.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="123" y="201" style="font-family:sans-serif;font-size:10px;"> +a4 +</text> +<rect x="2561.75" y="448.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2563" y="457" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="2398.75" y="192.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2400" y="201" style="font-family:sans-serif;font-size:10px;"> +a3 +</text> +<rect x="1492.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1494" y="169" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="2227.5" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2229" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2548.25" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2550" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="268.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="270" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2142.5" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2144" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="807.25" y="480.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="809" y="489" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2138.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2140" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1848.5" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1850" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="186.0" y="672.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="188" y="681" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="176.0" y="608.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="178" y="617" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="303.0" y="288.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="305" y="297" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="896.5" y="160.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="898" y="169" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="1039.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1041" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="507.25" y="672.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="509" y="681" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="532.75" y="768.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="534" y="777" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1108.0" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1110" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="54.0" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="56" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2579.75" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2581" y="201" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="713.25" y="416.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="715" y="425" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="2644.75" y="160.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2646" y="169" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="1093.0" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1095" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="917.0" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="919" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="273.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="275" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1788.5" y="192.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1790" y="201" style="font-family:sans-serif;font-size:10px;"> +gerade +</text> +<rect x="638.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="640" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="653.75" y="576.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="655" y="585" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1946.5" y="416.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1948" y="425" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="2108.0" y="320.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2110" y="329" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="708.25" y="736.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="710" y="745" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="377.5" y="576.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="379" y="585" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1709.5" y="320.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1711" y="329" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="2532.75" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2534" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="698.75" y="704.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="700" y="713" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="156.0" y="480.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="158" y="489" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="625.25" y="160.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="627" y="169" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="1347.75" y="256.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1349" y="265" style="font-family:sans-serif;font-size:10px;"> +gerade +</text> +<rect x="422.75" y="320.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="424" y="329" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1013.5" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1015" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="853.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="855" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="457.25" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="459" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1961.0" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1963" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1956.5" y="480.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1958" y="489" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1175.25" y="160.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1177" y="169" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="2138.0" y="512.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2140" y="521" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1392.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1394" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1981.5" y="480.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1983" y="489" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1985.5" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1987" y="169" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="1454.25" y="160.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1456" y="169" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="1951.0" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1953" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2251.0" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2253" y="425" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1926.5" y="288.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1928" y="297" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1765.5" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1767" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1507.25" y="160.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1509" y="169" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="1054.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1056" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="477.25" y="480.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="479" y="489" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1537.25" y="256.0" width="30.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1539" y="265" style="font-family:sans-serif;font-size:10px;"> +wahr +</text> +<rect x="233.5" y="384.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="235" y="393" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="332.0" y="768.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="334" y="777" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="2513.25" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2515" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="743.25" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="745" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1201.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1203" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1934.5" y="128.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1936" y="137" style="font-family:sans-serif;font-size:10px;"> +start_tree +</text> +<rect x="391.0" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="393" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="723.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="725" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="528.75" y="800.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="530" y="809" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1375.25" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1377" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2347.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2349" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="66.5" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="68" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="348.0" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="350" y="425" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="583.75" y="256.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="585" y="265" style="font-family:sans-serif;font-size:10px;"> +gerade +</text> +<rect x="668.25" y="480.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="670" y="489" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1064.0" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1066" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="333.0" y="480.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="335" y="489" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="611.25" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="613" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="278.0" y="480.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="280" y="489" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="337.5" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="339" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1783.5" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1785" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="818.5" y="160.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="820" y="169" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="2513.25" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2515" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="317.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="319" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="907.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="909" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="328.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="330" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="628.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="630" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="658.25" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="660" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2237.5" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2239" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1529.75" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1531" y="233" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="887.0" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="889" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2000.5" y="160.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2002" y="169" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="1340.75" y="192.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1342" y="201" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="2132.5" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2134" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="698.25" y="672.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="700" y="681" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1956.5" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1958" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2401.25" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2403" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="308.0" y="672.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="310" y="681" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1719.5" y="384.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1721" y="393" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="396.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="398" y="169" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="347.5" y="384.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="349" y="393" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="437.0" y="608.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="439" y="617" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1533.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1535" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2008.5" y="192.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2010" y="201" style="font-family:sans-serif;font-size:10px;"> +a3 +</text> +<rect x="1019.0" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1021" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2332.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2334" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="283.5" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="285" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1416.25" y="320.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1418" y="329" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="363.0" y="672.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="365" y="681" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="2337.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2339" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2187.5" y="288.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2189" y="297" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1155.0" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1157" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1670.375" y="64.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1672" y="73" style="font-family:sans-serif;font-size:10px;"> +lemmaDef +</text> +<rect x="1216.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1218" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2560.75" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2562" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="693.75" y="576.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="695" y="585" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="42.0" y="288.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="44" y="297" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="767.75" y="768.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="769" y="777" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="668.75" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="670" y="521" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="847.5" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="849" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="702.125" y="96.0" width="74.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="704" y="105" style="font-family:sans-serif;font-size:10px;"> +transformation +</text> +<rect x="452.75" y="512.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="454" y="521" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1669.5" y="192.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1671" y="201" style="font-family:sans-serif;font-size:10px;"> +gerade +</text> +<rect x="837.5" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="839" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1699.5" y="256.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1701" y="265" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="2117.5" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2119" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="77.0" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="79" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2182.0" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2184" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2242.75" y="160.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2244" y="169" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="881.5" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="883" y="169" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="452.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="454" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="512.75" y="640.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="514" y="649" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2276.25" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2278" y="201" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="967.0" y="192.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="969" y="201" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="576.75" y="192.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="578" y="201" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="2280.75" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2282" y="169" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="2341.75" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2343" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2544.25" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2546" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1260.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1262" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="437.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="439" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2648.75" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2650" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="556.75" y="640.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="558" y="649" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2212.0" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2214" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="337.5" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="339" y="521" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="343.0" y="544.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="345" y="553" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="150.5" y="736.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="152" y="745" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="87.0" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="89" y="425" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="263.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="265" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="935.5" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="937" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="848.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="850" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2582.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2584" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2206.125" y="96.0" width="74.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2208" y="105" style="font-family:sans-serif;font-size:10px;"> +transformation +</text> +<rect x="1625.5" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1627" y="201" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="2128.0" y="448.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2130" y="457" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="2178.0" y="512.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2180" y="521" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="303.5" y="576.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="305" y="585" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="467.75" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="469" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1754.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1756" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1976.5" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1978" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2174.0" y="544.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2176" y="553" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="843.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="845" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="492.75" y="768.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="494" y="777" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="868.0" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="870" y="521" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="298.5" y="640.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="300" y="649" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="411.25" y="160.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="413" y="169" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="47.0" y="128.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="49" y="137" style="font-family:sans-serif;font-size:10px;"> +start_tree +</text> +<rect x="447.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="449" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1524.25" y="160.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1526" y="169" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="323.0" y="416.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="325" y="425" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1196.25" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1198" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="747.75" y="448.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="749" y="457" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="857.5" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="859" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1097.0" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1099" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2468.25" y="256.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2470" y="265" style="font-family:sans-serif;font-size:10px;"> +gerade +</text> +<rect x="748.25" y="480.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="750" y="489" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1739.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1741" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2271.5" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2273" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2153.0" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2155" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="378.0" y="608.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="380" y="617" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2275.5" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2277" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="2030.5" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2032" y="425" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1936.5" y="352.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1938" y="361" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="283.5" y="704.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="285" y="713" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1326.5625" y="0.0" width="30.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1328" y="9" style="font-family:sans-serif;font-size:10px;"> +proof +</text> +<rect x="1724.0" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1726" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1941.5" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1943" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="506.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="508" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1602.75" y="128.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1604" y="137" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="1126.75" y="192.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1128" y="201" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="1724.5" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1726" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1015.5" y="160.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1017" y="169" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="1734.0" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1736" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2665.25" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2667" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1440.25" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1442" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="723.75" y="768.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="725" y="777" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="98.0" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="100" y="169" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="113.0" y="160.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="115" y="169" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="152.0" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="154" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="348.75" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="350" y="201" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="253.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="255" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="526.75" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="528" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="313.625" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="315" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="663.75" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="665" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="487.25" y="544.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="489" y="553" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="683.75" y="512.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="685" y="521" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1038.5" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1040" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2010.0" y="544.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2012" y="553" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="2020.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2022" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="298.0" y="608.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="300" y="617" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="688.25" y="608.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="690" y="617" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2152.5" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2154" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2163.0" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2165" y="521" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2475.75" y="128.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2477" y="137" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="467.25" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="469" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="358.25" y="160.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="360" y="169" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="733.25" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="735" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1078.0" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1080" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="313.0" y="352.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="315" y="361" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="2295.75" y="160.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2297" y="169" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="1082.5" y="576.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1084" y="585" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="482.75" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="484" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1387.25" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1389" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1309.25" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1311" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1971.0" y="384.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1973" y="393" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1936.0" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1938" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="278.5" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="280" y="521" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="263.5" y="576.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="265" y="585" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="678.75" y="576.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="680" y="585" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="297.5" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="299" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2370.75" y="448.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2372" y="457" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="2381.25" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2383" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2528.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2530" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2533.25" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2535" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="258.0" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="260" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="673.125" y="64.0" width="30.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="675" y="73" style="font-family:sans-serif;font-size:10px;"> +proof +</text> +<rect x="703.75" y="640.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="705" y="649" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1744.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1746" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="688.75" y="640.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="690" y="649" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2168.0" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2170" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="57.0" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="59" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="253.5" y="512.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="255" y="521" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="517.25" y="736.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="519" y="745" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2507.75" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2509" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="737.75" y="384.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="739" y="393" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2010.5" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2012" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1744.0" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1746" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="522.75" y="704.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="524" y="713" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="822.5" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="824" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="126.5" y="640.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="128" y="649" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1141.0" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1143" y="233" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="407.0" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="409" y="425" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="432.75" y="384.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="434" y="393" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="2713.25" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2715" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="648.25" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="650" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1024.0" y="448.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1026" y="457" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="545.25" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="547" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1754.0" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1756" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="867.5" y="480.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="869" y="489" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2247.25" y="192.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2249" y="201" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="1019.0" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1021" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="243.5" y="448.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="245" y="457" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="738.25" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="740" y="425" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="787.25" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="789" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="235.5" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="237" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="536.75" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="538" y="521" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="491.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="493" y="169" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="719.75" y="800.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="721" y="809" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1813.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1815" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2053.5" y="160.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2055" y="169" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="2322.25" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2324" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2523.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2525" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="723.25" y="480.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="725" y="489" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="2212.5" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2214" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="442.75" y="448.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="444" y="457" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="496.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="498" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="347.5" y="576.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="349" y="585" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1587.25" y="160.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1589" y="169" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="2202.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2204" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="673.75" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="675" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="747.75" y="640.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="749" y="649" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2133.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2135" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="477.75" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="479" y="521" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="482.75" y="704.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="484" y="713" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="2654.25" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2656" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="126.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="128" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="497.75" y="640.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="499" y="649" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1459.25" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1461" y="201" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="288.0" y="544.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="290" y="553" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="388.0" y="672.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="390" y="681" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="693.25" y="288.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="695" y="297" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="2162.5" y="480.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2164" y="489" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2322.25" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2324" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="223.5" y="320.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="225" y="329" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="307.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="309" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="52.0" y="352.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="54" y="361" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="879.0" y="544.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="881" y="553" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1996.5" y="480.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1998" y="489" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1118.0" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1120" y="521" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1278.25" y="192.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1280" y="201" style="font-family:sans-serif;font-size:10px;"> +a1 +</text> +<rect x="2461.25" y="192.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2463" y="201" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="510.25" y="192.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="512" y="201" style="font-family:sans-serif;font-size:10px;"> +G32 +</text> +<rect x="2342.25" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2344" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1192.25" y="160.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1194" y="169" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="353.0" y="608.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="355" y="617" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1122.25" y="160.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1124" y="169" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="1833.5" y="128.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1835" y="137" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2119.5" y="160.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2121" y="169" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="96.5" y="448.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="98" y="457" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1793.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1795" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="0.0" y="224.0" width="50.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2" y="233" style="font-family:sans-serif;font-size:10px;"> +ungerade +</text> +<rect x="648.75" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="650" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="753.25" y="416.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="755" y="425" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="737.75" y="576.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="739" y="585" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1403.75" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1405" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="399.0" y="704.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="401" y="713" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="472.75" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="474" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1892.5" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1894" y="201" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1992.5" y="512.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1994" y="521" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2222.0" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2224" y="521" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2214.125" y="64.0" width="58.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2216" y="73" style="font-family:sans-serif;font-size:10px;"> +singleProof +</text> +<rect x="1034.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1036" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="683.75" y="768.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="685" y="777" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1255.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1257" y="169" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="713.75" y="704.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="715" y="713" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1002.375" y="128.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1004" y="137" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="1392.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1394" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="623.25" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="625" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1622.25" y="160.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1624" y="169" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="166.0" y="160.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="168" y="169" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="1729.5" y="448.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1731" y="457" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1941.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1943" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2191.5" y="576.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2193" y="585" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="362.75" y="192.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="364" y="201" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="363.0" y="416.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="365" y="425" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1044.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1046" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2508.25" y="384.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2510" y="393" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="546.75" y="576.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="548" y="585" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2118.0" y="384.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2120" y="393" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1769.5" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1771" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="708.75" y="768.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="710" y="777" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="248.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="250" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="687.625" y="32.0" width="52.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="689" y="41" style="font-family:sans-serif;font-size:10px;"> +mainProof +</text> +<rect x="1729.5" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1731" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="97.0" y="480.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="99" y="489" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1803.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1805" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="383.0" y="544.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="385" y="553" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="705.375" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="707" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="437.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="439" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="828.0" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="830" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="82.0" y="544.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="84" y="553" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="92.0" y="608.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="94" y="617" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1681.375" y="96.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1683" y="105" style="font-family:sans-serif;font-size:10px;"> +G32 +</text> +<rect x="1773.5" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1775" y="201" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1896.5" y="224.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1898" y="233" style="font-family:sans-serif;font-size:10px;"> +gerade +</text> +<rect x="2222.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2224" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="327.5" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="329" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2317.25" y="384.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2319" y="393" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="748.5" y="160.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="750" y="169" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="107.0" y="544.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="109" y="553" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="367.5" y="512.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="369" y="521" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="507.75" y="704.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="509" y="713" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2593.75" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2595" y="201" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="1712.375" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1714" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1952.5" y="32.0" width="34.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1954" y="41" style="font-family:sans-serif;font-size:10px;"> +lemma +</text> +<rect x="1641.0" y="224.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1643" y="233" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="1049.0" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1051" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="633.75" y="448.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="635" y="457" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="2572.25" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2574" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2574.75" y="160.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2576" y="169" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="843.0" y="512.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="845" y="521" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="777.25" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="779" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="828.0" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="830" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="293.5" y="512.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="295" y="521" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1714.5" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1716" y="201" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="658.75" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="660" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +</svg> \ No newline at end of file diff --git a/ANTRL-Grammatiken/Beweis/Proof_Bsp_Lemma.txt b/ANTRL-Grammatiken/Beweis/Proof_Bsp_Lemma.txt new file mode 100644 index 0000000000000000000000000000000000000000..16fc648b7702958aa40a441b3aef0db8feced894 --- /dev/null +++ b/ANTRL-Grammatiken/Beweis/Proof_Bsp_Lemma.txt @@ -0,0 +1,17 @@ +proof +ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))) + {a4,lr,ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))),[inc(inc(inc(inc(inc(inc(inc(null)))))))/n]} += gerade(inc(inc(inc(inc(inc(inc(inc(inc(null))))))))) + {G32,lr,gerade(inc(inc(inc(inc(inc(inc(inc(inc(null))))))))),[inc(inc(inc(inc(null))))/n]} += gerade(inc(inc(inc(inc(null))))) + {G32,lr,gerade(inc(inc(inc(inc(null))))),[null/n]} += gerade(null) + {a1,lr,gerade(null),[]} += wahr + +lemma G32: forall n:Nat : gerade(inc(inc(inc(inc(n))))) = gerade(n) +gerade(inc(inc(inc(inc(n))))) + {a3,lr,gerade(inc(inc(inc(inc(n))))),[inc(inc(n))/n]} += gerade(inc(inc(n))) + {a3,lr,gerade(inc(inc(n))),[]} += gerade(n) \ No newline at end of file diff --git a/ANTRL-Grammatiken/Beweis/Proof_Bsp_NatTree.svg b/ANTRL-Grammatiken/Beweis/Proof_Bsp_NatTree.svg new file mode 100644 index 0000000000000000000000000000000000000000..f74f8e0524a6d160a72d4da3dfac218ed8a38ae2 --- /dev/null +++ b/ANTRL-Grammatiken/Beweis/Proof_Bsp_NatTree.svg @@ -0,0 +1,15070 @@ +<svg width="26430.800000000003" height="832.7" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><line x1="10765.2109375" y1="7.5" x2="980.234375" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="980.234375" y1="39.5" x2="178.25" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="178.25" y1="71.5" x2="135.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="178.25" y1="71.5" x2="175.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="178.25" y1="71.5" x2="202.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="178.25" y1="71.5" x2="221.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="221.25" y1="103.5" x2="73.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="73.0" y1="135.5" x2="60.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="60.75" y1="167.5" x2="14.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="60.75" y1="167.5" x2="45.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="45.0" y1="199.5" x2="26.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="45.0" y1="199.5" x2="41.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="45.0" y1="199.5" x2="63.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="63.75" y1="231.5" x2="63.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="60.75" y1="167.5" x2="76.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="60.75" y1="167.5" x2="107.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="107.5" y1="199.5" x2="88.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="107.5" y1="199.5" x2="104.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="107.5" y1="199.5" x2="126.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="126.75" y1="231.5" x2="126.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="73.0" y1="135.5" x2="85.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="221.25" y1="103.5" x2="206.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="206.5" y1="135.5" x2="206.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="206.5" y1="167.5" x2="136.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="206.5" y1="167.5" x2="159.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="206.5" y1="167.5" x2="189.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="189.0" y1="199.5" x2="189.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="189.0" y1="231.5" x2="189.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="206.5" y1="167.5" x2="218.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="206.5" y1="167.5" x2="247.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="247.0" y1="199.5" x2="247.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="247.0" y1="231.5" x2="247.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="206.5" y1="167.5" x2="276.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="221.25" y1="103.5" x2="288.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="221.25" y1="103.5" x2="369.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="369.5" y1="135.5" x2="369.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="369.5" y1="167.5" x2="299.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="369.5" y1="167.5" x2="322.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="369.5" y1="167.5" x2="352.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="352.0" y1="199.5" x2="352.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="352.0" y1="231.5" x2="352.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="369.5" y1="167.5" x2="381.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="369.5" y1="167.5" x2="410.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="410.0" y1="199.5" x2="410.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="410.0" y1="231.5" x2="410.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="369.5" y1="167.5" x2="439.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="980.234375" y1="39.5" x2="1782.21875" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1782.21875" y1="71.5" x2="1782.21875" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1782.21875" y1="103.5" x2="859.4375" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="859.4375" y1="135.5" x2="528.875" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="859.4375" y1="135.5" x2="546.375" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="859.4375" y1="135.5" x2="580.875" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="580.875" y1="167.5" x2="559.625" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="580.875" y1="167.5" x2="602.125" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="602.125" y1="199.5" x2="469.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="469.5" y1="231.5" x2="457.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="457.25" y1="263.5" x2="441.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="457.25" y1="263.5" x2="472.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="472.75" y1="295.5" x2="453.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="472.75" y1="295.5" x2="470.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="472.75" y1="295.5" x2="492.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="492.0" y1="327.5" x2="492.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="469.5" y1="231.5" x2="481.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="602.125" y1="199.5" x2="571.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="571.75" y1="231.5" x2="571.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="571.75" y1="263.5" x2="501.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="571.75" y1="263.5" x2="524.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="571.75" y1="263.5" x2="554.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="554.25" y1="295.5" x2="554.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="554.25" y1="327.5" x2="554.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="571.75" y1="263.5" x2="583.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="571.75" y1="263.5" x2="612.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="612.25" y1="295.5" x2="612.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="612.25" y1="327.5" x2="612.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="571.75" y1="263.5" x2="641.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="602.125" y1="199.5" x2="653.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="602.125" y1="199.5" x2="734.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="734.75" y1="231.5" x2="734.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="734.75" y1="263.5" x2="664.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="734.75" y1="263.5" x2="687.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="734.75" y1="263.5" x2="717.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="717.25" y1="295.5" x2="717.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="717.25" y1="327.5" x2="717.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="734.75" y1="263.5" x2="746.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="734.75" y1="263.5" x2="775.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="775.25" y1="295.5" x2="775.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="775.25" y1="327.5" x2="775.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="734.75" y1="263.5" x2="804.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="859.4375" y1="135.5" x2="1190.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1190.0" y1="167.5" x2="897.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="897.75" y1="199.5" x2="897.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="897.75" y1="231.5" x2="897.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="897.75" y1="263.5" x2="827.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="897.75" y1="263.5" x2="850.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="897.75" y1="263.5" x2="880.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="880.25" y1="295.5" x2="880.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="880.25" y1="327.5" x2="880.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="897.75" y1="263.5" x2="909.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="897.75" y1="263.5" x2="938.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="938.25" y1="295.5" x2="938.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="938.25" y1="327.5" x2="938.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="897.75" y1="263.5" x2="967.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1190.0" y1="167.5" x2="1107.375" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1107.375" y1="199.5" x2="927.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1107.375" y1="199.5" x2="954.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="954.25" y1="231.5" x2="954.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1107.375" y1="199.5" x2="980.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1107.375" y1="199.5" x2="1013.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1013.75" y1="231.5" x2="1013.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1107.375" y1="199.5" x2="1046.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1107.375" y1="199.5" x2="1079.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1079.25" y1="231.5" x2="1079.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1079.25" y1="263.5" x2="1079.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1079.25" y1="295.5" x2="1009.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1079.25" y1="295.5" x2="1032.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1079.25" y1="295.5" x2="1061.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1061.75" y1="327.5" x2="1061.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1061.75" y1="359.5" x2="1061.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1079.25" y1="295.5" x2="1090.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1079.25" y1="295.5" x2="1119.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1119.75" y1="327.5" x2="1119.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1119.75" y1="359.5" x2="1119.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1079.25" y1="295.5" x2="1149.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1107.375" y1="199.5" x2="1145.375" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1107.375" y1="199.5" x2="1205.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1205.0" y1="231.5" x2="1183.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1205.0" y1="231.5" x2="1205.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1205.0" y1="263.5" x2="1182.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1182.75" y1="295.5" x2="1182.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1182.75" y1="327.5" x2="1182.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1205.0" y1="263.5" x2="1211.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1205.0" y1="263.5" x2="1227.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1205.0" y1="231.5" x2="1226.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1107.375" y1="199.5" x2="1231.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1107.375" y1="199.5" x2="1247.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1107.375" y1="199.5" x2="1287.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1287.5" y1="231.5" x2="1287.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1287.5" y1="263.5" x2="1287.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1287.5" y1="295.5" x2="1287.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1190.0" y1="167.5" x2="1482.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1482.25" y1="199.5" x2="1326.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1482.25" y1="199.5" x2="1353.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1353.5" y1="231.5" x2="1353.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1482.25" y1="199.5" x2="1380.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1482.25" y1="199.5" x2="1413.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1413.0" y1="231.5" x2="1413.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1482.25" y1="199.5" x2="1446.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1482.25" y1="199.5" x2="1478.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1478.5" y1="231.5" x2="1478.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1478.5" y1="263.5" x2="1478.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1478.5" y1="295.5" x2="1478.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1482.25" y1="199.5" x2="1516.875" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1482.25" y1="199.5" x2="1548.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1548.75" y1="231.5" x2="1527.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1548.75" y1="231.5" x2="1548.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1548.75" y1="263.5" x2="1526.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1526.5" y1="295.5" x2="1526.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1526.5" y1="327.5" x2="1526.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1548.75" y1="263.5" x2="1555.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1548.75" y1="263.5" x2="1571.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1548.75" y1="231.5" x2="1570.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1482.25" y1="199.5" x2="1577.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1482.25" y1="199.5" x2="1595.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1482.25" y1="199.5" x2="1638.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1638.0" y1="231.5" x2="1638.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1638.0" y1="263.5" x2="1638.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1638.0" y1="295.5" x2="1568.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1638.0" y1="295.5" x2="1591.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1638.0" y1="295.5" x2="1620.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1620.5" y1="327.5" x2="1620.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1620.5" y1="359.5" x2="1620.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1638.0" y1="295.5" x2="1649.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1638.0" y1="295.5" x2="1678.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1678.5" y1="327.5" x2="1678.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1678.5" y1="359.5" x2="1678.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1638.0" y1="295.5" x2="1708.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1782.21875" y1="103.5" x2="1868.8125" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1868.8125" y1="135.5" x2="1851.0625" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1868.8125" y1="135.5" x2="1868.0625" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1868.8125" y1="135.5" x2="1886.5625" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1886.5625" y1="167.5" x2="1738.375" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1738.375" y1="199.5" x2="1695.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1695.0" y1="231.5" x2="1679.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1695.0" y1="231.5" x2="1710.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1710.5" y1="263.5" x2="1692.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1710.5" y1="263.5" x2="1707.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1710.5" y1="263.5" x2="1729.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1729.0" y1="295.5" x2="1729.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1738.375" y1="199.5" x2="1726.125" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1738.375" y1="199.5" x2="1757.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1757.25" y1="231.5" x2="1741.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1757.25" y1="231.5" x2="1772.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1772.75" y1="263.5" x2="1753.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1772.75" y1="263.5" x2="1770.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1772.75" y1="263.5" x2="1792.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1792.0" y1="295.5" x2="1792.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1738.375" y1="199.5" x2="1781.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1886.5625" y1="167.5" x2="1871.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1871.75" y1="199.5" x2="1871.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1871.75" y1="231.5" x2="1801.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1871.75" y1="231.5" x2="1824.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1871.75" y1="231.5" x2="1854.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1854.25" y1="263.5" x2="1854.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1854.25" y1="295.5" x2="1854.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1871.75" y1="231.5" x2="1883.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1871.75" y1="231.5" x2="1912.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1912.25" y1="263.5" x2="1912.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1912.25" y1="295.5" x2="1912.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1871.75" y1="231.5" x2="1941.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1886.5625" y1="167.5" x2="1953.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1886.5625" y1="167.5" x2="2034.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2034.75" y1="199.5" x2="2034.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2034.75" y1="231.5" x2="1964.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2034.75" y1="231.5" x2="1987.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2034.75" y1="231.5" x2="2017.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2017.25" y1="263.5" x2="2017.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2017.25" y1="295.5" x2="2017.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2034.75" y1="231.5" x2="2046.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2034.75" y1="231.5" x2="2075.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2075.25" y1="263.5" x2="2075.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2075.25" y1="295.5" x2="2075.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2034.75" y1="231.5" x2="2104.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1782.21875" y1="103.5" x2="2705.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2705.0" y1="135.5" x2="2255.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2705.0" y1="135.5" x2="2272.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2705.0" y1="135.5" x2="2306.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2306.5" y1="167.5" x2="2285.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2306.5" y1="167.5" x2="2327.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2327.75" y1="199.5" x2="2177.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2177.5" y1="231.5" x2="2134.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2134.25" y1="263.5" x2="2118.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2134.25" y1="263.5" x2="2149.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2149.75" y1="295.5" x2="2130.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2149.75" y1="295.5" x2="2147.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2149.75" y1="295.5" x2="2169.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2169.0" y1="327.5" x2="2169.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2177.5" y1="231.5" x2="2165.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2177.5" y1="231.5" x2="2196.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2196.25" y1="263.5" x2="2180.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2196.25" y1="263.5" x2="2211.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2211.75" y1="295.5" x2="2193.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2211.75" y1="295.5" x2="2208.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2211.75" y1="295.5" x2="2230.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2230.25" y1="327.5" x2="2230.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2177.5" y1="231.5" x2="2220.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2327.75" y1="199.5" x2="2313.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2313.25" y1="231.5" x2="2313.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2313.25" y1="263.5" x2="2243.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2313.25" y1="263.5" x2="2266.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2313.25" y1="263.5" x2="2295.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2295.75" y1="295.5" x2="2295.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2295.75" y1="327.5" x2="2256.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2295.75" y1="327.5" x2="2276.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2295.75" y1="327.5" x2="2305.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2305.75" y1="359.5" x2="2305.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2305.75" y1="391.5" x2="2305.75" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2295.75" y1="327.5" x2="2335.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2313.25" y1="263.5" x2="2324.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2313.25" y1="263.5" x2="2353.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2353.75" y1="295.5" x2="2353.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2353.75" y1="327.5" x2="2353.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2313.25" y1="263.5" x2="2383.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2327.75" y1="199.5" x2="2395.625" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2327.75" y1="199.5" x2="2478.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2478.0" y1="231.5" x2="2478.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2478.0" y1="263.5" x2="2406.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2478.0" y1="263.5" x2="2429.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2478.0" y1="263.5" x2="2458.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2458.75" y1="295.5" x2="2458.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2458.75" y1="327.5" x2="2458.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2478.0" y1="263.5" x2="2489.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2478.0" y1="263.5" x2="2520.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2520.25" y1="295.5" x2="2520.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2520.25" y1="327.5" x2="2480.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2520.25" y1="327.5" x2="2500.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2520.25" y1="327.5" x2="2530.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2530.25" y1="359.5" x2="2530.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2530.25" y1="391.5" x2="2530.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2520.25" y1="327.5" x2="2559.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2478.0" y1="263.5" x2="2549.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2705.0" y1="135.5" x2="3155.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3155.0" y1="167.5" x2="2644.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2644.5" y1="199.5" x2="2644.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2644.5" y1="231.5" x2="2644.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2644.5" y1="263.5" x2="2572.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2644.5" y1="263.5" x2="2595.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2644.5" y1="263.5" x2="2625.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2625.25" y1="295.5" x2="2625.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2625.25" y1="327.5" x2="2625.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2644.5" y1="263.5" x2="2656.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2644.5" y1="263.5" x2="2686.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2686.75" y1="295.5" x2="2686.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2686.75" y1="327.5" x2="2647.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2686.75" y1="327.5" x2="2667.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2686.75" y1="327.5" x2="2696.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2696.75" y1="359.5" x2="2696.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2696.75" y1="391.5" x2="2696.75" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2686.75" y1="327.5" x2="2726.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2644.5" y1="263.5" x2="2716.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3155.0" y1="167.5" x2="2881.375" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2881.375" y1="199.5" x2="2674.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2881.375" y1="199.5" x2="2701.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2701.0" y1="231.5" x2="2701.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2881.375" y1="199.5" x2="2727.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2881.375" y1="199.5" x2="2760.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2760.5" y1="231.5" x2="2760.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2881.375" y1="199.5" x2="2793.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2881.375" y1="199.5" x2="2826.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2826.0" y1="231.5" x2="2826.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2826.0" y1="263.5" x2="2826.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2826.0" y1="295.5" x2="2754.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2826.0" y1="295.5" x2="2777.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2826.0" y1="295.5" x2="2806.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2806.75" y1="327.5" x2="2806.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2806.75" y1="359.5" x2="2806.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2826.0" y1="295.5" x2="2837.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2826.0" y1="295.5" x2="2868.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2868.25" y1="327.5" x2="2868.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2868.25" y1="359.5" x2="2828.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2868.25" y1="359.5" x2="2848.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2868.25" y1="359.5" x2="2878.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2878.25" y1="391.5" x2="2878.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2878.25" y1="423.5" x2="2878.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2868.25" y1="359.5" x2="2907.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2826.0" y1="295.5" x2="2897.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2881.375" y1="199.5" x2="2911.875" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2881.375" y1="199.5" x2="2991.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2991.25" y1="231.5" x2="2932.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2991.25" y1="231.5" x2="2953.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2953.5" y1="263.5" x2="2931.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2931.25" y1="295.5" x2="2931.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2931.25" y1="327.5" x2="2931.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2953.5" y1="263.5" x2="2960.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2953.5" y1="263.5" x2="2975.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2991.25" y1="231.5" x2="2991.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2991.25" y1="231.5" x2="3029.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3029.0" y1="263.5" x2="3006.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3006.25" y1="295.5" x2="3006.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3006.25" y1="327.5" x2="3006.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3029.0" y1="263.5" x2="3035.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3029.0" y1="263.5" x2="3051.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2991.25" y1="231.5" x2="3050.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2881.375" y1="199.5" x2="3022.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2881.375" y1="199.5" x2="3043.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2881.375" y1="199.5" x2="3088.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3088.75" y1="231.5" x2="3088.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3088.75" y1="263.5" x2="3088.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3088.75" y1="295.5" x2="3049.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3088.75" y1="295.5" x2="3069.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3088.75" y1="295.5" x2="3098.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3098.75" y1="327.5" x2="3098.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3098.75" y1="359.5" x2="3028.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3098.75" y1="359.5" x2="3051.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3098.75" y1="359.5" x2="3081.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3081.25" y1="391.5" x2="3081.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3081.25" y1="423.5" x2="3081.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3098.75" y1="359.5" x2="3110.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3098.75" y1="359.5" x2="3139.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3139.25" y1="391.5" x2="3139.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3139.25" y1="423.5" x2="3139.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3098.75" y1="359.5" x2="3168.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3088.75" y1="295.5" x2="3128.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3155.0" y1="167.5" x2="3274.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3274.25" y1="199.5" x2="3127.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3274.25" y1="199.5" x2="3154.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3154.75" y1="231.5" x2="3154.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3274.25" y1="199.5" x2="3181.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3274.25" y1="199.5" x2="3214.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3214.25" y1="231.5" x2="3214.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3274.25" y1="199.5" x2="3247.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3274.25" y1="199.5" x2="3279.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3279.75" y1="231.5" x2="3279.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3279.75" y1="263.5" x2="3279.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3279.75" y1="295.5" x2="3209.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3279.75" y1="295.5" x2="3232.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3279.75" y1="295.5" x2="3262.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3262.25" y1="327.5" x2="3262.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3262.25" y1="359.5" x2="3262.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3279.75" y1="295.5" x2="3291.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3279.75" y1="295.5" x2="3320.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3320.25" y1="327.5" x2="3320.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3320.25" y1="359.5" x2="3320.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3279.75" y1="295.5" x2="3349.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3274.25" y1="199.5" x2="3312.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3274.25" y1="199.5" x2="3338.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3338.25" y1="231.5" x2="3331.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3338.25" y1="231.5" x2="3345.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3274.25" y1="199.5" x2="3364.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3274.25" y1="199.5" x2="3380.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3274.25" y1="199.5" x2="3420.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3420.75" y1="231.5" x2="3420.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3420.75" y1="263.5" x2="3420.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3420.75" y1="295.5" x2="3381.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3420.75" y1="295.5" x2="3401.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3420.75" y1="295.5" x2="3430.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3430.75" y1="327.5" x2="3430.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3430.75" y1="359.5" x2="3360.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3430.75" y1="359.5" x2="3383.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3430.75" y1="359.5" x2="3413.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3413.25" y1="391.5" x2="3413.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3413.25" y1="423.5" x2="3413.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3430.75" y1="359.5" x2="3442.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3430.75" y1="359.5" x2="3471.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3471.25" y1="391.5" x2="3471.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3471.25" y1="423.5" x2="3471.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3430.75" y1="359.5" x2="3500.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3420.75" y1="295.5" x2="3460.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3155.0" y1="167.5" x2="3665.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3665.5" y1="199.5" x2="3459.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3665.5" y1="199.5" x2="3486.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3486.75" y1="231.5" x2="3486.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3665.5" y1="199.5" x2="3513.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3665.5" y1="199.5" x2="3546.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3546.25" y1="231.5" x2="3546.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3665.5" y1="199.5" x2="3579.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3665.5" y1="199.5" x2="3611.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3611.75" y1="231.5" x2="3611.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3611.75" y1="263.5" x2="3611.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3611.75" y1="295.5" x2="3572.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3611.75" y1="295.5" x2="3592.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3611.75" y1="295.5" x2="3621.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3621.75" y1="327.5" x2="3621.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3621.75" y1="359.5" x2="3551.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3621.75" y1="359.5" x2="3574.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3621.75" y1="359.5" x2="3604.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3604.25" y1="391.5" x2="3604.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3604.25" y1="423.5" x2="3604.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3621.75" y1="359.5" x2="3633.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3621.75" y1="359.5" x2="3662.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3662.25" y1="391.5" x2="3662.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3662.25" y1="423.5" x2="3662.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3621.75" y1="359.5" x2="3691.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3611.75" y1="295.5" x2="3651.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3665.5" y1="199.5" x2="3681.375" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3665.5" y1="199.5" x2="3744.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3744.5" y1="231.5" x2="3685.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3744.5" y1="231.5" x2="3707.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3707.0" y1="263.5" x2="3684.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3684.75" y1="295.5" x2="3684.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3684.75" y1="327.5" x2="3684.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3707.0" y1="263.5" x2="3713.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3707.0" y1="263.5" x2="3729.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3744.5" y1="231.5" x2="3744.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3744.5" y1="231.5" x2="3782.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3782.0" y1="263.5" x2="3759.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3759.75" y1="295.5" x2="3759.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3759.75" y1="327.5" x2="3759.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3782.0" y1="263.5" x2="3788.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3782.0" y1="263.5" x2="3804.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3744.5" y1="231.5" x2="3803.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3665.5" y1="199.5" x2="3785.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3665.5" y1="199.5" x2="3816.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3665.5" y1="199.5" x2="3871.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3871.25" y1="231.5" x2="3871.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3871.25" y1="263.5" x2="3871.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3871.25" y1="295.5" x2="3801.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3871.25" y1="295.5" x2="3824.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3871.25" y1="295.5" x2="3853.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3853.75" y1="327.5" x2="3853.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3853.75" y1="359.5" x2="3814.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3853.75" y1="359.5" x2="3834.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3853.75" y1="359.5" x2="3863.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3863.75" y1="391.5" x2="3863.75" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3863.75" y1="423.5" x2="3863.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3853.75" y1="359.5" x2="3893.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3871.25" y1="295.5" x2="3882.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3871.25" y1="295.5" x2="3911.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3911.75" y1="327.5" x2="3911.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3911.75" y1="359.5" x2="3911.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3871.25" y1="295.5" x2="3941.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10765.2109375" y1="7.5" x2="5179.49609375" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5179.49609375" y1="39.5" x2="4151.0625" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4151.0625" y1="71.5" x2="4109.5625" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4151.0625" y1="71.5" x2="4148.5625" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4151.0625" y1="71.5" x2="4174.0625" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4151.0625" y1="71.5" x2="4192.5625" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4192.5625" y1="103.5" x2="3988.375" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3988.375" y1="135.5" x2="3976.125" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3976.125" y1="167.5" x2="3899.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3976.125" y1="167.5" x2="3930.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3930.0" y1="199.5" x2="3911.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3930.0" y1="199.5" x2="3926.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3930.0" y1="199.5" x2="3948.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3948.75" y1="231.5" x2="3948.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3976.125" y1="167.5" x2="3961.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3976.125" y1="167.5" x2="3992.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3992.5" y1="199.5" x2="3973.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3992.5" y1="199.5" x2="3989.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3992.5" y1="199.5" x2="4011.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4011.75" y1="231.5" x2="4011.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3976.125" y1="167.5" x2="4022.875" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3976.125" y1="167.5" x2="4053.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4053.25" y1="199.5" x2="4034.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4053.25" y1="199.5" x2="4049.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4053.25" y1="199.5" x2="4071.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4071.75" y1="231.5" x2="4071.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="3988.375" y1="135.5" x2="4000.625" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4192.5625" y1="103.5" x2="4202.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4202.0" y1="135.5" x2="4202.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4202.0" y1="167.5" x2="4118.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4202.0" y1="167.5" x2="4141.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4202.0" y1="167.5" x2="4170.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4170.75" y1="199.5" x2="4170.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4170.75" y1="231.5" x2="4100.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4170.75" y1="231.5" x2="4123.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4170.75" y1="231.5" x2="4153.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4153.25" y1="263.5" x2="4153.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4153.25" y1="295.5" x2="4153.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4170.75" y1="231.5" x2="4182.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4170.75" y1="231.5" x2="4211.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4211.25" y1="263.5" x2="4211.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4211.25" y1="295.5" x2="4211.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4170.75" y1="231.5" x2="4240.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4202.0" y1="167.5" x2="4213.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4202.0" y1="167.5" x2="4256.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4256.25" y1="199.5" x2="4256.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4256.25" y1="231.5" x2="4256.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4202.0" y1="167.5" x2="4285.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4192.5625" y1="103.5" x2="4299.375" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4192.5625" y1="103.5" x2="4396.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4396.75" y1="135.5" x2="4396.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4396.75" y1="167.5" x2="4308.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4396.75" y1="167.5" x2="4331.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4396.75" y1="167.5" x2="4361.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4361.25" y1="199.5" x2="4361.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4361.25" y1="231.5" x2="4361.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4396.75" y1="167.5" x2="4408.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4396.75" y1="167.5" x2="4455.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4455.25" y1="199.5" x2="4455.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4455.25" y1="231.5" x2="4385.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4455.25" y1="231.5" x2="4408.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4455.25" y1="231.5" x2="4437.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4437.75" y1="263.5" x2="4437.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4437.75" y1="295.5" x2="4437.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4455.25" y1="231.5" x2="4466.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4455.25" y1="231.5" x2="4495.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4495.75" y1="263.5" x2="4495.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4495.75" y1="295.5" x2="4495.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4455.25" y1="231.5" x2="4525.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4396.75" y1="167.5" x2="4484.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5179.49609375" y1="39.5" x2="6207.9296875" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6207.9296875" y1="71.5" x2="6207.9296875" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6207.9296875" y1="103.5" x2="4681.125" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4681.125" y1="135.5" x2="4663.625" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4681.125" y1="135.5" x2="4698.625" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6207.9296875" y1="103.5" x2="5147.125" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5147.125" y1="135.5" x2="4717.125" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5147.125" y1="135.5" x2="4734.625" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5147.125" y1="135.5" x2="4769.125" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4769.125" y1="167.5" x2="4747.875" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4769.125" y1="167.5" x2="4790.375" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4790.375" y1="199.5" x2="4598.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4598.25" y1="231.5" x2="4586.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4586.0" y1="263.5" x2="4539.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4586.0" y1="263.5" x2="4570.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4570.25" y1="295.5" x2="4551.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4570.25" y1="295.5" x2="4567.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4570.25" y1="295.5" x2="4589.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4589.0" y1="327.5" x2="4589.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4586.0" y1="263.5" x2="4601.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4586.0" y1="263.5" x2="4632.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4632.75" y1="295.5" x2="4613.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4632.75" y1="295.5" x2="4630.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4632.75" y1="295.5" x2="4652.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4652.0" y1="327.5" x2="4652.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4598.25" y1="231.5" x2="4610.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4790.375" y1="199.5" x2="4785.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4785.0" y1="231.5" x2="4785.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4785.0" y1="263.5" x2="4698.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4785.0" y1="263.5" x2="4721.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4785.0" y1="263.5" x2="4751.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4751.0" y1="295.5" x2="4751.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4751.0" y1="327.5" x2="4681.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4751.0" y1="327.5" x2="4704.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4751.0" y1="327.5" x2="4733.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4733.5" y1="359.5" x2="4733.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4733.5" y1="391.5" x2="4733.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4751.0" y1="327.5" x2="4762.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4751.0" y1="327.5" x2="4791.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4791.5" y1="359.5" x2="4791.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4791.5" y1="391.5" x2="4791.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4751.0" y1="327.5" x2="4821.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4785.0" y1="263.5" x2="4796.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4785.0" y1="263.5" x2="4842.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4842.0" y1="295.5" x2="4842.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4842.0" y1="327.5" x2="4842.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4785.0" y1="263.5" x2="4871.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4790.375" y1="199.5" x2="4883.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4790.375" y1="199.5" x2="4982.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4982.5" y1="231.5" x2="4982.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4982.5" y1="263.5" x2="4894.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4982.5" y1="263.5" x2="4917.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4982.5" y1="263.5" x2="4947.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4947.0" y1="295.5" x2="4947.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4947.0" y1="327.5" x2="4947.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4982.5" y1="263.5" x2="4994.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4982.5" y1="263.5" x2="5041.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5041.0" y1="295.5" x2="5041.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5041.0" y1="327.5" x2="4971.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5041.0" y1="327.5" x2="4994.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5041.0" y1="327.5" x2="5023.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5023.5" y1="359.5" x2="5023.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5023.5" y1="391.5" x2="5023.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5041.0" y1="327.5" x2="5052.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5041.0" y1="327.5" x2="5081.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5081.5" y1="359.5" x2="5081.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5081.5" y1="391.5" x2="5081.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5041.0" y1="327.5" x2="5111.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="4982.5" y1="263.5" x2="5070.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5147.125" y1="135.5" x2="5577.125" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5577.125" y1="167.5" x2="5238.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5238.0" y1="199.5" x2="5238.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5238.0" y1="231.5" x2="5238.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5238.0" y1="263.5" x2="5151.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5238.0" y1="263.5" x2="5174.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5238.0" y1="263.5" x2="5204.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5204.0" y1="295.5" x2="5204.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5204.0" y1="327.5" x2="5134.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5204.0" y1="327.5" x2="5157.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5204.0" y1="327.5" x2="5186.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5186.5" y1="359.5" x2="5186.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5186.5" y1="391.5" x2="5186.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5204.0" y1="327.5" x2="5215.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5204.0" y1="327.5" x2="5244.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5244.5" y1="359.5" x2="5244.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5244.5" y1="391.5" x2="5244.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5204.0" y1="327.5" x2="5274.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5238.0" y1="263.5" x2="5249.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5238.0" y1="263.5" x2="5295.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5295.0" y1="295.5" x2="5295.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5295.0" y1="327.5" x2="5295.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5238.0" y1="263.5" x2="5324.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5577.125" y1="167.5" x2="5491.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5491.75" y1="199.5" x2="5271.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5491.75" y1="199.5" x2="5298.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5298.0" y1="231.5" x2="5298.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5491.75" y1="199.5" x2="5324.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5491.75" y1="199.5" x2="5357.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5357.5" y1="231.5" x2="5357.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5491.75" y1="199.5" x2="5390.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5491.75" y1="199.5" x2="5423.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5423.0" y1="231.5" x2="5423.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5423.0" y1="263.5" x2="5423.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5423.0" y1="295.5" x2="5336.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5423.0" y1="295.5" x2="5359.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5423.0" y1="295.5" x2="5389.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5389.0" y1="327.5" x2="5389.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5389.0" y1="359.5" x2="5319.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5389.0" y1="359.5" x2="5342.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5389.0" y1="359.5" x2="5371.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5371.5" y1="391.5" x2="5371.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5371.5" y1="423.5" x2="5371.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5389.0" y1="359.5" x2="5400.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5389.0" y1="359.5" x2="5429.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5429.5" y1="391.5" x2="5429.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5429.5" y1="423.5" x2="5429.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5389.0" y1="359.5" x2="5459.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5423.0" y1="295.5" x2="5434.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5423.0" y1="295.5" x2="5480.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5480.0" y1="327.5" x2="5480.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5480.0" y1="359.5" x2="5480.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5423.0" y1="295.5" x2="5509.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5491.75" y1="199.5" x2="5521.625" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5491.75" y1="199.5" x2="5613.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5613.75" y1="231.5" x2="5592.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5613.75" y1="231.5" x2="5613.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5613.75" y1="263.5" x2="5591.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5591.5" y1="295.5" x2="5591.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5591.5" y1="327.5" x2="5521.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5591.5" y1="327.5" x2="5544.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5591.5" y1="327.5" x2="5574.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5574.0" y1="359.5" x2="5574.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5574.0" y1="391.5" x2="5574.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5591.5" y1="327.5" x2="5603.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5591.5" y1="327.5" x2="5632.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5632.0" y1="359.5" x2="5632.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5632.0" y1="391.5" x2="5632.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5591.5" y1="327.5" x2="5661.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5613.75" y1="263.5" x2="5620.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5613.75" y1="263.5" x2="5636.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5613.75" y1="231.5" x2="5635.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5491.75" y1="199.5" x2="5645.666666666667" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5491.75" y1="199.5" x2="5667.083333333333" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5491.75" y1="199.5" x2="5712.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5712.5" y1="231.5" x2="5712.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5712.5" y1="263.5" x2="5712.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5712.5" y1="295.5" x2="5642.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5712.5" y1="295.5" x2="5665.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5712.5" y1="295.5" x2="5695.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5695.0" y1="327.5" x2="5695.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5695.0" y1="359.5" x2="5695.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5712.5" y1="295.5" x2="5724.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5712.5" y1="295.5" x2="5753.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5753.0" y1="327.5" x2="5753.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5753.0" y1="359.5" x2="5753.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5712.5" y1="295.5" x2="5782.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5577.125" y1="167.5" x2="5916.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5916.25" y1="199.5" x2="5751.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5916.25" y1="199.5" x2="5778.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5778.5" y1="231.5" x2="5778.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5916.25" y1="199.5" x2="5805.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5916.25" y1="199.5" x2="5838.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5838.0" y1="231.5" x2="5838.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5916.25" y1="199.5" x2="5871.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5916.25" y1="199.5" x2="5903.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5903.5" y1="231.5" x2="5903.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5903.5" y1="263.5" x2="5903.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5903.5" y1="295.5" x2="5903.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5916.25" y1="199.5" x2="5941.875" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5916.25" y1="199.5" x2="5973.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5973.75" y1="231.5" x2="5952.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5973.75" y1="231.5" x2="5973.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5973.75" y1="263.5" x2="5951.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5951.5" y1="295.5" x2="5951.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5951.5" y1="327.5" x2="5951.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5973.75" y1="263.5" x2="5980.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5973.75" y1="263.5" x2="5996.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5973.75" y1="231.5" x2="5995.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5916.25" y1="199.5" x2="6008.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5916.25" y1="199.5" x2="6032.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="5916.25" y1="199.5" x2="6081.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6081.0" y1="231.5" x2="6081.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6081.0" y1="263.5" x2="6081.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6081.0" y1="295.5" x2="5993.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6081.0" y1="295.5" x2="6016.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6081.0" y1="295.5" x2="6045.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6045.5" y1="327.5" x2="6045.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6045.5" y1="359.5" x2="6045.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6081.0" y1="295.5" x2="6092.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6081.0" y1="295.5" x2="6139.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6139.5" y1="327.5" x2="6139.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6139.5" y1="359.5" x2="6069.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6139.5" y1="359.5" x2="6092.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6139.5" y1="359.5" x2="6122.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6122.0" y1="391.5" x2="6122.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6122.0" y1="423.5" x2="6122.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6139.5" y1="359.5" x2="6151.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6139.5" y1="359.5" x2="6180.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6180.0" y1="391.5" x2="6180.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6180.0" y1="423.5" x2="6180.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6139.5" y1="359.5" x2="6209.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6081.0" y1="295.5" x2="6169.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6207.9296875" y1="103.5" x2="6424.8125" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6424.8125" y1="135.5" x2="6407.0625" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6424.8125" y1="135.5" x2="6424.0625" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6424.8125" y1="135.5" x2="6442.5625" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6442.5625" y1="167.5" x2="6245.875" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6245.875" y1="199.5" x2="6187.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6187.0" y1="231.5" x2="6140.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6187.0" y1="231.5" x2="6171.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6171.25" y1="263.5" x2="6152.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6171.25" y1="263.5" x2="6168.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6171.25" y1="263.5" x2="6190.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6190.0" y1="295.5" x2="6190.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6187.0" y1="231.5" x2="6202.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6187.0" y1="231.5" x2="6233.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6233.75" y1="263.5" x2="6214.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6233.75" y1="263.5" x2="6231.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6233.75" y1="263.5" x2="6253.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6253.0" y1="295.5" x2="6253.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6245.875" y1="199.5" x2="6233.625" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6245.875" y1="199.5" x2="6280.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6280.25" y1="231.5" x2="6264.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6280.25" y1="231.5" x2="6295.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6295.75" y1="263.5" x2="6277.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6295.75" y1="263.5" x2="6292.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6295.75" y1="263.5" x2="6314.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6314.25" y1="295.5" x2="6314.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6245.875" y1="199.5" x2="6304.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6442.5625" y1="167.5" x2="6444.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6444.5" y1="199.5" x2="6444.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6444.5" y1="231.5" x2="6360.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6444.5" y1="231.5" x2="6383.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6444.5" y1="231.5" x2="6413.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6413.25" y1="263.5" x2="6413.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6413.25" y1="295.5" x2="6343.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6413.25" y1="295.5" x2="6366.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6413.25" y1="295.5" x2="6395.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6395.75" y1="327.5" x2="6395.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6395.75" y1="359.5" x2="6395.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6413.25" y1="295.5" x2="6424.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6413.25" y1="295.5" x2="6453.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6453.75" y1="327.5" x2="6453.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6453.75" y1="359.5" x2="6453.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6413.25" y1="295.5" x2="6483.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6444.5" y1="231.5" x2="6456.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6444.5" y1="231.5" x2="6498.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6498.75" y1="263.5" x2="6498.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6498.75" y1="295.5" x2="6498.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6444.5" y1="231.5" x2="6528.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6442.5625" y1="167.5" x2="6541.875" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6442.5625" y1="167.5" x2="6639.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6639.25" y1="199.5" x2="6639.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6639.25" y1="231.5" x2="6551.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6639.25" y1="231.5" x2="6574.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6639.25" y1="231.5" x2="6603.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6603.75" y1="263.5" x2="6603.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6603.75" y1="295.5" x2="6603.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6639.25" y1="231.5" x2="6650.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6639.25" y1="231.5" x2="6697.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6697.75" y1="263.5" x2="6697.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6697.75" y1="295.5" x2="6627.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6697.75" y1="295.5" x2="6650.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6697.75" y1="295.5" x2="6680.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6680.25" y1="327.5" x2="6680.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6680.25" y1="359.5" x2="6680.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6697.75" y1="295.5" x2="6709.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6697.75" y1="295.5" x2="6738.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6738.25" y1="327.5" x2="6738.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6738.25" y1="359.5" x2="6738.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6697.75" y1="295.5" x2="6767.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6639.25" y1="231.5" x2="6727.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6207.9296875" y1="103.5" x2="7734.734375" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7734.734375" y1="135.5" x2="7023.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7734.734375" y1="135.5" x2="7040.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7734.734375" y1="135.5" x2="7075.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7075.0" y1="167.5" x2="7053.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7075.0" y1="167.5" x2="7096.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7096.25" y1="199.5" x2="6877.125" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6877.125" y1="231.5" x2="6818.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6818.25" y1="263.5" x2="6771.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6818.25" y1="263.5" x2="6802.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6802.5" y1="295.5" x2="6783.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6802.5" y1="295.5" x2="6799.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6802.5" y1="295.5" x2="6821.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6821.25" y1="327.5" x2="6821.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6818.25" y1="263.5" x2="6833.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6818.25" y1="263.5" x2="6865.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6865.0" y1="295.5" x2="6845.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6865.0" y1="295.5" x2="6862.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6865.0" y1="295.5" x2="6884.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6884.25" y1="327.5" x2="6884.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6877.125" y1="231.5" x2="6864.875" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6877.125" y1="231.5" x2="6911.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6911.5" y1="263.5" x2="6896.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6911.5" y1="263.5" x2="6927.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6927.0" y1="295.5" x2="6908.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6927.0" y1="295.5" x2="6923.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6927.0" y1="295.5" x2="6945.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6945.5" y1="327.5" x2="6945.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="6877.125" y1="231.5" x2="6936.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7096.25" y1="199.5" x2="7097.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7097.75" y1="231.5" x2="7097.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7097.75" y1="263.5" x2="6992.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7097.75" y1="263.5" x2="7015.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7097.75" y1="263.5" x2="7044.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7044.5" y1="295.5" x2="7044.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7044.5" y1="327.5" x2="6974.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7044.5" y1="327.5" x2="6997.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7044.5" y1="327.5" x2="7027.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7027.0" y1="359.5" x2="7027.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7027.0" y1="391.5" x2="7027.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7044.5" y1="327.5" x2="7056.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7044.5" y1="327.5" x2="7085.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7085.0" y1="359.5" x2="7085.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7085.0" y1="391.5" x2="7085.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7044.5" y1="327.5" x2="7114.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7097.75" y1="263.5" x2="7109.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7097.75" y1="263.5" x2="7174.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7174.0" y1="295.5" x2="7174.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7174.0" y1="327.5" x2="7134.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7174.0" y1="327.5" x2="7154.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7174.0" y1="327.5" x2="7184.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7184.0" y1="359.5" x2="7184.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7184.0" y1="391.5" x2="7184.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7174.0" y1="327.5" x2="7213.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7097.75" y1="263.5" x2="7203.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7096.25" y1="199.5" x2="7206.5625" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7096.25" y1="199.5" x2="7315.375" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7315.375" y1="231.5" x2="7315.375" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7315.375" y1="263.5" x2="7226.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7315.375" y1="263.5" x2="7249.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7315.375" y1="263.5" x2="7279.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7279.0" y1="295.5" x2="7279.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7279.0" y1="327.5" x2="7279.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7315.375" y1="263.5" x2="7326.875" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7315.375" y1="263.5" x2="7374.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7374.75" y1="295.5" x2="7374.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7374.75" y1="327.5" x2="7303.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7374.75" y1="327.5" x2="7326.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7374.75" y1="327.5" x2="7355.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7355.5" y1="359.5" x2="7355.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7355.5" y1="391.5" x2="7355.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7374.75" y1="327.5" x2="7386.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7374.75" y1="327.5" x2="7417.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7417.0" y1="359.5" x2="7417.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7417.0" y1="391.5" x2="7377.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7417.0" y1="391.5" x2="7397.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7417.0" y1="391.5" x2="7427.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7427.0" y1="423.5" x2="7427.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7427.0" y1="455.5" x2="7427.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7417.0" y1="391.5" x2="7456.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7374.75" y1="327.5" x2="7446.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7315.375" y1="263.5" x2="7404.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7734.734375" y1="135.5" x2="8445.96875" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8445.96875" y1="167.5" x2="7592.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7592.75" y1="199.5" x2="7592.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7592.75" y1="231.5" x2="7592.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7592.75" y1="263.5" x2="7487.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7592.75" y1="263.5" x2="7510.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7592.75" y1="263.5" x2="7539.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7539.5" y1="295.5" x2="7539.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7539.5" y1="327.5" x2="7469.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7539.5" y1="327.5" x2="7492.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7539.5" y1="327.5" x2="7522.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7522.0" y1="359.5" x2="7522.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7522.0" y1="391.5" x2="7522.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7539.5" y1="327.5" x2="7551.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7539.5" y1="327.5" x2="7580.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7580.0" y1="359.5" x2="7580.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7580.0" y1="391.5" x2="7580.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7539.5" y1="327.5" x2="7609.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7592.75" y1="263.5" x2="7604.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7592.75" y1="263.5" x2="7669.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7669.0" y1="295.5" x2="7669.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7669.0" y1="327.5" x2="7629.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7669.0" y1="327.5" x2="7649.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7669.0" y1="327.5" x2="7679.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7679.0" y1="359.5" x2="7679.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7679.0" y1="391.5" x2="7679.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7669.0" y1="327.5" x2="7708.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7592.75" y1="263.5" x2="7698.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8445.96875" y1="167.5" x2="7946.375" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7946.375" y1="199.5" x2="7691.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7946.375" y1="199.5" x2="7718.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7718.75" y1="231.5" x2="7718.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7946.375" y1="199.5" x2="7745.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7946.375" y1="199.5" x2="7778.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7778.25" y1="231.5" x2="7778.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7946.375" y1="199.5" x2="7811.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7946.375" y1="199.5" x2="7843.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7843.75" y1="231.5" x2="7843.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7843.75" y1="263.5" x2="7843.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7843.75" y1="295.5" x2="7738.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7843.75" y1="295.5" x2="7761.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7843.75" y1="295.5" x2="7790.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7790.5" y1="327.5" x2="7790.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7790.5" y1="359.5" x2="7720.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7790.5" y1="359.5" x2="7743.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7790.5" y1="359.5" x2="7773.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7773.0" y1="391.5" x2="7773.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7773.0" y1="423.5" x2="7773.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7790.5" y1="359.5" x2="7802.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7790.5" y1="359.5" x2="7831.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7831.0" y1="391.5" x2="7831.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7831.0" y1="423.5" x2="7831.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7790.5" y1="359.5" x2="7860.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7843.75" y1="295.5" x2="7855.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7843.75" y1="295.5" x2="7920.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7920.0" y1="327.5" x2="7920.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7920.0" y1="359.5" x2="7880.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7920.0" y1="359.5" x2="7900.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7920.0" y1="359.5" x2="7930.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7930.0" y1="391.5" x2="7930.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7930.0" y1="423.5" x2="7930.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7920.0" y1="359.5" x2="7959.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7843.75" y1="295.5" x2="7949.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7946.375" y1="199.5" x2="7974.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7946.375" y1="199.5" x2="8098.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8098.25" y1="231.5" x2="8033.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8098.25" y1="231.5" x2="8055.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8055.25" y1="263.5" x2="8033.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8033.0" y1="295.5" x2="8033.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8033.0" y1="327.5" x2="7963.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8033.0" y1="327.5" x2="7986.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8033.0" y1="327.5" x2="8015.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8015.5" y1="359.5" x2="8015.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8015.5" y1="391.5" x2="8015.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8033.0" y1="327.5" x2="8044.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8033.0" y1="327.5" x2="8073.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8073.5" y1="359.5" x2="8073.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8073.5" y1="391.5" x2="8073.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8033.0" y1="327.5" x2="8103.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8055.25" y1="263.5" x2="8062.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8055.25" y1="263.5" x2="8077.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8098.25" y1="231.5" x2="8098.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8098.25" y1="231.5" x2="8141.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8141.25" y1="263.5" x2="8118.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8118.5" y1="295.5" x2="8118.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8118.5" y1="327.5" x2="8118.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8141.25" y1="263.5" x2="8147.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8141.25" y1="263.5" x2="8164.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8098.25" y1="231.5" x2="8162.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7946.375" y1="199.5" x2="8131.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7946.375" y1="199.5" x2="8154.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="7946.375" y1="199.5" x2="8201.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8201.0" y1="231.5" x2="8201.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8201.0" y1="263.5" x2="8201.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8201.0" y1="295.5" x2="8161.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8201.0" y1="295.5" x2="8181.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8201.0" y1="295.5" x2="8211.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8211.0" y1="327.5" x2="8211.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8211.0" y1="359.5" x2="8127.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8211.0" y1="359.5" x2="8150.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8211.0" y1="359.5" x2="8179.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8179.75" y1="391.5" x2="8179.75" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8179.75" y1="423.5" x2="8109.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8179.75" y1="423.5" x2="8132.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8179.75" y1="423.5" x2="8162.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8162.25" y1="455.5" x2="8162.25" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8162.25" y1="487.5" x2="8162.25" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8179.75" y1="423.5" x2="8191.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8179.75" y1="423.5" x2="8220.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8220.25" y1="455.5" x2="8220.25" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8220.25" y1="487.5" x2="8220.25" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8179.75" y1="423.5" x2="8249.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8211.0" y1="359.5" x2="8222.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8211.0" y1="359.5" x2="8265.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8265.25" y1="391.5" x2="8265.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8265.25" y1="423.5" x2="8265.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8211.0" y1="359.5" x2="8294.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8201.0" y1="295.5" x2="8240.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8445.96875" y1="167.5" x2="8420.875" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8420.875" y1="199.5" x2="8267.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8420.875" y1="199.5" x2="8294.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8294.0" y1="231.5" x2="8294.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8420.875" y1="199.5" x2="8320.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8420.875" y1="199.5" x2="8353.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8353.5" y1="231.5" x2="8353.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8420.875" y1="199.5" x2="8386.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8420.875" y1="199.5" x2="8419.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8419.0" y1="231.5" x2="8419.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8419.0" y1="263.5" x2="8419.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8419.0" y1="295.5" x2="8335.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8419.0" y1="295.5" x2="8358.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8419.0" y1="295.5" x2="8387.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8387.75" y1="327.5" x2="8387.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8387.75" y1="359.5" x2="8317.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8387.75" y1="359.5" x2="8340.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8387.75" y1="359.5" x2="8370.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8370.25" y1="391.5" x2="8370.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8370.25" y1="423.5" x2="8370.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8387.75" y1="359.5" x2="8399.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8387.75" y1="359.5" x2="8428.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8428.25" y1="391.5" x2="8428.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8428.25" y1="423.5" x2="8428.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8387.75" y1="359.5" x2="8457.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8419.0" y1="295.5" x2="8430.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8419.0" y1="295.5" x2="8473.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8473.25" y1="327.5" x2="8473.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8473.25" y1="359.5" x2="8473.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8419.0" y1="295.5" x2="8502.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8420.875" y1="199.5" x2="8454.45" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8420.875" y1="199.5" x2="8483.4" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8483.4" y1="231.5" x2="8476.4" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8483.4" y1="231.5" x2="8490.4" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8420.875" y1="199.5" x2="8512.85" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8420.875" y1="199.5" x2="8531.8" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8420.875" y1="199.5" x2="8574.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8574.75" y1="231.5" x2="8574.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8574.75" y1="263.5" x2="8574.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8574.75" y1="295.5" x2="8535.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8574.75" y1="295.5" x2="8555.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8574.75" y1="295.5" x2="8584.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8584.75" y1="327.5" x2="8584.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8584.75" y1="359.5" x2="8496.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8584.75" y1="359.5" x2="8519.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8584.75" y1="359.5" x2="8549.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8549.25" y1="391.5" x2="8549.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8549.25" y1="423.5" x2="8549.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8584.75" y1="359.5" x2="8596.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8584.75" y1="359.5" x2="8643.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8643.25" y1="391.5" x2="8643.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8643.25" y1="423.5" x2="8573.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8643.25" y1="423.5" x2="8596.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8643.25" y1="423.5" x2="8625.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8625.75" y1="455.5" x2="8625.75" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8625.75" y1="487.5" x2="8625.75" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8643.25" y1="423.5" x2="8654.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8643.25" y1="423.5" x2="8683.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8683.75" y1="455.5" x2="8683.75" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8683.75" y1="487.5" x2="8683.75" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8643.25" y1="423.5" x2="8713.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8584.75" y1="359.5" x2="8672.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8574.75" y1="295.5" x2="8614.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8445.96875" y1="167.5" x2="8833.375" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8833.375" y1="199.5" x2="8621.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8833.375" y1="199.5" x2="8648.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8648.75" y1="231.5" x2="8648.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8833.375" y1="199.5" x2="8675.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8833.375" y1="199.5" x2="8708.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8708.25" y1="231.5" x2="8708.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8833.375" y1="199.5" x2="8741.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8833.375" y1="199.5" x2="8773.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8773.75" y1="231.5" x2="8773.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8773.75" y1="263.5" x2="8773.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8773.75" y1="295.5" x2="8734.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8773.75" y1="295.5" x2="8754.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8773.75" y1="295.5" x2="8783.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8783.75" y1="327.5" x2="8783.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8783.75" y1="359.5" x2="8695.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8783.75" y1="359.5" x2="8718.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8783.75" y1="359.5" x2="8748.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8748.25" y1="391.5" x2="8748.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8748.25" y1="423.5" x2="8748.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8783.75" y1="359.5" x2="8795.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8783.75" y1="359.5" x2="8842.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8842.25" y1="391.5" x2="8842.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8842.25" y1="423.5" x2="8772.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8842.25" y1="423.5" x2="8795.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8842.25" y1="423.5" x2="8824.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8824.75" y1="455.5" x2="8824.75" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8824.75" y1="487.5" x2="8824.75" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8842.25" y1="423.5" x2="8853.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8842.25" y1="423.5" x2="8882.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8882.75" y1="455.5" x2="8882.75" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8882.75" y1="487.5" x2="8882.75" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8842.25" y1="423.5" x2="8912.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8783.75" y1="359.5" x2="8871.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8773.75" y1="295.5" x2="8813.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8833.375" y1="199.5" x2="8862.875" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8833.375" y1="199.5" x2="8945.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8945.5" y1="231.5" x2="8924.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8945.5" y1="231.5" x2="8945.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8945.5" y1="263.5" x2="8922.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8922.75" y1="295.5" x2="8922.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8922.75" y1="327.5" x2="8852.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8922.75" y1="327.5" x2="8875.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8922.75" y1="327.5" x2="8905.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8905.25" y1="359.5" x2="8905.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8905.25" y1="391.5" x2="8905.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8922.75" y1="327.5" x2="8934.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8922.75" y1="327.5" x2="8963.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8963.25" y1="359.5" x2="8963.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8963.25" y1="391.5" x2="8963.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8922.75" y1="327.5" x2="8992.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8945.5" y1="263.5" x2="8951.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8945.5" y1="263.5" x2="8968.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8945.5" y1="231.5" x2="8967.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8833.375" y1="199.5" x2="8977.666666666666" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8833.375" y1="199.5" x2="8999.333333333334" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8833.375" y1="199.5" x2="9045.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9045.0" y1="231.5" x2="9045.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9045.0" y1="263.5" x2="9045.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9045.0" y1="295.5" x2="8973.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9045.0" y1="295.5" x2="8996.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9045.0" y1="295.5" x2="9026.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9026.25" y1="327.5" x2="9026.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9026.25" y1="359.5" x2="9026.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9045.0" y1="295.5" x2="9056.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9045.0" y1="295.5" x2="9086.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9086.75" y1="327.5" x2="9086.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9086.75" y1="359.5" x2="9047.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9086.75" y1="359.5" x2="9067.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9086.75" y1="359.5" x2="9096.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9096.75" y1="391.5" x2="9096.75" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9096.75" y1="423.5" x2="9026.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9096.75" y1="423.5" x2="9049.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9096.75" y1="423.5" x2="9079.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9079.25" y1="455.5" x2="9079.25" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9079.25" y1="487.5" x2="9079.25" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9096.75" y1="423.5" x2="9108.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9096.75" y1="423.5" x2="9137.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9137.25" y1="455.5" x2="9137.25" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9137.25" y1="487.5" x2="9137.25" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9096.75" y1="423.5" x2="9166.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9086.75" y1="359.5" x2="9126.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9045.0" y1="295.5" x2="9116.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="8445.96875" y1="167.5" x2="9299.1875" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9299.1875" y1="199.5" x2="9084.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9299.1875" y1="199.5" x2="9111.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9111.0" y1="231.5" x2="9111.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9299.1875" y1="199.5" x2="9137.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9299.1875" y1="199.5" x2="9170.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9170.5" y1="231.5" x2="9170.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9299.1875" y1="199.5" x2="9203.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9299.1875" y1="199.5" x2="9236.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9236.0" y1="231.5" x2="9236.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9236.0" y1="263.5" x2="9236.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9236.0" y1="295.5" x2="9196.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9236.0" y1="295.5" x2="9216.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9236.0" y1="295.5" x2="9246.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9246.0" y1="327.5" x2="9246.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9246.0" y1="359.5" x2="9176.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9246.0" y1="359.5" x2="9199.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9246.0" y1="359.5" x2="9228.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9228.5" y1="391.5" x2="9228.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9228.5" y1="423.5" x2="9228.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9246.0" y1="359.5" x2="9257.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9246.0" y1="359.5" x2="9286.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9286.5" y1="391.5" x2="9286.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9286.5" y1="423.5" x2="9286.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9246.0" y1="359.5" x2="9316.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9236.0" y1="295.5" x2="9275.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9299.1875" y1="199.5" x2="9305.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9299.1875" y1="199.5" x2="9369.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9369.0" y1="231.5" x2="9309.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9369.0" y1="231.5" x2="9331.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9331.25" y1="263.5" x2="9309.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9309.0" y1="295.5" x2="9309.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9309.0" y1="327.5" x2="9309.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9331.25" y1="263.5" x2="9338.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9331.25" y1="263.5" x2="9353.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9369.0" y1="231.5" x2="9369.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9369.0" y1="231.5" x2="9406.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9406.75" y1="263.5" x2="9384.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9384.0" y1="295.5" x2="9384.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9384.0" y1="327.5" x2="9384.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9406.75" y1="263.5" x2="9413.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9406.75" y1="263.5" x2="9429.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9369.0" y1="231.5" x2="9428.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9299.1875" y1="199.5" x2="9416.458333333334" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9299.1875" y1="199.5" x2="9453.416666666666" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9299.1875" y1="199.5" x2="9514.375" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9514.375" y1="231.5" x2="9514.375" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9514.375" y1="263.5" x2="9514.375" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9514.375" y1="295.5" x2="9425.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9514.375" y1="295.5" x2="9448.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9514.375" y1="295.5" x2="9478.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9478.0" y1="327.5" x2="9478.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9478.0" y1="359.5" x2="9478.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9514.375" y1="295.5" x2="9525.875" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9514.375" y1="295.5" x2="9573.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9573.75" y1="327.5" x2="9573.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9573.75" y1="359.5" x2="9502.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9573.75" y1="359.5" x2="9525.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9573.75" y1="359.5" x2="9554.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9554.5" y1="391.5" x2="9554.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9554.5" y1="423.5" x2="9554.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9573.75" y1="359.5" x2="9585.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9573.75" y1="359.5" x2="9616.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9616.0" y1="391.5" x2="9616.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9616.0" y1="423.5" x2="9576.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9616.0" y1="423.5" x2="9596.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9616.0" y1="423.5" x2="9626.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9626.0" y1="455.5" x2="9626.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9626.0" y1="487.5" x2="9626.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9616.0" y1="423.5" x2="9655.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9573.75" y1="359.5" x2="9645.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9514.375" y1="295.5" x2="9603.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10765.2109375" y1="7.5" x2="13515.53125" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13515.53125" y1="39.5" x2="13490.03125" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13515.53125" y1="39.5" x2="13541.03125" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13541.03125" y1="71.5" x2="13541.03125" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13541.03125" y1="103.5" x2="10152.125" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10152.125" y1="135.5" x2="9682.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10152.125" y1="135.5" x2="9699.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10152.125" y1="135.5" x2="9734.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9734.0" y1="167.5" x2="9712.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9734.0" y1="167.5" x2="9755.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9755.25" y1="199.5" x2="9634.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9634.75" y1="231.5" x2="9622.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9622.5" y1="263.5" x2="9607.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9622.5" y1="263.5" x2="9638.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9638.0" y1="295.5" x2="9619.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9638.0" y1="295.5" x2="9634.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9638.0" y1="295.5" x2="9656.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9656.75" y1="327.5" x2="9656.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9634.75" y1="231.5" x2="9647.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9755.25" y1="199.5" x2="9738.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9738.25" y1="231.5" x2="9738.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9738.25" y1="263.5" x2="9697.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9738.25" y1="263.5" x2="9720.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9738.25" y1="263.5" x2="9749.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9749.75" y1="295.5" x2="9749.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9749.75" y1="327.5" x2="9681.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9749.75" y1="327.5" x2="9700.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9749.75" y1="327.5" x2="9730.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9730.25" y1="359.5" x2="9730.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9730.25" y1="391.5" x2="9730.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9749.75" y1="327.5" x2="9759.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9749.75" y1="327.5" x2="9788.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9788.25" y1="359.5" x2="9788.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9788.25" y1="391.5" x2="9788.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9749.75" y1="327.5" x2="9817.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9738.25" y1="263.5" x2="9779.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9755.25" y1="199.5" x2="9807.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9755.25" y1="199.5" x2="9875.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9875.75" y1="231.5" x2="9875.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9875.75" y1="263.5" x2="9802.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9875.75" y1="263.5" x2="9825.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9875.75" y1="263.5" x2="9854.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9854.75" y1="295.5" x2="9854.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9854.75" y1="327.5" x2="9854.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9875.75" y1="263.5" x2="9887.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9875.75" y1="263.5" x2="9919.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9919.75" y1="295.5" x2="9919.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9919.75" y1="327.5" x2="9878.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9919.75" y1="327.5" x2="9901.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9919.75" y1="327.5" x2="9931.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9931.25" y1="359.5" x2="9931.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9931.25" y1="391.5" x2="9931.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9919.75" y1="327.5" x2="9960.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="9875.75" y1="263.5" x2="9949.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10152.125" y1="135.5" x2="10622.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10622.25" y1="167.5" x2="10036.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10036.25" y1="199.5" x2="10036.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10036.25" y1="231.5" x2="10036.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10036.25" y1="263.5" x2="9995.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10036.25" y1="263.5" x2="10018.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10036.25" y1="263.5" x2="10047.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10047.75" y1="295.5" x2="10047.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10047.75" y1="327.5" x2="9979.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10047.75" y1="327.5" x2="9998.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10047.75" y1="327.5" x2="10028.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10028.25" y1="359.5" x2="10028.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10028.25" y1="391.5" x2="10028.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10047.75" y1="327.5" x2="10057.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10047.75" y1="327.5" x2="10086.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10086.25" y1="359.5" x2="10086.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10086.25" y1="391.5" x2="10086.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10047.75" y1="327.5" x2="10115.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10036.25" y1="263.5" x2="10077.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10622.25" y1="167.5" x2="10212.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10212.25" y1="199.5" x2="10065.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10212.25" y1="199.5" x2="10092.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10092.75" y1="231.5" x2="10092.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10212.25" y1="199.5" x2="10119.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10212.25" y1="199.5" x2="10152.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10152.25" y1="231.5" x2="10152.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10212.25" y1="199.5" x2="10185.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10212.25" y1="199.5" x2="10217.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10217.75" y1="231.5" x2="10217.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10217.75" y1="263.5" x2="10217.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10217.75" y1="295.5" x2="10149.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10217.75" y1="295.5" x2="10168.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10217.75" y1="295.5" x2="10198.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10198.25" y1="327.5" x2="10198.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10198.25" y1="359.5" x2="10198.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10217.75" y1="295.5" x2="10227.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10217.75" y1="295.5" x2="10256.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10256.25" y1="327.5" x2="10256.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10256.25" y1="359.5" x2="10256.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10217.75" y1="295.5" x2="10285.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10212.25" y1="199.5" x2="10250.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10212.25" y1="199.5" x2="10276.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10276.25" y1="231.5" x2="10269.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10276.25" y1="231.5" x2="10283.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10212.25" y1="199.5" x2="10302.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10212.25" y1="199.5" x2="10318.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10212.25" y1="199.5" x2="10358.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10358.75" y1="231.5" x2="10358.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10358.75" y1="263.5" x2="10358.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10358.75" y1="295.5" x2="10317.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10358.75" y1="295.5" x2="10340.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10358.75" y1="295.5" x2="10370.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10370.25" y1="327.5" x2="10370.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10370.25" y1="359.5" x2="10332.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10370.25" y1="359.5" x2="10349.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10370.25" y1="359.5" x2="10378.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10378.5" y1="391.5" x2="10378.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10378.5" y1="423.5" x2="10378.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10370.25" y1="359.5" x2="10408.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10358.75" y1="295.5" x2="10399.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10622.25" y1="167.5" x2="10544.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10544.25" y1="199.5" x2="10397.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10544.25" y1="199.5" x2="10424.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10424.75" y1="231.5" x2="10424.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10544.25" y1="199.5" x2="10451.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10544.25" y1="199.5" x2="10484.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10484.25" y1="231.5" x2="10484.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10544.25" y1="199.5" x2="10517.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10544.25" y1="199.5" x2="10549.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10549.75" y1="231.5" x2="10549.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10549.75" y1="263.5" x2="10549.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10549.75" y1="295.5" x2="10508.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10549.75" y1="295.5" x2="10531.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10549.75" y1="295.5" x2="10561.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10561.25" y1="327.5" x2="10561.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10561.25" y1="359.5" x2="10523.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10561.25" y1="359.5" x2="10540.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10561.25" y1="359.5" x2="10569.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10569.5" y1="391.5" x2="10569.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10569.5" y1="423.5" x2="10569.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10561.25" y1="359.5" x2="10599.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10549.75" y1="295.5" x2="10590.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10544.25" y1="199.5" x2="10582.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10544.25" y1="199.5" x2="10608.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10608.25" y1="231.5" x2="10601.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10608.25" y1="231.5" x2="10615.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10544.25" y1="199.5" x2="10634.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10544.25" y1="199.5" x2="10650.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10544.25" y1="199.5" x2="10690.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10690.75" y1="231.5" x2="10690.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10690.75" y1="263.5" x2="10690.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10690.75" y1="295.5" x2="10690.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10622.25" y1="167.5" x2="10876.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10876.25" y1="199.5" x2="10729.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10876.25" y1="199.5" x2="10756.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10756.75" y1="231.5" x2="10756.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10876.25" y1="199.5" x2="10783.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10876.25" y1="199.5" x2="10816.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10816.25" y1="231.5" x2="10816.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10876.25" y1="199.5" x2="10849.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10876.25" y1="199.5" x2="10881.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10881.75" y1="231.5" x2="10881.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10881.75" y1="263.5" x2="10881.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10881.75" y1="295.5" x2="10881.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10876.25" y1="199.5" x2="10914.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10876.25" y1="199.5" x2="10940.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10940.25" y1="231.5" x2="10933.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10940.25" y1="231.5" x2="10947.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10876.25" y1="199.5" x2="10966.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10876.25" y1="199.5" x2="10982.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10876.25" y1="199.5" x2="11022.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11022.75" y1="231.5" x2="11022.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11022.75" y1="263.5" x2="11022.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11022.75" y1="295.5" x2="10952.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11022.75" y1="295.5" x2="10975.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11022.75" y1="295.5" x2="11005.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11005.25" y1="327.5" x2="11005.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11005.25" y1="359.5" x2="11005.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11022.75" y1="295.5" x2="11034.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11022.75" y1="295.5" x2="11063.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11063.25" y1="327.5" x2="11063.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11063.25" y1="359.5" x2="11063.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11022.75" y1="295.5" x2="11092.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10622.25" y1="167.5" x2="11208.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11208.25" y1="199.5" x2="11061.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11208.25" y1="199.5" x2="11088.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11088.75" y1="231.5" x2="11088.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11208.25" y1="199.5" x2="11115.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11208.25" y1="199.5" x2="11148.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11148.25" y1="231.5" x2="11148.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11208.25" y1="199.5" x2="11181.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11208.25" y1="199.5" x2="11213.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11213.75" y1="231.5" x2="11213.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11213.75" y1="263.5" x2="11213.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11213.75" y1="295.5" x2="11213.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11208.25" y1="199.5" x2="11246.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11208.25" y1="199.5" x2="11272.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11272.25" y1="231.5" x2="11265.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11272.25" y1="231.5" x2="11279.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11208.25" y1="199.5" x2="11298.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11208.25" y1="199.5" x2="11314.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11208.25" y1="199.5" x2="11354.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11354.75" y1="231.5" x2="11354.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11354.75" y1="263.5" x2="11354.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11354.75" y1="295.5" x2="11281.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11354.75" y1="295.5" x2="11304.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11354.75" y1="295.5" x2="11333.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11333.75" y1="327.5" x2="11333.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11333.75" y1="359.5" x2="11333.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11354.75" y1="295.5" x2="11366.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11354.75" y1="295.5" x2="11398.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11398.75" y1="327.5" x2="11398.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11398.75" y1="359.5" x2="11357.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11398.75" y1="359.5" x2="11380.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11398.75" y1="359.5" x2="11410.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11410.25" y1="391.5" x2="11410.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11410.25" y1="423.5" x2="11410.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11398.75" y1="359.5" x2="11439.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11354.75" y1="295.5" x2="11428.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13541.03125" y1="103.5" x2="12385.125" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12385.125" y1="135.5" x2="11554.125" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12385.125" y1="135.5" x2="11571.625" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12385.125" y1="135.5" x2="11606.125" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11606.125" y1="167.5" x2="11584.875" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11606.125" y1="167.5" x2="11627.375" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11627.375" y1="199.5" x2="11491.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11491.0" y1="231.5" x2="11478.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11478.75" y1="263.5" x2="11432.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11478.75" y1="263.5" x2="11463.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11463.0" y1="295.5" x2="11444.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11463.0" y1="295.5" x2="11459.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11463.0" y1="295.5" x2="11481.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11481.75" y1="327.5" x2="11481.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11478.75" y1="263.5" x2="11494.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11478.75" y1="263.5" x2="11525.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11525.5" y1="295.5" x2="11506.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11525.5" y1="295.5" x2="11522.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11525.5" y1="295.5" x2="11544.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11544.75" y1="327.5" x2="11544.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11491.0" y1="231.5" x2="11503.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11627.375" y1="199.5" x2="11626.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11626.25" y1="231.5" x2="11626.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11626.25" y1="263.5" x2="11585.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11626.25" y1="263.5" x2="11608.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11626.25" y1="263.5" x2="11637.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11637.75" y1="295.5" x2="11637.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11637.75" y1="327.5" x2="11569.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11637.75" y1="327.5" x2="11588.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11637.75" y1="327.5" x2="11618.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11618.25" y1="359.5" x2="11618.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11618.25" y1="391.5" x2="11618.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11637.75" y1="327.5" x2="11647.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11637.75" y1="327.5" x2="11676.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11676.25" y1="359.5" x2="11676.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11676.25" y1="391.5" x2="11638.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11676.25" y1="391.5" x2="11655.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11676.25" y1="391.5" x2="11684.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11684.5" y1="423.5" x2="11684.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11684.5" y1="455.5" x2="11684.5" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11676.25" y1="391.5" x2="11714.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11637.75" y1="327.5" x2="11705.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11626.25" y1="263.5" x2="11667.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11627.375" y1="199.5" x2="11695.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11627.375" y1="199.5" x2="11763.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11763.75" y1="231.5" x2="11763.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11763.75" y1="263.5" x2="11690.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11763.75" y1="263.5" x2="11713.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11763.75" y1="263.5" x2="11742.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11742.75" y1="295.5" x2="11742.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11742.75" y1="327.5" x2="11742.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11763.75" y1="263.5" x2="11775.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11763.75" y1="263.5" x2="11807.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11807.75" y1="295.5" x2="11807.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11807.75" y1="327.5" x2="11766.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11807.75" y1="327.5" x2="11789.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11807.75" y1="327.5" x2="11819.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11819.25" y1="359.5" x2="11819.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11819.25" y1="391.5" x2="11781.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11819.25" y1="391.5" x2="11798.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11819.25" y1="391.5" x2="11827.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11827.5" y1="423.5" x2="11827.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11827.5" y1="455.5" x2="11827.5" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11819.25" y1="391.5" x2="11857.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11807.75" y1="327.5" x2="11848.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11763.75" y1="263.5" x2="11837.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12385.125" y1="135.5" x2="13216.125" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13216.125" y1="167.5" x2="11924.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11924.25" y1="199.5" x2="11924.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11924.25" y1="231.5" x2="11924.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11924.25" y1="263.5" x2="11883.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11924.25" y1="263.5" x2="11906.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11924.25" y1="263.5" x2="11935.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11935.75" y1="295.5" x2="11935.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11935.75" y1="327.5" x2="11867.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11935.75" y1="327.5" x2="11886.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11935.75" y1="327.5" x2="11916.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11916.25" y1="359.5" x2="11916.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11916.25" y1="391.5" x2="11916.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11935.75" y1="327.5" x2="11945.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11935.75" y1="327.5" x2="11974.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11974.25" y1="359.5" x2="11974.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11974.25" y1="391.5" x2="11936.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11974.25" y1="391.5" x2="11953.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11974.25" y1="391.5" x2="11982.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11982.5" y1="423.5" x2="11982.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11982.5" y1="455.5" x2="11982.5" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11974.25" y1="391.5" x2="12012.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11935.75" y1="327.5" x2="12003.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11924.25" y1="263.5" x2="11965.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13216.125" y1="167.5" x2="12118.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12118.25" y1="199.5" x2="11953.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12118.25" y1="199.5" x2="11980.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="11980.75" y1="231.5" x2="11980.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12118.25" y1="199.5" x2="12007.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12118.25" y1="199.5" x2="12040.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12040.25" y1="231.5" x2="12040.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12118.25" y1="199.5" x2="12073.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12118.25" y1="199.5" x2="12105.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12105.75" y1="231.5" x2="12105.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12105.75" y1="263.5" x2="12105.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12105.75" y1="295.5" x2="12037.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12105.75" y1="295.5" x2="12056.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12105.75" y1="295.5" x2="12086.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12086.25" y1="327.5" x2="12086.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12086.25" y1="359.5" x2="12086.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12105.75" y1="295.5" x2="12115.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12105.75" y1="295.5" x2="12144.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12144.25" y1="327.5" x2="12144.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12144.25" y1="359.5" x2="12106.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12144.25" y1="359.5" x2="12123.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12144.25" y1="359.5" x2="12152.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12152.5" y1="391.5" x2="12152.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12152.5" y1="423.5" x2="12152.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12144.25" y1="359.5" x2="12182.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12105.75" y1="295.5" x2="12173.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12118.25" y1="199.5" x2="12145.45" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12118.25" y1="199.5" x2="12178.65" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12178.65" y1="231.5" x2="12171.65" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12178.65" y1="231.5" x2="12185.65" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12118.25" y1="199.5" x2="12212.35" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12118.25" y1="199.5" x2="12235.55" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12118.25" y1="199.5" x2="12282.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12282.75" y1="231.5" x2="12282.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12282.75" y1="263.5" x2="12282.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12282.75" y1="295.5" x2="12241.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12282.75" y1="295.5" x2="12264.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12282.75" y1="295.5" x2="12294.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12294.25" y1="327.5" x2="12294.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12294.25" y1="359.5" x2="12198.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12294.25" y1="359.5" x2="12215.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12294.25" y1="359.5" x2="12244.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12244.5" y1="391.5" x2="12244.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12244.5" y1="423.5" x2="12244.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12294.25" y1="359.5" x2="12273.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12294.25" y1="359.5" x2="12302.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12302.5" y1="391.5" x2="12302.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12302.5" y1="423.5" x2="12302.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12294.25" y1="359.5" x2="12331.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12294.25" y1="359.5" x2="12360.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12360.5" y1="391.5" x2="12360.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12360.5" y1="423.5" x2="12322.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12360.5" y1="423.5" x2="12339.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12360.5" y1="423.5" x2="12368.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12368.75" y1="455.5" x2="12368.75" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12368.75" y1="487.5" x2="12368.75" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12360.5" y1="423.5" x2="12398.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12294.25" y1="359.5" x2="12390.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12282.75" y1="295.5" x2="12323.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13216.125" y1="167.5" x2="12600.125" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12600.125" y1="199.5" x2="12338.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12600.125" y1="199.5" x2="12365.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12365.75" y1="231.5" x2="12365.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12600.125" y1="199.5" x2="12392.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12600.125" y1="199.5" x2="12425.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12425.25" y1="231.5" x2="12425.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12600.125" y1="199.5" x2="12458.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12600.125" y1="199.5" x2="12490.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12490.75" y1="231.5" x2="12490.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12490.75" y1="263.5" x2="12490.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12490.75" y1="295.5" x2="12449.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12490.75" y1="295.5" x2="12472.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12490.75" y1="295.5" x2="12502.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12502.25" y1="327.5" x2="12502.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12502.25" y1="359.5" x2="12406.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12502.25" y1="359.5" x2="12423.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12502.25" y1="359.5" x2="12452.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12452.5" y1="391.5" x2="12452.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12452.5" y1="423.5" x2="12452.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12502.25" y1="359.5" x2="12481.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12502.25" y1="359.5" x2="12510.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12510.5" y1="391.5" x2="12510.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12510.5" y1="423.5" x2="12510.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12502.25" y1="359.5" x2="12539.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12502.25" y1="359.5" x2="12568.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12568.5" y1="391.5" x2="12568.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12568.5" y1="423.5" x2="12530.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12568.5" y1="423.5" x2="12547.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12568.5" y1="423.5" x2="12576.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12576.75" y1="455.5" x2="12576.75" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12576.75" y1="487.5" x2="12576.75" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12568.5" y1="423.5" x2="12606.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12502.25" y1="359.5" x2="12598.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12490.75" y1="295.5" x2="12531.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12600.125" y1="199.5" x2="12580.8125" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12600.125" y1="199.5" x2="12664.375" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12664.375" y1="231.5" x2="12566.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12664.375" y1="231.5" x2="12587.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12587.5" y1="263.5" x2="12565.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12565.25" y1="295.5" x2="12565.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12565.25" y1="327.5" x2="12565.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12587.5" y1="263.5" x2="12594.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12587.5" y1="263.5" x2="12609.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12664.375" y1="231.5" x2="12625.375" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12664.375" y1="231.5" x2="12663.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12663.25" y1="263.5" x2="12640.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12640.25" y1="295.5" x2="12640.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12640.25" y1="327.5" x2="12640.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12663.25" y1="263.5" x2="12669.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12663.25" y1="263.5" x2="12686.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12664.375" y1="231.5" x2="12702.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12664.375" y1="231.5" x2="12741.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12741.25" y1="263.5" x2="12718.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12718.25" y1="295.5" x2="12718.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12718.25" y1="327.5" x2="12680.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12718.25" y1="327.5" x2="12697.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12718.25" y1="327.5" x2="12726.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12726.5" y1="359.5" x2="12726.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12726.5" y1="391.5" x2="12726.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12718.25" y1="327.5" x2="12756.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12741.25" y1="263.5" x2="12747.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12741.25" y1="263.5" x2="12764.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12664.375" y1="231.5" x2="12762.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12600.125" y1="199.5" x2="12729.083333333334" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12600.125" y1="199.5" x2="12783.291666666666" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12600.125" y1="199.5" x2="12861.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12861.5" y1="231.5" x2="12861.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12861.5" y1="263.5" x2="12861.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12861.5" y1="295.5" x2="12761.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12861.5" y1="295.5" x2="12784.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12861.5" y1="295.5" x2="12813.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12813.75" y1="327.5" x2="12813.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12813.75" y1="359.5" x2="12813.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12861.5" y1="295.5" x2="12873.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12861.5" y1="295.5" x2="12932.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12932.25" y1="327.5" x2="12932.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12932.25" y1="359.5" x2="12838.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12932.25" y1="359.5" x2="12861.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12932.25" y1="359.5" x2="12891.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12891.25" y1="391.5" x2="12891.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12891.25" y1="423.5" x2="12850.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12891.25" y1="423.5" x2="12873.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12891.25" y1="423.5" x2="12902.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12902.75" y1="455.5" x2="12902.75" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12902.75" y1="487.5" x2="12902.75" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12891.25" y1="423.5" x2="12932.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12932.25" y1="359.5" x2="12943.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12932.25" y1="359.5" x2="12996.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12996.25" y1="391.5" x2="12996.25" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12996.25" y1="423.5" x2="12955.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12996.25" y1="423.5" x2="12978.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12996.25" y1="423.5" x2="13007.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13007.75" y1="455.5" x2="13007.75" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13007.75" y1="487.5" x2="12970.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13007.75" y1="487.5" x2="12986.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13007.75" y1="487.5" x2="13016.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13016.0" y1="519.5" x2="13016.0" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13016.0" y1="551.5" x2="13016.0" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13007.75" y1="487.5" x2="13045.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12996.25" y1="423.5" x2="13037.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12932.25" y1="359.5" x2="13025.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12861.5" y1="295.5" x2="12961.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13216.125" y1="167.5" x2="13054.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13054.25" y1="199.5" x2="12900.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13054.25" y1="199.5" x2="12927.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12927.5" y1="231.5" x2="12927.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13054.25" y1="199.5" x2="12954.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13054.25" y1="199.5" x2="12987.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="12987.0" y1="231.5" x2="12987.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13054.25" y1="199.5" x2="13020.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13054.25" y1="199.5" x2="13052.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13052.5" y1="231.5" x2="13052.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13052.5" y1="263.5" x2="13052.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13052.5" y1="295.5" x2="13011.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13052.5" y1="295.5" x2="13034.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13052.5" y1="295.5" x2="13064.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13064.0" y1="327.5" x2="13064.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13064.0" y1="359.5" x2="13064.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13052.5" y1="295.5" x2="13093.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13054.25" y1="199.5" x2="13087.9" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13054.25" y1="199.5" x2="13116.8" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13116.8" y1="231.5" x2="13109.8" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13116.8" y1="231.5" x2="13123.8" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13054.25" y1="199.5" x2="13146.2" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13054.25" y1="199.5" x2="13165.1" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13054.25" y1="199.5" x2="13208.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13208.0" y1="231.5" x2="13208.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13208.0" y1="263.5" x2="13208.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13208.0" y1="295.5" x2="13116.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13208.0" y1="295.5" x2="13139.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13208.0" y1="295.5" x2="13169.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13169.0" y1="327.5" x2="13169.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13169.0" y1="359.5" x2="13169.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13208.0" y1="295.5" x2="13219.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13208.0" y1="295.5" x2="13270.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13270.0" y1="327.5" x2="13270.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13270.0" y1="359.5" x2="13194.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13270.0" y1="359.5" x2="13217.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13270.0" y1="359.5" x2="13246.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13246.5" y1="391.5" x2="13246.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13246.5" y1="423.5" x2="13246.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13270.0" y1="359.5" x2="13281.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13270.0" y1="359.5" x2="13316.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13316.5" y1="391.5" x2="13316.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13316.5" y1="423.5" x2="13275.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13316.5" y1="423.5" x2="13298.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13316.5" y1="423.5" x2="13328.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13328.0" y1="455.5" x2="13328.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13328.0" y1="487.5" x2="13290.25" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13328.0" y1="487.5" x2="13306.75" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13328.0" y1="487.5" x2="13336.25" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13336.25" y1="519.5" x2="13336.25" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13336.25" y1="551.5" x2="13336.25" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13328.0" y1="487.5" x2="13365.75" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13316.5" y1="423.5" x2="13357.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13270.0" y1="359.5" x2="13346.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13208.0" y1="295.5" x2="13299.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13216.125" y1="167.5" x2="13399.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13399.25" y1="199.5" x2="13247.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13399.25" y1="199.5" x2="13274.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13274.0" y1="231.5" x2="13274.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13399.25" y1="199.5" x2="13300.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13399.25" y1="199.5" x2="13333.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13333.5" y1="231.5" x2="13333.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13399.25" y1="199.5" x2="13366.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13399.25" y1="199.5" x2="13399.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13399.0" y1="231.5" x2="13399.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13399.0" y1="263.5" x2="13399.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13399.0" y1="295.5" x2="13358.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13399.0" y1="295.5" x2="13381.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13399.0" y1="295.5" x2="13410.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13410.5" y1="327.5" x2="13410.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13410.5" y1="359.5" x2="13372.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13410.5" y1="359.5" x2="13389.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13410.5" y1="359.5" x2="13418.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13418.75" y1="391.5" x2="13418.75" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13418.75" y1="423.5" x2="13418.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13410.5" y1="359.5" x2="13448.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13399.0" y1="295.5" x2="13440.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13399.25" y1="199.5" x2="13433.8" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13399.25" y1="199.5" x2="13462.1" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13462.1" y1="231.5" x2="13455.1" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13462.1" y1="231.5" x2="13469.1" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13399.25" y1="199.5" x2="13490.9" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13399.25" y1="199.5" x2="13509.2" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13399.25" y1="199.5" x2="13551.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13551.5" y1="231.5" x2="13551.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13551.5" y1="263.5" x2="13551.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13551.5" y1="295.5" x2="13463.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13551.5" y1="295.5" x2="13486.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13551.5" y1="295.5" x2="13515.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13515.5" y1="327.5" x2="13515.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13515.5" y1="359.5" x2="13515.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13551.5" y1="295.5" x2="13563.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13551.5" y1="295.5" x2="13610.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13610.5" y1="327.5" x2="13610.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13610.5" y1="359.5" x2="13540.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13610.5" y1="359.5" x2="13563.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13610.5" y1="359.5" x2="13593.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13593.0" y1="391.5" x2="13593.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13593.0" y1="423.5" x2="13593.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13610.5" y1="359.5" x2="13622.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13610.5" y1="359.5" x2="13651.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13651.0" y1="391.5" x2="13651.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13651.0" y1="423.5" x2="13651.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13610.5" y1="359.5" x2="13680.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13551.5" y1="295.5" x2="13640.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13216.125" y1="167.5" x2="13774.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13774.0" y1="199.5" x2="13590.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13774.0" y1="199.5" x2="13617.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13617.5" y1="231.5" x2="13617.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13774.0" y1="199.5" x2="13644.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13774.0" y1="199.5" x2="13677.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13677.0" y1="231.5" x2="13677.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13774.0" y1="199.5" x2="13710.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13774.0" y1="199.5" x2="13742.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13742.5" y1="231.5" x2="13742.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13742.5" y1="263.5" x2="13742.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13742.5" y1="295.5" x2="13672.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13742.5" y1="295.5" x2="13695.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13742.5" y1="295.5" x2="13725.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13725.0" y1="327.5" x2="13725.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13725.0" y1="359.5" x2="13725.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13742.5" y1="295.5" x2="13754.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13742.5" y1="295.5" x2="13783.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13783.0" y1="327.5" x2="13783.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13783.0" y1="359.5" x2="13783.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13742.5" y1="295.5" x2="13812.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13774.0" y1="199.5" x2="13808.875" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13774.0" y1="199.5" x2="13868.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13868.75" y1="231.5" x2="13847.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13868.75" y1="231.5" x2="13868.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13868.75" y1="263.5" x2="13846.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13846.0" y1="295.5" x2="13846.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13846.0" y1="327.5" x2="13846.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13868.75" y1="263.5" x2="13875.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13868.75" y1="263.5" x2="13891.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13868.75" y1="231.5" x2="13890.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13774.0" y1="199.5" x2="13897.333333333334" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13774.0" y1="199.5" x2="13915.416666666666" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13774.0" y1="199.5" x2="13957.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13957.5" y1="231.5" x2="13957.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13957.5" y1="263.5" x2="13957.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13957.5" y1="295.5" x2="13887.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13957.5" y1="295.5" x2="13910.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13957.5" y1="295.5" x2="13940.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13940.0" y1="327.5" x2="13940.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13940.0" y1="359.5" x2="13940.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13957.5" y1="295.5" x2="13969.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13957.5" y1="295.5" x2="13998.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13998.0" y1="327.5" x2="13998.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13998.0" y1="359.5" x2="13998.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13957.5" y1="295.5" x2="14027.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13216.125" y1="167.5" x2="14154.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14154.0" y1="199.5" x2="13996.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14154.0" y1="199.5" x2="14023.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14023.5" y1="231.5" x2="14023.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14154.0" y1="199.5" x2="14050.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14154.0" y1="199.5" x2="14083.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14083.0" y1="231.5" x2="14083.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14154.0" y1="199.5" x2="14116.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14154.0" y1="199.5" x2="14148.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14148.5" y1="231.5" x2="14148.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14148.5" y1="263.5" x2="14148.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14148.5" y1="295.5" x2="14078.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14148.5" y1="295.5" x2="14101.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14148.5" y1="295.5" x2="14131.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14131.0" y1="327.5" x2="14131.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14131.0" y1="359.5" x2="14131.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14148.5" y1="295.5" x2="14160.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14148.5" y1="295.5" x2="14189.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14189.0" y1="327.5" x2="14189.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14189.0" y1="359.5" x2="14189.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14148.5" y1="295.5" x2="14218.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14154.0" y1="199.5" x2="14185.4" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14154.0" y1="199.5" x2="14215.8" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14215.8" y1="231.5" x2="14208.8" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14215.8" y1="231.5" x2="14222.8" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14154.0" y1="199.5" x2="14246.7" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14154.0" y1="199.5" x2="14267.1" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14154.0" y1="199.5" x2="14311.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14311.5" y1="231.5" x2="14311.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14311.5" y1="263.5" x2="14311.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14311.5" y1="295.5" x2="14241.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14311.5" y1="295.5" x2="14264.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14311.5" y1="295.5" x2="14294.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14294.0" y1="327.5" x2="14294.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14294.0" y1="359.5" x2="14294.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14311.5" y1="295.5" x2="14323.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14311.5" y1="295.5" x2="14352.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14352.0" y1="327.5" x2="14352.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14352.0" y1="359.5" x2="14352.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14311.5" y1="295.5" x2="14381.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13216.125" y1="167.5" x2="14508.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14508.0" y1="199.5" x2="14350.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14508.0" y1="199.5" x2="14377.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14377.5" y1="231.5" x2="14377.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14508.0" y1="199.5" x2="14404.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14508.0" y1="199.5" x2="14437.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14437.0" y1="231.5" x2="14437.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14508.0" y1="199.5" x2="14470.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14508.0" y1="199.5" x2="14502.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14502.5" y1="231.5" x2="14502.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14502.5" y1="263.5" x2="14502.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14502.5" y1="295.5" x2="14502.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14508.0" y1="199.5" x2="14540.875" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14508.0" y1="199.5" x2="14572.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14572.75" y1="231.5" x2="14551.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14572.75" y1="231.5" x2="14572.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14572.75" y1="263.5" x2="14550.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14550.5" y1="295.5" x2="14550.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14550.5" y1="327.5" x2="14550.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14572.75" y1="263.5" x2="14579.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14572.75" y1="263.5" x2="14595.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14572.75" y1="231.5" x2="14594.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14508.0" y1="199.5" x2="14602.666666666666" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14508.0" y1="199.5" x2="14622.083333333334" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14508.0" y1="199.5" x2="14665.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14665.5" y1="231.5" x2="14665.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14665.5" y1="263.5" x2="14665.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14665.5" y1="295.5" x2="14592.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14665.5" y1="295.5" x2="14615.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14665.5" y1="295.5" x2="14644.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14644.5" y1="327.5" x2="14644.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14644.5" y1="359.5" x2="14644.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14665.5" y1="295.5" x2="14677.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14665.5" y1="295.5" x2="14709.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14709.5" y1="327.5" x2="14709.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14709.5" y1="359.5" x2="14668.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14709.5" y1="359.5" x2="14691.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14709.5" y1="359.5" x2="14721.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14721.0" y1="391.5" x2="14721.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14721.0" y1="423.5" x2="14683.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14721.0" y1="423.5" x2="14699.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14721.0" y1="423.5" x2="14729.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14729.25" y1="455.5" x2="14729.25" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14729.25" y1="487.5" x2="14729.25" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14721.0" y1="423.5" x2="14758.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14709.5" y1="359.5" x2="14750.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14665.5" y1="295.5" x2="14739.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13541.03125" y1="103.5" x2="14881.0625" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14881.0625" y1="135.5" x2="14850.3125" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14881.0625" y1="135.5" x2="14867.3125" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14881.0625" y1="135.5" x2="14887.3125" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14881.0625" y1="135.5" x2="14911.8125" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14911.8125" y1="167.5" x2="14769.625" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14769.625" y1="199.5" x2="14725.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14725.75" y1="231.5" x2="14710.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14725.75" y1="231.5" x2="14741.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14741.25" y1="263.5" x2="14722.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14741.25" y1="263.5" x2="14738.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14741.25" y1="263.5" x2="14760.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14760.0" y1="295.5" x2="14760.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14769.625" y1="199.5" x2="14757.375" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14769.625" y1="199.5" x2="14789.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14789.0" y1="231.5" x2="14773.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14789.0" y1="231.5" x2="14804.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14804.5" y1="263.5" x2="14785.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14804.5" y1="263.5" x2="14802.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14804.5" y1="263.5" x2="14824.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14824.0" y1="295.5" x2="14824.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14769.625" y1="199.5" x2="14813.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14911.8125" y1="167.5" x2="14916.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14916.5" y1="199.5" x2="14916.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14916.5" y1="231.5" x2="14875.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14916.5" y1="231.5" x2="14898.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14916.5" y1="231.5" x2="14928.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14928.0" y1="263.5" x2="14928.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14928.0" y1="295.5" x2="14860.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14928.0" y1="295.5" x2="14879.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14928.0" y1="295.5" x2="14908.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14908.5" y1="327.5" x2="14908.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14908.5" y1="359.5" x2="14908.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14928.0" y1="295.5" x2="14937.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14928.0" y1="295.5" x2="14966.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14966.5" y1="327.5" x2="14966.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14966.5" y1="359.5" x2="14966.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14928.0" y1="295.5" x2="14996.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14916.5" y1="231.5" x2="14957.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14911.8125" y1="167.5" x2="14985.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="14911.8125" y1="167.5" x2="15054.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15054.0" y1="199.5" x2="15054.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15054.0" y1="231.5" x2="14980.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15054.0" y1="231.5" x2="15003.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15054.0" y1="231.5" x2="15033.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15033.0" y1="263.5" x2="15033.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15033.0" y1="295.5" x2="15033.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15054.0" y1="231.5" x2="15065.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15054.0" y1="231.5" x2="15098.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15098.0" y1="263.5" x2="15098.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15098.0" y1="295.5" x2="15057.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15098.0" y1="295.5" x2="15080.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15098.0" y1="295.5" x2="15109.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15109.5" y1="327.5" x2="15109.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15109.5" y1="359.5" x2="15109.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15098.0" y1="295.5" x2="15139.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15054.0" y1="231.5" x2="15127.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13541.03125" y1="103.5" x2="15323.3125" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15323.3125" y1="135.5" x2="15292.5625" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15323.3125" y1="135.5" x2="15309.5625" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15323.3125" y1="135.5" x2="15329.5625" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15323.3125" y1="135.5" x2="15354.0625" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15354.0625" y1="167.5" x2="15211.875" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15211.875" y1="199.5" x2="15168.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15168.0" y1="231.5" x2="15152.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15168.0" y1="231.5" x2="15183.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15183.5" y1="263.5" x2="15164.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15183.5" y1="263.5" x2="15180.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15183.5" y1="263.5" x2="15202.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15202.25" y1="295.5" x2="15202.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15211.875" y1="199.5" x2="15199.625" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15211.875" y1="199.5" x2="15231.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15231.25" y1="231.5" x2="15215.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15231.25" y1="231.5" x2="15246.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15246.75" y1="263.5" x2="15227.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15246.75" y1="263.5" x2="15244.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15246.75" y1="263.5" x2="15266.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15266.25" y1="295.5" x2="15266.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15211.875" y1="199.5" x2="15255.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15354.0625" y1="167.5" x2="15358.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15358.75" y1="199.5" x2="15358.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15358.75" y1="231.5" x2="15317.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15358.75" y1="231.5" x2="15340.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15358.75" y1="231.5" x2="15370.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15370.25" y1="263.5" x2="15370.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15370.25" y1="295.5" x2="15302.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15370.25" y1="295.5" x2="15321.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15370.25" y1="295.5" x2="15350.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15350.75" y1="327.5" x2="15350.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15350.75" y1="359.5" x2="15350.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15370.25" y1="295.5" x2="15379.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15370.25" y1="295.5" x2="15408.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15408.75" y1="327.5" x2="15408.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15408.75" y1="359.5" x2="15408.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15370.25" y1="295.5" x2="15438.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15358.75" y1="231.5" x2="15399.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15354.0625" y1="167.5" x2="15427.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15354.0625" y1="167.5" x2="15496.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15496.25" y1="199.5" x2="15496.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15496.25" y1="231.5" x2="15422.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15496.25" y1="231.5" x2="15445.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15496.25" y1="231.5" x2="15475.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15475.25" y1="263.5" x2="15475.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15475.25" y1="295.5" x2="15475.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15496.25" y1="231.5" x2="15507.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15496.25" y1="231.5" x2="15540.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15540.25" y1="263.5" x2="15540.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15540.25" y1="295.5" x2="15499.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15540.25" y1="295.5" x2="15522.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15540.25" y1="295.5" x2="15551.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15551.75" y1="327.5" x2="15551.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15551.75" y1="359.5" x2="15551.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15540.25" y1="295.5" x2="15581.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15496.25" y1="231.5" x2="15569.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="13541.03125" y1="103.5" x2="16929.9375" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16929.9375" y1="135.5" x2="15869.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16929.9375" y1="135.5" x2="15886.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16929.9375" y1="135.5" x2="15920.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15920.75" y1="167.5" x2="15899.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15920.75" y1="167.5" x2="15942.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15942.0" y1="199.5" x2="15707.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15707.75" y1="231.5" x2="15632.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15632.0" y1="263.5" x2="15585.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15632.0" y1="263.5" x2="15616.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15616.25" y1="295.5" x2="15597.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15616.25" y1="295.5" x2="15613.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15616.25" y1="295.5" x2="15635.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15635.0" y1="327.5" x2="15635.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15632.0" y1="263.5" x2="15647.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15632.0" y1="263.5" x2="15678.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15678.75" y1="295.5" x2="15659.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15678.75" y1="295.5" x2="15676.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15678.75" y1="295.5" x2="15698.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15698.0" y1="327.5" x2="15698.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15707.75" y1="231.5" x2="15695.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15707.75" y1="231.5" x2="15759.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15759.0" y1="263.5" x2="15711.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15759.0" y1="263.5" x2="15742.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15742.5" y1="295.5" x2="15723.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15742.5" y1="295.5" x2="15740.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15742.5" y1="295.5" x2="15762.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15762.0" y1="327.5" x2="15762.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15759.0" y1="263.5" x2="15774.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15759.0" y1="263.5" x2="15806.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15806.5" y1="295.5" x2="15787.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15806.5" y1="295.5" x2="15804.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15806.5" y1="295.5" x2="15826.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15826.0" y1="327.5" x2="15826.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15707.75" y1="231.5" x2="15783.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15942.0" y1="199.5" x2="15946.125" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15946.125" y1="231.5" x2="15946.125" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15946.125" y1="263.5" x2="15905.125" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15946.125" y1="263.5" x2="15928.125" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15946.125" y1="263.5" x2="15957.625" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15957.625" y1="295.5" x2="15957.625" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15957.625" y1="327.5" x2="15862.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15957.625" y1="327.5" x2="15881.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15957.625" y1="327.5" x2="15910.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15910.5" y1="359.5" x2="15910.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15910.5" y1="391.5" x2="15910.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15957.625" y1="327.5" x2="15967.125" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15957.625" y1="327.5" x2="16023.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16023.75" y1="359.5" x2="16023.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16023.75" y1="391.5" x2="15928.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16023.75" y1="391.5" x2="15944.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16023.75" y1="391.5" x2="15974.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15974.0" y1="423.5" x2="15974.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15974.0" y1="455.5" x2="15974.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16023.75" y1="391.5" x2="16003.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16023.75" y1="391.5" x2="16032.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16032.0" y1="423.5" x2="16032.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16032.0" y1="455.5" x2="16032.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16023.75" y1="391.5" x2="16061.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16023.75" y1="391.5" x2="16090.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16090.0" y1="423.5" x2="16090.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16090.0" y1="455.5" x2="16090.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16023.75" y1="391.5" x2="16119.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15957.625" y1="327.5" x2="16053.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15946.125" y1="263.5" x2="15987.125" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15942.0" y1="199.5" x2="16061.1875" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="15942.0" y1="199.5" x2="16176.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16176.25" y1="231.5" x2="16176.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16176.25" y1="263.5" x2="16102.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16176.25" y1="263.5" x2="16125.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16176.25" y1="263.5" x2="16155.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16155.25" y1="295.5" x2="16155.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16155.25" y1="327.5" x2="16155.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16176.25" y1="263.5" x2="16187.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16176.25" y1="263.5" x2="16220.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16220.25" y1="295.5" x2="16220.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16220.25" y1="327.5" x2="16179.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16220.25" y1="327.5" x2="16202.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16220.25" y1="327.5" x2="16231.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16231.75" y1="359.5" x2="16231.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16231.75" y1="391.5" x2="16136.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16231.75" y1="391.5" x2="16152.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16231.75" y1="391.5" x2="16182.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16182.0" y1="423.5" x2="16182.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16182.0" y1="455.5" x2="16182.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16231.75" y1="391.5" x2="16211.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16231.75" y1="391.5" x2="16240.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16240.0" y1="423.5" x2="16240.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16240.0" y1="455.5" x2="16240.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16231.75" y1="391.5" x2="16269.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16231.75" y1="391.5" x2="16298.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16298.0" y1="423.5" x2="16298.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16298.0" y1="455.5" x2="16298.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16231.75" y1="391.5" x2="16327.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16220.25" y1="327.5" x2="16261.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16176.25" y1="263.5" x2="16249.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16929.9375" y1="135.5" x2="17990.625" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17990.625" y1="167.5" x2="16379.125" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16379.125" y1="199.5" x2="16379.125" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16379.125" y1="231.5" x2="16379.125" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16379.125" y1="263.5" x2="16338.125" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16379.125" y1="263.5" x2="16361.125" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16379.125" y1="263.5" x2="16390.625" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16390.625" y1="295.5" x2="16390.625" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16390.625" y1="327.5" x2="16295.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16390.625" y1="327.5" x2="16314.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16390.625" y1="327.5" x2="16343.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16343.5" y1="359.5" x2="16343.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16343.5" y1="391.5" x2="16343.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16390.625" y1="327.5" x2="16400.125" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16390.625" y1="327.5" x2="16456.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16456.75" y1="359.5" x2="16456.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16456.75" y1="391.5" x2="16361.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16456.75" y1="391.5" x2="16377.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16456.75" y1="391.5" x2="16407.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16407.0" y1="423.5" x2="16407.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16407.0" y1="455.5" x2="16407.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16456.75" y1="391.5" x2="16436.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16456.75" y1="391.5" x2="16465.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16465.0" y1="423.5" x2="16465.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16465.0" y1="455.5" x2="16465.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16456.75" y1="391.5" x2="16494.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16456.75" y1="391.5" x2="16523.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16523.0" y1="423.5" x2="16523.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16523.0" y1="455.5" x2="16523.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16456.75" y1="391.5" x2="16552.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16390.625" y1="327.5" x2="16486.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16379.125" y1="263.5" x2="16420.125" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17990.625" y1="167.5" x2="16632.8125" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16632.8125" y1="199.5" x2="16417.625" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16632.8125" y1="199.5" x2="16444.625" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16444.625" y1="231.5" x2="16444.625" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16632.8125" y1="199.5" x2="16471.125" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16632.8125" y1="199.5" x2="16504.125" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16504.125" y1="231.5" x2="16504.125" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16632.8125" y1="199.5" x2="16537.125" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16632.8125" y1="199.5" x2="16569.625" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16569.625" y1="231.5" x2="16569.625" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16569.625" y1="263.5" x2="16569.625" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16569.625" y1="295.5" x2="16474.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16569.625" y1="295.5" x2="16493.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16569.625" y1="295.5" x2="16522.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16522.5" y1="327.5" x2="16522.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16522.5" y1="359.5" x2="16522.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16569.625" y1="295.5" x2="16579.125" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16569.625" y1="295.5" x2="16635.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16635.75" y1="327.5" x2="16635.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16635.75" y1="359.5" x2="16540.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16635.75" y1="359.5" x2="16556.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16635.75" y1="359.5" x2="16586.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16586.0" y1="391.5" x2="16586.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16586.0" y1="423.5" x2="16586.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16635.75" y1="359.5" x2="16615.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16635.75" y1="359.5" x2="16644.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16644.0" y1="391.5" x2="16644.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16644.0" y1="423.5" x2="16644.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16635.75" y1="359.5" x2="16673.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16635.75" y1="359.5" x2="16702.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16702.0" y1="391.5" x2="16702.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16702.0" y1="423.5" x2="16702.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16635.75" y1="359.5" x2="16731.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16569.625" y1="295.5" x2="16665.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16632.8125" y1="199.5" x2="16629.6" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16632.8125" y1="199.5" x2="16683.075" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16683.075" y1="231.5" x2="16676.075" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16683.075" y1="231.5" x2="16690.075" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16632.8125" y1="199.5" x2="16737.05" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16632.8125" y1="199.5" x2="16780.525" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16632.8125" y1="199.5" x2="16848.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16848.0" y1="231.5" x2="16848.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16848.0" y1="263.5" x2="16848.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16848.0" y1="295.5" x2="16807.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16848.0" y1="295.5" x2="16830.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16848.0" y1="295.5" x2="16859.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16859.5" y1="327.5" x2="16859.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16859.5" y1="359.5" x2="16748.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16859.5" y1="359.5" x2="16764.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16859.5" y1="359.5" x2="16794.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16794.0" y1="391.5" x2="16794.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16794.0" y1="423.5" x2="16794.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16859.5" y1="359.5" x2="16823.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16859.5" y1="359.5" x2="16852.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16852.0" y1="391.5" x2="16852.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16852.0" y1="423.5" x2="16852.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16859.5" y1="359.5" x2="16896.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16859.5" y1="359.5" x2="16941.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16941.5" y1="391.5" x2="16941.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16941.5" y1="423.5" x2="16873.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16941.5" y1="423.5" x2="16892.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16941.5" y1="423.5" x2="16922.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16922.0" y1="455.5" x2="16922.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16922.0" y1="487.5" x2="16922.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16941.5" y1="423.5" x2="16951.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16941.5" y1="423.5" x2="16980.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16980.0" y1="455.5" x2="16980.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16980.0" y1="487.5" x2="16980.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16941.5" y1="423.5" x2="17009.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16859.5" y1="359.5" x2="16971.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16848.0" y1="295.5" x2="16889.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17990.625" y1="167.5" x2="17174.125" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17174.125" y1="199.5" x2="16935.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17174.125" y1="199.5" x2="16962.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="16962.5" y1="231.5" x2="16962.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17174.125" y1="199.5" x2="16989.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17174.125" y1="199.5" x2="17022.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17022.0" y1="231.5" x2="17022.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17174.125" y1="199.5" x2="17055.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17174.125" y1="199.5" x2="17087.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17087.5" y1="231.5" x2="17087.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17087.5" y1="263.5" x2="17087.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17087.5" y1="295.5" x2="17046.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17087.5" y1="295.5" x2="17069.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17087.5" y1="295.5" x2="17099.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17099.0" y1="327.5" x2="17099.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17099.0" y1="359.5" x2="16987.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17099.0" y1="359.5" x2="17004.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17099.0" y1="359.5" x2="17033.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17033.5" y1="391.5" x2="17033.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17033.5" y1="423.5" x2="17033.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17099.0" y1="359.5" x2="17062.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17099.0" y1="359.5" x2="17091.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17091.5" y1="391.5" x2="17091.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17091.5" y1="423.5" x2="17091.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17099.0" y1="359.5" x2="17136.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17099.0" y1="359.5" x2="17181.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17181.0" y1="391.5" x2="17181.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17181.0" y1="423.5" x2="17113.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17181.0" y1="423.5" x2="17132.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17181.0" y1="423.5" x2="17161.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17161.5" y1="455.5" x2="17161.5" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17161.5" y1="487.5" x2="17161.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17181.0" y1="423.5" x2="17190.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17181.0" y1="423.5" x2="17219.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17219.5" y1="455.5" x2="17219.5" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17219.5" y1="487.5" x2="17219.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17181.0" y1="423.5" x2="17249.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17099.0" y1="359.5" x2="17210.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17087.5" y1="295.5" x2="17128.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17174.125" y1="199.5" x2="17167.8125" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17174.125" y1="199.5" x2="17241.625" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17241.625" y1="231.5" x2="17175.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17241.625" y1="231.5" x2="17196.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17196.75" y1="263.5" x2="17174.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17174.5" y1="295.5" x2="17174.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17174.5" y1="327.5" x2="17174.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17196.75" y1="263.5" x2="17203.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17196.75" y1="263.5" x2="17219.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17241.625" y1="231.5" x2="17241.625" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17241.625" y1="231.5" x2="17286.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17286.5" y1="263.5" x2="17263.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17263.5" y1="295.5" x2="17263.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17263.5" y1="327.5" x2="17195.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17263.5" y1="327.5" x2="17214.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17263.5" y1="327.5" x2="17244.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17244.0" y1="359.5" x2="17244.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17244.0" y1="391.5" x2="17244.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17263.5" y1="327.5" x2="17273.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17263.5" y1="327.5" x2="17302.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17302.0" y1="359.5" x2="17302.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17302.0" y1="391.5" x2="17302.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17263.5" y1="327.5" x2="17331.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17286.5" y1="263.5" x2="17292.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17286.5" y1="263.5" x2="17309.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17241.625" y1="231.5" x2="17308.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17174.125" y1="199.5" x2="17297.666666666668" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17174.125" y1="199.5" x2="17343.208333333332" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17174.125" y1="199.5" x2="17412.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17412.75" y1="231.5" x2="17412.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17412.75" y1="263.5" x2="17412.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17412.75" y1="295.5" x2="17312.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17412.75" y1="295.5" x2="17335.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17412.75" y1="295.5" x2="17365.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17365.0" y1="327.5" x2="17365.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17365.0" y1="359.5" x2="17365.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17412.75" y1="295.5" x2="17424.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17412.75" y1="295.5" x2="17483.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17483.5" y1="327.5" x2="17483.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17483.5" y1="359.5" x2="17390.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17483.5" y1="359.5" x2="17413.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17483.5" y1="359.5" x2="17442.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17442.5" y1="391.5" x2="17442.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17442.5" y1="423.5" x2="17401.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17442.5" y1="423.5" x2="17424.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17442.5" y1="423.5" x2="17454.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17454.0" y1="455.5" x2="17454.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17454.0" y1="487.5" x2="17454.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17442.5" y1="423.5" x2="17483.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17483.5" y1="359.5" x2="17495.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17483.5" y1="359.5" x2="17547.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17547.5" y1="391.5" x2="17547.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17547.5" y1="423.5" x2="17506.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17547.5" y1="423.5" x2="17529.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17547.5" y1="423.5" x2="17559.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17559.0" y1="455.5" x2="17559.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17559.0" y1="487.5" x2="17491.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17559.0" y1="487.5" x2="17510.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17559.0" y1="487.5" x2="17539.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17539.5" y1="519.5" x2="17539.5" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17539.5" y1="551.5" x2="17539.5" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17559.0" y1="487.5" x2="17568.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17559.0" y1="487.5" x2="17597.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17597.5" y1="519.5" x2="17597.5" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17597.5" y1="551.5" x2="17597.5" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17559.0" y1="487.5" x2="17627.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17547.5" y1="423.5" x2="17588.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17483.5" y1="359.5" x2="17577.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17412.75" y1="295.5" x2="17513.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17990.625" y1="167.5" x2="17662.6875" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17662.6875" y1="199.5" x2="17500.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17662.6875" y1="199.5" x2="17527.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17527.5" y1="231.5" x2="17527.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17662.6875" y1="199.5" x2="17554.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17662.6875" y1="199.5" x2="17587.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17587.0" y1="231.5" x2="17587.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17662.6875" y1="199.5" x2="17620.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17662.6875" y1="199.5" x2="17652.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17652.5" y1="231.5" x2="17652.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17652.5" y1="263.5" x2="17652.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17652.5" y1="295.5" x2="17611.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17652.5" y1="295.5" x2="17634.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17652.5" y1="295.5" x2="17664.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17664.0" y1="327.5" x2="17664.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17664.0" y1="359.5" x2="17596.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17664.0" y1="359.5" x2="17615.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17664.0" y1="359.5" x2="17644.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17644.5" y1="391.5" x2="17644.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17644.5" y1="423.5" x2="17644.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17664.0" y1="359.5" x2="17673.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17664.0" y1="359.5" x2="17702.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17702.5" y1="391.5" x2="17702.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17702.5" y1="423.5" x2="17702.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17664.0" y1="359.5" x2="17732.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17652.5" y1="295.5" x2="17693.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17662.6875" y1="199.5" x2="17691.275" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17662.6875" y1="199.5" x2="17723.55" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17723.55" y1="231.5" x2="17716.55" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17723.55" y1="231.5" x2="17730.55" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17662.6875" y1="199.5" x2="17756.325" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17662.6875" y1="199.5" x2="17778.6" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17662.6875" y1="199.5" x2="17824.875" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17824.875" y1="231.5" x2="17824.875" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17824.875" y1="263.5" x2="17824.875" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17824.875" y1="295.5" x2="17716.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17824.875" y1="295.5" x2="17739.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17824.875" y1="295.5" x2="17769.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17769.0" y1="327.5" x2="17769.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17769.0" y1="359.5" x2="17769.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17824.875" y1="295.5" x2="17836.375" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17824.875" y1="295.5" x2="17903.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17903.75" y1="327.5" x2="17903.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17903.75" y1="359.5" x2="17794.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17903.75" y1="359.5" x2="17817.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17903.75" y1="359.5" x2="17846.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17846.5" y1="391.5" x2="17846.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17846.5" y1="423.5" x2="17805.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17846.5" y1="423.5" x2="17828.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17846.5" y1="423.5" x2="17858.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17858.0" y1="455.5" x2="17858.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17858.0" y1="487.5" x2="17858.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17846.5" y1="423.5" x2="17887.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17903.75" y1="359.5" x2="17915.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17903.75" y1="359.5" x2="17984.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17984.0" y1="391.5" x2="17984.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17984.0" y1="423.5" x2="17910.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17984.0" y1="423.5" x2="17933.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17984.0" y1="423.5" x2="17963.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17963.0" y1="455.5" x2="17963.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17963.0" y1="487.5" x2="17963.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17984.0" y1="423.5" x2="17995.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17984.0" y1="423.5" x2="18028.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18028.0" y1="455.5" x2="18028.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18028.0" y1="487.5" x2="17987.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18028.0" y1="487.5" x2="18010.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18028.0" y1="487.5" x2="18039.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18039.5" y1="519.5" x2="18039.5" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18039.5" y1="551.5" x2="18039.5" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18028.0" y1="487.5" x2="18069.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17984.0" y1="423.5" x2="18057.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17903.75" y1="359.5" x2="18013.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17824.875" y1="295.5" x2="17933.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17990.625" y1="167.5" x2="18272.3125" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18272.3125" y1="199.5" x2="17982.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18272.3125" y1="199.5" x2="18009.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18009.75" y1="231.5" x2="18009.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18272.3125" y1="199.5" x2="18036.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18272.3125" y1="199.5" x2="18069.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18069.25" y1="231.5" x2="18069.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18272.3125" y1="199.5" x2="18102.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18272.3125" y1="199.5" x2="18134.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18134.75" y1="231.5" x2="18134.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18134.75" y1="263.5" x2="18134.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18134.75" y1="295.5" x2="18025.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18134.75" y1="295.5" x2="18048.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18134.75" y1="295.5" x2="18077.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18077.5" y1="327.5" x2="18077.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18077.5" y1="359.5" x2="18036.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18077.5" y1="359.5" x2="18059.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18077.5" y1="359.5" x2="18089.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18089.0" y1="391.5" x2="18089.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18089.0" y1="423.5" x2="18089.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18077.5" y1="359.5" x2="18118.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18134.75" y1="295.5" x2="18146.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18134.75" y1="295.5" x2="18215.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18215.0" y1="327.5" x2="18215.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18215.0" y1="359.5" x2="18141.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18215.0" y1="359.5" x2="18164.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18215.0" y1="359.5" x2="18194.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18194.0" y1="391.5" x2="18194.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18194.0" y1="423.5" x2="18194.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18215.0" y1="359.5" x2="18226.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18215.0" y1="359.5" x2="18259.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18259.0" y1="391.5" x2="18259.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18259.0" y1="423.5" x2="18218.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18259.0" y1="423.5" x2="18241.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18259.0" y1="423.5" x2="18270.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18270.5" y1="455.5" x2="18270.5" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18270.5" y1="487.5" x2="18270.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18259.0" y1="423.5" x2="18300.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18215.0" y1="359.5" x2="18288.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18134.75" y1="295.5" x2="18244.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18272.3125" y1="199.5" x2="18263.3125" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18272.3125" y1="199.5" x2="18385.375" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18385.375" y1="231.5" x2="18311.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18385.375" y1="231.5" x2="18333.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18333.25" y1="263.5" x2="18310.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18310.5" y1="295.5" x2="18310.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18310.5" y1="327.5" x2="18269.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18310.5" y1="327.5" x2="18292.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18310.5" y1="327.5" x2="18322.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18322.0" y1="359.5" x2="18322.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18322.0" y1="391.5" x2="18322.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18310.5" y1="327.5" x2="18351.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18333.25" y1="263.5" x2="18339.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18333.25" y1="263.5" x2="18356.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18385.375" y1="231.5" x2="18385.375" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18385.375" y1="231.5" x2="18437.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18437.5" y1="263.5" x2="18415.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18415.5" y1="295.5" x2="18415.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18415.5" y1="327.5" x2="18374.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18415.5" y1="327.5" x2="18397.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18415.5" y1="327.5" x2="18427.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18427.0" y1="359.5" x2="18427.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18427.0" y1="391.5" x2="18427.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18415.5" y1="327.5" x2="18456.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18437.5" y1="263.5" x2="18444.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18437.5" y1="263.5" x2="18459.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18385.375" y1="231.5" x2="18459.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18272.3125" y1="199.5" x2="18443.208333333332" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18272.3125" y1="199.5" x2="18490.541666666668" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18272.3125" y1="199.5" x2="18561.875" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18561.875" y1="231.5" x2="18561.875" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18561.875" y1="263.5" x2="18561.875" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18561.875" y1="295.5" x2="18458.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18561.875" y1="295.5" x2="18481.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18561.875" y1="295.5" x2="18511.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18511.0" y1="327.5" x2="18511.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18511.0" y1="359.5" x2="18511.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18561.875" y1="295.5" x2="18573.375" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18561.875" y1="295.5" x2="18635.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18635.75" y1="327.5" x2="18635.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18635.75" y1="359.5" x2="18536.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18635.75" y1="359.5" x2="18559.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18635.75" y1="359.5" x2="18588.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18588.5" y1="391.5" x2="18588.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18588.5" y1="423.5" x2="18588.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18635.75" y1="359.5" x2="18647.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18635.75" y1="359.5" x2="18706.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18706.0" y1="391.5" x2="18706.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18706.0" y1="423.5" x2="18612.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18706.0" y1="423.5" x2="18635.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18706.0" y1="423.5" x2="18665.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18665.0" y1="455.5" x2="18665.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18665.0" y1="487.5" x2="18624.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18665.0" y1="487.5" x2="18647.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18665.0" y1="487.5" x2="18676.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18676.5" y1="519.5" x2="18676.5" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18676.5" y1="551.5" x2="18676.5" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18665.0" y1="487.5" x2="18706.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18706.0" y1="423.5" x2="18717.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18706.0" y1="423.5" x2="18770.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18770.0" y1="455.5" x2="18770.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18770.0" y1="487.5" x2="18729.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18770.0" y1="487.5" x2="18752.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18770.0" y1="487.5" x2="18781.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18781.5" y1="519.5" x2="18781.5" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18781.5" y1="551.5" x2="18781.5" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18770.0" y1="487.5" x2="18811.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18706.0" y1="423.5" x2="18799.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18635.75" y1="359.5" x2="18735.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18561.875" y1="295.5" x2="18665.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17990.625" y1="167.5" x2="18966.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18966.5" y1="199.5" x2="18651.375" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18966.5" y1="199.5" x2="18678.375" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18678.375" y1="231.5" x2="18678.375" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18966.5" y1="199.5" x2="18704.875" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18966.5" y1="199.5" x2="18737.875" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18737.875" y1="231.5" x2="18737.875" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18966.5" y1="199.5" x2="18770.875" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18966.5" y1="199.5" x2="18803.375" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18803.375" y1="231.5" x2="18803.375" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18803.375" y1="263.5" x2="18803.375" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18803.375" y1="295.5" x2="18700.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18803.375" y1="295.5" x2="18723.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18803.375" y1="295.5" x2="18752.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18752.5" y1="327.5" x2="18752.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18752.5" y1="359.5" x2="18752.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18803.375" y1="295.5" x2="18814.875" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18803.375" y1="295.5" x2="18877.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18877.25" y1="327.5" x2="18877.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18877.25" y1="359.5" x2="18777.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18877.25" y1="359.5" x2="18800.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18877.25" y1="359.5" x2="18830.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18830.0" y1="391.5" x2="18830.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18830.0" y1="423.5" x2="18830.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18877.25" y1="359.5" x2="18888.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18877.25" y1="359.5" x2="18947.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18947.5" y1="391.5" x2="18947.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18947.5" y1="423.5" x2="18854.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18947.5" y1="423.5" x2="18877.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18947.5" y1="423.5" x2="18906.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18906.5" y1="455.5" x2="18906.5" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18906.5" y1="487.5" x2="18865.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18906.5" y1="487.5" x2="18888.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18906.5" y1="487.5" x2="18918.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18918.0" y1="519.5" x2="18918.0" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18918.0" y1="551.5" x2="18918.0" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18906.5" y1="487.5" x2="18947.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18947.5" y1="423.5" x2="18959.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18947.5" y1="423.5" x2="19011.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19011.5" y1="455.5" x2="19011.5" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19011.5" y1="487.5" x2="18970.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19011.5" y1="487.5" x2="18993.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19011.5" y1="487.5" x2="19023.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19023.0" y1="519.5" x2="19023.0" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19023.0" y1="551.5" x2="19023.0" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19011.5" y1="487.5" x2="19052.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18947.5" y1="423.5" x2="19041.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18877.25" y1="359.5" x2="18977.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18803.375" y1="295.5" x2="18906.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18966.5" y1="199.5" x2="18967.9375" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18966.5" y1="199.5" x2="19126.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19126.0" y1="231.5" x2="19104.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19126.0" y1="231.5" x2="19126.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19126.0" y1="263.5" x2="19104.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19104.0" y1="295.5" x2="19104.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19104.0" y1="327.5" x2="19010.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19104.0" y1="327.5" x2="19033.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19104.0" y1="327.5" x2="19063.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19063.0" y1="359.5" x2="19063.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19063.0" y1="391.5" x2="19022.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19063.0" y1="391.5" x2="19045.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19063.0" y1="391.5" x2="19074.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19074.5" y1="423.5" x2="19074.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19074.5" y1="455.5" x2="19074.5" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19063.0" y1="391.5" x2="19104.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19104.0" y1="327.5" x2="19115.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19104.0" y1="327.5" x2="19168.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19168.0" y1="359.5" x2="19168.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19168.0" y1="391.5" x2="19127.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19168.0" y1="391.5" x2="19150.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19168.0" y1="391.5" x2="19179.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19179.5" y1="423.5" x2="19179.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19179.5" y1="455.5" x2="19179.5" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19168.0" y1="391.5" x2="19209.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19104.0" y1="327.5" x2="19197.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19126.0" y1="263.5" x2="19133.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19126.0" y1="263.5" x2="19148.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19126.0" y1="231.5" x2="19147.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18966.5" y1="199.5" x2="19176.875" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18966.5" y1="199.5" x2="19217.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="18966.5" y1="199.5" x2="19281.625" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19281.625" y1="231.5" x2="19281.625" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19281.625" y1="263.5" x2="19281.625" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19281.625" y1="295.5" x2="19178.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19281.625" y1="295.5" x2="19201.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19281.625" y1="295.5" x2="19231.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19231.0" y1="327.5" x2="19231.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19231.0" y1="359.5" x2="19231.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19281.625" y1="295.5" x2="19293.125" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19281.625" y1="295.5" x2="19355.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19355.25" y1="327.5" x2="19355.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19355.25" y1="359.5" x2="19255.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19355.25" y1="359.5" x2="19278.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19355.25" y1="359.5" x2="19307.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19307.5" y1="391.5" x2="19307.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19307.5" y1="423.5" x2="19307.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19355.25" y1="359.5" x2="19366.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19355.25" y1="359.5" x2="19426.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19426.0" y1="391.5" x2="19426.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19426.0" y1="423.5" x2="19332.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19426.0" y1="423.5" x2="19355.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19426.0" y1="423.5" x2="19385.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19385.0" y1="455.5" x2="19385.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19385.0" y1="487.5" x2="19344.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19385.0" y1="487.5" x2="19367.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19385.0" y1="487.5" x2="19396.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19396.5" y1="519.5" x2="19396.5" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19396.5" y1="551.5" x2="19396.5" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19385.0" y1="487.5" x2="19426.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19426.0" y1="423.5" x2="19437.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19426.0" y1="423.5" x2="19490.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19490.0" y1="455.5" x2="19490.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19490.0" y1="487.5" x2="19449.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19490.0" y1="487.5" x2="19472.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19490.0" y1="487.5" x2="19501.5" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19501.5" y1="519.5" x2="19501.5" y2="544.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19501.5" y1="551.5" x2="19501.5" y2="576.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19490.0" y1="487.5" x2="19531.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19426.0" y1="423.5" x2="19519.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19355.25" y1="359.5" x2="19455.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19281.625" y1="295.5" x2="19384.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="17990.625" y1="167.5" x2="19602.125" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19602.125" y1="199.5" x2="19401.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19602.125" y1="199.5" x2="19428.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19428.75" y1="231.5" x2="19428.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19602.125" y1="199.5" x2="19455.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19602.125" y1="199.5" x2="19488.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19488.25" y1="231.5" x2="19488.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19602.125" y1="199.5" x2="19521.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19602.125" y1="199.5" x2="19553.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19553.75" y1="231.5" x2="19553.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19553.75" y1="263.5" x2="19553.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19553.75" y1="295.5" x2="19453.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19553.75" y1="295.5" x2="19476.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19553.75" y1="295.5" x2="19506.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19506.0" y1="327.5" x2="19506.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19506.0" y1="359.5" x2="19506.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19553.75" y1="295.5" x2="19565.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19553.75" y1="295.5" x2="19624.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19624.5" y1="327.5" x2="19624.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19624.5" y1="359.5" x2="19531.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19624.5" y1="359.5" x2="19554.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19624.5" y1="359.5" x2="19583.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19583.5" y1="391.5" x2="19583.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19583.5" y1="423.5" x2="19542.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19583.5" y1="423.5" x2="19565.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19583.5" y1="423.5" x2="19595.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19595.0" y1="455.5" x2="19595.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19595.0" y1="487.5" x2="19595.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19583.5" y1="423.5" x2="19624.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19624.5" y1="359.5" x2="19636.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19624.5" y1="359.5" x2="19688.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19688.5" y1="391.5" x2="19688.5" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19688.5" y1="423.5" x2="19647.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19688.5" y1="423.5" x2="19670.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19688.5" y1="423.5" x2="19700.0" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19700.0" y1="455.5" x2="19700.0" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19700.0" y1="487.5" x2="19700.0" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19688.5" y1="423.5" x2="19729.5" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19624.5" y1="359.5" x2="19718.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19553.75" y1="295.5" x2="19654.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19602.125" y1="199.5" x2="19635.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19602.125" y1="199.5" x2="19709.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19709.75" y1="231.5" x2="19688.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19709.75" y1="231.5" x2="19709.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19709.75" y1="263.5" x2="19687.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19687.5" y1="295.5" x2="19687.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19687.5" y1="327.5" x2="19687.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19709.75" y1="263.5" x2="19716.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19709.75" y1="263.5" x2="19732.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19709.75" y1="231.5" x2="19731.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19602.125" y1="199.5" x2="19739.666666666664" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19602.125" y1="199.5" x2="19759.083333333336" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19602.125" y1="199.5" x2="19802.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19802.5" y1="231.5" x2="19802.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19802.5" y1="263.5" x2="19802.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19802.5" y1="295.5" x2="19729.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19802.5" y1="295.5" x2="19752.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19802.5" y1="295.5" x2="19781.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19781.5" y1="327.5" x2="19781.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19781.5" y1="359.5" x2="19781.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19802.5" y1="295.5" x2="19814.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19802.5" y1="295.5" x2="19846.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19846.5" y1="327.5" x2="19846.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19846.5" y1="359.5" x2="19805.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19846.5" y1="359.5" x2="19828.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19846.5" y1="359.5" x2="19858.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19858.0" y1="391.5" x2="19858.0" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19858.0" y1="423.5" x2="19762.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19858.0" y1="423.5" x2="19778.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19858.0" y1="423.5" x2="19808.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19808.25" y1="455.5" x2="19808.25" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19808.25" y1="487.5" x2="19808.25" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19858.0" y1="423.5" x2="19837.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19858.0" y1="423.5" x2="19866.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19866.25" y1="455.5" x2="19866.25" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19866.25" y1="487.5" x2="19866.25" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19858.0" y1="423.5" x2="19895.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19858.0" y1="423.5" x2="19924.25" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19924.25" y1="455.5" x2="19924.25" y2="480.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19924.25" y1="487.5" x2="19924.25" y2="512.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19858.0" y1="423.5" x2="19953.75" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19846.5" y1="359.5" x2="19887.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19802.5" y1="295.5" x2="19876.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="10765.2109375" y1="7.5" x2="20550.1875" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20550.1875" y1="39.5" x2="20054.3125" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20054.3125" y1="71.5" x2="19998.3125" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20054.3125" y1="71.5" x2="20051.8125" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20054.3125" y1="71.5" x2="20091.8125" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20054.3125" y1="71.5" x2="20110.3125" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20110.3125" y1="103.5" x2="19919.625" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19919.625" y1="135.5" x2="19907.375" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19907.375" y1="167.5" x2="19830.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19907.375" y1="167.5" x2="19861.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19861.25" y1="199.5" x2="19842.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19861.25" y1="199.5" x2="19858.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19861.25" y1="199.5" x2="19880.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19880.0" y1="231.5" x2="19880.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19907.375" y1="167.5" x2="19892.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19907.375" y1="167.5" x2="19923.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19923.75" y1="199.5" x2="19904.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19923.75" y1="199.5" x2="19921.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19923.75" y1="199.5" x2="19943.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19943.0" y1="231.5" x2="19943.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19907.375" y1="167.5" x2="19954.125" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19907.375" y1="167.5" x2="19984.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19984.5" y1="199.5" x2="19966.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19984.5" y1="199.5" x2="19981.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19984.5" y1="199.5" x2="20003.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20003.0" y1="231.5" x2="20003.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="19919.625" y1="135.5" x2="19931.875" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20110.3125" y1="103.5" x2="20101.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20101.5" y1="135.5" x2="20101.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20101.5" y1="167.5" x2="20013.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20101.5" y1="167.5" x2="20036.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20101.5" y1="167.5" x2="20066.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20066.0" y1="199.5" x2="20066.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20066.0" y1="231.5" x2="20066.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20101.5" y1="167.5" x2="20113.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20101.5" y1="167.5" x2="20160.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20160.0" y1="199.5" x2="20160.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20160.0" y1="231.5" x2="20090.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20160.0" y1="231.5" x2="20113.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20160.0" y1="231.5" x2="20142.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20142.5" y1="263.5" x2="20142.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20142.5" y1="295.5" x2="20142.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20160.0" y1="231.5" x2="20171.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20160.0" y1="231.5" x2="20200.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20200.5" y1="263.5" x2="20200.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20200.5" y1="295.5" x2="20200.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20160.0" y1="231.5" x2="20230.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20101.5" y1="167.5" x2="20189.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20110.3125" y1="103.5" x2="20201.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20110.3125" y1="103.5" x2="20301.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20301.0" y1="135.5" x2="20301.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20301.0" y1="167.5" x2="20212.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20301.0" y1="167.5" x2="20235.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20301.0" y1="167.5" x2="20265.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20265.0" y1="199.5" x2="20265.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20265.0" y1="231.5" x2="20265.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20301.0" y1="167.5" x2="20312.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20301.0" y1="167.5" x2="20360.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20360.0" y1="199.5" x2="20360.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20360.0" y1="231.5" x2="20290.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20360.0" y1="231.5" x2="20313.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20360.0" y1="231.5" x2="20342.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20342.5" y1="263.5" x2="20342.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20342.5" y1="295.5" x2="20342.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20360.0" y1="231.5" x2="20371.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20360.0" y1="231.5" x2="20400.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20400.5" y1="263.5" x2="20400.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20400.5" y1="295.5" x2="20400.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20360.0" y1="231.5" x2="20430.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20301.0" y1="167.5" x2="20389.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20550.1875" y1="39.5" x2="21046.0625" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21046.0625" y1="71.5" x2="21046.0625" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21046.0625" y1="103.5" x2="20499.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20499.0" y1="135.5" x2="20499.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20499.0" y1="167.5" x2="20499.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20499.0" y1="199.5" x2="20411.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20499.0" y1="199.5" x2="20434.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20499.0" y1="199.5" x2="20463.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20463.5" y1="231.5" x2="20463.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20463.5" y1="263.5" x2="20463.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20499.0" y1="199.5" x2="20510.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20499.0" y1="199.5" x2="20557.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20557.5" y1="231.5" x2="20557.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20557.5" y1="263.5" x2="20487.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20557.5" y1="263.5" x2="20510.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20557.5" y1="263.5" x2="20540.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20540.0" y1="295.5" x2="20540.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20540.0" y1="327.5" x2="20540.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20557.5" y1="263.5" x2="20569.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20557.5" y1="263.5" x2="20598.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20598.0" y1="295.5" x2="20598.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20598.0" y1="327.5" x2="20598.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20557.5" y1="263.5" x2="20627.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20499.0" y1="199.5" x2="20587.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21046.0625" y1="103.5" x2="20746.875" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20746.875" y1="135.5" x2="20544.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20746.875" y1="135.5" x2="20571.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20571.5" y1="167.5" x2="20571.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20746.875" y1="135.5" x2="20598.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20746.875" y1="135.5" x2="20631.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20631.0" y1="167.5" x2="20631.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20746.875" y1="135.5" x2="20664.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20746.875" y1="135.5" x2="20696.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20696.5" y1="167.5" x2="20696.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20696.5" y1="199.5" x2="20696.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20696.5" y1="231.5" x2="20608.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20696.5" y1="231.5" x2="20631.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20696.5" y1="231.5" x2="20661.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20661.0" y1="263.5" x2="20661.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20661.0" y1="295.5" x2="20661.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20696.5" y1="231.5" x2="20708.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20696.5" y1="231.5" x2="20755.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20755.0" y1="263.5" x2="20755.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20755.0" y1="295.5" x2="20685.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20755.0" y1="295.5" x2="20708.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20755.0" y1="295.5" x2="20737.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20737.5" y1="327.5" x2="20737.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20737.5" y1="359.5" x2="20737.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20755.0" y1="295.5" x2="20766.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20755.0" y1="295.5" x2="20795.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20795.5" y1="327.5" x2="20795.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20795.5" y1="359.5" x2="20795.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20755.0" y1="295.5" x2="20825.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20696.5" y1="231.5" x2="20784.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20746.875" y1="135.5" x2="20751.35" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20746.875" y1="135.5" x2="20799.7" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20799.7" y1="167.5" x2="20792.7" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20799.7" y1="167.5" x2="20806.7" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20746.875" y1="135.5" x2="20848.55" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20746.875" y1="135.5" x2="20886.9" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20746.875" y1="135.5" x2="20949.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20949.25" y1="167.5" x2="20949.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20949.25" y1="199.5" x2="20949.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20949.25" y1="231.5" x2="20865.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20949.25" y1="231.5" x2="20888.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20949.25" y1="231.5" x2="20918.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20918.0" y1="263.5" x2="20918.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20918.0" y1="295.5" x2="20848.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20918.0" y1="295.5" x2="20871.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20918.0" y1="295.5" x2="20900.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20900.5" y1="327.5" x2="20900.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20900.5" y1="359.5" x2="20900.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20918.0" y1="295.5" x2="20929.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20918.0" y1="295.5" x2="20958.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20958.5" y1="327.5" x2="20958.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20958.5" y1="359.5" x2="20958.5" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20918.0" y1="295.5" x2="20988.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20949.25" y1="231.5" x2="20960.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20949.25" y1="231.5" x2="21003.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21003.5" y1="263.5" x2="21003.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21003.5" y1="295.5" x2="21003.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="20949.25" y1="231.5" x2="21033.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21046.0625" y1="103.5" x2="21152.625" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21152.625" y1="135.5" x2="20988.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21152.625" y1="135.5" x2="21015.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21015.25" y1="167.5" x2="21015.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21152.625" y1="135.5" x2="21041.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21152.625" y1="135.5" x2="21074.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21074.75" y1="167.5" x2="21074.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21152.625" y1="135.5" x2="21107.75" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21152.625" y1="135.5" x2="21140.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21140.25" y1="167.5" x2="21140.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21140.25" y1="199.5" x2="21140.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21140.25" y1="231.5" x2="21070.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21140.25" y1="231.5" x2="21093.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21140.25" y1="231.5" x2="21122.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21122.75" y1="263.5" x2="21122.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21122.75" y1="295.5" x2="21122.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21140.25" y1="231.5" x2="21151.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21140.25" y1="231.5" x2="21180.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21180.75" y1="263.5" x2="21180.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21180.75" y1="295.5" x2="21180.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21140.25" y1="231.5" x2="21210.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21152.625" y1="135.5" x2="21179.9" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21152.625" y1="135.5" x2="21213.05" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21213.05" y1="167.5" x2="21206.05" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21213.05" y1="167.5" x2="21220.05" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21152.625" y1="135.5" x2="21246.7" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21152.625" y1="135.5" x2="21269.85" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21152.625" y1="135.5" x2="21317.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21317.0" y1="167.5" x2="21317.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21317.0" y1="199.5" x2="21317.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21317.0" y1="231.5" x2="21233.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21317.0" y1="231.5" x2="21256.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21317.0" y1="231.5" x2="21285.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21285.75" y1="263.5" x2="21285.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21285.75" y1="295.5" x2="21215.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21285.75" y1="295.5" x2="21238.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21285.75" y1="295.5" x2="21268.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21268.25" y1="327.5" x2="21268.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21268.25" y1="359.5" x2="21268.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21285.75" y1="295.5" x2="21297.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21285.75" y1="295.5" x2="21326.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21326.25" y1="327.5" x2="21326.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21326.25" y1="359.5" x2="21326.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21285.75" y1="295.5" x2="21355.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21317.0" y1="231.5" x2="21328.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21317.0" y1="231.5" x2="21371.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21371.25" y1="263.5" x2="21371.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21371.25" y1="295.5" x2="21371.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21317.0" y1="231.5" x2="21400.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21046.0625" y1="103.5" x2="21593.125" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21593.125" y1="135.5" x2="21356.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21593.125" y1="135.5" x2="21383.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21383.0" y1="167.5" x2="21383.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21593.125" y1="135.5" x2="21409.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21593.125" y1="135.5" x2="21442.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21442.5" y1="167.5" x2="21442.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21593.125" y1="135.5" x2="21475.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21593.125" y1="135.5" x2="21508.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21508.0" y1="167.5" x2="21508.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21508.0" y1="199.5" x2="21508.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21508.0" y1="231.5" x2="21424.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21508.0" y1="231.5" x2="21447.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21508.0" y1="231.5" x2="21476.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21476.75" y1="263.5" x2="21476.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21476.75" y1="295.5" x2="21406.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21476.75" y1="295.5" x2="21429.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21476.75" y1="295.5" x2="21459.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21459.25" y1="327.5" x2="21459.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21459.25" y1="359.5" x2="21459.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21476.75" y1="295.5" x2="21488.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21476.75" y1="295.5" x2="21517.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21517.25" y1="327.5" x2="21517.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21517.25" y1="359.5" x2="21517.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21476.75" y1="295.5" x2="21546.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21508.0" y1="231.5" x2="21519.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21508.0" y1="231.5" x2="21562.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21562.25" y1="263.5" x2="21562.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21562.25" y1="295.5" x2="21562.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21508.0" y1="231.5" x2="21591.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21593.125" y1="135.5" x2="21599.875" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21593.125" y1="135.5" x2="21685.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21685.25" y1="167.5" x2="21626.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21685.25" y1="167.5" x2="21647.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21647.5" y1="199.5" x2="21625.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21625.25" y1="231.5" x2="21625.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21625.25" y1="263.5" x2="21625.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21647.5" y1="199.5" x2="21654.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21647.5" y1="199.5" x2="21669.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21685.25" y1="167.5" x2="21685.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21685.25" y1="167.5" x2="21723.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21723.0" y1="199.5" x2="21700.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21700.25" y1="231.5" x2="21700.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21700.25" y1="263.5" x2="21700.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21723.0" y1="199.5" x2="21729.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21723.0" y1="199.5" x2="21745.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21685.25" y1="167.5" x2="21744.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21593.125" y1="135.5" x2="21732.583333333336" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21593.125" y1="135.5" x2="21769.416666666664" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21593.125" y1="135.5" x2="21830.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21830.25" y1="167.5" x2="21830.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21830.25" y1="199.5" x2="21830.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21830.25" y1="231.5" x2="21741.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21830.25" y1="231.5" x2="21764.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21830.25" y1="231.5" x2="21794.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21794.25" y1="263.5" x2="21794.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21794.25" y1="295.5" x2="21794.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21830.25" y1="231.5" x2="21841.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21830.25" y1="231.5" x2="21889.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21889.25" y1="263.5" x2="21889.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21889.25" y1="295.5" x2="21819.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21889.25" y1="295.5" x2="21842.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21889.25" y1="295.5" x2="21871.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21871.75" y1="327.5" x2="21871.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21871.75" y1="359.5" x2="21871.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21889.25" y1="295.5" x2="21900.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21889.25" y1="295.5" x2="21929.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21929.75" y1="327.5" x2="21929.75" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21929.75" y1="359.5" x2="21929.75" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21889.25" y1="295.5" x2="21959.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="21830.25" y1="231.5" x2="21918.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<rect x="8679.25" y="512.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8681" y="521" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="13517.53125" y="96.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13519" y="105" style="font-family:sans-serif;font-size:10px;"> +induction +</text> +<rect x="15609.5" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15611" y="329" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="4106.25" y="192.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4108" y="201" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="21539.75" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21541" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3643.75" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3645" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="15521.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15523" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11619.375" y="192.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11621" y="201" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="182.5" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="184" y="169" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="16903.5" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16905" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="16490.5" y="416.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16492" y="425" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="13041.5" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13043" y="521" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="12928.25" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12930" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="10645.75" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10647" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="16695.5" y="448.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16697" y="457" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="18661.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18663" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="17483.0" y="512.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17485" y="521" style="font-family:sans-serif;font-size:10px;"> +inr +</text> +<rect x="10009.75" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10011" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18807.0" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18809" y="521" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="19901.75" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19903" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="5734.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5736" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2157.5" y="320.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2159" y="329" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="9080.0" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9082" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="18116.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18118" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="879.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="881" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13084.4" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13086" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="20534.0" y="352.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20536" y="361" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="13805.375" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13807" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="19080.0" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19082" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="184.0" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="186" y="265" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="16121.75" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16123" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="462.75" y="288.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="464" y="297" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="10281.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10283" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="20506.5" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20508" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3047.75" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3049" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="14626.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14628" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="6847.125" y="224.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6849" y="233" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="16516.5" y="480.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16518" y="489" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="5631.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5633" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="1835.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1837" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2755.5" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2757" y="265" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="8450.95" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8452" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="16500.0" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16502" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="7004.5" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7006" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="15882.75" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15884" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="3455.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3457" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="9755.75" y="352.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9757" y="361" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="14130.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14132" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19451.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19453" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="19437.0" y="512.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19439" y="521" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="1523.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1525" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="8791.75" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8793" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="11515.5" y="288.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11517" y="297" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="5762.5" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5764" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="8619.25" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8621" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="20642.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20644" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7291.375" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7293" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="14798.5" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14800" y="297" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="17822.5" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17824" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="53.75" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="55" y="265" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="18732.875" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18734" y="265" style="font-family:sans-serif;font-size:10px;"> +rl +</text> +<rect x="12698.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12700" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="14023.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14025" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="5948.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5950" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="6431.25" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6433" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3629.75" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3631" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="6935.5" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6937" y="361" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="7209.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7211" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="10748.75" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10750" y="265" style="font-family:sans-serif;font-size:10px;"> +p0 +</text> +<rect x="1533.25" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1535" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="20196.25" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20198" y="137" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="5324.5" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5326" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="10061.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10063" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="10982.75" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10984" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="11898.75" y="192.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11900" y="201" style="font-family:sans-serif;font-size:10px;"> +start_tree +</text> +<rect x="155.5" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="157" y="201" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="5694.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5696" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18505.0" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18507" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="13348.75" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13350" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="16504.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16506" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="14960.0" y="384.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14962" y="393" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="4356.25" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4358" y="265" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1849.75" y="320.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1851" y="329" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="4942.0" y="352.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4944" y="361" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="12546.75" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12548" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="20109.0" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20111" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="8665.25" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8667" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17763.0" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17765" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="18923.5" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18925" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2247.25" y="352.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2249" y="361" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="6830.25" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6832" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="8685.75" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8687" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="1766.5" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1768" y="297" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="12752.0" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12754" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="4769.0" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4771" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="16548.5" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16550" y="425" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="10595.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10597" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="12270.0" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12272" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1008.75" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1010" y="265" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="12342.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12344" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12505.5" y="448.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12507" y="457" style="font-family:sans-serif;font-size:10px;"> +E +</text> +<rect x="19793.5" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19795" y="393" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="10346.25" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10348" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="12478.0" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12480" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="18767.375" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18769" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="6170.0" y="448.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6172" y="457" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="9592.0" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9594" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="14126.5" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14128" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="20575.5" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20577" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2496.25" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2498" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="8347.75" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8349" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="19977.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19979" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="8791.25" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8793" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="16067.5" y="448.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16069" y="457" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="20278.0" y="256.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20280" y="265" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="19320.5" y="448.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19322" y="457" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="1952.75" y="256.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1954" y="265" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="4694.125" y="160.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4696" y="169" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="13317.75" y="512.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13319" y="521" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="10527.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10529" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="13251.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13253" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9014.75" y="448.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9016" y="457" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="16885.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16887" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="14361.5" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14363" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="4700.0" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4702" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="12675.0" y="352.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12677" y="361" style="font-family:sans-serif;font-size:10px;"> +B +</text> +<rect x="1145.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1147" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="13377.0" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13379" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="7020.5" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7022" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="5609.5" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5611" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="12350.25" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12352" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9062.75" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9064" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="9148.0" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9150" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="10404.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10406" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="4959.0" y="352.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4961" y="361" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="7037.0" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7039" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="20124.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20126" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17800.875" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17802" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="20242.5" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20244" y="233" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1520.5" y="352.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1522" y="361" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="14537.375" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14539" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="5397.0" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5399" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="17085.0" y="448.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17087" y="457" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="17200.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17202" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="9716.25" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9718" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="17975.0" y="512.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17977" y="521" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="7452.5" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7454" y="425" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="16611.5" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16613" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="13929.5" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13931" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="12394.25" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12396" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="16667.575" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16669" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="6920.0" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6922" y="329" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="13377.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13379" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="8818.75" y="512.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8820" y="521" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="13180.0" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13182" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="4184.5625" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4186" y="105" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="8472.9" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8474" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="18569.875" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18571" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="11613.75" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11615" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="18452.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18454" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="5991.0" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5993" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="2301.25" y="416.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2303" y="425" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="15294.25" y="320.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15296" y="329" style="font-family:sans-serif;font-size:10px;"> +inr +</text> +<rect x="3603.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3605" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17645.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17647" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18237.0" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18239" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="15376.25" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15378" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="19412.75" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19414" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="16159.5" y="448.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16161" y="457" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="4711.0" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4713" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="8245.75" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8247" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2983.75" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2985" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="9212.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9214" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="593.75" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="595" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12130.0" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12132" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1758.71875" y="96.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1760" y="105" style="font-family:sans-serif;font-size:10px;"> +induction +</text> +<rect x="3682.0" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3684" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="15410.75" y="256.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15412" y="265" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="10725.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10727" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="15305.75" y="256.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15307" y="265" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="17993.75" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17995" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="14622.0" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14624" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="9769.75" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9771" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1223.0" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1225" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="7600.75" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7602" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3789.25" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3791" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="14903.5" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14905" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="19789.75" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19791" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="10547.0" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10549" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="10345.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10347" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="12867.25" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12869" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="14046.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14048" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="16482.25" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16484" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3662.25" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3664" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="13808.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13810" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="16056.1875" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16058" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="2802.0" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2804" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="16416.125" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16418" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3243.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3245" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9455.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9457" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="19785.75" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19787" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="7408.5" y="416.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7410" y="425" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3829.75" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3831" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2844.25" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2846" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="19380.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19382" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="20623.5" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20625" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="7393.5" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7395" y="425" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="6302.75" y="288.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6304" y="297" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="15780.5" y="320.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15782" y="329" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="9731.25" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9733" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="14480.5" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14482" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="12386.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12388" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="19285.0" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19287" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="10586.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10588" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="17225.5" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17227" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="10592.75" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10594" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="3080.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3082" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11471.75" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11473" y="361" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="12388.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12390" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="13331.25" y="576.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13333" y="585" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="9162.75" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9164" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="9361.5" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9363" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="21038.25" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21040" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="15351.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15353" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="21636.5" y="192.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21638" y="201" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="2738.0" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2740" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="8709.25" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8711" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="10179.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10181" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="20844.55" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20846" y="169" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="20957.25" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20959" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="17245.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17247" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12284.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12286" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="5411.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5413" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="10542.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10544" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13465.6" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13467" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="4419.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4421" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="16152.25" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16154" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="4178.0" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4180" y="169" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1665.5" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1667" y="265" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="7739.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7741" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="5599.5" y="352.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5601" y="361" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="8544.25" y="448.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8546" y="457" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="9214.0" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9216" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="531.75" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="533" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="815.75" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="817" y="297" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="7812.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7814" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13430.3" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13432" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="14112.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14114" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="18259.8125" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18261" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2693.0" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2695" y="265" style="font-family:sans-serif;font-size:10px;"> +p1 +</text> +<rect x="19351.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19353" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="19665.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19667" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="6882.0" y="288.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6884" y="297" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="15686.5" y="320.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15688" y="329" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="20043.5" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20045" y="233" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="15625.0" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15627" y="361" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="17782.0" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17784" y="393" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="13618.5" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13620" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="18191.0" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18193" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="17420.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17422" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="21303.75" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21305" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3937.25" y="224.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3939" y="233" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="8323.25" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8325" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="7105.75" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7107" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2454.0" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2456" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="152.75" y="64.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="154" y="73" style="font-family:sans-serif;font-size:10px;"> +lemmaDef +</text> +<rect x="17813.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17815" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="8351.75" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8353" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2283.25" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2285" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="6208.5" y="288.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6210" y="297" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="4546.5" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4548" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="16201.75" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16203" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17239.0" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17241" y="425" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="9783.25" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9785" y="425" style="font-family:sans-serif;font-size:10px;"> +E +</text> +<rect x="21425.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21427" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="21838.25" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21840" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3563.25" y="320.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3565" y="329" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="13142.2" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13144" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="4236.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4238" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="18583.5" y="448.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18585" y="457" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="9971.75" y="352.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9973" y="361" style="font-family:sans-serif;font-size:10px;"> +inr +</text> +<rect x="16819.5" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16821" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3729.0" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3731" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="9353.5" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9355" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="8530.75" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8532" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3710.25" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3712" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="7982.0" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7984" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="521.875" y="160.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="523" y="169" style="font-family:sans-serif;font-size:10px;"> +IA +</text> +<rect x="18024.5" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18026" y="393" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="9195.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9197" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="20731.0" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20733" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="4964.0" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4966" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19037.0" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19039" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="18196.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18198" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13451.6" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13453" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="13509.5" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13511" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="8592.25" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8594" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="10111.75" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10113" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3191.75" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3193" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="10223.75" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10225" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1556.0" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1558" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="2248.5" y="160.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2250" y="169" style="font-family:sans-serif;font-size:10px;"> +IS +</text> +<rect x="652.75" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="654" y="297" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="2804.0" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2806" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="4001.75" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4003" y="265" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="18853.25" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18855" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="12193.0" y="384.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12195" y="393" style="font-family:sans-serif;font-size:10px;"> +N +</text> +<rect x="15592.5" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15594" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="21321.25" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21323" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="3138.75" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3140" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="6839.75" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6841" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="5555.5" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5557" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7337.0" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7339" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19694.25" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19696" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="21089.25" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21091" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="4913.5" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4915" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="18654.0" y="544.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18656" y="553" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="9068.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9070" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="16005.25" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16007" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="16888.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16890" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="14647.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14649" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="21242.7" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21244" y="169" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="2668.25" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2670" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18369.875" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18371" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="18987.5" y="480.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18989" y="489" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="7368.5" y="416.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7370" y="425" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="18670.0" y="576.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18672" y="585" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="13278.0" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13280" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1028.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1030" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="15074.0" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15076" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="14229.5" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14231" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="2784.25" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2786" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="20141.5" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20143" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="20791.0" y="384.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20793" y="393" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="6719.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6721" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7051.0" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7053" y="169" style="font-family:sans-serif;font-size:10px;"> +ind_case +</text> +<rect x="2928.5" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2930" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="18070.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18072" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12297.5" y="448.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12299" y="457" style="font-family:sans-serif;font-size:10px;"> +E +</text> +<rect x="7052.5" y="352.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7054" y="361" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="16967.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16969" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="8395.75" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8397" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="16287.0" y="352.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16289" y="361" style="font-family:sans-serif;font-size:10px;"> +inr +</text> +<rect x="5865.75" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5867" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="21807.25" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21809" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="15999.5" y="416.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16001" y="425" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="17338.208333333332" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17340" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="17201.0" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17203" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9675.0" y="160.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9677" y="169" style="font-family:sans-serif;font-size:10px;"> +IA +</text> +<rect x="8058.5" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8060" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="4817.0" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4819" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="12559.25" y="352.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12561" y="361" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="14980.25" y="192.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14982" y="201" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="20136.0" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20138" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="6004.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6006" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="10164.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10166" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="17327.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17329" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="8908.25" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8910" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="11720.25" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11722" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="14723.25" y="512.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14725" y="521" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="16217.5" y="448.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16219" y="457" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="18082.5" y="448.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18084" y="457" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="15653.5" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15655" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="6733.75" y="384.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6735" y="393" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="2859.75" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2861" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11955.75" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11957" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12911.5" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12913" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="12999.5" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13001" y="329" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="17511.5" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17513" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="18643.0" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18645" y="521" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="8765.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8767" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="10513.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10515" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3018.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3020" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="18537.875" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18539" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="72.75" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="74" y="201" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="21955.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21957" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="21443.25" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21445" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="8144.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8146" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="14166.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14168" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="6615.75" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6617" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="7503.5" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7505" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9132.75" y="512.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9134" y="521" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="5690.0" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5692" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="6674.25" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6676" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="1906.25" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1908" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="18973.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18975" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="12430.0" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12432" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="16196.25" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16198" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="15402.25" y="384.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15404" y="393" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="20507.0" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20509" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="8743.25" y="448.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8745" y="457" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="12488.0" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12490" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="6811.25" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6813" y="361" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="3680.25" y="352.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3682" y="361" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="9581.75" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9583" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="17640.0" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17642" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="17187.0" y="448.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17189" y="457" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3402.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3404" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1889.75" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1891" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="4148.25" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4150" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="19822.5" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19824" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="8287.5" y="256.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8289" y="265" style="font-family:sans-serif;font-size:10px;"> +IH +</text> +<rect x="11905.75" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11907" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1101.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1103" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12919.5" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12921" y="265" style="font-family:sans-serif;font-size:10px;"> +s0 +</text> +<rect x="18055.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18057" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="13939.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13941" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11345.75" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11347" y="393" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="1376.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1378" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="12008.0" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12010" y="425" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="5338.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5340" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="11191.25" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11193" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="5282.0" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5284" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="19056.0" y="416.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19058" y="425" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="21203.75" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21205" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="21348.75" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21350" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="11374.75" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11376" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="12334.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12336" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="15780.0" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15782" y="265" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="20936.0" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20938" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="17213.0" y="512.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17215" y="521" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="18257.5" y="352.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18259" y="361" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="10012.25" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10014" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="4205.25" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4207" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="542.875" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="544" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="5461.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5463" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11040.75" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11042" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="12730.25" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12732" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="14369.5" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14371" y="265" style="font-family:sans-serif;font-size:10px;"> +s1 +</text> +<rect x="13992.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13994" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="19289.625" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19291" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3075.25" y="448.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3077" y="457" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="17623.0" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17625" y="521" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="6178.5" y="288.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6180" y="297" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1153.0" y="160.0" width="74.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1155" y="169" style="font-family:sans-serif;font-size:10px;"> +transformation +</text> +<rect x="4210.0" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4212" y="201" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="13228.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13230" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="938.25" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="940" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="19717.0" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19719" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="5641.666666666667" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5643" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="17168.5" y="352.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17170" y="361" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="16233.5" y="480.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16235" y="489" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="12178.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12180" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="16481.625" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16483" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="19143.5" y="288.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19145" y="297" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="19000.5" y="544.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19002" y="553" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="13601.5" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13603" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="9222.5" y="448.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9224" y="457" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="3456.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3458" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3597.75" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3599" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="13764.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13766" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="10924.75" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10926" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="3257.75" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3259" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="4990.5" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4992" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="11754.75" y="352.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11756" y="361" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="18717.0" y="512.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18719" y="521" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="8619.75" y="512.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8621" y="521" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="8161.25" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8163" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19974.5" y="192.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19976" y="201" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="20385.5" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20387" y="201" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="18322.25" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18324" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="1055.25" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1057" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="20533.5" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20535" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2331.25" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2333" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="7997.0" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7999" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19451.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19453" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="12017.75" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12019" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="18221.8125" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18223" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="4480.75" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4482" y="201" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="8859.375" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8861" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="6057.0" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6059" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="10029.25" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10031" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19144.0" y="384.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19146" y="393" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3164.75" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3166" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="20673.0" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20675" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="21121.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21123" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1719.0" y="320.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1721" y="329" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="9423.5" y="288.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9425" y="297" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="4134.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4136" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8610.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8612" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="5991.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5993" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="13309.5" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13311" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="20226.0" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20228" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="6715.75" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6717" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="14992.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14994" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="16788.0" y="448.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16790" y="457" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="4473.25" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4475" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="15456.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15458" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17628.5" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17630" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="21543.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21545" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19212.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19214" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="8336.75" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8338" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="20475.0" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20477" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="7871.5" y="384.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7873" y="393" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="2390.625" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2392" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="11783.75" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11785" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2379.25" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2381" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="21602.75" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21604" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="589.75" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="591" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="19101.0" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19103" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="12665.75" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12667" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="116.75" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="118" y="265" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="9641.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9643" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="16132.75" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16134" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="16893.25" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16895" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="15736.5" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15738" y="329" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="9395.75" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9397" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="6757.5" y="288.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6759" y="297" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="20178.0" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20180" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="10977.75" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10979" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="7704.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7706" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="12119.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12121" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="4607.0" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4609" y="265" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="287.5" y="192.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="289" y="201" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="8749.75" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8751" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3799.25" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3801" y="297" style="font-family:sans-serif;font-size:10px;"> +b +</text> +<rect x="5588.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5590" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="11871.25" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11873" y="297" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="6126.25" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6128" y="265" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="14948.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14950" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="10023.75" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10025" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="8725.75" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8727" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1656.0" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1658" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2855.75" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2857" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="6040.5" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6042" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="3666.25" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3668" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="21058.25" y="256.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21060" y="265" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="1176.75" y="352.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1178" y="361" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="21606.75" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21608" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="5063.0" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5065" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9908.75" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9910" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="15814.5" y="320.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15816" y="329" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="17187.5" y="352.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17189" y="361" style="font-family:sans-serif;font-size:10px;"> +inr +</text> +<rect x="2459.5" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2461" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="6993.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6995" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2471.75" y="352.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2473" y="361" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="18765.5" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18767" y="393" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="7079.0" y="416.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7081" y="425" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="8214.25" y="512.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8216" y="521" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="3997.125" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3999" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="19859.75" y="512.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19861" y="521" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="12029.75" y="320.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12031" y="329" style="font-family:sans-serif;font-size:10px;"> +inr +</text> +<rect x="16865.5" y="448.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16867" y="457" style="font-family:sans-serif;font-size:10px;"> +inr +</text> +<rect x="18993.0" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18995" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7256.5" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7258" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2218.75" y="320.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2220" y="329" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="6872.75" y="320.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6874" y="329" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="20109.5" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20111" y="201" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="21174.75" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21176" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="7488.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7490" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="16957.5" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16959" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="14293.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14295" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7605.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7607" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="9409.5" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9411" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="18646.5" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18648" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1113.75" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1115" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="1566.0" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1568" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="9122.25" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9124" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1043.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1045" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18884.5" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18886" y="521" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="21771.75" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21773" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3016.75" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3018" y="393" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="919.75" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="921" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8994.333333333334" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8996" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="12087.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12089" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17940.5" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17942" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="21052.25" y="160.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21054" y="169" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="2507.75" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2509" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="6962.5" y="352.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6964" y="361" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="11242.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11244" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="12837.5" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12839" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="18714.0" y="448.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18716" y="457" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="405.0" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="407" y="265" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="21681.75" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21683" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12169.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12171" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="13444.25" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13446" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="16841.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16843" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="170.5" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="172" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7766.5" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7768" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="19530.5" y="448.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19532" y="457" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="17409.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17411" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="4867.5" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4869" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="15606.25" y="288.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15608" y="297" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="9320.25" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9322" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="14812.5" y="288.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14814" y="297" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="15750.5" y="320.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15752" y="329" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1879.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1881" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2188.75" y="320.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2190" y="329" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="3177.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3179" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3753.75" y="352.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3755" y="361" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="15644.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15646" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="14329.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14331" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="118.25" y="96.0" width="34.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="120" y="105" style="font-family:sans-serif;font-size:10px;"> +lemma +</text> +<rect x="16083.5" y="480.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16085" y="489" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="20763.0" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20765" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="16265.5" y="416.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16267" y="425" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="12083.75" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12085" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="10998.75" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11000" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1590.75" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1592" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="329.5" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="331" y="233" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="18617.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18619" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="10750.2109375" y="0.0" width="30.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10752" y="9" style="font-family:sans-serif;font-size:10px;"> +proof +</text> +<rect x="8703.25" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8705" y="265" style="font-family:sans-serif;font-size:10px;"> +rl +</text> +<rect x="9187.5" y="320.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9189" y="329" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="21437.5" y="192.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21439" y="201" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="14271.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14273" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="10005.75" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10007" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="532.125" y="192.0" width="55.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="534" y="201" style="font-family:sans-serif;font-size:10px;"> +zu·zeigen: +</text> +<rect x="12222.0" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12224" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="16025.5" y="480.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16027" y="489" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="13672.0" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13674" y="265" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="18566.0" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18568" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2486.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2488" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="10393.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10395" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="17105.0" y="448.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17107" y="457" style="font-family:sans-serif;font-size:10px;"> +inr +</text> +<rect x="17735.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17737" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="14803.0" y="320.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14805" y="329" style="font-family:sans-serif;font-size:10px;"> +NatTree +</text> +<rect x="3905.75" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3907" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="16551.125" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16553" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="21677.75" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21679" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="9104.75" y="448.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9106" y="457" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3452.75" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3454" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7821.75" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7823" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="21729.75" y="256.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21731" y="265" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="20277.0" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20279" y="169" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1051.75" y="384.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1053" y="393" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="6331.25" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6333" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="9956.75" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9958" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="9021.0" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9023" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="19669.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19671" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9593.0" y="288.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9595" y="297" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="20719.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20721" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="16760.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16762" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="11177.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11179" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2042.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2044" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="14934.0" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14936" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="8149.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8151" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="2663.25" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2665" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3408.75" y="448.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3410" y="457" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="12401.0" y="384.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12403" y="393" style="font-family:sans-serif;font-size:10px;"> +N +</text> +<rect x="12708.0" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12710" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3394.75" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3396" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8158.0" y="288.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8160" y="297" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="5270.0" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5272" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="8782.875" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8784" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="12363.75" y="512.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12365" y="521" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="12872.75" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12874" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19834.0" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19836" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1508.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1510" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="20368.0" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20370" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="21009.0625" y="96.0" width="74.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21011" y="105" style="font-family:sans-serif;font-size:10px;"> +transformation +</text> +<rect x="21865.25" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21867" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="15217.25" y="224.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15219" y="233" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="15487.25" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15489" y="329" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="20555.5" y="160.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20557" y="169" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="4146.75" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4148" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="13827.5" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13829" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13258.0" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13260" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="2555.75" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2557" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="7201.5625" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7203" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="18600.5" y="448.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18602" y="457" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="21914.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21916" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="5349.0" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5351" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="439.5" y="224.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="441" y="233" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="1281.5" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1283" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="6089.0" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6091" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="6524.25" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6526" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="12544.5" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12546" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="18643.75" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18645" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1408.0" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1410" y="265" style="font-family:sans-serif;font-size:10px;"> +rl +</text> +<rect x="12346.25" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12348" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="17626.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17628" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="710.75" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="712" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="12896.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12898" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="19420.75" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19422" y="265" style="font-family:sans-serif;font-size:10px;"> +s2 +</text> +<rect x="20047.5" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20049" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="6301.25" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6303" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="14590.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14592" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="18687.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18689" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="14124.5" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14126" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="18842.0" y="448.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18844" y="457" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="15014.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15016" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7645.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7647" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="21486.0" y="160.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21488" y="169" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="17124.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17126" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="17727.05" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17729" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="21728.583333333336" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21730" y="169" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="13034.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13036" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13497.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13499" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="5059.0" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5061" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="7750.5" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7752" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="17197.0" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17199" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2942.5" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2944" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="9072.75" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9074" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="16917.5" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16919" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="16545.625" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16547" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="4732.5" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4734" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2056.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2058" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11776.0" y="416.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11778" y="425" style="font-family:sans-serif;font-size:10px;"> +B +</text> +<rect x="15892.0" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15894" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1057.25" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1059" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="9459.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9461" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9851.75" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9853" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3737.25" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3739" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="12134.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12136" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1566.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1568" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="4372.75" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4374" y="169" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="15677.75" y="224.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15679" y="233" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="16013.5" y="416.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16015" y="425" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18439.208333333332" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18441" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="1998.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2000" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="20061.0" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20063" y="265" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="9945.25" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9947" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="20458.5" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20460" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="10360.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10362" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9592.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9594" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="14287.5" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14289" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="6373.25" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6375" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="6027.75" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6029" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="12168.15" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12170" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="16552.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16554" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="16575.625" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16577" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="683.75" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="685" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="13120.3" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13122" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="5770.5" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5772" y="265" style="font-family:sans-serif;font-size:10px;"> +p0 +</text> +<rect x="13583.0" y="448.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13585" y="457" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="9685.25" y="192.0" width="55.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9687" y="201" style="font-family:sans-serif;font-size:10px;"> +zu·zeigen: +</text> +<rect x="21741.0" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21743" y="201" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="19635.5" y="448.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19637" y="457" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="547.75" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="549" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="13706.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13708" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9790.25" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9792" y="297" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="19933.0" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19935" y="265" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="14696.25" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14698" y="265" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="18570.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18572" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="10073.25" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10075" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="387.5" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="389" y="233" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="17953.625" y="160.0" width="74.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17955" y="169" style="font-family:sans-serif;font-size:10px;"> +transformation +</text> +<rect x="1513.375" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1515" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="5365.0" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5367" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="8508.85" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8510" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="9857.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9859" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="5307.0" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5309" y="393" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="19441.5" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19443" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="11111.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11113" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="17612.1875" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17614" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="16326.125" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16328" y="297" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="8526.8" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8528" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="8450.75" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8452" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1573.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1575" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="12230.55" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12232" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="1703.5" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1705" y="297" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="3937.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3939" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="20083.0" y="128.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20085" y="137" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13266.0" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13268" y="265" style="font-family:sans-serif;font-size:10px;"> +s1 +</text> +<rect x="15924.125" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15926" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="7296.875" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7298" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17591.0" y="576.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17593" y="585" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="3982.5" y="192.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3984" y="201" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="16291.5" y="480.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16293" y="489" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="11739.75" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11741" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="14617.083333333334" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14619" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="15302.3125" y="128.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15304" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_hyp +</text> +<rect x="9725.25" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9727" y="425" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="9912.75" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9914" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12743.75" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12745" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="14432.0" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14434" y="265" style="font-family:sans-serif;font-size:10px;"> +rl +</text> +<rect x="14580.0" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14582" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="905.75" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="907" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="13750.5" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13752" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="17622.0" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17624" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="13179.125" y="160.0" width="74.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13181" y="169" style="font-family:sans-serif;font-size:10px;"> +transformation +</text> +<rect x="18781.375" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18783" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="21458.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21460" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12699.75" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12701" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="10493.75" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10495" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="8671.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8673" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3785.25" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3787" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="10845.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10847" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="13304.0" y="480.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13306" y="489" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="13396.25" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13398" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3116.75" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3118" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="18064.25" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18066" y="265" style="font-family:sans-serif;font-size:10px;"> +rl +</text> +<rect x="14875.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14877" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="8397.0" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8399" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="6494.25" y="320.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6496" y="329" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="11424.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11426" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="7214.5" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7216" y="297" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="9165.5" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9167" y="265" style="font-family:sans-serif;font-size:10px;"> +rl +</text> +<rect x="5631.0" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5633" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="16438.25" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16440" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8395.0" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8397" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="12549.625" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12551" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="14200.3" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14202" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="1614.5" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1616" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="3647.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3649" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3741.25" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3743" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11405.25" y="448.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11407" y="457" style="font-family:sans-serif;font-size:10px;"> +E +</text> +<rect x="20696.375" y="128.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20698" y="137" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="2912.75" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2914" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19115.0" y="416.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19117" y="425" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="2120.25" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2122" y="265" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="10129.75" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10131" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="14903.8125" y="160.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14905" y="169" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="11900.25" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11902" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="19226.0" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19228" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="11456.25" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11458" y="329" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="997.25" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="999" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="21412.25" y="256.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21414" y="265" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="16683.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16685" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="6377.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6379" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9286.5" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9288" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="7712.234375" y="128.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7714" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_step +</text> +<rect x="346.0" y="256.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="348" y="265" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="9696.75" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9698" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="4342.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4344" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3599.75" y="448.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3601" y="457" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="17689.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17691" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="21788.25" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21790" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="7896.0" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7898" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="17424.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17426" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13385.25" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13387" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="15320.0625" y="160.0" width="19.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15322" y="169" style="font-family:sans-serif;font-size:10px;"> +IH2 +</text> +<rect x="17295.5" y="416.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17297" y="425" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="977.25" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="979" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="15955.5" y="416.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15957" y="425" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8526.75" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8528" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="16679.5" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16681" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="17073.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17075" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="21100.25" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21102" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2788.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2790" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19407.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19409" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="4759.0" y="352.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4761" y="361" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="12163.15" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12165" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="15252.25" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15254" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="3148.25" y="256.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3150" y="265" style="font-family:sans-serif;font-size:10px;"> +IH +</text> +<rect x="21489.5" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21491" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9112.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9114" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="11771.75" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11773" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="13392.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13394" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="4491.25" y="320.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4493" y="329" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="4092.5625" y="96.0" width="34.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4094" y="105" style="font-family:sans-serif;font-size:10px;"> +lemma +</text> +<rect x="12897.75" y="512.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12899" y="521" style="font-family:sans-serif;font-size:10px;"> +E +</text> +<rect x="13146.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13148" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="12081.75" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12083" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="13292.5" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13294" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="17670.0" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17672" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="9254.0" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9256" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="11315.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11317" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="698.75" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="700" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18393.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18395" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="19843.75" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19845" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="16582.3125" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16584" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="6917.0" y="288.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6919" y="297" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="9536.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9538" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13367.25" y="384.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13369" y="393" style="font-family:sans-serif;font-size:10px;"> +B +</text> +<rect x="3724.25" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3726" y="297" style="font-family:sans-serif;font-size:10px;"> +a +</text> +<rect x="19810.5" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19812" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="20182.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20184" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="20022.3125" y="96.0" width="59.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20024" y="105" style="font-family:sans-serif;font-size:10px;"> +KommAsso +</text> +<rect x="18264.0" y="512.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18266" y="521" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="15236.75" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15238" y="265" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="19889.0" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19891" y="201" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="11072.75" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11074" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="19868.5" y="224.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19870" y="233" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="2834.0" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2836" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2159.0" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2161" y="361" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="11602.25" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11604" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="8486.9" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8488" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="2873.75" y="448.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2875" y="457" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="2674.25" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2676" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="8898.75" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8900" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="12542.75" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12544" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3255.75" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3257" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2201.75" y="288.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2203" y="297" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="12648.875" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12650" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="21249.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21251" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8055.0" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8057" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9802.0" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9804" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="4296.75" y="192.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4298" y="201" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="5933.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5935" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="10053.75" y="352.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10055" y="361" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="9413.5" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9415" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="10067.75" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10069" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="4785.5" y="416.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4787" y="425" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="1847.8125" y="128.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1849" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_hyp +</text> +<rect x="3986.25" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3988" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="2903.75" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2905" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3889.25" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3891" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="5457.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5459" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2975.75" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2977" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="8759.75" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8761" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2294.75" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2296" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1222.25" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1224" y="297" style="font-family:sans-serif;font-size:10px;"> +y +</text> +<rect x="18129.5" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18131" y="393" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="4958.5" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4960" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="6426.0" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6428" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2272.25" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2274" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="12472.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12474" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3018.0" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3020" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="7620.5" y="352.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7622" y="361" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="2685.0" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2687" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="8632.75" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8634" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="17275.5" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17277" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="14060.5" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14062" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="13486.9" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13488" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="8143.75" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8145" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8409.75" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8411" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8546.75" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8548" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="11663.25" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11665" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="18899.5" y="512.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18901" y="521" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1242.5" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1244" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="20608.5" y="160.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20610" y="169" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="4642.0" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4644" y="361" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="19468.0" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19470" y="521" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="9897.75" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9899" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3341.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3343" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="963.75" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="965" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="16413.625" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16415" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="8904.25" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8906" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12264.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12266" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="14750.0" y="320.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14752" y="329" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="14759.5" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14761" y="265" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="8992.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8994" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="12525.25" y="448.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12527" y="457" style="font-family:sans-serif;font-size:10px;"> +B +</text> +<rect x="800.75" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="802" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="12576.5" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12578" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="19068.0" y="480.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19070" y="489" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="19483.0" y="512.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19485" y="521" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17611.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17613" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="14877.8125" y="160.0" width="19.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14879" y="169" style="font-family:sans-serif;font-size:10px;"> +IH1 +</text> +<rect x="8560.75" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8562" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1598.0" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1600" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="16115.5" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16117" y="425" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="480.5" y="320.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="482" y="329" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="4125.5625" y="64.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4127" y="73" style="font-family:sans-serif;font-size:10px;"> +lemmaDef +</text> +<rect x="18347.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18349" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2139.75" y="288.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2141" y="297" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="12317.25" y="448.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12319" y="457" style="font-family:sans-serif;font-size:10px;"> +B +</text> +<rect x="19129.5" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19131" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="10260.75" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10262" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="9521.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9523" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="20736.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20738" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18611.75" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18613" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="18315.5" y="416.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18317" y="425" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="18171.5" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18173" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="11973.75" y="256.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11975" y="265" style="font-family:sans-serif;font-size:10px;"> +r1 +</text> +<rect x="3593.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3595" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9060.75" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9062" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7062.5" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7064" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="10127.125" y="128.0" width="50.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10129" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_basis +</text> +<rect x="5661.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5663" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1614.0" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1616" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="9073.25" y="512.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9075" y="521" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="17069.0" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17071" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="19004.5" y="512.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19006" y="521" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9007.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9009" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12270.25" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12272" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="21352.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21354" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2425.25" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2427" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="21102.125" y="128.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21104" y="137" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="4598.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4600" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="4990.0" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4992" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="7568.75" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7570" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="11261.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11263" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="3256.25" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3258" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="14687.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14689" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="16353.625" y="192.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16355" y="201" style="font-family:sans-serif;font-size:10px;"> +start_tree +</text> +<rect x="19759.0" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19761" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="4626.5" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4628" y="329" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="21216.55" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21218" y="201" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="8607.25" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8609" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2619.0" y="192.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2621" y="201" style="font-family:sans-serif;font-size:10px;"> +start_tree +</text> +<rect x="1456.0" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1458" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="19993.0" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19995" y="265" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="14695.75" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14697" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="20521.5" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20523" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7650.5" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7652" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2182.25" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2184" y="265" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="19016.5" y="576.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19018" y="585" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="6288.75" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6290" y="297" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="19289.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19291" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11500.25" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11502" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="11950.25" y="384.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11952" y="393" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="19650.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19652" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="18391.5" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18393" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="7291.0" y="352.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7293" y="361" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="12759.25" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12761" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="12280.0" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12282" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="20867.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20869" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="13028.5" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13030" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="10811.25" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10813" y="265" style="font-family:sans-serif;font-size:10px;"> +rl +</text> +<rect x="15771.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15773" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="8818.25" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8820" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="9365.5" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9367" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7808.5" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7810" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="10531.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10533" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3830.25" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3832" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="4130.75" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4132" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="13691.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13693" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="15688.0" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15690" y="361" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="15697.5" y="288.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15699" y="297" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="11949.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11951" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="13030.5" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13032" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="9813.75" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9815" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="7656.5" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7658" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="12336.5" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12338" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="8958.75" y="416.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8960" y="425" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="10630.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10632" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="18032.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18034" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="14637.5" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14639" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="17746.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17748" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="447.5" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="449" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="14283.5" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14285" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="15692.0" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15694" y="265" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="17304.5" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17306" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="13413.75" y="448.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13415" y="457" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="18775.0" y="576.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18777" y="585" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="16090.75" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16092" y="297" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="9631.25" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9633" y="329" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="19157.0" y="448.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19159" y="457" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="20480.5" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20482" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="21367.0" y="160.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21369" y="169" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="1472.5" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1474" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="17491.5" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17493" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1681.0" y="224.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1683" y="233" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="17824.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17826" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="9017.0" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9019" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="21176.4" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21178" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="8094.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8096" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2682.5" y="128.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2684" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_step +</text> +<rect x="4178.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4180" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="6161.25" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6163" y="265" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="12111.75" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12113" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="7323.375" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7325" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="12141.95" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12143" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1164.25" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1166" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8278.0" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8280" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="17839.5" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17841" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12982.0" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12984" y="265" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="17300.5" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17302" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="3223.75" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3225" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="12721.5" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12723" y="425" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="13003.75" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13005" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="18796.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18798" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="8948.25" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8950" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="6435.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6437" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="21029.0" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21031" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="5867.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5869" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="17494.5" y="448.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17496" y="457" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="8305.75" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8307" y="393" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="12843.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12845" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3301.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3303" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19576.5" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19578" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19693.5" y="512.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19695" y="521" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="13654.5" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13656" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="8661.25" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8663" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="9549.75" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9551" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="6809.75" y="320.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6811" y="329" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="21116.25" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21118" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="21262.25" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21264" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="13715.0" y="384.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13717" y="393" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="17069.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17071" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17965.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17967" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="4745.125" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4747" y="169" style="font-family:sans-serif;font-size:10px;"> +ind_case +</text> +<rect x="20981.0" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20983" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="9021.25" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9023" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="10859.75" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10861" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="16829.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16831" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18485.541666666668" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18487" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="17573.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17575" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="11336.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11338" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="6147.5" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6149" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="21802.25" y="160.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21804" y="169" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="13263.5" y="448.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13265" y="457" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="16321.0" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16323" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="17005.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17007" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="21619.25" y="288.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21621" y="297" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="16533.625" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16535" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3297.75" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3299" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="8551.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8553" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="18719.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18721" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="16167.25" y="352.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16169" y="361" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="19193.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19195" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="15922.5" y="416.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15924" y="425" style="font-family:sans-serif;font-size:10px;"> +N +</text> +<rect x="11362.75" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11364" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="16499.125" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16501" y="265" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="21650.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21652" y="233" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="19670.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19672" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13089.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13091" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="9707.75" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9709" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="10971.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10973" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="17704.5" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17706" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="18533.875" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18535" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="742.75" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="744" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="5212.5" y="192.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5214" y="201" style="font-family:sans-serif;font-size:10px;"> +start_tree +</text> +<rect x="21695.25" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21697" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="478.25" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="480" y="265" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="18811.375" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18813" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1587.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1589" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="6178.9296875" y="64.0" width="58.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6180" y="73" style="font-family:sans-serif;font-size:10px;"> +singleProof +</text> +<rect x="16213.25" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16215" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7026.25" y="192.0" width="55.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7028" y="201" style="font-family:sans-serif;font-size:10px;"> +zu·zeigen: +</text> +<rect x="17828.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17830" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19519.0" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19521" y="393" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="21366.75" y="320.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21368" y="329" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="7382.75" y="352.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7384" y="361" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3845.25" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3847" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="4568.25" y="224.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4570" y="233" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="15893.125" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15895" y="297" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="20594.5" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20596" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="13586.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13588" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="10779.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10781" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3496.75" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3498" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="5509.5" y="352.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5511" y="361" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="5730.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5732" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="19725.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19727" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="10351.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10353" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12913.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12915" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3805.25" y="384.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3807" y="393" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="21293.0" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21295" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="6763.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6765" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="6420.5" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6422" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="7798.5" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7800" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1227.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1229" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="13033.25" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13035" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="6778.75" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6780" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="3478.75" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3480" y="265" style="font-family:sans-serif;font-size:10px;"> +L2 +</text> +<rect x="18873.0" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18875" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="8454.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8456" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="10943.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10945" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="14909.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14911" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18543.375" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18545" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17051.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17053" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="377.5" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="379" y="201" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="17588.0" y="384.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17590" y="393" style="font-family:sans-serif;font-size:10px;"> +inr +</text> +<rect x="11844.75" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11846" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1937.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1939" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="4577.5" y="320.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4579" y="329" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="4436.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4438" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12880.25" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12882" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="12778.291666666666" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12780" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="20517.5" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20519" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="4088.75" y="256.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4090" y="265" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="10305.75" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10307" y="329" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="1259.5" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1261" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="1704.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1706" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="5180.0" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5182" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="21764.416666666664" y="160.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21766" y="169" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="11044.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11046" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19479.0" y="544.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19481" y="553" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1337.5" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1339" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="9696.0" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9698" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="12993.5" y="544.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12995" y="553" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="7951.0" y="352.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7953" y="361" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="18759.0" y="544.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18761" y="553" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="6795.75" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6797" y="329" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="19961.5" y="224.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19963" y="233" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="648.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="650" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="9604.75" y="224.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9606" y="233" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="9994.75" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9996" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="5170.5" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5172" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="14480.0" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14482" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="11309.75" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11311" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="11088.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11090" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="6053.0" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6055" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="870.25" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="872" y="361" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="13346.0" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13348" y="329" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="5662.083333333333" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5664" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="14078.0" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14080" y="265" style="font-family:sans-serif;font-size:10px;"> +rl +</text> +<rect x="17534.5" y="576.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17536" y="585" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="15192.25" y="320.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15194" y="329" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="15940.5" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15942" y="425" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="5285.0" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5287" y="361" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="13723.5" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13725" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="2287.25" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2289" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="14112.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14114" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="6362.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6364" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3615.0" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3617" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="20102.3125" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20104" y="105" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="11195.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11197" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="20259.0" y="256.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20261" y="265" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="21853.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21855" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="15963.625" y="352.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15965" y="361" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="11256.75" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11258" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="3120.75" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3122" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7457.5" y="352.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7459" y="361" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="5431.0" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5433" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="14097.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14099" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="13559.5" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13561" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="17063.5" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17065" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="17245.0" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17247" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="13527.5" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13529" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="20001.5" y="192.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20003" y="201" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="11599.75" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11601" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7422.5" y="480.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7424" y="489" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="4525.25" y="288.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4527" y="297" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="1537.75" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1539" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="10740.75" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10742" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="12275.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12277" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="963.234375" y="32.0" width="34.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="965" y="41" style="font-family:sans-serif;font-size:10px;"> +lemma +</text> +<rect x="1194.0" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1196" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="14697.0" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14699" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="17065.5" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17067" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="18441.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18443" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="11651.0" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11653" y="425" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="12558.25" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12560" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="14843.8125" y="160.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14845" y="169" style="font-family:sans-serif;font-size:10px;"> +IH +</text> +<rect x="11294.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11296" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="11584.75" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11586" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1762.75" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1764" y="265" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="18488.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18490" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2545.75" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2547" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="13853.25" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13855" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="14685.5" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14687" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="12833.5" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12835" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="17080.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17082" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8127.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8129" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="15862.75" y="160.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15864" y="169" style="font-family:sans-serif;font-size:10px;"> +IS +</text> +<rect x="7911.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7913" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="10940.75" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10942" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="846.75" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="848" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="17346.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17348" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13676.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13678" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="18021.0" y="512.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18023" y="521" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="932.25" y="352.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="934" y="361" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="873.75" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="875" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="101.25" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="103" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="17630.5" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17632" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="14184.0" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14186" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="6804.25" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6806" y="265" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="2724.0" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2726" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3581.75" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3583" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="12229.75" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12231" y="329" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="15983.125" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15985" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="6861.375" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6863" y="265" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1390.5" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1392" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="7017.0" y="160.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7019" y="169" style="font-family:sans-serif;font-size:10px;"> +IS +</text> +<rect x="16833.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16835" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="10313.75" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10315" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="8422.25" y="448.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8424" y="457" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="18420.5" y="416.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18422" y="425" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="5272.5" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5274" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="10233.75" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10235" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="14414.5" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14416" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="17639.5" y="448.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17641" y="457" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="9210.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9212" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17378.0" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17380" y="393" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="6389.25" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6391" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="14496.5" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14498" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="8963.5" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8965" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="19839.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19841" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19991.5" y="224.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19993" y="233" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="12795.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12797" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2619.25" y="352.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2621" y="361" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="19727.0" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19729" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="8128.75" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8130" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2987.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2989" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="13400.25" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13402" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8453.75" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8455" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="19048.5" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19050" y="521" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3123.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3125" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="2282.5" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2284" y="169" style="font-family:sans-serif;font-size:10px;"> +ind_case +</text> +<rect x="19981.3125" y="96.0" width="34.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19983" y="105" style="font-family:sans-serif;font-size:10px;"> +lemma +</text> +<rect x="19754.083333333336" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19756" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="19483.25" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19485" y="265" style="font-family:sans-serif;font-size:10px;"> +rl +</text> +<rect x="82.25" y="224.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="84" y="233" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="19727.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19729" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="8201.75" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8203" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="4640.125" y="160.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4642" y="169" style="font-family:sans-serif;font-size:10px;"> +induction +</text> +<rect x="19422.0" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19424" y="521" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="19748.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19750" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="6205.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6207" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="16372.125" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16374" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17011.0" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17013" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2652.5" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2654" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="9866.75" y="352.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9868" y="361" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="9424.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9426" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="3118.0" y="160.0" width="74.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3120" y="169" style="font-family:sans-serif;font-size:10px;"> +transformation +</text> +<rect x="20399.0" y="224.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20401" y="233" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="8177.0" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8179" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1460.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1462" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11435.75" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11437" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1442.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1444" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="8550.75" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8552" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="13632.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13634" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19606.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19608" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8962.25" y="288.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8964" y="297" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="15395.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15397" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="20309.0" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20311" y="201" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="8823.75" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8825" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="4043.25" y="192.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4045" y="201" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="13640.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13642" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="13993.0" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13995" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="16401.0" y="480.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16403" y="489" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="20882.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20884" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="5219.5" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5221" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="14547.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14549" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="20674.5" y="160.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20676" y="169" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="13886.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13888" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="6266.25" y="224.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6268" y="233" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="3696.0" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3698" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="9714.25" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9716" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="9849.75" y="352.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9851" y="361" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="19756.75" y="448.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19758" y="457" style="font-family:sans-serif;font-size:10px;"> +N +</text> +<rect x="21484.0" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21486" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="333.5" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="335" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="14528.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14530" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="8146.25" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8148" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="15672.5" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15674" y="329" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="2773.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2775" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2262.25" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2264" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="18299.5" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18301" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="4924.5" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4926" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="834.4375" y="128.0" width="50.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="836" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_basis +</text> +<rect x="20878.0" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20880" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="19527.0" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19529" y="521" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="20731.5" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20733" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="20836.0" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20838" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="6057.5" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6059" y="393" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="17238.125" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17240" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="20940.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20942" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17017.0" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17019" y="265" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="2893.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2895" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="8617.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8619" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="17752.325" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17754" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="14775.0" y="224.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14777" y="233" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="4192.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4194" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="4019.375" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4021" y="201" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="18658.0" y="512.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18660" y="521" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13386.5" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13388" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="9673.75" y="352.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9675" y="361" style="font-family:sans-serif;font-size:10px;"> +inr +</text> +<rect x="17027.5" y="448.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17029" y="457" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="19889.625" y="128.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19891" y="137" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="18046.75" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18048" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="6476.25" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6478" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="8561.25" y="448.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8563" y="457" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="9026.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9028" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="16637.5" y="448.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16639" y="457" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="5005.0" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5007" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13917.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13919" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="19950.625" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19952" y="201" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="15888.0" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15890" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="20656.0" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20658" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="3465.25" y="448.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3467" y="457" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="17992.0" y="448.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17994" y="457" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="11897.75" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11899" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13213.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13215" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="8317.0" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8319" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2692.25" y="416.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2694" y="425" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="7088.25" y="192.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7090" y="201" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="3741.0" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3743" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="16325.0" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16327" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18286.5" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18288" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="19681.5" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19683" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12791.25" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12793" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="19632.5" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19634" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="21307.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21309" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="5423.5" y="448.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5425" y="457" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="8940.75" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8942" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="5981.0" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5983" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="18017.0" y="544.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18019" y="553" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="6348.75" y="256.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6350" y="265" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="8187.0" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8189" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="7907.5" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7909" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1060.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1062" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12780.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12782" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="19883.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19885" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="16727.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16729" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="4463.25" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4465" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="17728.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17730" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="19161.0" y="416.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19163" y="425" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="20747.85" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20749" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="5404.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5406" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="14007.5" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14009" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="21849.25" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21851" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="18288.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18290" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="21436.75" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21438" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="16310.0" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16312" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="19666.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19668" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="15968.0" y="480.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15970" y="489" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="6585.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6587" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9268.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9270" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12972.25" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12974" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="13559.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13561" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="17388.75" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17390" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3315.75" y="384.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3317" y="393" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="12052.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12054" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="14156.5" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14158" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="7150.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7152" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="8383.0" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8385" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="9685.25" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9687" y="297" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="4137.25" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4139" y="201" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="6403.8125" y="128.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6405" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_hyp +</text> +<rect x="17293.666666666668" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17295" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="21069.75" y="192.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21071" y="201" style="font-family:sans-serif;font-size:10px;"> +rl +</text> +<rect x="21870.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21872" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17564.5" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17566" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="15934.0" y="192.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15936" y="201" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="4728.5" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4730" y="425" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="18902.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18904" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="14711.75" y="224.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14713" y="233" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="11391.75" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11393" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1853.25" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1855" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1708.375" y="192.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1710" y="201" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="1660.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1662" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="16899.5" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16901" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="7398.5" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7400" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13533.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13535" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="15933.625" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15935" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="17980.25" y="256.0" width="59.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17982" y="265" style="font-family:sans-serif;font-size:10px;"> +KommAsso +</text> +<rect x="16176.0" y="480.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16178" y="489" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="7896.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7898" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="8961.75" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8963" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="4761.0" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4763" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3322.75" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3324" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="10527.75" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10529" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="11534.75" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11536" y="361" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="1189.5" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1191" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="1208.25" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1210" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="214.5" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="216" y="201" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="14754.75" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14756" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="19833.75" y="448.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19835" y="457" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="11657.75" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11659" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9548.5" y="448.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9550" y="457" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="11582.125" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11584" y="169" style="font-family:sans-serif;font-size:10px;"> +ind_case +</text> +<rect x="19363.25" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19365" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="12527.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12529" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="20309.0" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20311" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="11745.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11747" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="16625.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16627" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12884.25" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12886" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3889.25" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3891" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="8157.25" y="512.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8159" y="521" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="3047.0" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3049" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="3438.75" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3440" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="8187.75" y="448.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8189" y="457" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="6421.25" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6423" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="224.5" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="226" y="233" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="228.5" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="230" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11809.0" y="416.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11811" y="425" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11439.25" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11441" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="11964.75" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11966" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="12694.25" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12696" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="13298.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13300" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19550.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19552" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="19714.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19716" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="18888.0" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18890" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2331.25" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2333" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="14810.0" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14812" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="12964.5" y="512.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12966" y="521" style="font-family:sans-serif;font-size:10px;"> +B +</text> +<rect x="7393.0" y="384.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7395" y="393" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="19816.25" y="192.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19818" y="201" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="10962.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10964" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="19854.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19856" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="15196.125" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15198" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="16428.625" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16430" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="18296.0" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18298" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="391.5" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="393" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="15123.5" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15125" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="12679.75" y="288.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12681" y="297" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="4560.25" y="288.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4562" y="297" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="19698.75" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19700" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="4521.25" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4523" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="10327.0" y="384.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10329" y="393" style="font-family:sans-serif;font-size:10px;"> +B +</text> +<rect x="19010.0" y="416.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19012" y="425" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="6620.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6622" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="5657.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5659" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="5320.5" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5322" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="19363.0" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19365" y="521" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="15220.75" y="288.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15222" y="297" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="5226.0" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5228" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8370.375" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8372" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="19870.0" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19872" y="265" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="19402.0" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19404" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="11499.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11501" y="265" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="12940.25" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12942" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="13059.0" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13061" y="393" style="font-family:sans-serif;font-size:10px;"> +E +</text> +<rect x="7825.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7827" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="15254.75" y="288.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15256" y="297" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="16826.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16828" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2124.5" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2126" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="11573.25" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11575" y="297" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="5238.5" y="416.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5240" y="425" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="8878.25" y="512.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8880" y="521" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="10330.75" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10332" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="8348.5" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8350" y="265" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="12869.5" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12871" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="12120.25" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12122" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="20921.25" y="160.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20923" y="169" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="12964.5" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12966" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="694.75" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="696" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="8331.0" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8333" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="11533.25" y="320.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11535" y="329" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="12146.5" y="448.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12148" y="457" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="2147.5" y="224.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2149" y="233" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="19115.0" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19117" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="18795.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18797" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="20473.5" y="128.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20475" y="137" style="font-family:sans-serif;font-size:10px;"> +start_tree +</text> +<rect x="21245.75" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21247" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="11795.25" y="384.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11797" y="393" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="15854.0" y="352.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15856" y="361" style="font-family:sans-serif;font-size:10px;"> +inr +</text> +<rect x="6184.4296875" y="96.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6186" y="105" style="font-family:sans-serif;font-size:10px;"> +induction +</text> +<rect x="1753.21875" y="64.0" width="58.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1755" y="73" style="font-family:sans-serif;font-size:10px;"> +singleProof +</text> +<rect x="6647.25" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6649" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="5185.5" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5187" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="20678.0" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20680" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3243.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3245" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="5246.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5248" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2220.25" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2222" y="361" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="16184.25" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16186" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="13921.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13923" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="15800.5" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15802" y="329" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="19784.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19786" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18362.5" y="352.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18364" y="361" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="7970.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7972" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="14205.3" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14207" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="11300.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11302" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="8363.75" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8365" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="6103.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6105" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="15732.5" y="288.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15734" y="297" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="8850.25" y="448.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8852" y="457" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="7333.0" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7335" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3040.25" y="320.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3042" y="329" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="8714.75" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8716" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3656.25" y="448.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3658" y="457" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="9412.458333333334" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9414" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="19531.75" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19533" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="10161.75" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10163" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="18998.5" y="352.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19000" y="361" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="5815.5" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5817" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="14219.3" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14221" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="19029.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19031" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="20378.0" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20380" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="16366.625" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16368" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="16467.625" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16469" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="5267.0" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5269" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="18252.0" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18254" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17152.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17154" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="20930.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20932" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="188.0" y="128.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="190" y="137" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12749.25" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12751" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="21104.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21106" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="16829.5" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16831" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="5017.5" y="416.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5019" y="425" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="5366.5" y="448.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5368" y="457" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="5962.75" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5964" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="15422.5" y="192.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15424" y="201" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="20336.0" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20338" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="7150.0" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7152" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="15035.5" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15037" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17128.0" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17130" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="17565.0" y="512.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17567" y="521" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="11931.0" y="416.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11933" y="425" style="font-family:sans-serif;font-size:10px;"> +B +</text> +<rect x="21117.75" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21119" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="11709.25" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11711" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2496.75" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2498" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="11737.75" y="352.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11739" y="361" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="544.25" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="546" y="361" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="3390.75" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3392" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="9490.0" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9492" y="393" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="17634.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17636" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1743.25" y="224.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1745" y="233" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="10115.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10117" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2908.75" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2910" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="4233.75" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4235" y="233" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="38.25" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="40" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="14576.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14578" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="8930.0" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8932" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="21394.75" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21396" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="11000.25" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11002" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="8755.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8757" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19390.0" y="576.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19392" y="585" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="10461.75" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10463" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="1646.0" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1648" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="4152.25" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4154" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8944.75" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8946" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9532.0" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9534" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="17529.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17531" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18350.0" y="288.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18352" y="297" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="19837.5" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19839" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="17418.5" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17420" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="15927.625" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15929" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2807.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2809" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17575.0" y="544.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17577" y="553" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="6904.0" y="320.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6906" y="329" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="13342.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13344" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="20396.0" y="320.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20398" y="329" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="3375.75" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3377" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="2436.25" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2438" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="13295.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13297" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="12328.0" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12330" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="18882.5" y="480.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18884" y="489" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="10340.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10342" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3893.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3895" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2347.75" y="352.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2349" y="361" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="5518.125" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5520" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="8067.5" y="416.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8069" y="425" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="2143.5" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2145" y="329" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="18641.0" y="480.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18643" y="489" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="20704.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20706" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="20985.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20987" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19681.5" y="352.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19683" y="361" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="4710.125" y="160.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4712" y="169" style="font-family:sans-serif;font-size:10px;"> +IA +</text> +<rect x="0.0" y="192.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2" y="201" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="15877.0" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15879" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2104.75" y="288.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2106" y="297" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="7260.5" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7262" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7726.0" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7728" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="12943.25" y="448.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12945" y="457" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="4727.0" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4729" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="18455.0" y="288.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18457" y="297" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="21811.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21813" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17680.0" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17682" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="21.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="23" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="12652.25" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12654" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="6858.75" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6860" y="329" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="10017.75" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10019" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3847.25" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3849" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="14860.0625" y="128.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14862" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_hyp +</text> +<rect x="14968.5" y="256.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14970" y="265" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="2257.75" y="192.0" width="55.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2259" y="201" style="font-family:sans-serif;font-size:10px;"> +zu·zeigen: +</text> +<rect x="7110.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7112" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="12983.75" y="480.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12985" y="489" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="7574.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7576" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12536.0" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12538" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="20540.5" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20542" y="169" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="19572.5" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19574" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="18013.0" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18015" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="17806.375" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17808" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17143.0" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17145" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2100.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2102" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="10536.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10538" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="9222.0" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9224" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="5122.125" y="128.0" width="50.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5124" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_basis +</text> +<rect x="14863.5" y="256.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14865" y="265" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="16534.5" y="384.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16536" y="393" style="font-family:sans-serif;font-size:10px;"> +N +</text> +<rect x="21775.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21777" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="443.25" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="445" y="265" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="11275.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11277" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="12838.25" y="448.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12840" y="457" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="10237.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10239" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="5049.0" y="352.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5051" y="361" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="15939.125" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15941" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="20984.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20986" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="21261.75" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21263" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="16355.125" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16357" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="12419.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12421" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="8082.75" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8084" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="11080.75" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11082" y="265" style="font-family:sans-serif;font-size:10px;"> +s0 +</text> +<rect x="7660.5" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7662" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18807.5" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18809" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="4579.0" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4581" y="361" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="10518.0" y="384.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10520" y="393" style="font-family:sans-serif;font-size:10px;"> +B +</text> +<rect x="16207.75" y="384.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16209" y="393" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="14753.875" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14755" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="14999.5" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15001" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="20341.5" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20343" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="15340.25" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15342" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7515.5" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7517" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="11859.75" y="352.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11861" y="361" style="font-family:sans-serif;font-size:10px;"> +inr +</text> +<rect x="9490.375" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9492" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="21452.75" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21454" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="6598.75" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6600" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="3820.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3822" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="11490.75" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11492" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="20028.8125" y="64.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20030" y="73" style="font-family:sans-serif;font-size:10px;"> +lemmaDef +</text> +<rect x="19144.0" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19146" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="14108.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14110" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="21494.75" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21496" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="9365.5" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9367" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="13636.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13638" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1180.0" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1182" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="7773.25" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7775" y="265" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="8009.0" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8011" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="7825.0" y="448.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7827" y="457" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="19483.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19485" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="9227.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9229" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2511.75" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2513" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1893.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1895" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9444.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9446" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="18701.375" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18703" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="4404.25" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4406" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="12869.25" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12871" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="16245.75" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16247" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="16954.5" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16956" y="265" style="font-family:sans-serif;font-size:10px;"> +s2 +</text> +<rect x="17929.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17931" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="18779.375" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18781" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="19735.666666666664" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19737" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="716.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="718" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13163.0" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13165" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="5181.5" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5183" y="425" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="17851.5" y="512.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17853" y="521" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="7955.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7957" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="18455.5" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18457" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="97.5" y="192.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="99" y="201" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="5353.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5355" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="10246.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10248" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="12826.75" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12828" y="393" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="19917.75" y="512.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19919" y="521" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="5684.5" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5686" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="19212.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19214" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12067.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12069" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13975.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13977" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="13436.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13438" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="18746.0" y="480.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18748" y="489" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="19872.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19874" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="10175.75" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10177" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="19166.5" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19168" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="4823.5" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4825" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19774.5" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19776" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="6173.0" y="224.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6175" y="233" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="7079.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7081" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9063.25" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9065" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="16917.0" y="512.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16919" y="521" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="17162.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17164" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8988.75" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8990" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="18223.0" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18225" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="16338.5" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16340" y="425" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="19039.0" y="384.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19041" y="393" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="14377.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14379" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="14886.0" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14888" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="13965.5" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13967" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="16360.625" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16362" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13328.5" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13330" y="265" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="17283.5" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17285" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="20337.5" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20339" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="5066.5" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5068" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="9164.0" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9166" y="393" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="10298.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10300" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="15173.5" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15175" y="265" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="1602.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1604" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8115.25" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8117" y="393" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="12543.25" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12545" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="10336.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10338" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="7708.5" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7710" y="393" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="3879.25" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3881" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="17139.0" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17141" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="8354.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8356" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="16437.625" y="256.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16439" y="265" style="font-family:sans-serif;font-size:10px;"> +r2 +</text> +<rect x="17210.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17212" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="7702.75" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7704" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="14673.5" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14675" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="17518.0" y="256.0" width="19.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17520" y="265" style="font-family:sans-serif;font-size:10px;"> +IH2 +</text> +<rect x="19551.625" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19553" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="1722.625" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1724" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="11376.75" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11378" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="16795.0" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16797" y="329" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="18235.0" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18237" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="16733.05" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16735" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="535.75" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="537" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="4669.0" y="352.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4671" y="361" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="7561.5" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7563" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8263.0" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8265" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="11269.25" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11271" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="8566.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8568" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2662.75" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2664" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="11911.25" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11913" y="425" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1983.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1985" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3859.25" y="448.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3861" y="457" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="4415.25" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4417" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="12238.5" y="448.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12240" y="457" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="18160.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18162" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="7757.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7759" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="8051.0" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8053" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="6062.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6064" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="6792.5" y="288.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6794" y="297" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="16355.5" y="416.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16357" y="425" style="font-family:sans-serif;font-size:10px;"> +N +</text> +<rect x="579.75" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="581" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="6420.5625" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6422" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="20136.5" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20138" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="17550.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17552" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="17459.5" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17461" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="4477.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4479" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="16999.5" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17001" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="21622.5" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21624" y="201" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="11976.5" y="480.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11978" y="489" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="3589.75" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3591" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="7442.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7444" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="5153.0" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5155" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="12492.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12494" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="14590.0" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14592" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="19366.5" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19368" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3962.125" y="160.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3964" y="169" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="13933.5" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13935" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="18006.0" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18008" y="521" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="11125.75" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11127" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="17465.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17467" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="14731.25" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14733" y="265" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="4281.75" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4283" y="201" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="20200.5" y="192.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20202" y="201" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="18336.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18338" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="13363.0" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13365" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="10525.75" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10527" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="14400.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14402" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="18631.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18633" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="8096.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8098" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="13706.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13708" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="21516.0" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21518" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="21368.0" y="192.0" width="30.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21370" y="201" style="font-family:sans-serif;font-size:10px;"> +Asso +</text> +<rect x="5022.5" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5024" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="21866.75" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21868" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="4133.5625" y="96.0" width="30.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4135" y="105" style="font-family:sans-serif;font-size:10px;"> +Asso +</text> +<rect x="8427.0" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8429" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="9883.75" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9885" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="21712.0" y="192.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21714" y="201" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="3885.0" y="192.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3887" y="201" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="5455.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5457" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="10825.75" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10827" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="19913.75" y="192.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19915" y="201" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="5676.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5678" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17394.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17396" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="21221.25" y="256.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21223" y="265" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="9248.6875" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9250" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="5747.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5749" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="8973.666666666666" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8975" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="10876.75" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10878" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="12063.75" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12065" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="17832.875" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17834" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="18943.5" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18945" y="521" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2606.75" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2608" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11461.0" y="224.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11463" y="233" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="2987.75" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2989" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2231.25" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2233" y="297" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="10551.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10553" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="4170.5625" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4172" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="21453.25" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21455" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="10193.75" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10195" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="857.75" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="859" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="4251.75" y="256.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4253" y="265" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="17750.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17752" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19851.25" y="192.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19853" y="201" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="21596.375" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21598" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="15028.0" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15030" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1847.75" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1849" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="13189.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13191" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="272.5" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="274" y="201" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="10585.25" y="160.0" width="74.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10587" y="169" style="font-family:sans-serif;font-size:10px;"> +transformation +</text> +<rect x="159.25" y="96.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="161" y="105" style="font-family:sans-serif;font-size:10px;"> +Komm +</text> +<rect x="5630.5" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5632" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="20445.0" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20447" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13760.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13762" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="9710.0" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9712" y="169" style="font-family:sans-serif;font-size:10px;"> +ind_case +</text> +<rect x="5602.75" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5604" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="756.75" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="758" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9003.75" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9005" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="13504.2" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13506" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="13843.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13845" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="14346.0" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14348" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="18303.5" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18305" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18964.4375" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18966" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="8155.75" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8157" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="18098.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18100" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="13184.0" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13186" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="21252.25" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21254" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="12590.75" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12592" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="4373.25" y="256.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4375" y="265" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="12982.5" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12984" y="521" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="13030.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13032" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="21267.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21269" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="14746.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14748" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2011.25" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2013" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="6215.875" y="192.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6217" y="201" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="15045.0" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15047" y="329" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="15346.25" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15348" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="17431.5" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17433" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3031.75" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3033" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="19763.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19765" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9651.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9653" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="17389.5" y="448.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17391" y="457" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="12997.5" y="512.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12999" y="521" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7349.5" y="416.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7351" y="425" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="18751.5" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18753" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18929.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18931" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="20120.0" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20122" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="6673.75" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6675" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="13160.1" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13162" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="8603.25" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8605" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3372.25" y="320.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3374" y="329" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="9334.5" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9336" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="14717.5" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14719" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="18734.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18736" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="15138.5" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15140" y="265" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="9348.5" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9350" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="6661.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6663" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9608.5" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9610" y="265" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="20952.5" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20954" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="20704.5" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20706" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="13512.03125" y="64.0" width="58.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13514" y="73" style="font-family:sans-serif;font-size:10px;"> +singleProof +</text> +<rect x="19110.5" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19112" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="520.75" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="522" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="4327.75" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4329" y="201" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="5881.0" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5883" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="9206.0" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9208" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="19561.75" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19563" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="6479.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6481" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="18477.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18479" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="18426.5" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18428" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="19620.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19622" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="8100.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8102" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18858.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18860" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="16373.5" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16375" y="425" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="17506.0" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17508" y="521" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="4404.75" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4406" y="201" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="7521.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7523" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12478.25" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12480" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="13574.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13576" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18784.875" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18786" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="5977.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5979" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="12434.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12436" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17479.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17481" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="12437.75" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12439" y="329" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="18240.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18242" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2070.75" y="320.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2072" y="329" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="6180.0" y="320.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6182" y="329" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="11418.0" y="288.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11420" y="297" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="15091.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15093" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19173.0" y="480.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19175" y="489" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="17960.0" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17962" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2830.875" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2832" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="1844.5625" y="160.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1846" y="169" style="font-family:sans-serif;font-size:10px;"> +IH +</text> +<rect x="6227.5" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6229" y="297" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="5569.0" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5571" y="425" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="8177.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8179" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="21158.25" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21160" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="12725.083333333334" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12727" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="1141.875" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1143" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="18612.0" y="512.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18614" y="521" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="12857.75" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12859" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="15470.25" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15472" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="16923.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16925" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17523.5" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17525" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="11330.75" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11332" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3261.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3263" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8624.75" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8626" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="15504.25" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15506" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="7741.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7743" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="20583.0" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20585" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="8010.5" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8012" y="425" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="10265.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10267" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="21725.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21727" y="233" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="17496.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17498" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="21017.0625" y="64.0" width="58.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21019" y="73" style="font-family:sans-serif;font-size:10px;"> +singleProof +</text> +<rect x="5214.0" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5216" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="21739.75" y="224.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21741" y="233" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="3360.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3362" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="14262.1" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14264" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="18648.875" y="256.0" width="59.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18650" y="265" style="font-family:sans-serif;font-size:10px;"> +KommAsso +</text> +<rect x="21925.25" y="384.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21927" y="393" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="8152.5" y="320.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8154" y="329" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="17579.0" y="512.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17581" y="521" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="21587.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21589" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="5747.0" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5749" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="7066.5" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7068" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17835.5" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17837" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="8871.75" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8873" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="8651.25" y="448.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8653" y="457" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="12957.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12959" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="46.75" y="160.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="48" y="169" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="1778.25" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1780" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="9078.25" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9080" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17509.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17511" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="8515.75" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8517" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="10863.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10865" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3687.75" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3689" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="15317.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15319" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3209.25" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3211" y="265" style="font-family:sans-serif;font-size:10px;"> +rl +</text> +<rect x="3038.75" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3040" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="19824.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19826" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="16563.5" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16565" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="18114.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18116" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="21293.75" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21295" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="12693.0" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12695" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="12483.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12485" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11004.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11006" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18292.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18294" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1747.5" y="288.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1749" y="297" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="4119.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4121" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="10195.75" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10197" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="166.5" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="168" y="233" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="8072.5" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8074" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="8592.75" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8594" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="11999.75" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12001" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="12208.35" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12210" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="16611.75" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16613" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="18958.5" y="512.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18960" y="521" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="19041.0" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19043" y="425" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="19559.5" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19561" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="6390.75" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6392" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="12807.75" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12809" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="9711.75" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9713" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1056.875" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1058" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="16163.5" y="416.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16165" y="425" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="991.25" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="993" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="21325.0" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21327" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="9645.25" y="320.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9647" y="329" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="6932.5" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6934" y="265" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="4431.25" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4433" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="4431.75" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4433" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="8899.25" y="416.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8901" y="425" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="11678.5" y="480.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11680" y="489" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="17517.0" y="544.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17519" y="553" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="20533.1875" y="32.0" width="34.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20535" y="41" style="font-family:sans-serif;font-size:10px;"> +lemma +</text> +<rect x="7694.5" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7696" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="21557.75" y="320.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21559" y="329" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="18688.0" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18690" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="17978.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17980" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="5212.0" y="352.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5214" y="361" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="7274.0" y="352.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7276" y="361" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="19515.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19517" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="15386.25" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15388" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="15240.75" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15242" y="297" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="12594.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12596" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="11030.75" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11032" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="11380.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11382" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3197.75" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3199" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="11328.75" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11330" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="19684.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19686" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="4793.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4795" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="13182.0" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13184" y="393" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="17239.5" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17241" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="19149.5" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19151" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19713.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19715" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="16824.0" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16826" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3585.75" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3587" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="14639.5" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14641" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="10564.5" y="448.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10566" y="457" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="5613.5" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5615" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="6116.0" y="448.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6118" y="457" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="2819.75" y="384.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2821" y="393" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="16907.4375" y="128.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16909" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_step +</text> +<rect x="20556.5" y="192.0" width="30.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20558" y="201" style="font-family:sans-serif;font-size:10px;"> +Asso +</text> +<rect x="14894.5" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14896" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3771.0" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3773" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="13910.416666666666" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13912" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="9599.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9601" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3065.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3067" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="11853.0" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11855" y="425" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="18682.0" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18684" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="16207.5" y="416.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16209" y="425" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="18911.5" y="576.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18913" y="585" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="9895.75" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9897" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2790.0" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2792" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="16432.5" y="416.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16434" y="425" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3587.75" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3589" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="7161.5" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7163" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="19905.75" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19907" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11604.25" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11606" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="10279.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10281" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="18895.5" y="544.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18897" y="553" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2742.25" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2744" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="7322.0" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7324" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="16157.75" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16159" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="10537.25" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10539" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="9567.5" y="448.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9569" y="457" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="13586.5" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13588" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="21289.0" y="160.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21291" y="169" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="3379.75" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3381" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="8236.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8238" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="20426.0" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20428" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="13875.5" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13877" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="19517.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19519" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="9607.5" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9609" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9486.375" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9488" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="9555.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9557" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7011.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7013" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="12621.875" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12623" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="10662.75" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10664" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="351.0" y="128.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="353" y="137" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8468.75" y="384.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8470" y="393" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="4188.75" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4190" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="18033.0" y="576.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18035" y="585" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="12974.25" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12976" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="17708.05" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17710" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="19336.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19338" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17713.05" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17715" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="11882.75" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11884" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="15346.0625" y="160.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15348" y="169" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="15332.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15334" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11143.25" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11145" y="265" style="font-family:sans-serif;font-size:10px;"> +rl +</text> +<rect x="18053.5" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18055" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="17331.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17333" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="4061.75" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4063" y="265" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="10479.25" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10481" y="265" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="5945.5" y="352.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5947" y="361" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="15922.125" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15924" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="16198.25" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16200" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="17185.75" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17187" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="15087.0" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15089" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="6434.5625" y="160.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6436" y="169" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="9836.25" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9838" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1789.75" y="256.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1791" y="265" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="8114.0" y="352.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8116" y="361" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="1948.25" y="192.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1950" y="201" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="946.25" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="948" y="265" style="font-family:sans-serif;font-size:10px;"> +L1 +</text> +<rect x="14735.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14737" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="13135.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13137" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="35.0" y="192.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="37" y="201" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="14066.5" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14068" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="7199.5" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7201" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="7179.5" y="416.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7181" y="425" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="17885.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17887" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="21542.625" y="128.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21544" y="137" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="14898.0" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14900" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13528.5" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13530" y="393" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="11053.25" y="384.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11055" y="393" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="20282.5" y="128.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20284" y="137" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="20032.5" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20034" y="201" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3906.25" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3908" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="10910.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10912" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="5688.5" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5690" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="12989.25" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12991" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3396.75" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3398" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="19776.5" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19778" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="14863.8125" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14865" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="12254.75" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12256" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="13246.0" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13248" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="8369.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8371" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11789.25" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11791" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17289.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17291" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="18066.5" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18068" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="18715.375" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18717" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="21911.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21913" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="20539.0" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20541" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="14702.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14704" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="124.5" y="192.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="126" y="201" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="6447.75" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6449" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="17958.0" y="512.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17960" y="521" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="7993.0" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7995" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="11902.25" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11904" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="19301.5" y="448.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19303" y="457" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="6480.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6482" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="21197.55" y="160.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21199" y="169" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="19208.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19210" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="6679.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6681" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="6243.0" y="320.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6245" y="329" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="637.75" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="639" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="21472.0" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21474" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="18955.5" y="448.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18957" y="457" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="5626.0" y="416.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5628" y="425" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="17384.75" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17386" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="21484.75" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21486" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="12101.0" y="384.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12103" y="393" style="font-family:sans-serif;font-size:10px;"> +B +</text> +<rect x="15159.75" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15161" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="13718.5" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13720" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="21351.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21353" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="6874.25" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6876" y="361" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="9646.75" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9648" y="361" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="9053.0" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9055" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="16071.5" y="416.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16073" y="425" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="6250.75" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6252" y="265" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="18044.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18046" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="14598.666666666666" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14600" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="861.75" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="863" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13106.3" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13108" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="15896.75" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15898" y="169" style="font-family:sans-serif;font-size:10px;"> +ind_case +</text> +<rect x="19631.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19633" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3045.75" y="288.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3047" y="297" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="6161.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6163" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11785.75" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11787" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="9095.0" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9097" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="14656.5" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14658" y="393" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="17793.5" y="448.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17795" y="457" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="11607.75" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11609" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17599.5" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17601" y="329" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="18748.0" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18750" y="521" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="4183.5" y="128.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4185" y="137" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="6615.25" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6617" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="11453.0" y="288.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11455" y="297" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="4060.25" y="224.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4062" y="233" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="6147.5" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6149" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="11470.25" y="320.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11472" y="329" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="2626.0" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2628" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3062.75" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3064" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1619.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1621" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12554.25" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12556" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="8159.25" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8161" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="1552.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1554" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="17279.5" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17281" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="199.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="201" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="15336.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15338" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="553.25" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="555" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13592.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13594" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17034.5" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17036" y="329" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="7768.0" y="448.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7770" y="457" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="17883.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17885" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="10395.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10397" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="13041.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13043" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3811.5" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3813" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="14557.25" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14559" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="10578.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10580" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="17221.5" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17223" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="16845.5" y="448.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16847" y="457" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="14181.9" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14183" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="11643.75" y="352.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11645" y="361" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="5352.5" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5354" y="265" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="15306.0625" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15308" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="15668.75" y="288.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15670" y="297" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="3539.75" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3541" y="393" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="16982.0" y="384.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16984" y="393" style="font-family:sans-serif;font-size:10px;"> +N +</text> +<rect x="12211.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12213" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="8246.75" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8248" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13979.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13981" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3348.75" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3350" y="393" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="16775.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16777" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8408.96875" y="160.0" width="74.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8410" y="169" style="font-family:sans-serif;font-size:10px;"> +transformation +</text> +<rect x="3843.25" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3845" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="13284.75" y="512.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13286" y="521" style="font-family:sans-serif;font-size:10px;"> +B +</text> +<rect x="3923.25" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3925" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="15623.5" y="320.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15625" y="329" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="6012.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6014" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="5801.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5803" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="8934.5" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8936" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="1160.25" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1162" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="12617.75" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12619" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="7945.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7947" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3781.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3783" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="3074.75" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3076" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1820.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1822" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="17879.75" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17881" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="10023.25" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10025" y="425" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="19600.5" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19602" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="8182.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8184" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18446.5" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18448" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="20999.25" y="160.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21001" y="169" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="19205.0" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19207" y="425" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="16279.5" y="416.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16281" y="425" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="4717.5" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4719" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1456.5" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1458" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="13446.6" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13448" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="13482.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13484" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="20899.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20901" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="10199.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10201" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3509.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3511" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="21669.75" y="160.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21671" y="169" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="12977.75" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12979" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8526.25" y="320.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8528" y="329" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="14103.5" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14105" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="18284.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18286" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="4237.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4239" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7125.5" y="352.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7127" y="361" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="15181.875" y="192.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15183" y="201" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="12571.75" y="512.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12573" y="521" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="2217.25" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2219" y="265" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="3392.75" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3394" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="21897.25" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21899" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="12577.3125" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12579" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="5139.5" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5141" y="297" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="489.75" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="491" y="297" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="12402.75" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12404" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="10929.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10931" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="19052.0" y="448.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19054" y="457" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1994.75" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1996" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="5573.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5575" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7165.5" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7167" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="20088.3125" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20090" y="105" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1322.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1324" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="12635.25" y="352.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12637" y="361" style="font-family:sans-serif;font-size:10px;"> +E +</text> +<rect x="17156.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17158" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="5833.0" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5835" y="265" style="font-family:sans-serif;font-size:10px;"> +rl +</text> +<rect x="16049.25" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16051" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="10076.75" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10078" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="318.5" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="320" y="201" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="16672.575" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16674" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="13101.3" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13103" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="8725.25" y="320.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8727" y="329" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="14710.75" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14712" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13375.0" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13377" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="20246.5" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20248" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11613.25" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11615" y="425" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="4782.375" y="192.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4784" y="201" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="21202.55" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21204" y="201" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="16686.575" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16688" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="13451.0" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13453" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="21806.25" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21808" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="9103.0" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9105" y="265" style="font-family:sans-serif;font-size:10px;"> +p1 +</text> +<rect x="9200.0" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9202" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="9765.75" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9767" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="18662.375" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18664" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="3523.75" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3525" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="7073.75" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7075" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="15245.25" y="320.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15247" y="329" style="font-family:sans-serif;font-size:10px;"> +NatTree +</text> +<rect x="12003.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12005" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="19274.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19276" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="20078.0" y="256.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20080" y="265" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="2016.25" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2018" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13702.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13704" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3406.75" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3408" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="8802.25" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8804" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3938.75" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3940" y="265" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="20579.5" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20581" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="5401.0" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5403" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="6934.0" y="320.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6936" y="329" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="3470.75" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3472" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="10181.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10183" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="20925.25" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20927" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2712.25" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2714" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3677.875" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3679" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3308.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3310" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="6230.125" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6232" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="19828.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19830" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2452.75" y="352.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2454" y="361" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="4715.0" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4717" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11557.375" y="192.0" width="55.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11559" y="201" style="font-family:sans-serif;font-size:10px;"> +zu·zeigen: +</text> +<rect x="5551.5" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5553" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="5672.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5674" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="16931.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16933" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="20672.5" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20674" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="20803.2" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20805" y="201" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="11547.125" y="160.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11549" y="169" style="font-family:sans-serif;font-size:10px;"> +IA +</text> +<rect x="6285.75" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6287" y="265" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="11568.125" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11570" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="2052.75" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2054" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2620.5" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2622" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="8760.25" y="448.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8762" y="457" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="12335.25" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12337" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="14561.75" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14563" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="15176.75" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15178" y="297" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="17535.0" y="480.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17537" y="489" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="7506.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7508" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2525.75" y="416.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2527" y="425" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="1345.5" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1347" y="265" style="font-family:sans-serif;font-size:10px;"> +p0 +</text> +<rect x="2560.75" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2562" y="297" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="7895.875" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7897" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="13628.5" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13630" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1780.5" y="288.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1782" y="297" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="81.75" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="83" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="16500.5" y="448.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16502" y="457" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="12357.75" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12359" y="265" style="font-family:sans-serif;font-size:10px;"> +s2 +</text> +<rect x="21907.25" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21909" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="6855.0" y="288.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6857" y="297" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="1043.25" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1045" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="11893.75" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11895" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="6199.0" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6201" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="5938.375" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5940" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="17000.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17002" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="17123.625" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17125" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="3448.75" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3450" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="5017.0" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5019" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="20231.5" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20233" y="201" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3852.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3854" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19774.75" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19776" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="18731.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18733" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="345.5" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="347" y="169" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="9603.5" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9605" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="21298.5" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21300" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="6897.5" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6899" y="265" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="9303.0" y="352.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9305" y="361" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="11821.5" y="480.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11823" y="489" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="11387.75" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11389" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="14466.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14468" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="6272.75" y="288.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6274" y="297" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="5598.25" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5600" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="7557.5" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7559" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="16946.5" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16948" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="10986.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10988" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="21406.0" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21408" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="9775.25" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9777" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="4000.25" y="224.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4002" y="233" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="13523.5" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13525" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="482.0" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="484" y="361" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="5335.0" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5337" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="17696.0" y="448.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17698" y="457" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="12319.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12321" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="6223.75" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6225" y="265" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="19917.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19919" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="8864.25" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8866" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8640.75" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8642" y="265" style="font-family:sans-serif;font-size:10px;"> +p1 +</text> +<rect x="3124.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3126" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2394.25" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2396" y="297" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="9306.25" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9308" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="13016.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13018" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="21681.75" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21683" y="201" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="13104.5" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13106" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="5355.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5357" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2925.25" y="352.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2927" y="361" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="3841.25" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3843" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="8197.75" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8199" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="9983.25" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9985" y="297" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="21234.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21236" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="10685.75" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10687" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="9628.0" y="288.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9630" y="297" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="17540.5" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17542" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18555.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18557" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="20638.5" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20640" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="21148.25" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21150" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3541.25" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3543" y="265" style="font-family:sans-serif;font-size:10px;"> +rl +</text> +<rect x="17164.3125" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17166" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1700.5" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1702" y="265" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="16446.5" y="416.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16448" y="425" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11561.75" y="352.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11563" y="361" style="font-family:sans-serif;font-size:10px;"> +inr +</text> +<rect x="6165.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6167" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="12035.25" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12037" y="265" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="8041.0" y="352.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8043" y="361" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="19172.875" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19174" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="19565.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19567" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18885.25" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18887" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="11191.75" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11193" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="20430.0" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20432" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="17447.5" y="512.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17449" y="521" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="20895.5" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20897" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="15805.0" y="352.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15807" y="361" style="font-family:sans-serif;font-size:10px;"> +NatTree +</text> +<rect x="1431.75" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1433" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="9118.75" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9120" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9832.25" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9834" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="20324.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20326" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19487.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19489" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9495.875" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9497" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="5540.5" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5542" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="16130.5" y="416.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16132" y="425" style="font-family:sans-serif;font-size:10px;"> +N +</text> +<rect x="19332.0" y="512.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19334" y="521" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="5441.25" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5443" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="5290.0" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5292" y="265" style="font-family:sans-serif;font-size:10px;"> +p0 +</text> +<rect x="12704.0" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12706" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1039.25" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1041" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="9217.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9219" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18189.0" y="448.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18191" y="457" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="19378.0" y="512.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19380" y="521" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11157.75" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11159" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="11678.25" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11680" y="297" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="16136.75" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16138" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2166.75" y="288.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2168" y="297" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="13011.0" y="576.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13013" y="585" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="20881.9" y="160.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20883" y="169" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="14319.5" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14321" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="5321.0" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5323" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="7567.25" y="192.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7569" y="201" style="font-family:sans-serif;font-size:10px;"> +start_tree +</text> +<rect x="13885.5" y="288.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13887" y="297" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="241.0" y="256.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="243" y="265" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="4720.375" y="192.0" width="55.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4722" y="201" style="font-family:sans-serif;font-size:10px;"> +zu·zeigen: +</text> +<rect x="15345.75" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15347" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="12468.75" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12470" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="17630.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17632" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="14944.0" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14946" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="19931.5" y="224.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19933" y="233" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="18059.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18061" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11633.0" y="416.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11635" y="425" style="font-family:sans-serif;font-size:10px;"> +B +</text> +<rect x="18175.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18177" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="765.25" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="767" y="361" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="6115.5" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6117" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="16388.5" y="416.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16390" y="425" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2800.75" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2802" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="1504.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1506" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="8809.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8811" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="16323.5" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16325" y="425" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2602.75" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2604" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="6023.0" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6025" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="18240.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18242" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="5387.0" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5389" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="12562.5" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12564" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="6400.5625" y="160.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6402" y="169" style="font-family:sans-serif;font-size:10px;"> +IH +</text> +<rect x="15328.25" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15330" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="13720.5" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13722" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="17303.0" y="288.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17305" y="297" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="21352.0" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21354" y="169" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="3070.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3072" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="16384.5" y="448.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16386" y="457" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="13313.75" y="544.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13315" y="553" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3060.75" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3062" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="17773.6" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17775" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="8400.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8402" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7022.0" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7024" y="425" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="16057.5" y="416.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16059" y="425" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3228.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3230" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="19263.125" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19265" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17435.5" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17437" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="14007.0" y="256.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14009" y="265" style="font-family:sans-serif;font-size:10px;"> +Komm +</text> +<rect x="17059.0" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17061" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="17171.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17173" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="6088.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6090" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="6027.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6029" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="16466.0" y="320.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16468" y="329" style="font-family:sans-serif;font-size:10px;"> +inr +</text> +<rect x="4563.5" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4565" y="329" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="2277.25" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2279" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3134.75" y="448.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3136" y="457" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="20320.0" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20322" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="15518.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15520" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="21420.0" y="160.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21422" y="169" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="21440.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21442" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="10193.25" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10195" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="5897.5" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5899" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="1087.25" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1089" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="17156.5" y="512.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17158" y="521" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="11911.75" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11913" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2638.25" y="352.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2640" y="361" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="10334.75" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10336" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2161.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2163" y="265" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="12757.75" y="288.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12759" y="297" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="20894.0" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20896" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3287.75" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3289" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="17911.75" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17913" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="9926.25" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9928" y="425" style="font-family:sans-serif;font-size:10px;"> +E +</text> +<rect x="427.75" y="288.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="429" y="297" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="19434.0" y="448.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19436" y="457" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="12226.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12228" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="14346.5" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14348" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="872.25" y="192.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="874" y="201" style="font-family:sans-serif;font-size:10px;"> +start_tree +</text> +<rect x="18110.75" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18112" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="19664.5" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19666" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="19500.0" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19502" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="13021.75" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13023" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="19257.625" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19259" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="10141.75" y="320.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10143" y="329" style="font-family:sans-serif;font-size:10px;"> +inr +</text> +<rect x="5881.5" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5883" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="7155.5" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7157" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9114.75" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9116" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="21838.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21840" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="6157.5" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6159" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2678.25" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2680" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="14170.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14172" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="15154.0" y="224.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15156" y="233" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="17206.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17208" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="18112.75" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18114" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="4572.0" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4574" y="265" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="17157.0" y="416.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17159" y="425" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="16257.25" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16259" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="6394.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6396" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19112.0" y="352.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19114" y="361" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="15545.25" y="384.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15547" y="393" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="21542.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21544" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3106.75" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3108" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="15286.0625" y="160.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15288" y="169" style="font-family:sans-serif;font-size:10px;"> +IH +</text> +<rect x="10063.75" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10065" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="15079.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15081" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17584.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17586" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="10408.75" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10410" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="7807.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7809" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="5370.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5372" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13893.333333333334" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13895" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="5958.25" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5960" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="1668.5" y="384.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1670" y="393" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="6539.25" y="256.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6541" y="265" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="8030.25" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8032" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="14289.0" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14291" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="10081.25" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10083" y="425" style="font-family:sans-serif;font-size:10px;"> +E +</text> +<rect x="3575.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3577" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="10416.75" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10418" y="265" style="font-family:sans-serif;font-size:10px;"> +s1 +</text> +<rect x="19100.0" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19102" y="425" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="9621.5" y="512.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9623" y="521" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="15030.0" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15032" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="19928.375" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19930" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="8867.75" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8869" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="13224.0" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13226" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="14739.625" y="192.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14741" y="201" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="20185.5" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20187" y="201" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="12446.5" y="448.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12448" y="457" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="18004.0" y="480.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18006" y="489" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2844.75" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2846" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="7574.0" y="416.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7576" y="425" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="12604.75" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12606" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="21264.85" y="160.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21266" y="169" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="435.5" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="437" y="201" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="18811.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18813" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12360.125" y="128.0" width="50.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12362" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_basis +</text> +<rect x="14748.5" y="288.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14750" y="297" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="12069.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12071" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="19044.5" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19046" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="21498.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21500" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12182.15" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12184" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="2271.75" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2273" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="18853.5" y="512.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18855" y="521" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="8806.25" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8808" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7499.5" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7501" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="19802.25" y="512.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19804" y="521" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="11519.25" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11521" y="329" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1717.5" y="288.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1719" y="297" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="18989.5" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18991" y="521" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="20627.5" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20629" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="9038.25" y="384.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9040" y="393" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="5162.49609375" y="32.0" width="34.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5164" y="41" style="font-family:sans-serif;font-size:10px;"> +lemma +</text> +<rect x="2591.75" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2593" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="7645.0" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7647" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="4882.5" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4884" y="297" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="5505.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5507" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="13297.0" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13299" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="16442.5" y="448.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16444" y="457" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="8044.25" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8046" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="11203.75" y="320.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11205" y="329" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="16669.5" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16671" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="9643.5" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9645" y="265" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="10793.75" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10795" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="9901.25" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9903" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="16275.5" y="448.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16277" y="457" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="10859.25" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10861" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="11652.25" y="384.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11654" y="393" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1878.5625" y="160.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1880" y="169" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="19891.75" y="448.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19893" y="457" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="15951.5" y="448.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15953" y="457" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1269.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1271" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="15441.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15443" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="43.0" y="128.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="45" y="137" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="14544.5" y="352.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14546" y="361" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="16961.5" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16963" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8860.25" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8862" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="17015.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17017" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19243.0" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19245" y="393" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="20984.25" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20986" y="169" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="6980.0" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6982" y="297" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="15135.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15137" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="5001.0" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5003" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="20168.0" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20170" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="15190.75" y="288.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15192" y="297" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="4661.125" y="128.0" width="40.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4663" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_var +</text> +<rect x="17226.125" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17228" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="11964.0" y="416.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11966" y="425" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8099.0" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8101" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="14242.7" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14244" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="13609.5" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13611" y="265" style="font-family:sans-serif;font-size:10px;"> +L1 +</text> +<rect x="20821.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20823" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1727.75" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1729" y="265" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="9212.0" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9214" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="19778.5" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19780" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="915.75" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="917" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3920.0" y="192.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3922" y="201" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="9134.0" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9136" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="4766.5" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4768" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="21162.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21164" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3397.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3399" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="8886.75" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8888" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11666.0" y="416.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11668" y="425" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13150.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13152" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="15472.25" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15474" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="7350.75" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7352" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="11619.25" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11621" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2204.75" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2206" y="329" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="12621.75" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12623" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="14484.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14486" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="15452.75" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15454" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="7819.75" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7821" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="19949.75" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19951" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="8882.75" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8884" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="18397.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18399" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9271.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9273" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="19898.5" y="224.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19900" y="233" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="20926.0" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20928" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="16396.625" y="352.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16398" y="361" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="4878.75" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4880" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="9045.75" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9047" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="20660.5" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20662" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="11057.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11059" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="8242.75" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8244" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="7245.5" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7247" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="16504.5" y="416.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16506" y="425" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="16661.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16663" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="18248.0" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18250" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="7925.5" y="448.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7927" y="457" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="14457.5" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14459" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="18492.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18494" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="15477.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15479" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12420.25" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12422" y="265" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="16771.5" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16773" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="9379.5" y="352.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9381" y="361" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="11917.25" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11919" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13216.0" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13218" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="19374.0" y="544.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19376" y="553" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="8840.75" y="352.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8842" y="361" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="9473.0" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9475" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="13934.0" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13936" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="19085.5" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19087" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="16617.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16619" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="14641.5" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14643" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="21664.75" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21666" y="233" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="13660.5" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13662" y="329" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="11794.0" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11796" y="425" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="6657.75" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6659" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="4622.75" y="288.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4624" y="297" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="4030.25" y="224.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4032" y="233" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="6452.5" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6454" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="6723.25" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6725" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="19253.625" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19255" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="20998.75" y="192.0" width="33.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21000" y="201" style="font-family:sans-serif;font-size:10px;"> +Komm +</text> +<rect x="16947.5" y="448.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16949" y="457" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2440.25" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2442" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17525.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17527" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="18142.75" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18144" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="15618.0" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15620" y="265" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="19561.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19563" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="16742.5" y="384.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16744" y="393" style="font-family:sans-serif;font-size:10px;"> +N +</text> +<rect x="20999.0" y="320.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21001" y="329" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="18730.0" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18732" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="5407.0" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5409" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="17521.0" y="512.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17523" y="521" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11701.75" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11703" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="8498.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8500" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="5276.5" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5278" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="20596.5" y="256.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20598" y="265" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="19361.0" y="480.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19363" y="489" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="10668.25" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10670" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="15201.75" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15203" y="265" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="16221.5" y="416.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16223" y="425" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2501.75" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2503" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1097.25" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1099" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="9821.25" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9823" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="15796.5" y="288.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15798" y="297" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="4378.25" y="128.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4380" y="137" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="16621.5" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16623" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="6536.875" y="192.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6538" y="201" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="18763.0" y="512.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18765" y="521" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="6581.25" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6583" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="6304.25" y="320.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6306" y="329" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="10672.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10674" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="12466.75" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12468" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="11724.25" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11726" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="20196.0" y="320.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20198" y="329" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="20441.0" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20443" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="8668.75" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8670" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="11690.0" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11692" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="8751.75" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8753" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="16547.625" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16549" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="213.25" y="96.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="215" y="105" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="5567.5" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5569" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="16357.125" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16359" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="15103.0" y="384.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15105" y="393" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="19465.75" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19467" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="8484.75" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8486" y="393" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="14852.0" y="320.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14854" y="329" style="font-family:sans-serif;font-size:10px;"> +inr +</text> +<rect x="19677.5" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19679" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="6121.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6123" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="711.25" y="352.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="713" y="361" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="15533.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15535" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18206.0" y="448.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18208" y="457" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="8219.0" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8221" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="52.25" y="224.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="54" y="233" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="466.5" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="468" y="329" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="20475.5" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20477" y="297" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="11464.75" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11466" y="265" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="11961.25" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11963" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="16432.75" y="384.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16434" y="393" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="16985.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16987" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="14890.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14892" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13724.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13726" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18702.0" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18704" y="521" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="18053.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18055" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="10010.75" y="192.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10012" y="201" style="font-family:sans-serif;font-size:10px;"> +start_tree +</text> +<rect x="15062.0" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15064" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3001.75" y="352.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3003" y="361" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="11662.0" y="448.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11664" y="457" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="5107.0" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5109" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="15565.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15567" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="14691.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14693" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8365.25" y="448.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8367" y="457" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="3800.0" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3802" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="556.875" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="558" y="169" style="font-family:sans-serif;font-size:10px;"> +ind_case +</text> +<rect x="11833.25" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11835" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="16835.5" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16837" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="19495.0" y="576.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19497" y="585" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="4731.125" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4733" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="6570.25" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6572" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="14794.5" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14796" y="265" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="7517.0" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7519" y="425" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="2268.5" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2270" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="283.0" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="285" y="137" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="12602.25" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12604" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="14706.75" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14708" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="15390.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15392" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="4773.0" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4775" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9302.25" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9304" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="14275.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14277" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13841.0" y="352.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13843" y="361" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="14532.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14534" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="606.25" y="352.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="608" y="361" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="8139.75" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8141" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="10085.75" y="256.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10087" y="265" style="font-family:sans-serif;font-size:10px;"> +r0 +</text> +<rect x="6705.75" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6707" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="115.25" y="224.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="117" y="233" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="13243.0" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13245" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="16973.5" y="512.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16975" y="521" style="font-family:sans-serif;font-size:10px;"> +t2 +</text> +<rect x="8014.5" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8016" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1864.5625" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1866" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="17898.5" y="448.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17900" y="457" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="17687.775" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17689" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="10611.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10613" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="5885.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5887" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="20780.5" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20782" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="15741.0" y="352.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15743" y="361" style="font-family:sans-serif;font-size:10px;"> +NatTree +</text> +<rect x="9312.0" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9314" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="11800.75" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11802" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11326.75" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11328" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="5540.125" y="160.0" width="74.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5542" y="169" style="font-family:sans-serif;font-size:10px;"> +transformation +</text> +<rect x="20777.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20779" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="11595.75" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11597" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="10356.0" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10358" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="17065.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17067" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2849.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2851" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7356.25" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7358" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="17359.0" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17361" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="19197.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19199" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="13045.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13047" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3639.75" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3641" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="6379.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6381" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1782.0" y="320.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1784" y="329" style="font-family:sans-serif;font-size:10px;"> +Nat +</text> +<rect x="5164.0" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5166" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="13302.75" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13304" y="521" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="4640.5" y="320.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4642" y="329" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="9264.0" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9266" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="15076.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15078" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="11710.0" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11712" y="425" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="14125.0" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14127" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="2970.75" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2972" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="11960.0" y="448.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11962" y="457" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="20789.2" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20791" y="201" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="13857.75" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13859" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="17684.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17686" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7754.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7756" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="14953.5" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14955" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="9725.75" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9727" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="16150.25" y="352.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16152" y="361" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="17075.0" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17077" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="19146.0" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19148" y="425" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="12950.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12952" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="13361.75" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13363" y="521" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="17944.5" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17946" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="10014.25" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10016" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="7710.75" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7712" y="265" style="font-family:sans-serif;font-size:10px;"> +p1 +</text> +<rect x="3239.75" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3241" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="5778.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5780" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="19529.75" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19531" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="6241.5" y="288.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6243" y="297" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="18009.5" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18011" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="9522.375" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9524" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="9747.25" y="192.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9749" y="201" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="8556.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8558" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="15745.0" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15747" y="265" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="2289.25" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2291" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3064.75" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3066" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="14892.5" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14894" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="16580.0" y="448.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16582" y="457" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="21206.25" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21208" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="9056.75" y="480.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9058" y="489" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2010.75" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2012" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="594.125" y="192.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="596" y="201" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="8930.75" y="352.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8932" y="361" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="18404.5" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18406" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3588.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3590" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="13778.0" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13780" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="20884.5" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20886" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="20853.5" y="256.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20855" y="265" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="752.75" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="754" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="4046.25" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4048" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="7547.5" y="352.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7549" y="361" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="12908.25" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12910" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="17420.75" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17422" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="13353.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13355" y="457" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="16458.5" y="480.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16460" y="489" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="20715.0" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20717" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="15334.75" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15336" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3835.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3837" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="4338.75" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4340" y="233" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="9597.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9599" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="10447.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10449" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="5720.5" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5722" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="5122.0" y="352.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5124" y="361" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="13646.0" y="448.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13648" y="457" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="20565.5" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20567" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="8405.75" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8407" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="21118.25" y="160.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21120" y="169" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="17929.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17931" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="21512.25" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21514" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="3058.75" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3060" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="14214.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14216" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="17616.5" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17618" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="8737.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8739" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="13294.5" y="448.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13296" y="457" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1265.0" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1267" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="4819.5" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4821" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2670.0" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2672" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="4607.5" y="320.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4609" y="329" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="7674.5" y="416.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7676" y="425" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="16626.1" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16628" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="17269.5" y="352.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17271" y="361" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="9282.0" y="448.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9284" y="457" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="17582.0" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17584" y="265" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="18308.25" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18310" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="15716.5" y="320.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15718" y="329" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="16567.5" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16569" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8097.75" y="448.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8099" y="457" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="10373.5" y="448.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10375" y="457" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="20593.5" y="352.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20595" y="361" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="3412.25" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3414" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8173.0" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8175" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="8260.75" y="448.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8262" y="457" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="9448.416666666666" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9450" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="2722.25" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2724" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="13906.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13908" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="5929.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5931" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="11311.25" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11313" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="13380.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13382" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="16820.0" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16822" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="5071.5" y="416.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5073" y="425" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="14734.5" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14736" y="297" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="13236.5" y="448.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13238" y="457" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="18009.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18011" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="19397.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19399" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="7755.75" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7757" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="10251.25" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10253" y="393" style="font-family:sans-serif;font-size:10px;"> +E +</text> +<rect x="8130.25" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8132" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="7026.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7028" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="6646.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6648" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="13475.03125" y="64.0" width="30.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13477" y="73" style="font-family:sans-serif;font-size:10px;"> +proof +</text> +<rect x="16009.5" y="448.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16011" y="457" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="12125.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12127" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="18647.375" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18649" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="14778.5" y="288.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14780" y="297" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="14677.75" y="448.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14679" y="457" style="font-family:sans-serif;font-size:10px;"> +B +</text> +<rect x="14611.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14613" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="8920.5" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8922" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="18065.0" y="512.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18067" y="521" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="16489.0" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16491" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="15516.25" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15518" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="7008.5" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7010" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="10994.75" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10996" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="18524.0" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18526" y="393" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="15872.0" y="192.0" width="55.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15874" y="201" style="font-family:sans-serif;font-size:10px;"> +zu·zeigen: +</text> +<rect x="12067.75" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12069" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="14904.0" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14906" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="15571.25" y="288.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15573" y="297" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="2956.75" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2958" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="4294.375" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4296" y="137" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="14260.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14262" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1610.0" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1612" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="9719.75" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9721" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8192.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8194" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="10496.75" y="320.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10498" y="329" style="font-family:sans-serif;font-size:10px;"> +sum +</text> +<rect x="12258.75" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12260" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="3345.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3347" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="6164.5" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6166" y="297" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1831.75" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1833" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3967.25" y="224.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3969" y="233" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="14333.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="14335" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19472.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19474" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="11805.0" y="448.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11807" y="457" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="12468.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12470" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="19847.75" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19849" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8750.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8752" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="20773.0" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20775" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="15010.5" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15012" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="19588.5" y="512.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19590" y="521" style="font-family:sans-serif;font-size:10px;"> +t1 +</text> +<rect x="5168.0" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5170" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="4832.0" y="352.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4834" y="361" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="6099.5" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="6101" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="18916.0" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18918" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="18746.5" y="384.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18748" y="393" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="12550.0" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12552" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="5399.0" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5401" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="8729.75" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8731" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="15999.75" y="384.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16001" y="393" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="16148.5" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16150" y="425" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2321.25" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2323" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="7856.5" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7858" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="9290.5" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9292" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19466.0" y="480.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19468" y="489" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="16517.5" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16519" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="20077.5" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20079" y="169" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="7687.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7689" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="11949.0" y="416.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11951" y="425" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="15529.25" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15531" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="13311.0" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13313" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="13570.5" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13572" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="5617.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5619" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="12349.75" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12351" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="7851.75" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7853" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="5470.0" y="384.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5472" y="393" style="font-family:sans-serif;font-size:10px;"> +null +</text> +<rect x="17342.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17344" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="17796.875" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17798" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="21760.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21762" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="16775.525" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="16777" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="3957.75" y="192.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3959" y="201" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="13493.0" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13495" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="13823.5" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13825" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="18825.0" y="448.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18827" y="457" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="2319.75" y="192.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2321" y="201" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="12260.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12262" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="17214.0" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17216" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="7772.0" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7774" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="13489.53125" y="32.0" width="52.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13491" y="41" style="font-family:sans-serif;font-size:10px;"> +mainProof +</text> +<rect x="10597.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10599" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="7404.5" y="448.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7406" y="457" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="12454.75" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12456" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1687.5" y="288.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1689" y="297" style="font-family:sans-serif;font-size:10px;"> +k +</text> +<rect x="19535.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19537" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="20784.2" y="160.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20786" y="169" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="8467.9" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8469" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="5222.0" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="5224" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="3958.375" y="128.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3960" y="137" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="18381.875" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18383" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="7400.25" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7402" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="19471.5" y="448.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19473" y="457" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="19893.375" y="160.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19895" y="169" style="font-family:sans-serif;font-size:10px;"> +forall +</text> +<rect x="4928.5" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4930" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="8683.75" y="384.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8685" y="393" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="20626.0" y="192.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20628" y="201" style="font-family:sans-serif;font-size:10px;"> +rl +</text> +<rect x="7901.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7903" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="20382.0" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="20384" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="7475.0" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7477" y="297" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="9614.25" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="9616" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="2908.375" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2910" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="21104.25" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21106" y="169" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="10147.25" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="10149" y="265" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="3570.75" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3572" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="19331.25" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="19333" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="923.25" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="925" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="17132.75" y="384.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="17134" y="393" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="18408.5" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="18410" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="3327.75" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3329" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="13871.5" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="13873" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="11941.75" y="352.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="11943" y="361" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="15434.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15436" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="15905.5" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15907" y="425" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="4686.5" y="288.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="4688" y="297" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="15577.25" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="15579" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="8290.75" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="8292" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2335.25" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2337" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="21396.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="21398" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="12081.25" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="12083" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +</svg> \ No newline at end of file diff --git a/ANTRL-Grammatiken/Beweis/Proof_Bsp_NatTree.txt b/ANTRL-Grammatiken/Beweis/Proof_Bsp_NatTree.txt new file mode 100644 index 0000000000000000000000000000000000000000..fd0c44ec2a2922bb45237567262330530c8f22c5 --- /dev/null +++ b/ANTRL-Grammatiken/Beweis/Proof_Bsp_NatTree.txt @@ -0,0 +1,95 @@ +lemma Komm: forall n:Nat, m:Nat : plus(n,m) = plus(m,n) +IA: zu zeigen: forall m:Nat : plus(null,m) = plus(m,null) +plus(null,m) + {L1,lr,plus(null,m),[m/y]} += m + {p0,rl,m,[m/n]} += plus(m,null) +IH: fixed k:Nat : forall m:Nat : plus(k,m) = plus(m,k) +IS: zu zeigen: forall m:Nat : fixed k:Nat : plus(inc(k),m) = plus(m,inc(k)) +plus(m,inc(k)) + {p1,lr,plus(m,inc(k)),[m/n,k/m]} += inc(plus(m,k)) + {IH,rl,plus(m,k),[]} += inc(plus(k,m)) + {L2,rl,inc(plus(k,m)),[k/a,m/b]} += plus(inc(k),m) + +lemma Asso: forall n:Nat, m:Nat, k:Nat : plus(plus(n,m),k) = plus(n,plus(m,k)) +induction k +IA: zu zeigen: forall n:Nat, m:Nat : plus(plus(n,m),null) = plus(n,plus(m,null)) +plus(plus(n,m),null) + {p0,lr,plus(plus(n,m),null),[plus(n,m)/n]} += plus(n,m) + {p0,rl,m,[m/n]} += plus(n,plus(m,null)) +IH: forall n:Nat, m:Nat : fixed k:Nat : plus(plus(n,m),k) = plus(n,plus(m,k)) +IS: zu zeigen: forall n:Nat, m:Nat : fixed k:Nat : plus(plus(n,m),inc(k)) = plus(n,plus(m,inc(k))) +plus(plus(n,m),inc(k)) + {p1,lr,plus(plus(n,m),inc(k)),[plus(n,m)/n,k/m]} += inc(plus(plus(n,m),k)) + {IH,lr,plus(plus(n,m),k),[]} += inc(plus(n,plus(m,k))) + {p1,rl,inc(plus(n,plus(m,k))),[plus(m,k)/m]} += plus(n,inc(plus(m,k))) + {p1,rl,inc(plus(m,k)),[m/n,k/m]} += plus(n,plus(m,inc(k))) + +proof +IA: zu zeigen: forall n:Nat : sum(inr(n,E)) = plus(n,sum(E)) +sum(inr(n,E)) + {r0,lr,inr(n,E),[]} += sum(B(n)) + {s1,lr,sum(B(n)),[]} += n + {p0,rl,n,[]} += plus(n,null) + {s0,rl,null,[]} += plus(n,sum(E)) +IA: zu zeigen: forall n:Nat, m:Nat : sum(inr(n,B(m))) = plus(n,sum(B(m))) +sum(inr(n,B(m))) + {r1,lr,inr(n,B(m)),[]} += sum(N(m,E,B(n))) + {s2,lr,sum(N(m,E,B(n))),[m/n,E/t1,B(n)/t2]} += plus(m,plus(sum(E),sum(B(n)))) + {s0,lr,sum(E),[]} += plus(m,plus(null,sum(B(n)))) + {s1,lr,sum(B(n)),[]} += plus(m,plus(null,n)) + {L1,lr,plus(null,n),[n/m]} += plus(m,n) + {Komm,rl,plus(m,n),[]} += plus(n,m) + {s1,rl,m,[m/n]} += plus(n,sum(B(m))) +IH: IH1 forall n:Nat : fixed t1:NatTree : sum(inr(n,t1)) = plus(n,sum(t1)) +IH: IH2 forall n:Nat : fixed t2:NatTree : sum(inr(n,t2)) = plus(n,sum(t2)) +IS: zu zeigen: forall n:Nat, m:Nat : fixed t1:NatTree, t2:NatTree + : sum(inr(n,N(m,t1,t2))) = plus(n,sum(N(m,t1,t2))) +sum(inr(n,N(m,t1,t2))) + {r2,lr,inr(n,N(m,t1,t2)),[]} += sum(N(m,t1,inr(n,t2))) + {s2,lr,sum(N(m,t1,inr(n,t2))),[m/n,inr(n,t2)/t2]} += plus(m,plus(sum(t1),sum(inr(n,t2)))) + {IH2,lr,sum(inr(n,t2)),[]} += plus(m,plus(sum(t1),plus(n,sum(t2)))) + {KommAsso,rl,plus(sum(t1),plus(n,sum(t2))),[sum(t1)/m,sum(t2)/k]} += plus(m,plus(n,plus(sum(t1),sum(t2)))) + {KommAsso,rl,plus(m,plus(n,plus(sum(t1),sum(t2)))),[plus(sum(t1),sum(t2))/k]} += plus(n,plus(m,plus(sum(t1),sum(t2)))) + {s2,rl,plus(m,plus(sum(t1),sum(t2))),[m/n]} += plus(n,sum(N(m,t1,t2))) + +lemma KommAsso: forall n:Nat, m:Nat, k:Nat : plus(n,plus(m,k)) = plus(m,plus(n,k)) +plus(n,plus(m,k)) + {Asso,rl,plus(n,plus(m,k)),[]} += plus(plus(n,m),k) + {Komm,rl,plus(n,m),[]} += plus(plus(m,n),k) + {Asso,lr,plus(plus(m,n),k),[m/n,n/m]} += plus(m,plus(n,k)) + + + + + diff --git a/ANTRL-Grammatiken/Beweis/Transformation_Bsp.svg b/ANTRL-Grammatiken/Beweis/Transformation_Bsp.svg new file mode 100644 index 0000000000000000000000000000000000000000..6fc74b76ccaff6dafbef871755726225214074b2 --- /dev/null +++ b/ANTRL-Grammatiken/Beweis/Transformation_Bsp.svg @@ -0,0 +1,585 @@ +<svg width="1855.7" height="529.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><line x1="327.625" y1="7.5" x2="298.125" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="327.625" y1="7.5" x2="357.125" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="357.125" y1="39.5" x2="72.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="72.5" y1="71.5" x2="72.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="72.5" y1="103.5" x2="72.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="72.5" y1="135.5" x2="25.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="72.5" y1="135.5" x2="61.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="72.5" y1="135.5" x2="90.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="90.5" y1="167.5" x2="90.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="90.5" y1="199.5" x2="51.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="90.5" y1="199.5" x2="71.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="90.5" y1="199.5" x2="100.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="100.5" y1="231.5" x2="100.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="100.5" y1="263.5" x2="100.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="90.5" y1="199.5" x2="130.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="72.5" y1="135.5" x2="120.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="357.125" y1="39.5" x2="279.125" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="279.125" y1="71.5" x2="102.0" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="279.125" y1="71.5" x2="129.0" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="129.0" y1="103.5" x2="129.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="279.125" y1="71.5" x2="155.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="279.125" y1="71.5" x2="188.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="188.5" y1="103.5" x2="188.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="279.125" y1="71.5" x2="221.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="279.125" y1="71.5" x2="254.0" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="254.0" y1="103.5" x2="254.0" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="254.0" y1="135.5" x2="254.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="254.0" y1="167.5" x2="206.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="254.0" y1="167.5" x2="242.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="254.0" y1="167.5" x2="272.0" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="272.0" y1="199.5" x2="272.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="272.0" y1="231.5" x2="232.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="272.0" y1="231.5" x2="252.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="272.0" y1="231.5" x2="282.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="282.0" y1="263.5" x2="282.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="282.0" y1="295.5" x2="282.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="272.0" y1="231.5" x2="311.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="254.0" y1="167.5" x2="301.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="279.125" y1="71.5" x2="317.125" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="279.125" y1="71.5" x2="373.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="373.75" y1="103.5" x2="352.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="373.75" y1="103.5" x2="373.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="373.75" y1="135.5" x2="351.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="351.5" y1="167.5" x2="351.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="351.5" y1="199.5" x2="312.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="351.5" y1="199.5" x2="332.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="351.5" y1="199.5" x2="361.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="361.5" y1="231.5" x2="361.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="361.5" y1="263.5" x2="361.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="351.5" y1="199.5" x2="391.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="373.75" y1="135.5" x2="380.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="373.75" y1="135.5" x2="396.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="373.75" y1="103.5" x2="395.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="279.125" y1="71.5" x2="400.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="279.125" y1="71.5" x2="416.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="279.125" y1="71.5" x2="456.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="456.25" y1="103.5" x2="456.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="456.25" y1="135.5" x2="456.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="456.25" y1="167.5" x2="411.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="456.25" y1="167.5" x2="441.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="456.25" y1="167.5" x2="471.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="471.25" y1="199.5" x2="471.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="471.25" y1="231.5" x2="431.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="471.25" y1="231.5" x2="451.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="471.25" y1="231.5" x2="481.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="481.25" y1="263.5" x2="481.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="481.25" y1="295.5" x2="441.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="481.25" y1="295.5" x2="461.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="481.25" y1="295.5" x2="491.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="491.25" y1="327.5" x2="491.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="491.25" y1="359.5" x2="491.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="481.25" y1="295.5" x2="520.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="471.25" y1="231.5" x2="510.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="456.25" y1="167.5" x2="500.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="357.125" y1="39.5" x2="641.75" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="641.75" y1="71.5" x2="495.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="641.75" y1="71.5" x2="522.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="522.25" y1="103.5" x2="522.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="641.75" y1="71.5" x2="548.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="641.75" y1="71.5" x2="581.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="581.75" y1="103.5" x2="581.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="641.75" y1="71.5" x2="614.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="641.75" y1="71.5" x2="647.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="647.25" y1="103.5" x2="647.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="647.25" y1="135.5" x2="647.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="647.25" y1="167.5" x2="602.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="647.25" y1="167.5" x2="632.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="647.25" y1="167.5" x2="662.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="662.25" y1="199.5" x2="662.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="662.25" y1="231.5" x2="622.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="662.25" y1="231.5" x2="642.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="662.25" y1="231.5" x2="672.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="672.25" y1="263.5" x2="672.25" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="672.25" y1="295.5" x2="632.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="672.25" y1="295.5" x2="652.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="672.25" y1="295.5" x2="682.25" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="682.25" y1="327.5" x2="682.25" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="682.25" y1="359.5" x2="682.25" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="672.25" y1="295.5" x2="711.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="662.25" y1="231.5" x2="701.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="647.25" y1="167.5" x2="691.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="641.75" y1="71.5" x2="679.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="641.75" y1="71.5" x2="705.75" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="705.75" y1="103.5" x2="698.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="705.75" y1="103.5" x2="712.75" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="641.75" y1="71.5" x2="732.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="641.75" y1="71.5" x2="748.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="641.75" y1="71.5" x2="788.25" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="788.25" y1="103.5" x2="788.25" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="788.25" y1="135.5" x2="788.25" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="788.25" y1="167.5" x2="743.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="788.25" y1="167.5" x2="773.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="788.25" y1="167.5" x2="803.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="803.25" y1="199.5" x2="803.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="803.25" y1="231.5" x2="803.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="788.25" y1="167.5" x2="832.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<rect x="676.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="678" y="105" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="121.0" y="128.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="123" y="137" style="font-family:sans-serif;font-size:10px;"> +a4 +</text> +<rect x="559.25" y="96.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="561" y="105" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="166.0" y="96.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="168" y="105" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="72.0" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="74" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="78.0" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="80" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="437.75" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="439" y="201" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="648.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="650" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="66.5" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="68" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="328.0" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="330" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="116.0" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="118" y="169" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="743.25" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="745" y="105" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="253.5" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="255" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="312.625" y="0.0" width="30.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="314" y="9" style="font-family:sans-serif;font-size:10px;"> +proof +</text> +<rect x="452.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="454" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="339.0" y="256.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="341" y="265" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="707.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="709" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="648.25" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="650" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="760.25" y="96.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="762" y="105" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="422.75" y="256.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="424" y="265" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="235.5" y="128.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="237" y="137" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="695.25" y="128.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="697" y="137" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="545.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="547" y="105" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="181.5" y="192.0" width="50.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="183" y="201" style="font-family:sans-serif;font-size:10px;"> +ungerade +</text> +<rect x="396.25" y="96.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="398" y="105" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="432.25" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="434" y="169" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="506.25" y="96.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="508" y="105" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="769.75" y="128.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="771" y="137" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="259.5" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="261" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="780.75" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="782" y="233" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="98.0" y="96.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="100" y="105" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="486.25" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="488" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="307.5" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="309" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="468.75" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="470" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="687.75" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="689" y="201" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="392.75" y="192.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="394" y="201" style="font-family:sans-serif;font-size:10px;"> +gerade +</text> +<rect x="126.0" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="128" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="628.75" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="630" y="201" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="653.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="655" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="183.5" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="185" y="137" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="333.0" y="160.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="335" y="169" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="709.25" y="128.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="711" y="137" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="447.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="449" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="428.25" y="96.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="430" y="105" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="623.25" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="625" y="169" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="67.0" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="69" y="233" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="625.25" y="96.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="627" y="105" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="437.75" y="128.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="439" y="137" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="313.625" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="315" y="105" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="57.0" y="160.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="59" y="169" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="218.0" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="220" y="105" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="591.25" y="64.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="593" y="73" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="769.75" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="771" y="201" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="152.0" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="154" y="105" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="798.25" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="800" y="265" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="457.25" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="459" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="343.0" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="345" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="348.75" y="128.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="350" y="137" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="643.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="645" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="297.5" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="299" y="201" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="263.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="265" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="576.75" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="578" y="137" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="54.0" y="96.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="56" y="105" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="638.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="640" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="95.5" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="97" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="516.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="518" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="356.5" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="358" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="387.0" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="389" y="233" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="320.125" y="32.0" width="74.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="322" y="41" style="font-family:sans-serif;font-size:10px;"> +transformation +</text> +<rect x="303.0" y="224.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="305" y="233" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="391.75" y="128.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="393" y="137" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="230.0" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="232" y="169" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="663.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="665" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="42.0" y="224.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="44" y="233" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="472.75" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="474" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="82.0" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="84" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="113.0" y="96.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="115" y="105" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="0.0" y="160.0" width="50.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2" y="169" style="font-family:sans-serif;font-size:10px;"> +ungerade +</text> +<rect x="728.25" y="96.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="730" y="105" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="623.75" y="320.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="625" y="329" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="690.25" y="96.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="692" y="105" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="377.0" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="379" y="169" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="496.75" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="498" y="201" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="411.25" y="96.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="413" y="105" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="358.25" y="96.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="360" y="105" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="362.75" y="128.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="364" y="137" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="462.75" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="464" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="506.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="508" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="447.25" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="449" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="784.75" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="786" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="283.125" y="32.0" width="30.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="285" y="41" style="font-family:sans-serif;font-size:10px;"> +proof +</text> +<rect x="228.625" y="64.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="230" y="73" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="613.75" y="256.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="615" y="265" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="514.25" y="128.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="516" y="137" style="font-family:sans-serif;font-size:10px;"> +a3 +</text> +<rect x="638.25" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="640" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="457.75" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="459" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="232.0" y="96.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="234" y="105" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="238.5" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="240" y="201" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="697.75" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="699" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="223.5" y="256.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="225" y="265" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="277.0" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="279" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="48.5" y="128.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="50" y="137" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="491.25" y="96.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="493" y="105" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="47.0" y="64.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="49" y="73" style="font-family:sans-serif;font-size:10px;"> +start_tree +</text> +<rect x="248.0" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="250" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="248.5" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="250" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="677.25" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="679" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="764.25" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="766" y="169" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="611.25" y="96.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="613" y="105" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="583.75" y="192.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="585" y="201" style="font-family:sans-serif;font-size:10px;"> +gerade +</text> +<rect x="828.75" y="192.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="830" y="201" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="327.5" y="192.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="329" y="201" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="391.0" y="160.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="393" y="169" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="659.75" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="661" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="724.75" y="192.0" width="38.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="726" y="201" style="font-family:sans-serif;font-size:10px;"> +gerade +</text> +<rect x="432.75" y="320.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="434" y="329" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="628.75" y="128.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="630" y="137" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +</svg> \ No newline at end of file diff --git a/ANTRL-Grammatiken/Beweis/Transformation_Bsp.txt b/ANTRL-Grammatiken/Beweis/Transformation_Bsp.txt new file mode 100644 index 0000000000000000000000000000000000000000..7b24edf20981ece2cea65895d82b44f4ec5b425e --- /dev/null +++ b/ANTRL-Grammatiken/Beweis/Transformation_Bsp.txt @@ -0,0 +1,6 @@ +proof +ungerade(inc(n)) + {a4, lr, ungerade(inc(n)), [inc(n)/n]} += gerade(inc(inc(n))) + {a3, lr, gerade(inc(inc(n))), []} += gerade(n) \ No newline at end of file diff --git a/ANTRL-Grammatiken/Beweis/Transformation_Bsp_small.txt b/ANTRL-Grammatiken/Beweis/Transformation_Bsp_small.txt new file mode 100644 index 0000000000000000000000000000000000000000..74976726f9717046e2a7cc7b46cb4b8fc1d5dd2c --- /dev/null +++ b/ANTRL-Grammatiken/Beweis/Transformation_Bsp_small.txt @@ -0,0 +1,4 @@ +proof +plus(y,x) + {a1, rl, plus(y,x), []} += plus(x,y) \ No newline at end of file diff --git a/ANTRL-Grammatiken/Beweis/demo)+eof.svg b/ANTRL-Grammatiken/Beweis/demo)+eof.svg new file mode 100644 index 0000000000000000000000000000000000000000..47c9382c88208c86e123eea252ffdf36536405b4 --- /dev/null +++ b/ANTRL-Grammatiken/Beweis/demo)+eof.svg @@ -0,0 +1,1985 @@ +<svg width="3753.2000000000003" height="614.9000000000001" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><line x1="2007.5781249999995" y1="7.5" x2="895.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="895.0781249999995" y1="39.5" x2="869.5781249999995" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="895.0781249999995" y1="39.5" x2="920.5781249999995" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="71.5" x2="920.5781249999995" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="288.59375" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="288.59375" y1="135.5" x2="65.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="288.59375" y1="135.5" x2="82.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="288.59375" y1="135.5" x2="117.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="117.0" y1="167.5" x2="95.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="117.0" y1="167.5" x2="138.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="138.25" y1="199.5" x2="30.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="138.25" y1="199.5" x2="85.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="85.5" y1="231.5" x2="85.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="85.5" y1="263.5" x2="16.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="85.5" y1="263.5" x2="38.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="85.5" y1="263.5" x2="67.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="67.5" y1="295.5" x2="67.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="67.5" y1="327.5" x2="67.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="85.5" y1="263.5" x2="96.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="85.5" y1="263.5" x2="125.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="125.5" y1="295.5" x2="125.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="125.5" y1="327.5" x2="125.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="85.5" y1="263.5" x2="155.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="138.25" y1="199.5" x2="166.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="138.25" y1="199.5" x2="246.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="246.5" y1="231.5" x2="246.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="246.5" y1="263.5" x2="177.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="246.5" y1="263.5" x2="199.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="246.5" y1="263.5" x2="228.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="228.5" y1="295.5" x2="228.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="228.5" y1="327.5" x2="228.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="246.5" y1="263.5" x2="257.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="246.5" y1="263.5" x2="286.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="286.5" y1="295.5" x2="286.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="286.5" y1="327.5" x2="286.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="246.5" y1="263.5" x2="316.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="288.59375" y1="135.5" x2="512.1875" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="512.1875" y1="167.5" x2="407.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="407.5" y1="199.5" x2="407.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="407.5" y1="231.5" x2="407.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="407.5" y1="263.5" x2="338.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="407.5" y1="263.5" x2="360.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="407.5" y1="263.5" x2="389.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="389.5" y1="295.5" x2="389.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="389.5" y1="327.5" x2="389.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="407.5" y1="263.5" x2="418.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="407.5" y1="263.5" x2="447.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="447.5" y1="295.5" x2="447.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="447.5" y1="327.5" x2="447.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="407.5" y1="263.5" x2="477.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="512.1875" y1="167.5" x2="616.875" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="616.875" y1="199.5" x2="437.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="616.875" y1="199.5" x2="464.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="464.0" y1="231.5" x2="464.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="616.875" y1="199.5" x2="490.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="616.875" y1="199.5" x2="523.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="523.5" y1="231.5" x2="523.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="616.875" y1="199.5" x2="556.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="616.875" y1="199.5" x2="589.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="589.0" y1="231.5" x2="589.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="589.0" y1="263.5" x2="589.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="589.0" y1="295.5" x2="519.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="589.0" y1="295.5" x2="541.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="589.0" y1="295.5" x2="571.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="571.0" y1="327.5" x2="571.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="571.0" y1="359.5" x2="571.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="589.0" y1="295.5" x2="600.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="589.0" y1="295.5" x2="629.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="629.0" y1="327.5" x2="629.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="629.0" y1="359.5" x2="629.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="589.0" y1="295.5" x2="658.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="616.875" y1="199.5" x2="654.875" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="616.875" y1="199.5" x2="714.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="714.25" y1="231.5" x2="692.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="714.25" y1="231.5" x2="714.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="714.25" y1="263.5" x2="692.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="692.0" y1="295.5" x2="692.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="692.0" y1="327.5" x2="692.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="714.25" y1="263.5" x2="721.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="714.25" y1="263.5" x2="736.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="714.25" y1="231.5" x2="735.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="616.875" y1="199.5" x2="740.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="616.875" y1="199.5" x2="756.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="616.875" y1="199.5" x2="796.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="796.75" y1="231.5" x2="796.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="796.75" y1="263.5" x2="796.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="796.75" y1="295.5" x2="796.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="334.9360795454545" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="360.278409090909" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="389.6207386363635" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="418.463068181818" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="444.3053977272725" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="470.147727272727" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="503.99005681818153" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="537.832386363636" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="562.1747159090905" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="596.017045454545" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="629.8593749999995" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="655.701704545454" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="681.5440340909086" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="706.3863636363631" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="732.7286931818176" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="766.0710227272721" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="798.4133522727266" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="832.7556818181811" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="866.5980113636356" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="900.4403409090901" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="934.7826704545446" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="977.1249999999991" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="977.1249999999991" y1="135.5" x2="959.3749999999991" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="977.1249999999991" y1="135.5" x2="976.3749999999991" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="977.1249999999991" y1="135.5" x2="994.8749999999991" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="994.8749999999991" y1="167.5" x2="863.9999999999991" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="863.9999999999991" y1="199.5" x2="851.7499999999991" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="851.7499999999991" y1="231.5" x2="836.2499999999991" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="851.7499999999991" y1="231.5" x2="867.2499999999991" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="867.2499999999991" y1="263.5" x2="848.4999999999991" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="867.2499999999991" y1="263.5" x2="863.9999999999991" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="867.2499999999991" y1="263.5" x2="885.9999999999991" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="885.9999999999991" y1="295.5" x2="885.9999999999991" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="863.9999999999991" y1="199.5" x2="876.2499999999991" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="994.8749999999991" y1="167.5" x2="964.7499999999991" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="964.7499999999991" y1="199.5" x2="964.7499999999991" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="964.7499999999991" y1="231.5" x2="895.2499999999991" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="964.7499999999991" y1="231.5" x2="917.2499999999991" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="964.7499999999991" y1="231.5" x2="946.7499999999991" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="946.7499999999991" y1="263.5" x2="946.7499999999991" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="946.7499999999991" y1="295.5" x2="946.7499999999991" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="964.7499999999991" y1="231.5" x2="975.7499999999991" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="964.7499999999991" y1="231.5" x2="1004.7499999999991" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1004.7499999999991" y1="263.5" x2="1004.7499999999991" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1004.7499999999991" y1="295.5" x2="1004.7499999999991" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="964.7499999999991" y1="231.5" x2="1034.249999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="994.8749999999991" y1="167.5" x2="1045.249999999999" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="994.8749999999991" y1="167.5" x2="1125.749999999999" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1125.749999999999" y1="199.5" x2="1125.749999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1125.749999999999" y1="231.5" x2="1056.249999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1125.749999999999" y1="231.5" x2="1078.249999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1125.749999999999" y1="231.5" x2="1107.749999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1107.749999999999" y1="263.5" x2="1107.749999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1107.749999999999" y1="295.5" x2="1107.749999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1125.749999999999" y1="231.5" x2="1136.749999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1125.749999999999" y1="231.5" x2="1165.749999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1165.749999999999" y1="263.5" x2="1165.749999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1165.749999999999" y1="295.5" x2="1165.749999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1125.749999999999" y1="231.5" x2="1195.249999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="1552.562499999999" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1552.562499999999" y1="135.5" x2="1300.624999999999" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1552.562499999999" y1="135.5" x2="1317.624999999999" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1552.562499999999" y1="135.5" x2="1352.124999999999" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1352.124999999999" y1="167.5" x2="1330.874999999999" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1352.124999999999" y1="167.5" x2="1373.374999999999" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1373.374999999999" y1="199.5" x2="1236.999999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1236.999999999999" y1="231.5" x2="1224.749999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1224.749999999999" y1="263.5" x2="1209.249999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1224.749999999999" y1="263.5" x2="1240.249999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1240.249999999999" y1="295.5" x2="1221.499999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1240.249999999999" y1="295.5" x2="1236.999999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1240.249999999999" y1="295.5" x2="1258.999999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1258.999999999999" y1="327.5" x2="1258.999999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1236.999999999999" y1="231.5" x2="1249.249999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1373.374999999999" y1="199.5" x2="1340.749999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1340.749999999999" y1="231.5" x2="1340.749999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1340.749999999999" y1="263.5" x2="1268.499999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1340.749999999999" y1="263.5" x2="1290.499999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1340.749999999999" y1="263.5" x2="1319.999999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1319.999999999999" y1="295.5" x2="1319.999999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1319.999999999999" y1="327.5" x2="1280.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1319.999999999999" y1="327.5" x2="1300.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1319.999999999999" y1="327.5" x2="1329.999999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1329.999999999999" y1="359.5" x2="1329.999999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1329.999999999999" y1="391.5" x2="1329.999999999999" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1319.999999999999" y1="327.5" x2="1359.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1340.749999999999" y1="263.5" x2="1351.749999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1340.749999999999" y1="263.5" x2="1383.499999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1383.499999999999" y1="295.5" x2="1383.499999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1383.499999999999" y1="327.5" x2="1383.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1340.749999999999" y1="263.5" x2="1412.999999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1373.374999999999" y1="199.5" x2="1425.249999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1373.374999999999" y1="199.5" x2="1509.749999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1509.749999999999" y1="231.5" x2="1509.749999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1509.749999999999" y1="263.5" x2="1434.999999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1509.749999999999" y1="263.5" x2="1456.999999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1509.749999999999" y1="263.5" x2="1486.499999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1486.499999999999" y1="295.5" x2="1486.499999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1486.499999999999" y1="327.5" x2="1486.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1509.749999999999" y1="263.5" x2="1520.749999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1509.749999999999" y1="263.5" x2="1554.999999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1554.999999999999" y1="295.5" x2="1554.999999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1554.999999999999" y1="327.5" x2="1515.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1554.999999999999" y1="327.5" x2="1535.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1554.999999999999" y1="327.5" x2="1564.999999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1564.999999999999" y1="359.5" x2="1564.999999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1564.999999999999" y1="391.5" x2="1564.999999999999" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1554.999999999999" y1="327.5" x2="1594.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1509.749999999999" y1="263.5" x2="1584.499999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1552.562499999999" y1="135.5" x2="1804.499999999999" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1804.499999999999" y1="167.5" x2="1678.749999999999" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1678.749999999999" y1="199.5" x2="1678.749999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1678.749999999999" y1="231.5" x2="1678.749999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1678.749999999999" y1="263.5" x2="1606.499999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1678.749999999999" y1="263.5" x2="1628.499999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1678.749999999999" y1="263.5" x2="1657.999999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1657.999999999999" y1="295.5" x2="1657.999999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1657.999999999999" y1="327.5" x2="1618.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1657.999999999999" y1="327.5" x2="1638.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1657.999999999999" y1="327.5" x2="1667.999999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1667.999999999999" y1="359.5" x2="1667.999999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1667.999999999999" y1="391.5" x2="1667.999999999999" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1657.999999999999" y1="327.5" x2="1697.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1678.749999999999" y1="263.5" x2="1689.749999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1678.749999999999" y1="263.5" x2="1721.499999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1721.499999999999" y1="295.5" x2="1721.499999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1721.499999999999" y1="327.5" x2="1721.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1678.749999999999" y1="263.5" x2="1750.999999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1804.499999999999" y1="167.5" x2="1930.249999999999" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1930.249999999999" y1="199.5" x2="1708.249999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1930.249999999999" y1="199.5" x2="1735.249999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1735.249999999999" y1="231.5" x2="1735.249999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1930.249999999999" y1="199.5" x2="1761.749999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1930.249999999999" y1="199.5" x2="1794.749999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1794.749999999999" y1="231.5" x2="1794.749999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1930.249999999999" y1="199.5" x2="1827.749999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1930.249999999999" y1="199.5" x2="1860.249999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1860.249999999999" y1="231.5" x2="1860.249999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1860.249999999999" y1="263.5" x2="1860.249999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1860.249999999999" y1="295.5" x2="1787.999999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1860.249999999999" y1="295.5" x2="1809.999999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1860.249999999999" y1="295.5" x2="1839.499999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1839.499999999999" y1="327.5" x2="1839.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1839.499999999999" y1="359.5" x2="1799.999999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1839.499999999999" y1="359.5" x2="1819.999999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1839.499999999999" y1="359.5" x2="1849.499999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1849.499999999999" y1="391.5" x2="1849.499999999999" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1849.499999999999" y1="423.5" x2="1849.499999999999" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1839.499999999999" y1="359.5" x2="1878.999999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1860.249999999999" y1="295.5" x2="1871.249999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1860.249999999999" y1="295.5" x2="1902.999999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1902.999999999999" y1="327.5" x2="1902.999999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1902.999999999999" y1="359.5" x2="1902.999999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1860.249999999999" y1="295.5" x2="1932.499999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1930.249999999999" y1="199.5" x2="1946.374999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1930.249999999999" y1="199.5" x2="2025.999999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2025.999999999999" y1="231.5" x2="1966.749999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2025.999999999999" y1="231.5" x2="1988.249999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1988.249999999999" y1="263.5" x2="1965.999999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1965.999999999999" y1="295.5" x2="1965.999999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1965.999999999999" y1="327.5" x2="1965.999999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1988.249999999999" y1="263.5" x2="1994.999999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1988.249999999999" y1="263.5" x2="2010.499999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2025.999999999999" y1="231.5" x2="2025.999999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2025.999999999999" y1="231.5" x2="2063.749999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2063.749999999999" y1="263.5" x2="2040.999999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2040.999999999999" y1="295.5" x2="2040.999999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2040.999999999999" y1="327.5" x2="2040.999999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2063.749999999999" y1="263.5" x2="2069.999999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2063.749999999999" y1="263.5" x2="2086.499999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2025.999999999999" y1="231.5" x2="2085.249999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1930.249999999999" y1="199.5" x2="2067.0833333333326" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1930.249999999999" y1="199.5" x2="2097.6666666666656" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1930.249999999999" y1="199.5" x2="2152.249999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2152.249999999999" y1="231.5" x2="2152.249999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2152.249999999999" y1="263.5" x2="2152.249999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2152.249999999999" y1="295.5" x2="2081.499999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2152.249999999999" y1="295.5" x2="2103.499999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2152.249999999999" y1="295.5" x2="2132.999999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2132.999999999999" y1="327.5" x2="2132.999999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2132.999999999999" y1="359.5" x2="2132.999999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2152.249999999999" y1="295.5" x2="2163.249999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2152.249999999999" y1="295.5" x2="2193.499999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2193.499999999999" y1="327.5" x2="2193.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2193.499999999999" y1="359.5" x2="2153.999999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2193.499999999999" y1="359.5" x2="2173.999999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2193.499999999999" y1="359.5" x2="2203.499999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2203.499999999999" y1="391.5" x2="2203.499999999999" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2203.499999999999" y1="423.5" x2="2203.499999999999" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2193.499999999999" y1="359.5" x2="2232.999999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2152.249999999999" y1="295.5" x2="2222.999999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="932.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="947.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="966.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="984.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1000.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1015.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1037.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1059.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1075.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1090.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1110.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1130.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1154.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1178.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1193.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1207.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1221.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1237.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1252.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1268.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1283.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1307.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1330.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1347.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1363.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1378.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1394.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1415.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1435.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1457.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1479.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1495.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1510.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1534.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1558.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1573.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1589.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1606.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1623.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1640.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1657.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1673.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1689.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1706.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1722.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1736.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1753.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1769.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1784.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1799.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1815.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1830.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1844.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1859.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1876.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1893.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1909.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1924.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1946.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1968.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1984.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="1999.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2023.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2047.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2061.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2075.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2089.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2104.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2120.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2141.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2161.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2183.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2205.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2229.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2252.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2268.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2284.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2299.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2321.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2352.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2382.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2411.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2457.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2494.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2513.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2531.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2547.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2562.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2582.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2602.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2624.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2646.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2670.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2693.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2709.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2725.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2740.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2754.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2768.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2792.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2815.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2831.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2846.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2862.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2877.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2894.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2910.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2925.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2941.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2964.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="2986.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="3010.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="3033.5781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="3053.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="3073.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="3089.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="3105.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2007.5781249999995" y1="7.5" x2="3120.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<rect x="1704.249999999999" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1706" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="1141.0781249999995" y="32.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1143" y="41" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1684.0781249999995" y="32.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1686" y="41" style="font-family:sans-serif;font-size:10px;"> +g +</text> +<rect x="456.0" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="458" y="265" style="font-family:sans-serif;font-size:10px;"> +P0 +</text> +<rect x="2373.0781249999995" y="32.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2375" y="41" style="font-family:sans-serif;font-size:10px;"> +ich +</text> +<rect x="0.0" y="224.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2" y="233" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="1485.749999999999" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1487" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="5.0" y="288.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7" y="297" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="2180.999999999999" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2182" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="854.5781249999995" y="64.0" width="30.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="856" y="73" style="font-family:sans-serif;font-size:10px;"> +proof +</text> +<rect x="1089.249999999999" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1091" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2058.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2060" y="41" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="222.5" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="224" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1316.749999999999" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1318" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="330.9360795454545" y="128.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="332" y="137" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1590.499999999999" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1592" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="727.7286931818176" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="729" y="137" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="732.25" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="734" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="67.0" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="69" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="863.0980113636356" y="128.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="865" y="137" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2505.0781249999995" y="32.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2507" y="41" style="font-family:sans-serif;font-size:10px;"> +P1 +</text> +<rect x="1935.0781249999995" y="32.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1937" y="41" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="466.647727272727" y="128.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="468" y="137" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="583.017045454545" y="128.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="585" y="137" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1295.999999999999" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1297" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1830.999999999999" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1832" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="103.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="105" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="626.3593749999995" y="128.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="628" y="137" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="3084.0781249999995" y="32.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3086" y="41" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1249.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1251" y="41" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="1559.999999999999" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1561" y="425" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="2779.0781249999995" y="32.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2781" y="41" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1618.0781249999995" y="32.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1620" y="41" style="font-family:sans-serif;font-size:10px;"> +c +</text> +<rect x="215.5" y="352.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="217" y="361" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="206.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="208" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2159.749999999999" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2161" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="473.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="475" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2888.0781249999995" y="32.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2890" y="41" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="2114.499999999999" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2116" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="553.0" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="555" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1191.249999999999" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1193" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="837.7499999999991" y="224.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="839" y="233" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="1826.999999999999" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1828" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1406.0781249999995" y="32.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1408" y="41" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="2027.999999999999" y="352.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2029" y="361" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1475.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1477" y="41" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2043.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2045" y="41" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1026.0781249999995" y="32.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1028" y="41" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="1094.749999999999" y="320.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1096" y="329" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="819.7556818181811" y="128.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="821" y="137" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="2080.499999999999" y="288.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2082" y="297" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="2751.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2753" y="41" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1609.499999999999" y="352.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1611" y="361" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1844.499999999999" y="448.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1846" y="457" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1263.0781249999995" y="32.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1265" y="41" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1841.749999999999" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1843" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2172.0781249999995" y="32.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2174" y="41" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="1473.499999999999" y="352.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1475" y="361" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="45.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="47" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1874.999999999999" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1876" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2218.999999999999" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2220" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="869.0781249999995" y="32.0" width="52.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="871" y="41" style="font-family:sans-serif;font-size:10px;"> +mainProof +</text> +<rect x="874.4999999999991" y="288.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="876" y="297" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1230.249999999999" y="288.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1232" y="297" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="1824.249999999999" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1826" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="79.0" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="81" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1521.0781249999995" y="32.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1523" y="41" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1780.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1782" y="41" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="487.0" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="489" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1904.0781249999995" y="32.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1906" y="41" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="2092.6666666666656" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2094" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="1879.749999999999" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1881" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="2124.249999999999" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2126" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="897.0781249999995" y="96.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="899" y="105" style="font-family:sans-serif;font-size:10px;"> +induction +</text> +<rect x="2398.0781249999995" y="32.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2400" y="41" style="font-family:sans-serif;font-size:10px;"> +alles +</text> +<rect x="972.2499999999991" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="974" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2559.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2561" y="41" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2249.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2251" y="41" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2010.499999999999" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2012" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="2099.499999999999" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2101" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="565.0" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="567" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="107.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="109" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="112.5" y="352.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="114" y="361" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="2005.499999999999" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2007" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1870.0781249999995" y="32.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1872" y="41" style="font-family:sans-serif;font-size:10px;"> +IH +</text> +<rect x="1206.999999999999" y="224.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1208" y="233" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="383.5" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="385" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="93.0" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="95" y="169" style="font-family:sans-serif;font-size:10px;"> +ind_case +</text> +<rect x="58.0" y="160.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="60" y="169" style="font-family:sans-serif;font-size:10px;"> +IA +</text> +<rect x="1758.249999999999" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1760" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1232.0781249999995" y="32.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1234" y="41" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1669.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1671" y="41" style="font-family:sans-serif;font-size:10px;"> +f +</text> +<rect x="195.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="197" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="508.5" y="320.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="510" y="329" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="1348.249999999999" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1350" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1490.0781249999995" y="32.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1492" y="41" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="958.0781249999995" y="32.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="960" y="41" style="font-family:sans-serif;font-size:10px;"> +P1 +</text> +<rect x="1595.499999999999" y="288.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1597" y="297" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="946.2499999999991" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="948" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="913.2499999999991" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="915" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="689.25" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="691" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="1431.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1433" y="41" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1517.249999999999" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1519" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2843.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2845" y="41" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="558.6747159090905" y="128.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="560" y="137" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="54.5" y="352.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="56" y="361" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="448.0" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="450" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="1530.062499999999" y="128.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1532" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_step +</text> +<rect x="1101.749999999999" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1103" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1991.499999999999" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1993" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="2070.499999999999" y="320.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2072" y="329" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="783.75" y="320.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="785" y="329" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1542.499999999999" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1544" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="794.4133522727266" y="128.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="796" y="137" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1996.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1998" y="41" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2169.999999999999" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2171" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1294.0781249999995" y="32.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1296" y="41" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1311.499999999999" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1313" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1795.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1797" y="41" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="518.5" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="520" y="265" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="991.7499999999991" y="320.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="993" y="329" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1085.249999999999" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1087" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1815.499999999999" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1817" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="475.1875" y="160.0" width="74.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="477" y="169" style="font-family:sans-serif;font-size:10px;"> +transformation +</text> +<rect x="2174.999999999999" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2176" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1327.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1329" y="41" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="1928.499999999999" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1930" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2228.999999999999" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2230" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1649.499999999999" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1651" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1698.999999999999" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1700" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1790.999999999999" y="384.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1792" y="393" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="68.25" y="192.0" width="55.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="70" y="201" style="font-family:sans-serif;font-size:10px;"> +zu zeigen: +</text> +<rect x="367.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="369" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="673.5" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="675" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2953.0781249999995" y="32.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2955" y="41" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="857.2499999999991" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="859" y="265" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="880.4999999999991" y="320.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="882" y="329" style="font-family:sans-serif;font-size:10px;"> +N +</text> +<rect x="1195.249999999999" y="288.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1197" y="297" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="1341.0781249999995" y="32.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1343" y="41" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="1947.499999999999" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1949" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="61.5" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="63" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1322.249999999999" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1324" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="654.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="656" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="972.8749999999991" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="974" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="843.4999999999991" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="845" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="151.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="153" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1364.999999999999" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1366" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2010.0781249999995" y="32.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2012" y="41" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="534.332386363636" y="128.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="536" y="137" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1216.499999999999" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1218" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1491.249999999999" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1493" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="130.25" y="192.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="132" y="201" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="1836.249999999999" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1838" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1584.0781249999995" y="32.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1586" y="41" style="font-family:sans-serif;font-size:10px;"> +a +</text> +<rect x="2127.999999999999" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2129" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="2184.999999999999" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2186" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="273.5" y="352.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="275" y="361" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="2598.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2600" y="41" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="415.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="417" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1963.249999999999" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1965" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="34.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="36" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="736.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="738" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="1189.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1191" y="41" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1360.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1362" y="41" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="956.1249999999991" y="128.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="958" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_hyp +</text> +<rect x="1233.499999999999" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1235" y="329" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1569.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1571" y="41" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="210.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="212" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1838.249999999999" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1840" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="1810.0781249999995" y="32.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1812" y="41" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="928.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="930" y="41" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="570.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="572" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1546.499999999999" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1548" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1365.374999999999" y="192.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1367" y="201" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="1686.249999999999" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1688" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="678.0440340909086" y="128.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="680" y="137" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="3069.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3071" y="41" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1634.499999999999" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1636" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="49.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="51" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1889.999999999999" y="384.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1891" y="393" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="2280.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2282" y="41" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="986.2499999999991" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="988" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1732.0781249999995" y="32.0" width="9.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1734" y="41" style="font-family:sans-serif;font-size:10px;"> +J +</text> +<rect x="1012.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1014" y="41" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1355.499999999999" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1357" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1964.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1966" y="41" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2490.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2492" y="41" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="2573.0781249999995" y="32.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2575" y="41" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="2613.0781249999995" y="32.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2615" y="41" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="1601.0781249999995" y="32.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1603" y="41" style="font-family:sans-serif;font-size:10px;"> +b +</text> +<rect x="1286.499999999999" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1288" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2642.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2644" y="41" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="376.5" y="352.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="378" y="361" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="433.0" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="435" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="2022.499999999999" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2024" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2115.0781249999995" y="32.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2117" y="41" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="872.7499999999991" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="874" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="2063.0833333333326" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2065" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="986.8749999999991" y="160.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="988" y="169" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="2263.0781249999995" y="32.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2265" y="41" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="166.0" y="288.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="168" y="297" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="778.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="780" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1531.499999999999" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1533" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1789.749999999999" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1791" y="265" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="1554.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1556" y="41" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="566.375" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="568" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="1506.499999999999" y="352.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1508" y="361" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="606.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="608" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="860.4999999999991" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="862" y="297" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="2144.999999999999" y="384.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2146" y="393" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="567.0" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="569" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="981.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="983" y="41" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="751.75" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="753" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="1776.999999999999" y="320.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1778" y="329" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="1867.749999999999" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1869" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2657.0781249999995" y="32.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2659" y="41" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1087.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1089" y="41" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2216.0781249999995" y="32.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2218" y="41" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1702.999999999999" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1704" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="501.0" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="503" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="3101.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3103" y="41" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="924.2499999999991" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="926" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="952.8749999999991" y="160.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="954" y="169" style="font-family:sans-serif;font-size:10px;"> +IH +</text> +<rect x="650.701704545454" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="652" y="137" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="2690.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2692" y="41" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1280.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1282" y="41" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="610.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="612" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2310.0781249999995" y="32.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2312" y="41" style="font-family:sans-serif;font-size:10px;"> +hier +</text> +<rect x="414.963068181818" y="128.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="416" y="137" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1855.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1857" y="41" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="2072.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2074" y="41" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="1653.249999999999" y="192.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1655" y="201" style="font-family:sans-serif;font-size:10px;"> +start_tree +</text> +<rect x="1639.499999999999" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1641" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1303.374999999999" y="192.0" width="55.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1305" y="201" style="font-family:sans-serif;font-size:10px;"> +zu zeigen: +</text> +<rect x="995.0781249999995" y="32.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="997" y="41" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="2721.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2723" y="41" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1045.249999999999" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1047" y="265" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="2982.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2984" y="41" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1055.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1057" y="41" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="3030.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3032" y="41" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1174.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1176" y="41" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1253.499999999999" y="352.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1255" y="361" style="font-family:sans-serif;font-size:10px;"> +N +</text> +<rect x="1370.499999999999" y="352.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1372" y="361" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1218.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1220" y="41" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="1467.999999999999" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1469" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2086.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2088" y="41" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="1408.999999999999" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1410" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1247.499999999999" y="320.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1249" y="329" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="616.0" y="384.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="618" y="393" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="263.59375" y="128.0" width="50.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="265" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_basis +</text> +<rect x="679.0" y="352.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="681" y="361" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1204.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1206" y="41" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2169.499999999999" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2171" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2857.0781249999995" y="32.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2859" y="41" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="558.0" y="384.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="560" y="393" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1107.249999999999" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1109" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1070.0781249999995" y="32.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1072" y="41" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1147.249999999999" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1149" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2133.749999999999" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2135" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="389.0" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="391" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="928.2499999999991" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="930" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="254.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="256" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1030.249999999999" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1032" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2704.0781249999995" y="32.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2706" y="41" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="774.25" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="776" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2100.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2102" y="41" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="1977.249999999999" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1979" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="943.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="945" y="41" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="1827.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1829" y="41" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1943.499999999999" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1945" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="381.6207386363635" y="128.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="383" y="137" style="font-family:sans-serif;font-size:10px;"> +P0 +</text> +<rect x="382.0" y="192.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="384" y="201" style="font-family:sans-serif;font-size:10px;"> +start_tree +</text> +<rect x="1301.499999999999" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1303" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2936.0781249999995" y="32.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2938" y="41" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="1890.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1892" y="41" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="3044.0781249999995" y="32.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3046" y="41" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1766.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1768" y="41" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="2528.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2530" y="41" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1633.999999999999" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1635" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="264.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="266" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="268.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="270" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="312.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="314" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="833.9999999999991" y="192.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="835" y="201" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="717.5" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="719" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="1296.499999999999" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1298" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="698.75" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="700" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="1719.249999999999" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1721" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="1245.749999999999" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1247" y="265" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1805.999999999999" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1807" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1635.0781249999995" y="32.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1637" y="41" style="font-family:sans-serif;font-size:10px;"> +d +</text> +<rect x="537.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="539" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1660.249999999999" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1662" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1324.999999999999" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1326" y="425" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="941.7499999999991" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="943" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="2052.749999999999" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2054" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="1719.0781249999995" y="32.0" width="6.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1721" y="41" style="font-family:sans-serif;font-size:10px;"> +I +</text> +<rect x="768.75" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="770" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="1446.0781249999995" y="32.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1448" y="41" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="1271.499999999999" y="352.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1273" y="361" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="2431.0781249999995" y="32.0" width="52.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2433" y="41" style="font-family:sans-serif;font-size:10px;"> +schreiben +</text> +<rect x="2201.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2203" y="41" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="429.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="431" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="425.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="427" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1328.124999999999" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1330" y="169" style="font-family:sans-serif;font-size:10px;"> +ind_case +</text> +<rect x="731.5" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="733" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="651.375" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="653" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2736.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2738" y="41" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1746.999999999999" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1748" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="3116.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="3118" y="41" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1624.499999999999" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1626" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="434.5" y="352.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="436" y="361" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1294.124999999999" y="160.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1296" y="169" style="font-family:sans-serif;font-size:10px;"> +IS +</text> +<rect x="2018.499999999999" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2020" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1314.124999999999" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1316" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1101.0781249999995" y="32.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1103" y="41" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1841.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1843" y="41" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="930.7826704545446" y="128.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="932" y="137" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="940.7499999999991" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="942" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1815.999999999999" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1817" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1374.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1376" y="41" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="1463.999999999999" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1465" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="891.5781249999995" y="64.0" width="58.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="893" y="73" style="font-family:sans-serif;font-size:10px;"> +singleProof +</text> +<rect x="1748.0781249999995" y="32.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1750" y="41" style="font-family:sans-serif;font-size:10px;"> +K +</text> +<rect x="371.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="373" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1942.874999999999" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1944" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2066.499999999999" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2068" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="703.25" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="705" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="1257.499999999999" y="288.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1259" y="297" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="1452.999999999999" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1454" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1693.499999999999" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1695" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1960.999999999999" y="352.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1962" y="361" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1040.249999999999" y="192.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1042" y="201" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="1360.999999999999" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1362" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="548.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="550" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2907.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2909" y="41" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="1772.249999999999" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1774" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="1654.749999999999" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1656" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1074.249999999999" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1076" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1160.749999999999" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1162" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="161.0" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="163" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="1133.249999999999" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1135" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2542.0781249999995" y="32.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2544" y="41" style="font-family:sans-serif;font-size:10px;"> +rl +</text> +<rect x="552.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="554" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="439.3053977272725" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="441" y="137" style="font-family:sans-serif;font-size:10px;"> +rl +</text> +<rect x="1884.499999999999" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1886" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="327.0" y="288.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="329" y="297" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="669.5" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="671" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1767.499999999999" y="160.0" width="74.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1769" y="169" style="font-family:sans-serif;font-size:10px;"> +transformation +</text> +<rect x="1507.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1509" y="41" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2132.0781249999995" y="32.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2134" y="41" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1423.999999999999" y="288.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1425" y="297" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="1979.0781249999995" y="32.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1981" y="41" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="356.278409090909" y="128.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="358" y="137" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="1921.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1923" y="41" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="93.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="95" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1530.999999999999" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1532" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2022.499999999999" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2024" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1727.249999999999" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1729" y="265" style="font-family:sans-serif;font-size:10px;"> +P2 +</text> +<rect x="2339.0781249999995" y="32.0" width="27.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2341" y="41" style="font-family:sans-serif;font-size:10px;"> +kann +</text> +<rect x="490.99005681818153" y="128.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="492" y="137" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1307.499999999999" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1309" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1701.0781249999995" y="32.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1703" y="41" style="font-family:sans-serif;font-size:10px;"> +H +</text> +<rect x="1662.999999999999" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1664" y="425" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="2157.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2159" y="41" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1708.499999999999" y="352.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1710" y="361" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1420.249999999999" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1422" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="2295.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2297" y="41" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1820.999999999999" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1822" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2921.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2923" y="41" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="228.0" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="230" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1992.5781249999995" y="0.0" width="30.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1994" y="9" style="font-family:sans-serif;font-size:10px;"> +proof +</text> +<rect x="884.2499999999991" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="886" y="265" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="887.4403409090901" y="128.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="889" y="137" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1652.0781249999995" y="32.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1654" y="41" style="font-family:sans-serif;font-size:10px;"> +e +</text> +<rect x="1210.749999999999" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1212" y="265" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="1645.499999999999" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1647" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="356.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="358" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2765.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2767" y="41" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="702.3863636363631" y="128.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="704" y="137" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="1880.499999999999" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1882" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="982.2499999999991" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="984" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1126.0781249999995" y="32.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1128" y="41" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="2812.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2814" y="41" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="822.2499999999991" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="824" y="265" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="2110.499999999999" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2112" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="755.0710227272721" y="128.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="757" y="137" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="1143.249999999999" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1145" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2826.0781249999995" y="32.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2828" y="41" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="2874.0781249999995" y="32.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2876" y="41" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="1389.0781249999995" y="32.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1391" y="41" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="1536.499999999999" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1538" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2128.249999999999" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2130" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2081.749999999999" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2083" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="2190.499999999999" y="448.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2192" y="457" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="596.5" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="598" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2997.0781249999995" y="32.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2999" y="41" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1580.499999999999" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1582" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +</svg> \ No newline at end of file diff --git a/ANTRL-Grammatiken/Beweis/demo).proof b/ANTRL-Grammatiken/Beweis/demo).proof new file mode 100644 index 0000000000000000000000000000000000000000..e2587d905da7e40d88a25f2fa21da24784ec453d --- /dev/null +++ b/ANTRL-Grammatiken/Beweis/demo).proof @@ -0,0 +1,18 @@ +proof +IA: zu zeigen: add(zero,zero) = add(zero,zero) +add(zero,zero) + {P0,lr,add(zero,zero),[zero/n]} += zero) + {P0,rl,zero,[zero/n]} += add(zero,zero) +IH: fixed n:N : add(n,zero) = add(zero,n) +IS: zu zeigen: fixed n:N : add(inc(n),zero) = add(zero,inc(n)) +add(inc(n),zero) + {P2,lr,add(inc(n),zero),[n/n,zero/m]} += add(n,inc(zero))) + {P1,lr,add(n,inc(zero)),[n/n,zero/m]} += inc(add(n,zero)) a b c d e f g H I J K !"§$%&/()=??°^-.:,_#'~+*<>| + {IH,lr,add(n,zero),[]} += inc(add(zero,n)) hier kann ich alles schreiben + {P1,rl,inc(add(zero,n)),[zero/n,n/m]} += add(zero,inc(n)) \ No newline at end of file diff --git a/ANTRL-Grammatiken/Beweis/demo).svg b/ANTRL-Grammatiken/Beweis/demo).svg new file mode 100644 index 0000000000000000000000000000000000000000..449e9979e6988bbef8316f59a04ff74406e334f5 --- /dev/null +++ b/ANTRL-Grammatiken/Beweis/demo).svg @@ -0,0 +1,1395 @@ +<svg width="2686.2000000000003" height="928.4000000000001" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><line x1="895.0781249999995" y1="7.5" x2="895.0781249999995" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="895.0781249999995" y1="39.5" x2="869.5781249999995" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="895.0781249999995" y1="39.5" x2="920.5781249999995" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="71.5" x2="920.5781249999995" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="288.59375" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="288.59375" y1="135.5" x2="65.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="288.59375" y1="135.5" x2="82.5" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="288.59375" y1="135.5" x2="117.0" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="117.0" y1="167.5" x2="95.75" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="117.0" y1="167.5" x2="138.25" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="138.25" y1="199.5" x2="30.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="138.25" y1="199.5" x2="85.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="85.5" y1="231.5" x2="85.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="85.5" y1="263.5" x2="16.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="85.5" y1="263.5" x2="38.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="85.5" y1="263.5" x2="67.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="67.5" y1="295.5" x2="67.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="67.5" y1="327.5" x2="67.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="85.5" y1="263.5" x2="96.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="85.5" y1="263.5" x2="125.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="125.5" y1="295.5" x2="125.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="125.5" y1="327.5" x2="125.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="85.5" y1="263.5" x2="155.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="138.25" y1="199.5" x2="166.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="138.25" y1="199.5" x2="246.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="246.5" y1="231.5" x2="246.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="246.5" y1="263.5" x2="177.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="246.5" y1="263.5" x2="199.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="246.5" y1="263.5" x2="228.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="228.5" y1="295.5" x2="228.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="228.5" y1="327.5" x2="228.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="246.5" y1="263.5" x2="257.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="246.5" y1="263.5" x2="286.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="286.5" y1="295.5" x2="286.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="286.5" y1="327.5" x2="286.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="246.5" y1="263.5" x2="316.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="288.59375" y1="135.5" x2="512.1875" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="512.1875" y1="167.5" x2="407.5" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="407.5" y1="199.5" x2="407.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="407.5" y1="231.5" x2="407.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="407.5" y1="263.5" x2="338.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="407.5" y1="263.5" x2="360.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="407.5" y1="263.5" x2="389.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="389.5" y1="295.5" x2="389.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="389.5" y1="327.5" x2="389.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="407.5" y1="263.5" x2="418.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="407.5" y1="263.5" x2="447.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="447.5" y1="295.5" x2="447.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="447.5" y1="327.5" x2="447.5" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="407.5" y1="263.5" x2="477.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="512.1875" y1="167.5" x2="616.875" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="616.875" y1="199.5" x2="437.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="616.875" y1="199.5" x2="464.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="464.0" y1="231.5" x2="464.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="616.875" y1="199.5" x2="490.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="616.875" y1="199.5" x2="523.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="523.5" y1="231.5" x2="523.5" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="616.875" y1="199.5" x2="556.5" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="616.875" y1="199.5" x2="589.0" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="589.0" y1="231.5" x2="589.0" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="589.0" y1="263.5" x2="589.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="589.0" y1="295.5" x2="519.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="589.0" y1="295.5" x2="541.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="589.0" y1="295.5" x2="571.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="571.0" y1="327.5" x2="571.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="571.0" y1="359.5" x2="571.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="589.0" y1="295.5" x2="600.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="589.0" y1="295.5" x2="629.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="629.0" y1="327.5" x2="629.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="629.0" y1="359.5" x2="629.0" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="589.0" y1="295.5" x2="658.5" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="616.875" y1="199.5" x2="654.875" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="616.875" y1="199.5" x2="714.25" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="714.25" y1="231.5" x2="692.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="714.25" y1="231.5" x2="714.25" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="714.25" y1="263.5" x2="692.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="692.0" y1="295.5" x2="692.0" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="692.0" y1="327.5" x2="692.0" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="714.25" y1="263.5" x2="721.0" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="714.25" y1="263.5" x2="736.5" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="714.25" y1="231.5" x2="735.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="616.875" y1="199.5" x2="740.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="616.875" y1="199.5" x2="756.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="616.875" y1="199.5" x2="796.75" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="796.75" y1="231.5" x2="796.75" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="796.75" y1="263.5" x2="796.75" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="796.75" y1="295.5" x2="796.75" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="334.9360795454545" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="360.278409090909" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="389.6207386363635" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="418.463068181818" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="444.3053977272725" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="470.147727272727" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="503.99005681818153" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="537.832386363636" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="562.1747159090905" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="596.017045454545" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="629.8593749999995" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="655.701704545454" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="681.5440340909086" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="706.3863636363631" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="732.7286931818176" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="766.0710227272721" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="798.4133522727266" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="832.7556818181811" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="866.5980113636356" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="900.4403409090901" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="934.7826704545446" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="977.1249999999991" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="977.1249999999991" y1="135.5" x2="959.3749999999991" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="977.1249999999991" y1="135.5" x2="976.3749999999991" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="977.1249999999991" y1="135.5" x2="994.8749999999991" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="994.8749999999991" y1="167.5" x2="863.9999999999991" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="863.9999999999991" y1="199.5" x2="851.7499999999991" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="851.7499999999991" y1="231.5" x2="836.2499999999991" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="851.7499999999991" y1="231.5" x2="867.2499999999991" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="867.2499999999991" y1="263.5" x2="848.4999999999991" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="867.2499999999991" y1="263.5" x2="863.9999999999991" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="867.2499999999991" y1="263.5" x2="885.9999999999991" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="885.9999999999991" y1="295.5" x2="885.9999999999991" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="863.9999999999991" y1="199.5" x2="876.2499999999991" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="994.8749999999991" y1="167.5" x2="964.7499999999991" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="964.7499999999991" y1="199.5" x2="964.7499999999991" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="964.7499999999991" y1="231.5" x2="895.2499999999991" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="964.7499999999991" y1="231.5" x2="917.2499999999991" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="964.7499999999991" y1="231.5" x2="946.7499999999991" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="946.7499999999991" y1="263.5" x2="946.7499999999991" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="946.7499999999991" y1="295.5" x2="946.7499999999991" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="964.7499999999991" y1="231.5" x2="975.7499999999991" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="964.7499999999991" y1="231.5" x2="1004.7499999999991" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1004.7499999999991" y1="263.5" x2="1004.7499999999991" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1004.7499999999991" y1="295.5" x2="1004.7499999999991" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="964.7499999999991" y1="231.5" x2="1034.249999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="994.8749999999991" y1="167.5" x2="1045.249999999999" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="994.8749999999991" y1="167.5" x2="1125.749999999999" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1125.749999999999" y1="199.5" x2="1125.749999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1125.749999999999" y1="231.5" x2="1056.249999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1125.749999999999" y1="231.5" x2="1078.249999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1125.749999999999" y1="231.5" x2="1107.749999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1107.749999999999" y1="263.5" x2="1107.749999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1107.749999999999" y1="295.5" x2="1107.749999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1125.749999999999" y1="231.5" x2="1136.749999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1125.749999999999" y1="231.5" x2="1165.749999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1165.749999999999" y1="263.5" x2="1165.749999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1165.749999999999" y1="295.5" x2="1165.749999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1125.749999999999" y1="231.5" x2="1195.249999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="920.5781249999995" y1="103.5" x2="1552.562499999999" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1552.562499999999" y1="135.5" x2="1300.624999999999" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1552.562499999999" y1="135.5" x2="1317.624999999999" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1552.562499999999" y1="135.5" x2="1352.124999999999" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1352.124999999999" y1="167.5" x2="1330.874999999999" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1352.124999999999" y1="167.5" x2="1373.374999999999" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1373.374999999999" y1="199.5" x2="1236.999999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1236.999999999999" y1="231.5" x2="1224.749999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1224.749999999999" y1="263.5" x2="1209.249999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1224.749999999999" y1="263.5" x2="1240.249999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1240.249999999999" y1="295.5" x2="1221.499999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1240.249999999999" y1="295.5" x2="1236.999999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1240.249999999999" y1="295.5" x2="1258.999999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1258.999999999999" y1="327.5" x2="1258.999999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1236.999999999999" y1="231.5" x2="1249.249999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1373.374999999999" y1="199.5" x2="1340.749999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1340.749999999999" y1="231.5" x2="1340.749999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1340.749999999999" y1="263.5" x2="1268.499999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1340.749999999999" y1="263.5" x2="1290.499999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1340.749999999999" y1="263.5" x2="1319.999999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1319.999999999999" y1="295.5" x2="1319.999999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1319.999999999999" y1="327.5" x2="1280.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1319.999999999999" y1="327.5" x2="1300.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1319.999999999999" y1="327.5" x2="1329.999999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1329.999999999999" y1="359.5" x2="1329.999999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1329.999999999999" y1="391.5" x2="1329.999999999999" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1319.999999999999" y1="327.5" x2="1359.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1340.749999999999" y1="263.5" x2="1351.749999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1340.749999999999" y1="263.5" x2="1383.499999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1383.499999999999" y1="295.5" x2="1383.499999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1383.499999999999" y1="327.5" x2="1383.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1340.749999999999" y1="263.5" x2="1412.999999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1373.374999999999" y1="199.5" x2="1425.249999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1373.374999999999" y1="199.5" x2="1509.749999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1509.749999999999" y1="231.5" x2="1509.749999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1509.749999999999" y1="263.5" x2="1434.999999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1509.749999999999" y1="263.5" x2="1456.999999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1509.749999999999" y1="263.5" x2="1486.499999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1486.499999999999" y1="295.5" x2="1486.499999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1486.499999999999" y1="327.5" x2="1486.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1509.749999999999" y1="263.5" x2="1520.749999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1509.749999999999" y1="263.5" x2="1554.999999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1554.999999999999" y1="295.5" x2="1554.999999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1554.999999999999" y1="327.5" x2="1515.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1554.999999999999" y1="327.5" x2="1535.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1554.999999999999" y1="327.5" x2="1564.999999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1564.999999999999" y1="359.5" x2="1564.999999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1564.999999999999" y1="391.5" x2="1564.999999999999" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1554.999999999999" y1="327.5" x2="1594.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1509.749999999999" y1="263.5" x2="1584.499999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1552.562499999999" y1="135.5" x2="1804.499999999999" y2="160.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1804.499999999999" y1="167.5" x2="1678.749999999999" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1678.749999999999" y1="199.5" x2="1678.749999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1678.749999999999" y1="231.5" x2="1678.749999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1678.749999999999" y1="263.5" x2="1606.499999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1678.749999999999" y1="263.5" x2="1628.499999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1678.749999999999" y1="263.5" x2="1657.999999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1657.999999999999" y1="295.5" x2="1657.999999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1657.999999999999" y1="327.5" x2="1618.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1657.999999999999" y1="327.5" x2="1638.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1657.999999999999" y1="327.5" x2="1667.999999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1667.999999999999" y1="359.5" x2="1667.999999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1667.999999999999" y1="391.5" x2="1667.999999999999" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1657.999999999999" y1="327.5" x2="1697.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1678.749999999999" y1="263.5" x2="1689.749999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1678.749999999999" y1="263.5" x2="1721.499999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1721.499999999999" y1="295.5" x2="1721.499999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1721.499999999999" y1="327.5" x2="1721.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1678.749999999999" y1="263.5" x2="1750.999999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1804.499999999999" y1="167.5" x2="1930.249999999999" y2="192.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1930.249999999999" y1="199.5" x2="1708.249999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1930.249999999999" y1="199.5" x2="1735.249999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1735.249999999999" y1="231.5" x2="1735.249999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1930.249999999999" y1="199.5" x2="1761.749999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1930.249999999999" y1="199.5" x2="1794.749999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1794.749999999999" y1="231.5" x2="1794.749999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1930.249999999999" y1="199.5" x2="1827.749999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1930.249999999999" y1="199.5" x2="1860.249999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1860.249999999999" y1="231.5" x2="1860.249999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1860.249999999999" y1="263.5" x2="1860.249999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1860.249999999999" y1="295.5" x2="1787.999999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1860.249999999999" y1="295.5" x2="1809.999999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1860.249999999999" y1="295.5" x2="1839.499999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1839.499999999999" y1="327.5" x2="1839.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1839.499999999999" y1="359.5" x2="1799.999999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1839.499999999999" y1="359.5" x2="1819.999999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1839.499999999999" y1="359.5" x2="1849.499999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1849.499999999999" y1="391.5" x2="1849.499999999999" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1849.499999999999" y1="423.5" x2="1849.499999999999" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1839.499999999999" y1="359.5" x2="1878.999999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1860.249999999999" y1="295.5" x2="1871.249999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1860.249999999999" y1="295.5" x2="1902.999999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1902.999999999999" y1="327.5" x2="1902.999999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1902.999999999999" y1="359.5" x2="1902.999999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1860.249999999999" y1="295.5" x2="1932.499999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1930.249999999999" y1="199.5" x2="1946.374999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1930.249999999999" y1="199.5" x2="2025.999999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2025.999999999999" y1="231.5" x2="1966.749999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2025.999999999999" y1="231.5" x2="1988.249999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1988.249999999999" y1="263.5" x2="1965.999999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1965.999999999999" y1="295.5" x2="1965.999999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1965.999999999999" y1="327.5" x2="1965.999999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1988.249999999999" y1="263.5" x2="1994.999999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1988.249999999999" y1="263.5" x2="2010.499999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2025.999999999999" y1="231.5" x2="2025.999999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2025.999999999999" y1="231.5" x2="2063.749999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2063.749999999999" y1="263.5" x2="2040.999999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2040.999999999999" y1="295.5" x2="2040.999999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2040.999999999999" y1="327.5" x2="2040.999999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2063.749999999999" y1="263.5" x2="2069.999999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2063.749999999999" y1="263.5" x2="2086.499999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2025.999999999999" y1="231.5" x2="2085.249999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1930.249999999999" y1="199.5" x2="2067.083333333332" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1930.249999999999" y1="199.5" x2="2097.666666666666" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="1930.249999999999" y1="199.5" x2="2152.249999999999" y2="224.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2152.249999999999" y1="231.5" x2="2152.249999999999" y2="256.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2152.249999999999" y1="263.5" x2="2152.249999999999" y2="288.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2152.249999999999" y1="295.5" x2="2081.499999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2152.249999999999" y1="295.5" x2="2103.499999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2152.249999999999" y1="295.5" x2="2132.999999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2132.999999999999" y1="327.5" x2="2132.999999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2132.999999999999" y1="359.5" x2="2132.999999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2152.249999999999" y1="295.5" x2="2163.249999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2152.249999999999" y1="295.5" x2="2193.499999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2193.499999999999" y1="327.5" x2="2193.499999999999" y2="352.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2193.499999999999" y1="359.5" x2="2153.999999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2193.499999999999" y1="359.5" x2="2173.999999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2193.499999999999" y1="359.5" x2="2203.499999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2203.499999999999" y1="391.5" x2="2203.499999999999" y2="416.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2203.499999999999" y1="423.5" x2="2203.499999999999" y2="448.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2193.499999999999" y1="359.5" x2="2232.999999999999" y2="384.0" style="stroke:black; stroke-width:1px;" /> +<line x1="2152.249999999999" y1="295.5" x2="2222.999999999999" y2="320.0" style="stroke:black; stroke-width:1px;" /> +<rect x="1531.499999999999" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1533" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="475.1875" y="160.0" width="74.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="477" y="169" style="font-family:sans-serif;font-size:10px;"> +transformation +</text> +<rect x="610.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="612" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1719.249999999999" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1721" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="880.4999999999991" y="320.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="882" y="329" style="font-family:sans-serif;font-size:10px;"> +N +</text> +<rect x="433.0" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="435" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="2169.999999999999" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2171" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="67.0" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="69" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1303.374999999999" y="192.0" width="55.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1305" y="201" style="font-family:sans-serif;font-size:10px;"> +zu zeigen: +</text> +<rect x="34.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="36" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="651.375" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="653" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2184.999999999999" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2186" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="891.5781249999995" y="64.0" width="58.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="893" y="73" style="font-family:sans-serif;font-size:10px;"> +singleProof +</text> +<rect x="768.75" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="770" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="1133.249999999999" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1135" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1805.999999999999" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1807" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="228.0" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="230" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1889.999999999999" y="384.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1891" y="393" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1322.249999999999" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1324" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="356.278409090909" y="128.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="358" y="137" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="1746.999999999999" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1748" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1530.999999999999" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1532" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="755.0710227272721" y="128.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="757" y="137" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="553.0" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="555" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="698.75" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="700" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="161.0" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="163" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="928.2499999999991" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="930" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="972.8749999999991" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="974" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="678.0440340909086" y="128.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="680" y="137" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="887.4403409090901" y="128.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="889" y="137" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="490.99005681818153" y="128.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="492" y="137" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="626.3593749999995" y="128.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="628" y="137" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="654.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="656" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1301.499999999999" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1303" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1874.999999999999" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1876" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="107.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="109" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="439.3053977272725" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="441" y="137" style="font-family:sans-serif;font-size:10px;"> +rl +</text> +<rect x="650.701704545454" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="652" y="137" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1542.499999999999" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1544" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1727.249999999999" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1729" y="265" style="font-family:sans-serif;font-size:10px;"> +P2 +</text> +<rect x="206.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="208" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="210.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="212" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1365.374999999999" y="192.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1367" y="201" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="1686.249999999999" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1688" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2144.999999999999" y="384.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2146" y="393" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="1074.249999999999" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1076" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="383.5" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="385" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2159.749999999999" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2161" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="508.5" y="320.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="510" y="329" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="1101.749999999999" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1103" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="872.7499999999991" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="874" y="233" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1830.999999999999" y="384.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1832" y="393" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1247.499999999999" y="320.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1249" y="329" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1360.999999999999" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1362" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1517.249999999999" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1519" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2018.499999999999" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2020" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1316.749999999999" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1318" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1195.249999999999" y="288.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1197" y="297" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="1085.249999999999" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1087" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="606.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="608" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="330.9360795454545" y="128.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="332" y="137" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="79.0" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="81" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="863.0980113636356" y="128.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="865" y="137" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="2052.749999999999" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2054" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="669.5" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="671" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2174.999999999999" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2176" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1634.499999999999" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1636" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1826.999999999999" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1828" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1838.249999999999" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1840" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="1463.999999999999" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1465" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="49.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="51" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="548.5" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="550" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1045.249999999999" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1047" y="265" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="1191.249999999999" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1193" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1879.749999999999" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1881" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="382.0" y="192.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="384" y="201" style="font-family:sans-serif;font-size:10px;"> +start_tree +</text> +<rect x="940.7499999999991" y="224.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="942" y="233" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="273.5" y="352.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="275" y="361" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="972.2499999999991" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="974" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1815.499999999999" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1817" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="778.25" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="780" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2128.249999999999" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2130" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="880.0781249999995" y="0.0" width="30.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="882" y="9" style="font-family:sans-serif;font-size:10px;"> +proof +</text> +<rect x="822.2499999999991" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="824" y="265" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="1210.749999999999" y="256.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1212" y="265" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="1776.999999999999" y="320.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1778" y="329" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="5.0" y="288.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="7" y="297" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="1947.499999999999" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1949" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2022.499999999999" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2024" y="265" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="518.5" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="520" y="265" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="414.963068181818" y="128.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="416" y="137" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1767.499999999999" y="160.0" width="74.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1769" y="169" style="font-family:sans-serif;font-size:10px;"> +transformation +</text> +<rect x="2124.249999999999" y="224.0" width="56.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2126" y="233" style="font-family:sans-serif;font-size:10px;"> +result_tree +</text> +<rect x="854.5781249999995" y="64.0" width="30.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="856" y="73" style="font-family:sans-serif;font-size:10px;"> +proof +</text> +<rect x="2070.499999999999" y="320.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2072" y="329" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="991.7499999999991" y="320.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="993" y="329" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="456.0" y="256.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="458" y="265" style="font-family:sans-serif;font-size:10px;"> +P0 +</text> +<rect x="2063.083333333332" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2065" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="2127.999999999999" y="384.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2129" y="393" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="570.5" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="572" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1348.249999999999" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1350" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="54.5" y="352.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="56" y="361" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="151.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="153" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="103.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="105" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1963.249999999999" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1965" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="1639.499999999999" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1641" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="312.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="314" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="268.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="270" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="222.5" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="224" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="884.2499999999991" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="886" y="265" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="731.5" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="733" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1257.499999999999" y="288.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1259" y="297" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="389.0" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="391" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="327.0" y="288.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="329" y="297" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="736.75" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="738" y="233" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="1206.999999999999" y="224.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1208" y="233" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="1324.999999999999" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1326" y="425" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1758.249999999999" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1760" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1789.749999999999" y="256.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1791" y="265" style="font-family:sans-serif;font-size:10px;"> +lr +</text> +<rect x="558.0" y="384.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="560" y="393" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="215.5" y="352.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="217" y="361" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1653.249999999999" y="192.0" width="51.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1655" y="201" style="font-family:sans-serif;font-size:10px;"> +start_tree +</text> +<rect x="1790.999999999999" y="384.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1792" y="393" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="537.5" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="539" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="924.2499999999991" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="926" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1307.499999999999" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1309" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2081.749999999999" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2083" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="783.75" y="320.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="785" y="329" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1370.499999999999" y="352.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1372" y="361" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1624.499999999999" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1626" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1040.249999999999" y="192.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1042" y="201" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="1296.499999999999" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1298" y="361" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="941.7499999999991" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="943" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="703.25" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="705" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="429.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="431" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="473.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="475" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1506.499999999999" y="352.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1508" y="361" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="689.25" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="691" y="265" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="1595.499999999999" y="288.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1597" y="297" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="583.017045454545" y="128.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="585" y="137" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="45.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="47" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="487.0" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="489" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1294.124999999999" y="160.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1296" y="169" style="font-family:sans-serif;font-size:10px;"> +IS +</text> +<rect x="679.0" y="352.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="681" y="361" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="986.8749999999991" y="160.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="988" y="169" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="2005.499999999999" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2007" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1654.749999999999" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1656" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2099.499999999999" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2101" y="329" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="774.25" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="776" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1546.499999999999" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1548" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1609.499999999999" y="352.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1611" y="361" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="425.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="427" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1314.124999999999" y="160.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1316" y="169" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="819.7556818181811" y="128.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="821" y="137" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="2022.499999999999" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2024" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2190.499999999999" y="448.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2192" y="457" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1216.499999999999" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1218" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1355.499999999999" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1357" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="501.0" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="503" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="982.2499999999991" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="984" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1089.249999999999" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1091" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="952.8749999999991" y="160.0" width="13.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="954" y="169" style="font-family:sans-serif;font-size:10px;"> +IH +</text> +<rect x="946.2499999999991" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="948" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="263.59375" y="128.0" width="50.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="265" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_basis +</text> +<rect x="1820.999999999999" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1822" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2218.999999999999" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2220" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1844.499999999999" y="448.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1846" y="457" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1467.999999999999" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1469" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1836.249999999999" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1838" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="869.0781249999995" y="32.0" width="52.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="871" y="41" style="font-family:sans-serif;font-size:10px;"> +mainProof +</text> +<rect x="2169.499999999999" y="352.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2171" y="361" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="58.0" y="160.0" width="14.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="60" y="169" style="font-family:sans-serif;font-size:10px;"> +IA +</text> +<rect x="1693.499999999999" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1695" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="415.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="417" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1702.999999999999" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1704" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1815.999999999999" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1817" y="393" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1960.999999999999" y="352.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1962" y="361" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="130.25" y="192.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="132" y="201" style="font-family:sans-serif;font-size:10px;"> +eq +</text> +<rect x="732.25" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="734" y="265" style="font-family:sans-serif;font-size:10px;"> +] +</text> +<rect x="371.0" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="373" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1286.499999999999" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1288" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="1473.499999999999" y="352.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1475" y="361" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1633.999999999999" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1635" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="2080.499999999999" y="288.0" width="12.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2082" y="297" style="font-family:sans-serif;font-size:10px;"> +m +</text> +<rect x="717.5" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="719" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="1943.499999999999" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1945" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="837.7499999999991" y="224.0" width="28.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="839" y="233" style="font-family:sans-serif;font-size:10px;"> +fixed +</text> +<rect x="874.4999999999991" y="288.0" width="23.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="876" y="297" style="font-family:sans-serif;font-size:10px;"> +sort +</text> +<rect x="1107.249999999999" y="192.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1109" y="201" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1230.249999999999" y="288.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1232" y="297" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="552.5" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="554" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1364.999999999999" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1366" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1991.499999999999" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1993" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="1824.249999999999" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1826" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="0.0" y="224.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2" y="233" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="1660.249999999999" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1662" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1420.249999999999" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1422" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="1094.749999999999" y="320.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1096" y="329" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1143.249999999999" y="288.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1145" y="297" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="565.0" y="288.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="567" y="297" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="166.0" y="288.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="168" y="297" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="843.4999999999991" y="288.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="845" y="297" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="860.4999999999991" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="862" y="297" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="61.5" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="63" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1160.749999999999" y="320.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1162" y="329" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1408.999999999999" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1410" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="596.5" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="598" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="466.647727272727" y="128.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="468" y="137" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="558.6747159090905" y="128.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="560" y="137" style="font-family:sans-serif;font-size:10px;"> +[ +</text> +<rect x="1233.499999999999" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1235" y="329" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1423.999999999999" y="288.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1425" y="297" style="font-family:sans-serif;font-size:10px;"> +add +</text> +<rect x="1928.499999999999" y="320.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1930" y="329" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="93.0" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="95" y="169" style="font-family:sans-serif;font-size:10px;"> +ind_case +</text> +<rect x="1841.749999999999" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1843" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="356.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="358" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="673.5" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="675" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2110.499999999999" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2112" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2228.999999999999" y="384.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2230" y="393" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="264.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="266" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="897.0781249999995" y="96.0" width="47.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="899" y="105" style="font-family:sans-serif;font-size:10px;"> +induction +</text> +<rect x="434.5" y="352.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="436" y="361" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1977.249999999999" y="256.0" width="22.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1979" y="265" style="font-family:sans-serif;font-size:10px;"> +sub +</text> +<rect x="1452.999999999999" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1454" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="381.6207386363635" y="128.0" width="16.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="383" y="137" style="font-family:sans-serif;font-size:10px;"> +P0 +</text> +<rect x="751.75" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="753" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="112.5" y="352.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="114" y="361" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1530.062499999999" y="128.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1532" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_step +</text> +<rect x="1253.499999999999" y="352.0" width="11.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1255" y="361" style="font-family:sans-serif;font-size:10px;"> +N +</text> +<rect x="254.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="256" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1536.499999999999" y="288.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1538" y="297" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2027.999999999999" y="352.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2029" y="361" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1704.249999999999" y="224.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1706" y="233" style="font-family:sans-serif;font-size:10px;"> +{ +</text> +<rect x="1942.874999999999" y="224.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1944" y="233" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="534.332386363636" y="128.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="536" y="137" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1311.499999999999" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1313" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="567.0" y="224.0" width="44.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="569" y="233" style="font-family:sans-serif;font-size:10px;"> +termpart +</text> +<rect x="1590.499999999999" y="352.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1592" y="361" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1328.124999999999" y="160.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1330" y="169" style="font-family:sans-serif;font-size:10px;"> +ind_case +</text> +<rect x="1645.499999999999" y="384.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1647" y="393" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1708.499999999999" y="352.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1710" y="361" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1698.999999999999" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1700" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="702.3863636363631" y="128.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="704" y="137" style="font-family:sans-serif;font-size:10px;"> +} +</text> +<rect x="1491.249999999999" y="224.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1493" y="233" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="1867.749999999999" y="320.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1869" y="329" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="68.25" y="192.0" width="55.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="70" y="201" style="font-family:sans-serif;font-size:10px;"> +zu zeigen: +</text> +<rect x="1662.999999999999" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1664" y="425" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="93.0" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="95" y="297" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="1880.499999999999" y="352.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1882" y="361" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1030.249999999999" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1032" y="265" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="913.2499999999991" y="256.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="915" y="265" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="930.7826704545446" y="128.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="932" y="137" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="1295.999999999999" y="320.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1297" y="329" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +<rect x="1245.749999999999" y="256.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1247" y="265" style="font-family:sans-serif;font-size:10px;"> +: +</text> +<rect x="1649.499999999999" y="352.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1651" y="361" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="376.5" y="352.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="378" y="361" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="727.7286931818176" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="729" y="137" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="1884.499999999999" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1886" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="986.2499999999991" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="988" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="857.2499999999991" y="256.0" width="20.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="859" y="265" style="font-family:sans-serif;font-size:10px;"> +var +</text> +<rect x="1271.499999999999" y="352.0" width="18.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1273" y="361" style="font-family:sans-serif;font-size:10px;"> +inc +</text> +<rect x="367.0" y="320.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="369" y="329" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="2114.499999999999" y="320.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2116" y="329" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="794.4133522727266" y="128.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="796" y="137" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="448.0" y="224.0" width="32.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="450" y="233" style="font-family:sans-serif;font-size:10px;"> +axiom +</text> +<rect x="1147.249999999999" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1149" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="2066.499999999999" y="288.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2068" y="297" style="font-family:sans-serif;font-size:10px;"> +/ +</text> +<rect x="833.9999999999991" y="192.0" width="60.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="835" y="201" style="font-family:sans-serif;font-size:10px;"> +eq_var_def +</text> +<rect x="2092.666666666666" y="224.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2094" y="233" style="font-family:sans-serif;font-size:10px;"> += +</text> +<rect x="956.1249999999991" y="128.0" width="42.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="958" y="137" style="font-family:sans-serif;font-size:10px;"> +ind_hyp +</text> +<rect x="1580.499999999999" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1582" y="297" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="2133.749999999999" y="256.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2135" y="265" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="195.0" y="288.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="197" y="297" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="566.375" y="192.0" width="101.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="568" y="201" style="font-family:sans-serif;font-size:10px;"> +transformation_step +</text> +<rect x="616.0" y="384.0" width="26.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="618" y="393" style="font-family:sans-serif;font-size:10px;"> +zero +</text> +<rect x="1559.999999999999" y="416.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1561" y="425" style="font-family:sans-serif;font-size:10px;"> +n +</text> +<rect x="1772.249999999999" y="224.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1774" y="233" style="font-family:sans-serif;font-size:10px;"> +direction +</text> +<rect x="2010.499999999999" y="224.0" width="31.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2012" y="233" style="font-family:sans-serif;font-size:10px;"> +subst +</text> +<rect x="2180.999999999999" y="416.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2182" y="425" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="1485.749999999999" y="256.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="1487" y="265" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +</svg> \ No newline at end of file diff --git a/ANTRL-Grammatiken/Lib/EquationRules.g4 b/ANTRL-Grammatiken/Lib/EquationRules.g4 new file mode 100644 index 0000000000000000000000000000000000000000..9a735c87e65658eb9a2df1a6012b8499551320d3 --- /dev/null +++ b/ANTRL-Grammatiken/Lib/EquationRules.g4 @@ -0,0 +1,17 @@ +grammar EquationRules; + +import TreeAndLexerRules; + +/* + * Parser Rules + */ + +var : BEZ ':' sort ; +sort: BEZ; + +forall: 'forall' var (',' var)* ; +fixed : 'fixed' var (',' var)* ; + +eq_var_def: ( (fixed ':') (forall ':')? | (forall ':') (fixed ':')? )? ; + +eq: eq_var_def mytree '=' mytree ; \ No newline at end of file diff --git a/ANTRL-Grammatiken/Lib/TreeAndLexerRules.g4 b/ANTRL-Grammatiken/Lib/TreeAndLexerRules.g4 new file mode 100644 index 0000000000000000000000000000000000000000..1f21ac0978f0663e2d24c6bebfd9c700f258266e --- /dev/null +++ b/ANTRL-Grammatiken/Lib/TreeAndLexerRules.g4 @@ -0,0 +1,19 @@ +grammar TreeAndLexerRules; + +// tree is a reserved word in antrl3, a parser rule with that name is confusing antlr4 + +mytree : treeLeaf | treeNode ; +treeLeaf : BEZ ; +treeNode : BEZ '(' mytree (',' mytree)* ')' ; + +/* + * Lexer Rules + */ + +BEZ : ([a-z] | [A-Z]) ([a-z] | [A-Z] | [0-9] | '_')* ; + +NAT : '0' | ([1-9] [0-9]*) ; + +WHITESPACE: (' ' | '\t') -> skip ; + +NEWLINE : ('\r'? '\n' | '\r') -> skip ; \ No newline at end of file diff --git a/ANTRL-Grammatiken/Lib/Tree_Bsp.txt b/ANTRL-Grammatiken/Lib/Tree_Bsp.txt new file mode 100644 index 0000000000000000000000000000000000000000..d92fdd0da7396a6eb97fe4bdc99e26c428ae5216 --- /dev/null +++ b/ANTRL-Grammatiken/Lib/Tree_Bsp.txt @@ -0,0 +1 @@ +plus(x,y) \ No newline at end of file diff --git a/ANTRL-Grammatiken/Lib/Tree_Bsp_parse_tree.svg b/ANTRL-Grammatiken/Lib/Tree_Bsp_parse_tree.svg new file mode 100644 index 0000000000000000000000000000000000000000..38281af7f8e850850b668dabf8b9eff3740301f5 --- /dev/null +++ b/ANTRL-Grammatiken/Lib/Tree_Bsp_parse_tree.svg @@ -0,0 +1,60 @@ +<svg width="1872.2" height="445.50000000000006" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><line x1="82.0" y1="7.5" x2="82.0" y2="32.0" style="stroke:black; stroke-width:1px;" /> +<line x1="82.0" y1="39.5" x2="12.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="82.0" y1="39.5" x2="35.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="82.0" y1="39.5" x2="64.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="64.5" y1="71.5" x2="64.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="64.5" y1="103.5" x2="64.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="82.0" y1="39.5" x2="93.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="82.0" y1="39.5" x2="122.5" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<line x1="122.5" y1="71.5" x2="122.5" y2="96.0" style="stroke:black; stroke-width:1px;" /> +<line x1="122.5" y1="103.5" x2="122.5" y2="128.0" style="stroke:black; stroke-width:1px;" /> +<line x1="82.0" y1="39.5" x2="152.0" y2="64.0" style="stroke:black; stroke-width:1px;" /> +<rect x="100.0" y="96.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="102" y="105" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="0.0" y="64.0" width="24.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="2" y="73" style="font-family:sans-serif;font-size:10px;"> +plus +</text> +<rect x="104.0" y="64.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="106" y="73" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="31.0" y="64.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="33" y="73" style="font-family:sans-serif;font-size:10px;"> +( +</text> +<rect x="46.0" y="64.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="48" y="73" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="42.0" y="96.0" width="45.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="44" y="105" style="font-family:sans-serif;font-size:10px;"> +treeLeaf +</text> +<rect x="117.5" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="119" y="137" style="font-family:sans-serif;font-size:10px;"> +y +</text> +<rect x="59.5" y="128.0" width="10.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="61" y="137" style="font-family:sans-serif;font-size:10px;"> +x +</text> +<rect x="63.5" y="0.0" width="37.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="65" y="9" style="font-family:sans-serif;font-size:10px;"> +mytree +</text> +<rect x="90.0" y="64.0" width="7.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="92" y="73" style="font-family:sans-serif;font-size:10px;"> +, +</text> +<rect x="148.0" y="64.0" width="8.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="150" y="73" style="font-family:sans-serif;font-size:10px;"> +) +</text> +<rect x="58.0" y="32.0" width="48.0" height="15.0" style="fill:orange; stroke:rgb(0,0,0);" rx="1"/> +<text x="60" y="41" style="font-family:sans-serif;font-size:10px;"> +treeNode +</text> +</svg> \ No newline at end of file diff --git a/BaumtransformationBewerter/Ausgabeverwaltung/Ausgabeverwalter.cs b/BaumtransformationBewerter/Ausgabeverwaltung/Ausgabeverwalter.cs new file mode 100644 index 0000000000000000000000000000000000000000..3cfd15e49b9170ca0e8f244fe82be040f912a74a --- /dev/null +++ b/BaumtransformationBewerter/Ausgabeverwaltung/Ausgabeverwalter.cs @@ -0,0 +1,175 @@ +using Eingabeverwaltung.Metamodell; +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.IO; +using System.Linq; + +namespace Ausgabeverwaltung +{ + /// <summary> + /// Outputs in File "Automatische_Bewertung.txt" when OutPutMode is "file", which is standard. + /// Outputs in the "OutPut" string when OutPutMode is "string". + /// </summary> + public class Ausgabeverwalter + { + private string OutPutMode; + private string OutPut; + public Ausgabeverwalter() + { + OutPutMode = "file"; + OutPut = ""; + } + + public Ausgabeverwalter(string OutPutMode) + { + if (OutPutMode == "file" || OutPutMode == "string") + this.OutPutMode = OutPutMode; + else throw new Exception("Unknown OutPutMode set for Ausgabeverwalter: " + OutPutMode); + OutPut = ""; + } + + /// <summary> + /// Returns OutPut-string. Warning: OutPut-string is empty if OutPutMode is not "string". + /// </summary> + /// <returns></returns> + public string GetOutPut() => OutPut; + + public void Ausgabe(Container con, ImmutableList<Bewertung.IAssessmentResult> bewertung, int BewertungRound) + { + if (bewertung[0] is Bewertung.AssessmentResult) + Ausgabe(con, bewertung.Cast<Bewertung.AssessmentResult>().ToList().ToImmutableList(), BewertungRound); + else throw new Exception("Can only output AssessmentResults but got "+bewertung[0].GetType()); + } + + public void Ausgabe(Container con, ImmutableList<Bewertung.AssessmentResult> Bewertung, int BewertungRound) + { + (double,double) gesamtBewertung = (0.0,0.0); + foreach (var ar in Bewertung) + { + gesamtBewertung.Item1 += ar.assessment; + gesamtBewertung.Item2 += ar.MaxPt(); + } + gesamtBewertung.Item1 = Math.Round(gesamtBewertung.Item1, BewertungRound); + string result = "Gesamtbewertung: " + gesamtBewertung.Item1 + " von " + gesamtBewertung.Item2 + "\r\n\r\n"; + result += "Bewertung nach Teilaufgaben:\r\n"; + foreach(var ar in Bewertung) + { + if (ar.task.name == "main task") result += "Hauptaufgabe: "; else result += "Lemma " + ar.task.name + ": "; + result += Math.Round(ar.assessment,BewertungRound) + " von " + ar.MaxPt() + "\r\n"; + foreach (var ipa in ar.confIndAssessment) + result += " "+ ipa.partID+": "+ Math.Round(ipa.Assessment, BewertungRound) + " von " + ipa.maxPt + "\r\n"; + } + result += "\r\nFehler nach Lemmata:\r\n\r\n"+ printAllErrors(con); + if (OutPutMode == "file") + { + File.WriteAllText("Automatische_Bewertung.txt", result); + Console.WriteLine("Ausgabe in Automatische_Bewertung.txt."); + } + else if (OutPutMode == "string") OutPut = result; + else throw new Exception("Unknown OutPutMode set in Ausgabeverwalter: " + OutPutMode); + } + + public string printAllErrors(Container con) + { + string str = ""; + str += printAllErrors(con.Proof.proof); + if (str != "") str = "Hauptbeweis\r\n" + str; + foreach(Lemma lemma in con.Proof.lemmata) + { + string lemmastr = ""; + if (lemma.errors.Count > 0) lemmastr += ErrorMessage(lemma.errors, false, -1, -1); + lemmastr += printAllErrors(lemma.proof); + if (lemmastr != "") + { + str += "Lemma " + lemma.name; + if (lemma.usefulFor.Count > 0) + { + str += " geht ein in Teilaufgaben: "; + foreach (TaskAssignment ta in lemma.usefulFor) + str += ta.ToString() + " "; + } else str += " ohne Bewertung "; + str += "\r\n"; + str += lemmastr; + } + } + if (str == "") str = NoErrors(); + return str; + } + + private string printAllErrors(SingleProof sp) + { + if (sp is Transformation tr) return printAllErrors(tr); + else if (sp is Induction ind) return printAllErrors(ind); + else throw new Exception("Found a proof, that is neither Transformation nor Induction!"); + } + + private string printAllErrors(Induction ind) + { + string str = ""; + if (ind.errors.Count > 0) str += ErrorMessage(ind.errors, true, "", false, -1, -1); + foreach(InductionHypothesis ih in ind.indHyps) + if (ih.errors.Count > 0) str += ErrorMessage(ih.errors, true, ih.name, false, -1, -1); + foreach (InductionCase ic in ind.indCases) + { + string IndPart = "Fall "; + if (ic.Constructor != null) IndPart += ic.Constructor.name; + else IndPart += ic.eq.leftTree.ToString() + " = " + ic.eq.rightTree.ToString(); + string casestr = ""; + if (ic.errors.Count > 0) casestr += ErrorMessage(ic.errors, true, IndPart, false, -1, -1); + casestr += printAllErrors(ic.proof,true,IndPart); + if (casestr != "") str += casestr; + } + return str; + } + + private string printAllErrors(Transformation tr) => printAllErrors(tr, false, ""); + private string printAllErrors(Transformation tr, bool ind, string indPart) + { + string str = ""; + if (tr.errors.Count > 0) str += ErrorMessage(tr.errors,ind,indPart,true,-1,-1); + for(int tsi = 0; tsi < tr.transformationSteps.Count; tsi++) + { + TransformationStep ts = tr.transformationSteps[tsi]; + if (ts.errors.Count > 0) str += ErrorMessage(ts.errors, ind, indPart, true, (tsi + 1), -1); + for(int subi = 0; subi < ts.substitutions.Count; subi++) + { + Substitution sub = ts.substitutions[subi]; + if (sub.errors.Count > 0) str += ErrorMessage(sub.errors, ind, indPart, true, (tsi + 1), (subi + 1)); + } + } + return str; + } + + public string NoErrors() => "No Errors."; + + public string ErrorMessage(List<Error> errors, int ts, int sub) => ErrorMessage(errors, true, ts, sub); + public string ErrorMessage(List<Error> errors, bool tr, int ts, int sub) => ErrorMessage(errors, false, "", tr, ts, sub); + /// <param name="errors"></param> + /// <param name="ind">Induction or not?</param> + /// <param name="indPart">if ind: identifying name of part.</param> + /// <param name="tr"> true -> Transformation; false -> Lemma</param> + /// <param name="ts">Number of transformationstep</param> + /// <param name="sub">Number of substitution</param> + /// <returns></returns> + public string ErrorMessage(List<Error> errors, bool ind, string indPart, bool tr, int ts, int sub) + { + string str = "Errors in "; + if (ind) + if (indPart == "") str += "Induction"; + else str += indPart; + if (!tr && !ind) str += "Lemma"; + if (tr) + { + if (ind ) str += ", "; + if (ts == -1) str += "Transformation"; + else if (sub == -1) str += "TransformationStep " + ts; + else str += "TransformationStep " + ts + ", Substitution " + sub; + } + str += ":\r\n"; + foreach (Error err in errors) + str += " " + err.errorCode + " " + err.Output + "\r\n"; + return str; + } + } +} \ No newline at end of file diff --git a/BaumtransformationBewerter/BaumtransformationBewerter.csproj b/BaumtransformationBewerter/BaumtransformationBewerter.csproj new file mode 100644 index 0000000000000000000000000000000000000000..72fe0102362ea20c6370ce821b5875a0a4c8ef35 --- /dev/null +++ b/BaumtransformationBewerter/BaumtransformationBewerter.csproj @@ -0,0 +1,14 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>netcoreapp6.0</TargetFramework> + <StartupObject>ProgramForHuman</StartupObject> + <AssemblyName>BaumtransformationBewerterHuman</AssemblyName> + </PropertyGroup> + + <ItemGroup> + <PackageReference Include="Antlr4.Runtime.Standard" Version="4.8.0" /> + </ItemGroup> + +</Project> diff --git a/BaumtransformationBewerter/BaumtransformationBewerter.sln b/BaumtransformationBewerter/BaumtransformationBewerter.sln new file mode 100644 index 0000000000000000000000000000000000000000..aeb1d624c79b7ed34103de6dd2bc4ddc418a0218 --- /dev/null +++ b/BaumtransformationBewerter/BaumtransformationBewerter.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30413.136 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BaumtransformationBewerter", "BaumtransformationBewerter.csproj", "{92368058-E4B1-446D-8CCD-DC95512F9CA6}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {92368058-E4B1-446D-8CCD-DC95512F9CA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {92368058-E4B1-446D-8CCD-DC95512F9CA6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {92368058-E4B1-446D-8CCD-DC95512F9CA6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {92368058-E4B1-446D-8CCD-DC95512F9CA6}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {CC6FE5A7-3FC6-4A91-858E-CF70F4CFCB8F} + EndGlobalSection +EndGlobal diff --git a/BaumtransformationBewerter/Bewertung/AbstractBewerter.cs b/BaumtransformationBewerter/Bewertung/AbstractBewerter.cs new file mode 100644 index 0000000000000000000000000000000000000000..51c639968f598ade773f6005ab828d67aee50d78 --- /dev/null +++ b/BaumtransformationBewerter/Bewertung/AbstractBewerter.cs @@ -0,0 +1,120 @@ +using Eingabeverwaltung.Metamodell; +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Linq; + +namespace Bewertung +{ + /// <summary> + /// This class is the abstract variant for the chosen assessment approach. + /// It holds all required and helpful dependencies between tasks, lemmata and their basics of assessment. + /// </summary> + public abstract class AbstractBewerter : IBewerter + { + /// <summary> Configuration of the Assessment </summary> + protected int Round; + /// <summary> Configuration of the Assessment </summary> + protected Dictionary<int, double> weights; + /// <summary> The objects of assessment - for each single task </summary> + protected ImmutableList<AssessmentObject> bewertung; + + /// <summary> + /// initializes all required data for the assessment. + /// </summary> + /// <param name="con"></param> + public AbstractBewerter(Container con) + { + Round = 5; + weights = new Dictionary<int, double>() + { + [1] = 1.0, + [2] = 0.25, + [3] = 0.5, + [4] = 0.25, + [5] = 0.5, + [6] = 0.25, + [7] = 0.25 + }; + // Init Bewertung + List<AssessmentObject> bewertung = new List<AssessmentObject>(); + Lemma mainProofLemma = new Lemma("main proof", con.Task.task.eq, con.Task.task.fixedVars, con.Proof.proof); + mainProofLemma.OwnTask = con.Task.task; + mainProofLemma.usefulFor.Add(new TaskAssignment(con.Task.task)); + mainProofLemma.IsProved = true; + List<Lemma> usefulLemmata = new List<Lemma>() { mainProofLemma }; + foreach (Lemma lemma in con.Proof.lemmata) + if (lemma.GetTaskAssignment(con.Task.task) != null) usefulLemmata.Add(lemma); + bewertung.Add(new AssessmentObject(con.Task.task, usefulLemmata)); + foreach (SingleTask task in con.Task.lemmaTasks) + { + mainProofLemma = null; + usefulLemmata = new List<Lemma>(); + foreach (Lemma lemma in con.Proof.lemmata) + if (lemma.OwnTask == task) { mainProofLemma = lemma; break; } + if (mainProofLemma != null) + { + usefulLemmata.Add(mainProofLemma); + foreach (Lemma lemma in con.Proof.lemmata) + if (lemma.OwnTask == null && lemma.GetTaskAssignment(task) != null) usefulLemmata.Add(lemma); + } + bewertung.Add(new AssessmentObject(task, usefulLemmata)); + } + this.bewertung = bewertung.ToImmutableList(); + } + + /// <summary> + /// expands the 1 paramenter constructor by user defined configuration of the assessment. + /// </summary> + /// <param name="con"></param> + /// <param name="config"></param> + public AbstractBewerter(Container con, string config) : this(con) + { + string[] lines = config.Split('\n'); + foreach (string line in lines) + { + string[] words = line.Split(' ', 2); + switch (words[0].ToLower()) + { + case "round": Round = Int32.Parse(words[1].Trim()); break; + case "1": weights[1] = Double.Parse(words[1].Trim()); break; + case "2": weights[2] = Double.Parse(words[1].Trim()); break; + case "3": weights[3] = Double.Parse(words[1].Trim()); break; + case "4": weights[4] = Double.Parse(words[1].Trim()); break; + case "5": weights[5] = Double.Parse(words[1].Trim()); break; + case "6": weights[6] = Double.Parse(words[1].Trim()); break; + case "7": weights[7] = Double.Parse(words[1].Trim()); break; + default: throw new Exception("Found unknown key " + words[0] + " in the config."); + } + } + } + + /// <summary> + /// (Re)initialises the assessment. Only the attribute "bewertung" is resetted, so every task has 0 points. + /// </summary> + protected void initializeBewertung() + { + for (int ID = 0; ID < bewertung.Count; ID++) + bewertung[ID].init(); + } + + protected double confPt(int maxPt, double abstrMaxPt, int minSteps) + => maxPt * Math.Min(1.0, abstrMaxPt / Math.Max(1.0,minSteps)); + + public abstract void Bewerte(); + public ImmutableList<IAssessmentResult> GetBewertung() + { + List<IAssessmentResult> result = new List<IAssessmentResult>(); + foreach (AssessmentObject aO in bewertung) + { + List<InductionPartAssessment> ipaReadOnly = new List<InductionPartAssessment>(); + foreach (InductionPartAssessment ipa in aO.confIndAssessment) + ipaReadOnly.Add(new InductionPartAssessment(ipa)); + result.Add(new AssessmentResult(aO.task, aO.assessment, ipaReadOnly.ToImmutableList())); + } + return result.ToImmutableList(); + } + public int GetRound() => Round; + + } +} diff --git a/BaumtransformationBewerter/Bewertung/AssessmentObject.cs b/BaumtransformationBewerter/Bewertung/AssessmentObject.cs new file mode 100644 index 0000000000000000000000000000000000000000..c818bb887a62bb881cde52c28c934264f8b78a77 --- /dev/null +++ b/BaumtransformationBewerter/Bewertung/AssessmentObject.cs @@ -0,0 +1,89 @@ +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using Eingabeverwaltung.Metamodell; + +namespace Bewertung +{ + public class AssessmentObject + { + public readonly SingleTask task; + public readonly List<Lemma> usefulLemmata; + internal double assessment; + internal ImmutableList<InductionPartAssessment> confIndAssessment; + public ImmutableDictionary<Lemma, int> AbstractMaxLemmaPoints; + + + /// <param name="task"></param> + /// <param name="usefulLemmata">first useful lemma should be the main lemma of the task</param> + public AssessmentObject(SingleTask task, List<Lemma> usefulLemmata) + { + this.task = task; + this.usefulLemmata = usefulLemmata; + assessment = 0.0; + // init lemmaAbstractPoints + Dictionary<Lemma, int> AbstractMaxLemmaPoints = new Dictionary<Lemma, int>(); + foreach (Lemma lemma in usefulLemmata) + if (lemma.proof is Transformation tr) + AbstractMaxLemmaPoints.Add(lemma, tr.transformationSteps.Count); + else if (lemma.proof is Induction ind) + AbstractMaxLemmaPoints.Add(lemma, lemmaAbstractPoints(ind)); + this.AbstractMaxLemmaPoints = AbstractMaxLemmaPoints.ToImmutableDictionary(); + // init confIndAssessment + List<InductionPartAssessment> confIndAssessment = new List<InductionPartAssessment>(); + if (task.config is InductionConfig indConf) + { + foreach (InductionCaseConfig icC in indConf.indCaseConfigs) + if (icC.indCase is BasicConstructor) + confIndAssessment.Add(new InductionPartAssessment(icC.config.maxPt, "Fall " + icC.indCase.name)); + confIndAssessment.Add(new InductionPartAssessment(indConf.indHypConfig.maxPt, "IH")); + foreach (InductionCaseConfig icC in indConf.indCaseConfigs) + if (icC.indCase is BuildingConstructor) + confIndAssessment.Add(new InductionPartAssessment(icC.config.maxPt, "Fall " + icC.indCase.name)); + } + this.confIndAssessment = confIndAssessment.ToImmutableList(); + } + + internal void init() + { + assessment = 0.0; + foreach (InductionPartAssessment ipa in confIndAssessment) + ipa.Assessment = 0.0; + } + + private int lemmaAbstractPoints(Induction ind) + { + int result = 1; // 1 for ih + foreach (InductionCase ic in ind.indCases) + { + bool err33 = false; + foreach (Error err in ic.errors) + if (err.errorCode == 33) { err33 = true; break; } // invalid ind cases are not assessed + if (!err33) + result += ic.proof.transformationSteps.Count; + } + return result; + } + + /// <summary> + /// Returns the maximum abstract points of the single Task of this AssessmentObject + /// </summary> + /// <returns></returns> + public double AbstractMaxTaskPoints() + { + double result = 0.0; ImmutableDictionary<Lemma, int> abstrmlp = AbstractMaxLemmaPoints; + if (task.config is InductionConfig) + abstrmlp = abstrmlp.Remove(usefulLemmata[0]); // because its immutable it don't destroys AbstractMaxLemmaPoints + foreach (var abstractMaxLemmaPoints in abstrmlp) + result += (double)abstractMaxLemmaPoints.Value / abstractMaxLemmaPoints.Key.usefulFor.Count; + return result; + } + + internal InductionPartAssessment findIPA(string name) + { + foreach (InductionPartAssessment ipa in confIndAssessment) + if (ipa.partID == name) return ipa; + throw new Exception("Could not find InductionPartAssessment " + name); + } + } +} diff --git a/BaumtransformationBewerter/Bewertung/AssessmentResult.cs b/BaumtransformationBewerter/Bewertung/AssessmentResult.cs new file mode 100644 index 0000000000000000000000000000000000000000..737bbb0db41e427e5e59e90ef3c6d73e0d23236f --- /dev/null +++ b/BaumtransformationBewerter/Bewertung/AssessmentResult.cs @@ -0,0 +1,29 @@ +using Eingabeverwaltung.Metamodell; +using System.Collections.Immutable; + +namespace Bewertung +{ + /// <summary> + /// This is the readOnly result of assessment + /// </summary> + public class AssessmentResult : IAssessmentResult + { + public readonly SingleTask task; + public readonly double assessment; + public readonly ImmutableList<InductionPartAssessment> confIndAssessment; + + public AssessmentResult(SingleTask task, double assessment, ImmutableList<InductionPartAssessment> confIndAssessment) + { + this.task = task; + this.assessment = assessment; + this.confIndAssessment = confIndAssessment; + } + + /// <summary> + /// Returns the maximum points of the single Task and the configured induction parts of its main proof + /// </summary> + /// <returns></returns> + public int MaxPt() => task.config.MaxPt(); + public double Assessment() => assessment; + } +} diff --git a/BaumtransformationBewerter/Bewertung/Bewerter.cs b/BaumtransformationBewerter/Bewertung/Bewerter.cs new file mode 100644 index 0000000000000000000000000000000000000000..ea6ec2492975bf615a6766d0e96a93ca94fa5c18 --- /dev/null +++ b/BaumtransformationBewerter/Bewertung/Bewerter.cs @@ -0,0 +1,266 @@ +using Eingabeverwaltung.Metamodell; +using System; +using System.Collections.Generic; +using System.Collections.Immutable; + +namespace Bewertung { + public class Bewerter : AbstractBewerter + { + private Container con; + public Bewerter(Container con) : base(con) { this.con = con; } + + public Bewerter(Container con, string config) : base(con,config) { this.con = con; } + + public override void Bewerte() + { + initializeBewertung(); + bool NoErrors() + { + Ausgabeverwaltung.Ausgabeverwalter aus = new Ausgabeverwaltung.Ausgabeverwalter(); + return aus.printAllErrors(con) == aus.NoErrors(); + } + if (NoErrors()) + { // if NoErrors, don't calculate assessment, instead give maxPt. + // Cause: due to wrong configuration of minSteps calculation of assessment could give less than maxPt for a correct proof. + foreach(AssessmentObject aO in bewertung) + { + aO.assessment = aO.task.config.MaxPt(); + if (aO.task.config is InductionConfig indConf) + foreach (InductionPartAssessment ipa in aO.confIndAssessment) + ipa.Assessment = ipa.maxPt; + } + return; + } + foreach(AssessmentObject aO in bewertung) + { + if (aO.usefulLemmata.Count == 0) continue; + List<Lemma> usefulLemmata = new List<Lemma>(aO.usefulLemmata); + Lemma mainLemma = usefulLemmata[0]; + if (aO.task.config is InductionConfig indConf && mainLemma.proof is Induction ind) // Assessment with induction config ( is 0.0 if mainLemma.proof is Transformation) + { + usefulLemmata.RemoveAt(0); // do not regular assessment on main lemma later + if (HasIndErrors(ind)) continue; // assessment is 0.0 + foreach (Lemma lemma in usefulLemmata) + if (lemma.GetTaskAssignment(aO.task).IndCases.Count == 0) + throw new Exception("Lemma "+lemma.name+" is useful for task "+aO.task+" with induction config but don't knows to which induction case it is useful."); + aO.findIPA("IH").Assessment = indConf.indHypConfig.maxPt * Bewertung(ind.indHyps); + foreach (InductionCase ic in ind.indCases) + { + bool err33 = false; + foreach (Error err in ic.errors) + if (err.errorCode == 33) { err33 = true; break; } // invalid ind cases are not assessed + if (err33) continue; + if (ic.Constructor == null) throw new Exception("Constructor of valid ind case is null in assessment!"); + double errorPoints = ic.proof.transformationSteps.Count - Bewertung(ic); + double abstrMaxPt = ic.proof.transformationSteps.Count; + foreach(Lemma lemma in usefulLemmata) + if (lemma.GetTaskAssignment(aO.task).IndCases.Contains(ic.Constructor)) + { + errorPoints += ( aO.AbstractMaxLemmaPoints[lemma] - Bewertung(lemma) ) + / ( lemma.usefulFor.Count * lemma.GetTaskAssignment(aO.task).IndCases.Count ); + abstrMaxPt += aO.AbstractMaxLemmaPoints[lemma]; + } + InductionCaseConfig icConfig = indConf.GetIndCaseConfig(ic.Constructor); + if (icConfig == null) throw new Exception("Cannot find config for induction case " + ic.Constructor.name + "."); + double confPt = base.confPt(icConfig.config.maxPt, abstrMaxPt, icConfig.config.minSteps); + aO.findIPA("Fall " + ic.Constructor.name).Assessment = Math.Max(0.0, confPt - icConfig.config.maxPt * errorPoints / Math.Max(1.0, Math.Min(icConfig.config.maxSteps, abstrMaxPt))); + } + foreach (InductionPartAssessment ipa in aO.confIndAssessment) + aO.assessment += ipa.Assessment; + if (containsError23(mainLemma)) aO.assessment -= aO.task.config.MaxPt() * weights[5]; + } + else if (aO.task.config is SingleConfig sConf) // Assessment with simple config + { + double errorPoints = 0.0; + foreach (Lemma lemma in usefulLemmata) + errorPoints += ( aO.AbstractMaxLemmaPoints[lemma] - Bewertung(lemma) ) / lemma.usefulFor.Count; + errorPoints = errorPoints / Math.Max(1.0, Math.Min(sConf.maxSteps, aO.AbstractMaxTaskPoints())); + if (containsError23(mainLemma)) errorPoints += weights[5]; + double confPt = base.confPt(aO.task.config.MaxPt(), aO.AbstractMaxTaskPoints(), sConf.minSteps); + aO.assessment = Math.Max(0.0, confPt - (aO.task.config.MaxPt() * errorPoints)); + } + } + bool containsError23(Lemma lemma) + { + foreach (Error err in lemma.errors) + { + switch (err.errorCode) + { + case 20: break; + case 22: break; + case 23: return true; + default: throw new Exception("Found unexpected Error " + err.errorCode + " in lemma."); + } + } + return false; + } + } + + /// <summary> + /// Abstract Assessment of one lemma. + /// </summary> + /// <param name="lemma"></param> + /// <returns></returns> + private double Bewertung(Lemma lemma) + { + foreach (Error err in lemma.errors) + switch (err.errorCode) + { + case 20: return 0.0; + case 22: throw new Exception("Found error 22 in assessment of Lemmata. Lemmata with this error should not be assessed here."); + case 23: /*This must be done on Assessment for whole task*/break; + default: throw new Exception("Found unexpected Error " + err.errorCode + " in lemma."); + } + if (!(bool)lemma.IsProved) return 0.0; + return Bewertung(lemma.proof); + } + + /// <summary> + /// Abstract Assessment of one single proof. + /// </summary> + /// <param name="proof"></param> + /// <returns></returns> + private double Bewertung(SingleProof proof) + { + if (proof is Transformation tr) return Bewertung(tr); + else if (proof is Induction ind) return Bewertung(ind); + else throw new Exception("Found a proof that is neither Transformation nor Induction."); + } + + /// <summary> + /// Abstract Assessment of one Induction. + /// </summary> + /// <param name="ind"></param> + /// <returns></returns> + private double Bewertung(Induction ind) + { + if (HasIndErrors(ind)) return 0.0; + double result = 0.0; + result += Bewertung(ind.indHyps); + foreach (InductionCase ic in ind.indCases) + result += Bewertung(ic); + return result; + } + + /// <summary> + /// Checks if there are errors directly in the induction. + /// </summary> + /// <param name="ind"></param> + /// <returns> False if no errors. True if assessment must be 0.</returns> + private bool HasIndErrors(Induction ind) + { + foreach (Error err in ind.errors) + switch (err.errorCode) + { + case 30: return true; + case 31: return true; + case 32: break; // nothing to do here: points of ic will be not added to result by ic is not in ind.indCases + case 38: return true; + default: throw new Exception("Found unexpected Error " + err.errorCode + " in the induction."); + } + return false; + } + + /// <summary> + /// Abstract Assessment of the set of Inductionhypothesis of one Induction. + /// </summary> + /// <param name="ih"></param> + /// <returns></returns> + private double Bewertung(List<InductionHypothesis> ihs) + { + double result = 0.0; + foreach (InductionHypothesis ih in ihs) + { + double ihPt = 1.0; + foreach (Error err in ih.errors) + switch (err.errorCode) + { + case 34: ihPt = 0.0; break; + case 35: ihPt = 0.0; break; + case 40: ihPt -= weights[6]; break; + case 42: break; + case 43: break; + default: throw new Exception("Found unexpected Error " + err.errorCode + " in the inductionhypothesis."); + } + result += Math.Max(0.0, ihPt); + } + return result / ihs.Count; + } + /// <summary> + /// Abstract Assessment of one Inductioncase. + /// </summary> + /// <param name="ic"></param> + /// <returns></returns> + private double Bewertung(InductionCase ic) + { + double errInhPt = 0.0; + bool formalErr = false; + int maxPt = ic.proof.transformationSteps.Count; + foreach (Error err in ic.errors) + switch (err.errorCode) + { + case 33: formalErr = true; break; + case 34: formalErr = true; break; + case 35: formalErr = true; break; + case 40: errInhPt = maxPt * weights[6]; break; + case 41: errInhPt = maxPt * weights[7]; break; + default: throw new Exception("Found unexpected Error " + err.errorCode + " in the inductioncase."); + } + double result = 0.0; + if (!formalErr) result += Bewertung(ic.proof) - errInhPt; + return Math.Max(0.0, result); + } + + + /// <summary> + /// Abstract Assessment of one Transformation. + /// </summary> + /// <param name="tr"></param> + /// <returns></returns> + private double Bewertung(Transformation tr) + { + foreach(Error err in tr.errors) + switch (err.errorCode) + { + case 1: return 0.0; + case 2: return 0.0; + case 39: return 0.0; + default: throw new Exception("Found unexpected Error " + err.errorCode + " in the transformation."); + } + double result = 0.0; + foreach(TransformationStep ts in tr.transformationSteps) + { + bool foundError3 = false, foundError4 = false; + foreach (Substitution sub in ts.substitutions) + foreach (Error err in sub.errors) + switch (err.errorCode) + { + case 3: foundError3 = true; break; + case 4: foundError4 = true; break; + case 13: break; + default: throw new Exception("Found unexpected Error " + err.errorCode + " in a Substitution."); + } + if (foundError3 || foundError4) continue; + double tsPoints = 1.0; + foreach(Error err in ts.errors) + switch (err.errorCode) + { + case 5: tsPoints = 0.0; break; + case 6: tsPoints = 0.0; break; + case 7: tsPoints -= weights[1]; break; + case 8: tsPoints -= weights[2]; break; + case 9: tsPoints -= weights[3]; break; + case 10: tsPoints -= weights[3]; break; + case 11: tsPoints -= weights[4]; break; + case 12: tsPoints -= weights[4]; break; + case 21: tsPoints = 0.0; break; + case 36: tsPoints = 0.0; break; + case 37: tsPoints = 0.0; break; + default: throw new Exception("Found unexpected Error " + err.errorCode + " in a transformationStep."); + } + result += Math.Max(0.0,tsPoints); + } + return result; + } + } +} \ No newline at end of file diff --git a/BaumtransformationBewerter/Bewertung/IAssessmentResult.cs b/BaumtransformationBewerter/Bewertung/IAssessmentResult.cs new file mode 100644 index 0000000000000000000000000000000000000000..b6dfd1b9a3f57fa30c8923c9544088d45605c7a6 --- /dev/null +++ b/BaumtransformationBewerter/Bewertung/IAssessmentResult.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Bewertung +{ + public interface IAssessmentResult + { + public int MaxPt(); + public double Assessment(); + } +} diff --git a/BaumtransformationBewerter/Bewertung/IBewerter.cs b/BaumtransformationBewerter/Bewertung/IBewerter.cs new file mode 100644 index 0000000000000000000000000000000000000000..c5b38aff5edd53c0128c37ad1f76be26ad510e17 --- /dev/null +++ b/BaumtransformationBewerter/Bewertung/IBewerter.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using Eingabeverwaltung.Metamodell; + +namespace Bewertung +{ + /// <summary> + /// The Interface for every assessment variant of Proofs with Lemmata. + /// </summary> + interface IBewerter + { + /// <summary> + /// runs the assessment + /// </summary> + public void Bewerte(); + /// <summary> + /// Must use Bewerte() before using this. + /// </summary> + /// <returns> Returns the result of the assesment: Assessment for each single task.</returns> + public ImmutableList<IAssessmentResult> GetBewertung(); + /// <summary> + /// It should be used before outputting the result of the assessment. + /// </summary> + /// <returns> Returns the Rounding value for the assessment.</returns> + public int GetRound(); + } +} diff --git a/BaumtransformationBewerter/Bewertung/InductionPartAssessment.cs b/BaumtransformationBewerter/Bewertung/InductionPartAssessment.cs new file mode 100644 index 0000000000000000000000000000000000000000..c0e471dc92b0d30ae3442a384bf230ba0ac01926 --- /dev/null +++ b/BaumtransformationBewerter/Bewertung/InductionPartAssessment.cs @@ -0,0 +1,36 @@ +namespace Bewertung +{ + public class InductionPartAssessment + { + private double assessment; + private bool readOnly; + internal readonly int maxPt; + internal readonly string partID; + + public InductionPartAssessment(int maxPt, string partID) + { + this.maxPt = maxPt; + this.partID = partID; + assessment = 0.0; + readOnly = false; + } + + /// <summary> + /// copys ipa and makes the assessment of the copy readonly + /// </summary> + /// <param name="ipa"></param> + public InductionPartAssessment(InductionPartAssessment ipa) + { + assessment = ipa.assessment; + maxPt = ipa.maxPt; + partID = ipa.partID; + readOnly = true; + } + + internal double Assessment + { + get { return assessment; } + set { if (!readOnly) assessment = value; else throw new System.Exception("It was tried to change the readOnly assessment."); } + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/AbstactEingabeverwalter.cs b/BaumtransformationBewerter/Eingabeverwaltung/AbstactEingabeverwalter.cs new file mode 100644 index 0000000000000000000000000000000000000000..229fac90dffa15dddab1953d6a76ad7d4ec14d34 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/AbstactEingabeverwalter.cs @@ -0,0 +1,19 @@ +using Eingabeverwaltung.Metamodell; + +namespace Eingabeverwaltung +{ + + public abstract class AbstactEingabeverwalter + { + protected Container inputContainer; + + public AbstactEingabeverwalter() + { + inputContainer = null; + } + + public abstract void verwalteEingabe(); + + public Container GetContainer() => inputContainer; + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Eingabeverwalter.cs b/BaumtransformationBewerter/Eingabeverwaltung/Eingabeverwalter.cs new file mode 100644 index 0000000000000000000000000000000000000000..d0da5beb3957d84cd55d6d8d615a613f20eae542 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Eingabeverwalter.cs @@ -0,0 +1,231 @@ +using Eingabeverwaltung.Metamodell; +using System.IO; +using System; +using Eingabeverwaltung.Parser; +using System.Collections.Immutable; +using System.Collections.Generic; + +namespace Eingabeverwaltung +{ + public class Eingabeverwalter : AbstactEingabeverwalter + { + public Eingabeverwalter() : base() { } + + /// <summary> + /// This Method manages the input without pre-inputed paths. + /// </summary> + public override void verwalteEingabe() + { + if (inputContainer == null) { initialEingabe(); return; } + eingabe(); + } + + /// <summary> + /// This Method manages the input, with pre-inputed paths. + /// </summary> + /// <param name="ADTPath"></param> + /// <param name="TaskPath"></param> + /// <param name="ProofPath"></param> + public void verwalteEingabe(string ADTPath, string TaskPath, string ProofPath) + { + try + { + ADT_Eingabe(ADTPath); + Task_Eingabe(TaskPath); + Proof_Eingabe(ProofPath); + } + catch (FileNotFoundException f) + { + Console.WriteLine(f.Message); + verwalteEingabe(); + } + catch (DirectoryNotFoundException d) + { + Console.WriteLine(d.Message); + verwalteEingabe(); + } + catch (ArgumentException a) + { + Console.WriteLine(a.Message); + verwalteEingabe(); + } + } + + /// <summary> + /// This Method manages the input if it is not the initial-input. + /// </summary> + private void eingabe() + { + ImmutableDictionary<string, Action> eingabe = new Dictionary<string, Action> + { + ["ADT"] = ADT_Eingabe, + ["Task"] = Task_Eingabe, + ["Proof"] = Proof_Eingabe, + ["exit"] = Exit_Eingabe, + ["printContainer"] = printContainer, + ["showContainer"] = showContainer + }.ToImmutableDictionary(); + string ausgabe = "Was möchten Sie eingeben? "; + foreach (string input in eingabe.Keys) + ausgabe += " " + input + " /"; + ausgabe = ausgabe.Remove(ausgabe.Length - 2); + Console.WriteLine(ausgabe); + string eingabeArt = Console.ReadLine(); + try { + eingabe[eingabeArt](); + } + catch (KeyNotFoundException e) { Console.WriteLine(e.Message); this.eingabe(); } + catch (FileNotFoundException e) + { + Console.WriteLine(e.Message); + verwalteEingabe(); + } + catch (DirectoryNotFoundException e) + { + Console.WriteLine(e.Message); + verwalteEingabe(); + } + } + + /// <summary> + /// This Method manages the initial-input. + /// </summary> + private void initialEingabe() + { + try + { + ADT_Eingabe(); + Task_Eingabe(); + Proof_Eingabe(); + } + catch (FileNotFoundException f) + { + Console.WriteLine(f.Message); + verwalteEingabe(); + } + catch (DirectoryNotFoundException d) + { + Console.WriteLine(d.Message); + verwalteEingabe(); + } + catch (ArgumentException a) + { + Console.WriteLine(a.Message); + verwalteEingabe(); + } + } + public void Eingabe_Interface(string action, string path) + { + ImmutableDictionary<string, Action<string>> eingabe = new Dictionary<string, Action<string>> + { + ["ADT"] = ADT_Eingabe, + ["Task"] = Task_Eingabe, + ["Proof"] = Proof_Eingabe, + }.ToImmutableDictionary(); + try + { + eingabe[action](path); + } + catch (FileNotFoundException) + { + Console.WriteLine("File not found on path \"" + path + "\"."); + } + catch (DirectoryNotFoundException) + { + Console.WriteLine("Directory not found on path \"" + path + "\"."); + } + } + + private void ADT_Eingabe() => ADT_Eingabe(""); + private void ADT_Eingabe(string path) + { + if (path == "") + { + Console.Write("Pfad zum ADT: "); + path = Console.ReadLine(); + } + string input = File.ReadAllText(path); + try + { + ADT adt = ADT_Antlr.parse(input); + inputContainer = new Container(); + inputContainer.ADT = adt; + } + catch (Exception e) + { + Console.WriteLine("Failed to parse the ADT at path \"" + path + "\"!"); + Console.WriteLine(e.Message + "\n" + e.StackTrace); + verwalteEingabe(); + } + } + + private void Task_Eingabe() => Task_Eingabe(""); + private void Task_Eingabe(string path) + { + if (path == "") + { + Console.Write("Pfad zur Aufgabenstellung: "); + path = Console.ReadLine(); + } + string input = File.ReadAllText(path); + try + { + Task_Antlr.parse(input,inputContainer); + inputContainer.Proof = null; + } + catch (Exception e) + { + Console.WriteLine("Failed to parse the Task at path \"" + path + "\"!"); + Console.WriteLine(e.Message + "\n" + e.StackTrace); + verwalteEingabe(); + } + } + + private void Proof_Eingabe() => Proof_Eingabe(""); + private void Proof_Eingabe(string path) + { + if (path == "") + { + Console.Write("Pfad zum Beweis: "); + path = Console.ReadLine(); + } + string input = File.ReadAllText(path); + try + { + Proof_Antlr.parse(input, inputContainer); + } + catch (Exception e) + { + Console.WriteLine("Failed to parse the Proof at path \"" + path + "\"!"); + Console.WriteLine(e.Message + "\n" + e.StackTrace); + verwalteEingabe(); + } + } + /// <summary> + /// Does nothing in order to let the Eingabe exit. + /// </summary> + private void Exit_Eingabe() { } + + /// <summary> + /// Prints Container with its metadata + /// </summary> + private void printContainer() + { + string print = ""; + try { print = inputContainer.ToString(true); } + catch (NullReferenceException) { } + Console.WriteLine(print); + } + + /// <summary> + /// Prints Container without metadata + /// </summary> + private void showContainer() + { + string print = ""; + try { print = inputContainer.ToString(false); } + catch (NullReferenceException) { } + Console.WriteLine(print); + } + } +} \ No newline at end of file diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ADT/ADT.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ADT/ADT.cs new file mode 100644 index 0000000000000000000000000000000000000000..87299d4792ecc6321e621dcc993268897f1a2276 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ADT/ADT.cs @@ -0,0 +1,41 @@ +using System.Collections.Generic; + +namespace Eingabeverwaltung.Metamodell +{ + public class ADT + { + public readonly List<Sort> sorts; + public readonly List<Operation> operations; + public readonly List<Axiom> axioms; + + public ADT(List<Sort> sorts, List<Operation> operations, List<Axiom> axioms) + { + this.sorts = sorts; + this.operations = operations; + this.axioms = axioms; + } + + public string ToString(bool showMetadata) + { + string res = "ADT:\r\n"; + res += "Sorten: "; + foreach (Sort sort in sorts) + res += sort.name + ", "; + res = res.Remove(res.Length - 2); + res += "\n"; + res += "Operationen:\n"; + foreach (Operation op in operations) res += op.ToString(showMetadata); + if (axioms.Count != 0) + { + res += "Variablen: "; + foreach (Variable v in axioms[0].eq.variables) + res += v.ToString(); + res += "\n"; + res += "Axioms:\n"; + foreach (Axiom ax in axioms) + res += " " + ax.name + " : " + ax.eq.leftTree.ToString() + " = " + ax.eq.rightTree.ToString() + "\n"; + } + return res; + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ADT/Axiom.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ADT/Axiom.cs new file mode 100644 index 0000000000000000000000000000000000000000..ec0591e533841677e34fd73b5aa5cb35d8191024 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ADT/Axiom.cs @@ -0,0 +1,8 @@ +namespace Eingabeverwaltung.Metamodell +{ + public class Axiom : Rule + { + public Axiom(string name, Equation equation) :base(name,equation) { } + public override bool IsFixed(Variable variable) => false; + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ADT/BasicConstructor.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ADT/BasicConstructor.cs new file mode 100644 index 0000000000000000000000000000000000000000..9cc5a6bb6ce7f3b8c883b930329c6b75dd489e59 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ADT/BasicConstructor.cs @@ -0,0 +1,16 @@ +using System.Collections.Generic; + +namespace Eingabeverwaltung.Metamodell +{ + public class BasicConstructor : Constructor + { + public BasicConstructor(string name, List<Sort> sorts) : base(name,sorts) { } + + public override string ToString(bool showMetadata) + { + string res = base.ToString(showMetadata); + if (showMetadata) res += " basic Constructor\n"; + return res; + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ADT/BuildingConstructor.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ADT/BuildingConstructor.cs new file mode 100644 index 0000000000000000000000000000000000000000..fa69f796fda4faed0c1ec5de0b80ba3dd65c5af6 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ADT/BuildingConstructor.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Eingabeverwaltung.Metamodell +{ + public class BuildingConstructor : Constructor + { + public readonly List<int> buildingParameters; + public BuildingConstructor(string name,List<Sort> sorts) : base(name,sorts) + { + buildingParameters = new List<int>(); + for(int i=0; i< sorts.Count()-1; i++) + if(sorts[i] == sorts.Last()) buildingParameters.Add(i); + if (buildingParameters.Count == 0) throw new Exception("The constructor "+name+" has been falsely considered as building constructor."); + } + + public override string ToString(bool showMetadata) + { + string res = base.ToString(showMetadata); + if (showMetadata) + { + res += " bulding Constructor on parameter "; + foreach (int i in buildingParameters) + res += i + " "; + res += "\n"; + } + return res; + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ADT/Constructor.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ADT/Constructor.cs new file mode 100644 index 0000000000000000000000000000000000000000..978ffb6a910ae172e204a412778d7e5d1ab14d13 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ADT/Constructor.cs @@ -0,0 +1,9 @@ +using System.Collections.Generic; + +namespace Eingabeverwaltung.Metamodell +{ + public abstract class Constructor : Operation + { + public Constructor(string name, List<Sort> sorts) : base(name,sorts) { } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ADT/Operation.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ADT/Operation.cs new file mode 100644 index 0000000000000000000000000000000000000000..faea2eb7907c63f19794719edb4bb518d9cbe203 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ADT/Operation.cs @@ -0,0 +1,27 @@ +using System.Collections.Generic; + +namespace Eingabeverwaltung.Metamodell +{ + public class Operation + { + public readonly string name; + public readonly List<Sort> sorts; + + public Operation(string name, List<Sort> sorts) + { + this.name = name; + this.sorts = sorts; + } + + public virtual string ToString(bool _) + { + string res = ""; + res += " " + name + ": "; + foreach (Sort sort in sorts) + res += sort.name + " -> "; + res = res.Remove(res.Length - 3); + res += "\n"; + return res; + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ADT/Sort.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ADT/Sort.cs new file mode 100644 index 0000000000000000000000000000000000000000..e002dee67594e87caa49f28edc9d85ebcc10d657 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ADT/Sort.cs @@ -0,0 +1,36 @@ +using System.Collections.Generic; + +namespace Eingabeverwaltung.Metamodell +{ + public class Sort + { + public readonly string name; + private List<BasicConstructor> basicConstructors; + private List<BuildingConstructor> buildingConstructors; + + public Sort(string name) + { + this.name = name; + basicConstructors = new List<BasicConstructor>(); + buildingConstructors = new List<BuildingConstructor>(); + } + + public void SetConstructor(Constructor constructor) + { + if (GetConstructors().Contains(constructor)) + throw new System.Exception("Tried to add the same constructor "+constructor.name+" twice to the constructors of its sort."); + if (constructor is BasicConstructor basicC) basicConstructors.Add(basicC); + else if (constructor is BuildingConstructor buildC) buildingConstructors.Add(buildC); + else throw new System.Exception("Found a constructor "+constructor.name+" that is either basic nor building!"); + } + + public List<BasicConstructor> GetBasicConstructors() => new List<BasicConstructor>(basicConstructors); + public List<BuildingConstructor> GetBuildingConstructors() => new List<BuildingConstructor>(buildingConstructors); + public List<Constructor> GetConstructors() + { + List<Constructor> result = new List<Constructor>(basicConstructors); + result.AddRange(buildingConstructors); + return result; + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ADT/Variable.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ADT/Variable.cs new file mode 100644 index 0000000000000000000000000000000000000000..281afd7c5f94149b7dc6a8ca46a8d7b6e95ad468 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ADT/Variable.cs @@ -0,0 +1,11 @@ +namespace Eingabeverwaltung.Metamodell +{ + public class Variable : Sorthaver + { + public Variable(string name, Sort sort) : base(name, sort) { } + + public override string ToString() => Name() + " : " + sort.name + " "; + + public string Name() => name;// + "(" + GetHashCode() + ")"; + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/Induction.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/Induction.cs new file mode 100644 index 0000000000000000000000000000000000000000..895de887640983c085656594abe2447fa456c35a --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/Induction.cs @@ -0,0 +1,53 @@ +using System.Collections.Generic; + +namespace Eingabeverwaltung.Metamodell +{ + public class Induction : SingleProof + { + public readonly Equation eq; + public readonly List<Variable> fixedVars; + public readonly Variable indVar; + public readonly List<InductionCase> indCases; + public readonly List<InductionHypothesis> indHyps; + public readonly List<Error> errors; + public Induction(Equation eq, List<Variable> fixedVars, Variable indVar, List<InductionCase> indCases, List<InductionHypothesis> indHyps) + { + this.eq = eq; + this.fixedVars = fixedVars; + this.indVar = indVar; + this.indCases = indCases; + this.indHyps = indHyps; + errors = new List<Error>(); + } + + public List<InductionCase> GetIndBasises() + { + List<InductionCase> result = new List<InductionCase>(); + foreach (InductionCase ic in indCases) + if (ic.type == "IA") + result.Add(ic); + return result; + } + + public List<InductionCase> GetIndSteps() + { + List<InductionCase> result = new List<InductionCase>(); + foreach (InductionCase ic in indCases) + if (ic.type == "IS") + result.Add(ic); + return result; + } + + public override string ToString(bool showMetadata) + { + string res = "Induction " + (indVar != null ? indVar.name : (showMetadata ? "IndVar not found because of error 22" : "")) + ":\r\n"; + foreach (InductionCase indBasis in GetIndBasises()) + res += indBasis.ToString(showMetadata) +"\r\n"; + foreach(InductionHypothesis ih in indHyps) + res += ih.ToString(); + foreach (InductionCase indStep in GetIndSteps()) + res += indStep.ToString(showMetadata) +"\r\n"; + return res; + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/InductionCase.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/InductionCase.cs new file mode 100644 index 0000000000000000000000000000000000000000..7b184662824b173de713cca726652341081cab49 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/InductionCase.cs @@ -0,0 +1,47 @@ +using System.Collections.Generic; + +namespace Eingabeverwaltung.Metamodell +{ + public class InductionCase : Ueberpruefung.Element + { + public readonly string type; + public readonly Equation eq; + public readonly List<Variable> fixedVars; + public readonly Transformation proof; + public readonly List<Error> errors; + private Constructor constructor; + private List<Variable> buildingParameterVariables; + + public InductionCase(string type, Equation eq, List<Variable> fixedVars, Transformation proof) + { + this.type = type; + this.fixedVars = fixedVars; + this.eq = eq; + this.proof = proof; + errors = new List<Error>(); + constructor = null; + buildingParameterVariables = null; + } + + public Constructor Constructor + { + get { return constructor; } + set { if (constructor == null) constructor = value; else throw new System.Exception("Tried to reset constructor in InductionCase!"); } + } + public List<Variable> BuildingParameterVariables + { + get { return buildingParameterVariables; } + set { if (buildingParameterVariables == null) buildingParameterVariables = value; + else throw new System.Exception("Tried to reset buildingParameterVariables in InductionCase!"); + } + } + + public string ToString(bool showMetadata) + { + string res = new TaskLemma(type, eq, fixedVars).ToString(); + if (showMetadata && constructor != null) res += "case: " + constructor.name + "\r\n"; + res += proof.ToString(showMetadata); + return res; + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/InductionHypothesis.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/InductionHypothesis.cs new file mode 100644 index 0000000000000000000000000000000000000000..101b8c32813c233c33ae126fb1cfea27e60ad69b --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/InductionHypothesis.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace Eingabeverwaltung.Metamodell +{ + public class InductionHypothesis : Rule + { + public readonly List<Variable> fixedVars; + private Nullable<bool> isProved; + public readonly List<Error> errors; + public InductionHypothesis(string name, Equation eq, List<Variable> fixedVars) : base(name,eq) + { + this.fixedVars = fixedVars; + errors = new List<Error>(); + } + + public Nullable<bool> IsProved + { + get { return isProved; } + set { if (isProved == null) isProved = value; else throw new Exception("Tried to change existing isProved in Inductionhypothesis!"); } + } + + public override bool IsFixed(Variable variable) => fixedVars.Contains(variable); + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/Lemma.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/Lemma.cs new file mode 100644 index 0000000000000000000000000000000000000000..14ecc419c5ce6304c8f0abbeb6beb9f6a4fafa15 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/Lemma.cs @@ -0,0 +1,84 @@ +using System; +using System.Collections.Generic; + +namespace Eingabeverwaltung.Metamodell +{ + public class Lemma : Rule + { + public readonly List<Variable> fixedVars; + public readonly SingleProof proof; + private Nullable<bool> isProved; + public readonly List<Lemma> cyclicDependencies; + private SingleTask ownTask; + public readonly List<TaskAssignment> usefulFor; + public readonly List<Error> errors; + + public Lemma(string name, Equation equation, List<Variable> fixedVars, SingleProof proof) : base(name,equation) + { + this.fixedVars = fixedVars; + this.proof = proof; + cyclicDependencies = null; + errors = new List<Error>(); + isProved = null; + cyclicDependencies = new List<Lemma>(); + ownTask = null; + usefulFor = new List<TaskAssignment>(); + } + + public Nullable<bool> IsProved + { + get { return isProved; } + set { if (isProved == null) isProved = value; else throw new Exception("Tried to change existing isProved in Lemma!"); } + } + + public SingleTask OwnTask + { + get { return ownTask; } + set { if (ownTask == null) ownTask = value; else throw new Exception("Tried to change existing ownTask in Lemma!"); } + } + + /// <summary> + /// Returns TaskAssignment ta from usefulFor with ta.task == task. + /// Else returns null. + /// </summary> + /// <param name="task"></param> + /// <returns></returns> + public TaskAssignment GetTaskAssignment(SingleTask task) + { + foreach (TaskAssignment ta in usefulFor) + if (ta.task == task) return ta; + return null; + } + + public override bool IsFixed(Variable variable) => fixedVars.Contains(variable); + + public string ToString(bool showMetadata) + { + string res = "lemma " + base.ToString(); + try + { + if (showMetadata) + { + if (isProved != null) res += "isProved: " + ((bool)isProved) + "\r\n"; + if (cyclicDependencies.Count != 0) + { + res += "cylic Dependencies: "; + foreach (Lemma lemma in cyclicDependencies) res += lemma.name + " "; + res += "\r\n"; + } + if (ownTask != null) res += "ownTask: " + ownTask.name + "\r\n"; + if (usefulFor.Count != 0) + { + res += "useful For: "; + foreach (TaskAssignment ta in usefulFor) + res += ta.ToString() + " "; + res += "\r\n"; + } + } + res += proof.ToString(showMetadata); + } + catch (NullReferenceException) { res += "NullReferenceException occured while Lemma.ToString."; } + return res; + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/Proof.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/Proof.cs new file mode 100644 index 0000000000000000000000000000000000000000..badda9ce4ff20e125980a94b557dbcdaa8b69ed2 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/Proof.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; + +namespace Eingabeverwaltung.Metamodell +{ + public class Proof + { + public readonly SingleProof proof; + public readonly List<Lemma> lemmata; + public Proof(SingleProof proof, List<Lemma> lemmata) + { + this.proof = proof; + this.lemmata = lemmata; + } + public string ToString(bool showMetadata) + { + string res = "Proof:\r\n\r\n"; + try + { + res += proof.ToString(showMetadata) +"\r\n\r\n"; + foreach (Lemma lemma in lemmata) res += lemma.ToString(showMetadata) +"\r\n\r\n"; + } + catch (NullReferenceException) { res += "NullReferenceException occured while Proof.ToString."; } + return res; + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/SingleProof.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/SingleProof.cs new file mode 100644 index 0000000000000000000000000000000000000000..ef1c6dfdca092362a728ffa84b9ee3a7ce38b89e --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/SingleProof.cs @@ -0,0 +1,9 @@ +using Ueberpruefung; + +namespace Eingabeverwaltung.Metamodell +{ + public abstract class SingleProof : Element + { + public abstract string ToString(bool showMetadata); + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/Substitution.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/Substitution.cs new file mode 100644 index 0000000000000000000000000000000000000000..7c1ddc2b91c7f7e803198fa8ec0be33a60f3683b --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/Substitution.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using Ueberpruefung; + +namespace Eingabeverwaltung.Metamodell +{ + public class Substitution : Element + { + public readonly string variableName; + public readonly Variable variable; + public readonly Tree tree; + public readonly List<Error> errors; + + /// <summary> + /// This Constructor throws Exception if variable is null. + /// </summary> + /// <param name="variable"></param> + /// <param name="tree"></param> + public Substitution(Variable variable, Tree tree) + { + if (variable == null) throw new Exception("Error: It was tried to build a Substitution with a null-variable and without variableName!"); + variableName = variable.name; + this.variable = variable; + this.tree = tree; + errors = new List<Error>(); + } + + /// <summary> + /// This Constructor allows the variable to be null. It means, that it don't exists in the variables of the ADT. + /// </summary> + /// <param name="variableName"></param> + /// <param name="variable"></param> + /// <param name="tree"></param> + public Substitution(string variableName, Variable variable, Tree tree) + { + this.variableName = variableName; + this.variable = variable; + this.tree = tree; + errors = new List<Error>(); + } + + public override string ToString() + { + string res = tree.ToString() + " / "; + if (variable != null) res += variable.Name() + " "; else res += "n.d.(" + variableName + ") "; + return res; + } + + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/TaskAssignment.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/TaskAssignment.cs new file mode 100644 index 0000000000000000000000000000000000000000..08577bb01cdf767ed30cc3bb6d3e50ec6b60fee0 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/TaskAssignment.cs @@ -0,0 +1,36 @@ +using System.Collections.Generic; + +namespace Eingabeverwaltung.Metamodell +{ + public class TaskAssignment + { + public readonly SingleTask task; + private List<Constructor> indCases; + + public TaskAssignment(SingleTask task) + { + this.task = task; + indCases = new List<Constructor>(); + } + + public List<Constructor> IndCases + { + get { return new List<Constructor>(indCases); } + } + + public void AddIndCase(Constructor c) { if (!indCases.Contains(c)) indCases.Add(c); } + + public override string ToString() + { + string res = task.name; + if (indCases.Count > 0) + { + res += " ( "; + foreach (Constructor indC in indCases) + res += indC.name + " "; + res += ")"; + } + return res; + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/Transformation.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/Transformation.cs new file mode 100644 index 0000000000000000000000000000000000000000..5fe663f197e3caef284ac2630270c102e6389418 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/Transformation.cs @@ -0,0 +1,28 @@ +using System.Collections.Generic; +using Ueberpruefung; + +namespace Eingabeverwaltung.Metamodell +{ + public class Transformation : SingleProof + { + public readonly Tree startTree; + public readonly List<TransformationStep> transformationSteps; + public readonly List<Error> errors; + + public Transformation(Tree startTree, List<TransformationStep> transformationSteps) + { + this.startTree = startTree; + this.transformationSteps = transformationSteps; + errors = new List<Error>(); + } + + public override string ToString(bool showMetadata) => ToString(); + public override string ToString() + { + string res = "Transformation:\r\n"; + res += "proof " + startTree.ToString() + "\n"; + foreach (TransformationStep ts in transformationSteps) res += ts.ToString(); + return res; + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/TransformationStep.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/TransformationStep.cs new file mode 100644 index 0000000000000000000000000000000000000000..6aebfa05c9447353d05154e1537985b579971039 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Beweis/TransformationStep.cs @@ -0,0 +1,57 @@ +using System.Collections.Generic; +using Ueberpruefung; + +namespace Eingabeverwaltung.Metamodell +{ + public class TransformationStep : Element + { + public readonly Tree startTree; + public readonly Rule rule; + public readonly char direction; + public readonly Tree termPart; + public readonly Tree resultTree; + public readonly List<Substitution> substitutions; + public readonly List<Error> errors; + + public TransformationStep(Tree startTree, Rule rule, char direction, Tree termPart, Tree resultTree, List<Substitution> substitutions) + { + this.startTree = startTree; + this.rule = rule; + this.direction = direction; + this.termPart = termPart; + this.resultTree = resultTree; + this.substitutions = substitutions; + errors = new List<Error>(); + } + + public Tree ruleStartTree() + { + switch (direction) + { + case '>': return rule.eq.leftTree; + case '<': return rule.eq.rightTree; + default: throw new System.Exception("A TransformationStep has an undefined direction: " + direction); + } + } + public Tree ruleEndTree() + { + switch (direction) + { + case '>': return rule.eq.rightTree; + case '<': return rule.eq.leftTree; + default: throw new System.Exception("A TransformationStep has an undefined direction: " + direction); + } + } + + public override string ToString() + { + string res = " " + "{ " + rule.name + " , " + direction + " , " + termPart + " , "; + res += "[ "; + foreach (Substitution sub in substitutions) res += sub.ToString(); + res += "]"; + res += " }\n\r"; + res += "= " + resultTree.ToString(); + return res; + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ComposedTree.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ComposedTree.cs new file mode 100644 index 0000000000000000000000000000000000000000..8f1addb60ec08904a4f625de7f1505102570bb3c --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/ComposedTree.cs @@ -0,0 +1,89 @@ +using System.Collections.Generic; +using System.Linq; + +namespace Eingabeverwaltung.Metamodell +{ + public class ComposedTree : Tree + { + /// <summary> + /// OperationName is the name of the operation. + /// </summary> + public readonly Operation operation; + public readonly List<Tree> children; + + /// <summary> + /// Creates a ComposedTree. Base gets operation.name as name and operation.sorts.Last() as sort. + /// </summary> + /// <param name="operation"></param> + /// <param name="children"></param> + public ComposedTree(Operation operation, List<Tree> children) : base(operation.name, operation.sorts.Last()) + { + this.operation = operation; + this.children = children; + } + + public override string ToString() + { + string res = ""; + if (operation != null) res += operation.name; + if (children.Count > 0) res += "( "; + bool wasInLoop = false; + foreach (Tree child in children) + { + res += child.ToString() + ","; + wasInLoop = true; + } + if (wasInLoop) res = res.Remove(res.Length-1); + if (children.Count > 0) res += " )"; + return res; + } + + public override List<Tree> findSubTree(Tree tree) + { + List<Tree> result = new List<Tree>(); + if (Equals(tree)) + { + result.Add(this); + return result; + } + foreach (Tree child in children) + { + List<Tree> found = child.findSubTree(tree); + if (found.Count > 0) result.AddRange(found); + } + return result; + } + + public override List<Variable> findUsedVars() + { + List<Variable> result = new List<Variable>(); + foreach(Tree child in children) + result.AddRange(child.findUsedVars()); + return result; + } + + public override bool Equals(Tree tree) + { + bool result = false; + ComposedTree cTree = tree as ComposedTree; + if (cTree != null && cTree.operation == operation) + { + result = true; + for (int i = 0; i < children.Count; i++) + { + result = result && children[i].Equals(cTree.children[i]); + } + } + return result; + } + + public override Tree Copy() + { + List<Tree> copiedChildren = new List<Tree>(); + // Not a foreach because the order is important and its safer when order is defined explicitly. + for (int i = 0; i < children.Count; i++) + copiedChildren.Add(children[i].Copy()); + return new ComposedTree(operation, copiedChildren); + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Container.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Container.cs new file mode 100644 index 0000000000000000000000000000000000000000..b2cf076074b48d935def059718ef020db648c2e7 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Container.cs @@ -0,0 +1,43 @@ +using System; +using Ueberpruefung; + +namespace Eingabeverwaltung.Metamodell +{ + public class Container : Element + { + private ADT adt; + private Task task; + private Proof proof; + + public Container() {} + + public ADT ADT + { + get { return adt ; } + set { adt = value; } + } + public Task Task + { + get { return task ; } + set { task = value; } + } + public Proof Proof + { + get { return proof ; } + set { proof = value; } + } + + public string ToString(bool showMetadata) + { + string res = ""; + try + { + if (adt != null) res += adt.ToString(showMetadata) + "\r\n\r\n"; else { res += "No ADT in Container.\r\n"; return res; } + if (task != null) res += task.ToString(showMetadata) + "\r\n\r\n"; else { res += "No Task in Container.\r\n"; return res; } + if (proof != null) res += proof.ToString(showMetadata); else { if (showMetadata) res += "No Proof in Container.\r\n"; return res; } + } + catch (NullReferenceException) { res += "NullReferenceException occured while Container.ToString()."; } + return res; + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Equation.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Equation.cs new file mode 100644 index 0000000000000000000000000000000000000000..232cefcbaebaa9806a203b13555430f33c603b5a --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Equation.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace Eingabeverwaltung.Metamodell +{ + public class Equation + { + public readonly Tree leftTree; + public readonly Tree rightTree; + public readonly List<Variable> variables; + public Equation(Tree leftTree, Tree rightTree, List<Variable> variables) + { + this.leftTree = leftTree; + this.rightTree = rightTree; + this.variables = variables; + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Error.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Error.cs new file mode 100644 index 0000000000000000000000000000000000000000..0290985be87c63790093d7ee846e20decd52b2ec --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Error.cs @@ -0,0 +1,31 @@ +using System; + +public class Error +{ + public readonly int errorCode; + private string output; + + public Error(int errorCode) + { + this.errorCode = errorCode; + output = null; + } + public Error(int errorCode, string output) + { + this.errorCode = errorCode; + this.output = output; + } + + public string Output + { + get + { + return output; + } + set + { + if (output == null) output = value; + else throw new Exception("ERROR: It was tried to change Error.output while it was set!"); + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Rule.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Rule.cs new file mode 100644 index 0000000000000000000000000000000000000000..010f61455ed4ea59aac9e78ca4f1a8965bde0139 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Rule.cs @@ -0,0 +1,58 @@ +using System.Collections.Generic; +using Ueberpruefung; + +namespace Eingabeverwaltung.Metamodell +{ + public abstract class Rule : Element + { + public readonly string name; + public readonly Equation eq; + public Rule(string name, Equation equation) + { + this.name = name; + eq = equation; + } + + /// <summary> + /// @pre: variable must be in eq.variables + /// @post: result is given: if variable is fixed + /// </summary> + /// <param name="variable"></param> + /// <returns> true if variable is fixed, else false </returns> + public abstract bool IsFixed(Variable variable); + + /// <summary> + /// For every variable in equation: Rule.subtype.IsFixed(variable). + /// </summary> + /// <returns>List of all variables of equation, for which subtype says its fixed.</returns> + public List<Variable> GetFixedVars() + { + List<Variable> fixedVars = new List<Variable>(); + foreach (Variable var in eq.variables) + if (IsFixed(var)) fixedVars.Add(var); + return fixedVars; + } + + public override string ToString() + { + string res = name + ": "; + List<Variable> fixedVars = GetFixedVars(); + if (fixedVars.Count > 0) res += "fixed "; + foreach (Variable var in fixedVars) + res += var.ToString(); + if (fixedVars.Count > 0) res += ": "; + if (eq.variables.Count - fixedVars.Count > 0) + { + res += "forall "; + List<Variable> allQVars = new List<Variable>(eq.variables); + foreach (Variable var in fixedVars) + allQVars.Remove(var); + foreach (Variable var in allQVars) + res += var.ToString(); + res += ": "; + } + res += eq.leftTree.ToString() + " = " + eq.rightTree.ToString() + "\r\n"; + return res; + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Sorthaver.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Sorthaver.cs new file mode 100644 index 0000000000000000000000000000000000000000..a0f19007a4afa7e55e6bf78c068173be4f1e6ee1 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Sorthaver.cs @@ -0,0 +1,14 @@ +namespace Eingabeverwaltung.Metamodell +{ + public abstract class Sorthaver + { + public readonly string name; + public readonly Sort sort; + + public Sorthaver(string name, Sort sort) + { + this.name = name; + this.sort = sort; + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Task/IConfig.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Task/IConfig.cs new file mode 100644 index 0000000000000000000000000000000000000000..7c2feb6e573a2746978345f5d699e751457ec92a --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Task/IConfig.cs @@ -0,0 +1,7 @@ +namespace Eingabeverwaltung.Metamodell +{ + public interface IConfig + { + public int MaxPt(); + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Task/InductionCaseConfig.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Task/InductionCaseConfig.cs new file mode 100644 index 0000000000000000000000000000000000000000..a0382cfe2bb41b07d147a779dddd899a5353d51b --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Task/InductionCaseConfig.cs @@ -0,0 +1,16 @@ +namespace Eingabeverwaltung.Metamodell +{ + public class InductionCaseConfig + { + public readonly SingleConfig config; + public readonly Constructor indCase; + + public InductionCaseConfig(Constructor indCase, SingleConfig config) + { + this.indCase = indCase; + this.config = config; + } + + public override string ToString() => "case " + indCase.name + ": " + config.ToString(); + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Task/InductionConfig.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Task/InductionConfig.cs new file mode 100644 index 0000000000000000000000000000000000000000..ca9e16e4a7c2dab01b1ca4e9654d375b69261f21 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Task/InductionConfig.cs @@ -0,0 +1,49 @@ +using System.Collections.Generic; + +namespace Eingabeverwaltung.Metamodell +{ + public class InductionConfig : IConfig + { + public readonly List<InductionCaseConfig> indCaseConfigs; + public readonly SingleConfig indHypConfig; + + public InductionConfig(List<InductionCaseConfig> indCaseConfigs, SingleConfig indHypConfig) + { + this.indCaseConfigs = indCaseConfigs; + this.indHypConfig = indHypConfig; + } + + public int MaxPt() + { + int res = 0; + foreach(InductionCaseConfig indCaseConfig in indCaseConfigs) + { + res += indCaseConfig.config.maxPt; + } + res += indHypConfig.maxPt; + return res; + } + + /// <summary> + /// Finds and returns the config for the given constructor. Returns null if not able to find. + /// </summary> + /// <param name="c"></param> + /// <returns></returns> + public InductionCaseConfig GetIndCaseConfig(Constructor c) + { + foreach (InductionCaseConfig icC in indCaseConfigs) + if (icC.indCase == c) return icC; + return null; + } + + public override string ToString() + { + string res = ""; + string tab = " "; + foreach (InductionCaseConfig icc in indCaseConfigs) + res += tab + icc.ToString(); + res += tab + "IH: maxpt "+indHypConfig.maxPt+"\r\n"; + return res; + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Task/SingleConfig.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Task/SingleConfig.cs new file mode 100644 index 0000000000000000000000000000000000000000..3cb32a3f596f1ba1db1fcceddf2b61d3b6ba4999 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Task/SingleConfig.cs @@ -0,0 +1,20 @@ +namespace Eingabeverwaltung.Metamodell +{ + public class SingleConfig : IConfig + { + public readonly int maxPt; + public readonly int minSteps; + public readonly int maxSteps; + + public SingleConfig(int maxPt, int minSteps, int maxSteps) + { + this.maxPt = maxPt; + this.minSteps = minSteps; + this.maxSteps = maxSteps; + } + + public int MaxPt() => maxPt; + + public override string ToString() => "maxpt " + maxPt + " minsteps " + minSteps + " maxsteps " + maxSteps + "\r\n"; + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Task/SingleTask.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Task/SingleTask.cs new file mode 100644 index 0000000000000000000000000000000000000000..288c63c63c21e7c39376a0ef4c2a5f3665680247 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Task/SingleTask.cs @@ -0,0 +1,29 @@ + +using System.Collections.Generic; + +namespace Eingabeverwaltung.Metamodell +{ + public class SingleTask : Rule + { + public readonly List<Variable> fixedVars; + public readonly IConfig config; + public readonly Variable indVariable; + + public SingleTask(string name, Equation eq, List<Variable> fixedVars, IConfig config, Variable indVariable) : base(name, eq) + { + this.fixedVars = fixedVars; + this.config = config; + this.indVariable = indVariable; + } + + public override bool IsFixed(Variable variable) => fixedVars.Contains(variable); + + public string ToString(bool showConfig) + { + string res = base.ToString(); + if (indVariable != null) res += " induction " + indVariable.name + "\r\n"; + if ( showConfig ) res += " " + config.ToString(); + return res; + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Task/Task.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Task/Task.cs new file mode 100644 index 0000000000000000000000000000000000000000..69979f90fc973d32642bccb0462dc07c690ad04d --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Task/Task.cs @@ -0,0 +1,31 @@ +using System.Collections.Generic; + +namespace Eingabeverwaltung.Metamodell +{ + public class Task + { + public readonly SingleTask task; + public readonly List<SingleTask> lemmaTasks; + public readonly List<TaskLemma> lemmata; + + public Task(SingleTask task, List<SingleTask> lemmaTasks, List<TaskLemma> lemmata) + { + this.task = task; + this.lemmaTasks = lemmaTasks; + this.lemmata = lemmata; + } + + public string ToString(bool showConfig) + { + string res = "Aufgabenstellung:\r\n"; + res += task.ToString(showConfig); + if (lemmaTasks.Count > 0) res += "Proof Lemmata:\r\n"; + foreach (SingleTask lemma in lemmaTasks) + res += lemma.ToString(showConfig); + if (lemmata.Count > 0) res += "Lemmata:\r\n"; + foreach (TaskLemma lemma in lemmata) + res += lemma.ToString(); + return res; + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Task/TaskLemma.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Task/TaskLemma.cs new file mode 100644 index 0000000000000000000000000000000000000000..6129541e190a58d2d8ebf51f127dab82f0aa8aa0 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Task/TaskLemma.cs @@ -0,0 +1,15 @@ +using System.Collections.Generic; + +namespace Eingabeverwaltung.Metamodell +{ + public class TaskLemma : Rule + { + public readonly List<Variable> fixedVars; + public TaskLemma(string name, Equation eq, List<Variable> fixedVars) : base(name, eq) + { + this.fixedVars = fixedVars; + } + + public override bool IsFixed(Variable variable) => fixedVars.Contains(variable); + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Tree.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Tree.cs new file mode 100644 index 0000000000000000000000000000000000000000..a6b6f8ce1b99b146c591e9b5b16eb588e27f678b --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/Tree.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace Eingabeverwaltung.Metamodell +{ + public abstract class Tree : Sorthaver + { + public Tree(string name, Sort sort) : base(name, sort) { } + + public override abstract string ToString(); + public abstract List<Tree> findSubTree(Tree tree); + public abstract List<Variable> findUsedVars(); + public abstract bool Equals(Tree tree); + // don't use it until you know what to do with tree == null + //public static bool operator ==(Tree left, Tree right) => left.Equals(right); + //public static bool operator !=(Tree left, Tree right) => !left.Equals(right); + + public abstract Tree Copy(); + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/TreeVariable.cs b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/TreeVariable.cs new file mode 100644 index 0000000000000000000000000000000000000000..0a8d399122aea195f4392b3cf80a866ff604cd0c --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Metamodell/TreeVariable.cs @@ -0,0 +1,31 @@ +using System.Collections.Generic; + +namespace Eingabeverwaltung.Metamodell +{ + public class TreeVariable : Tree + { + public readonly Variable variable; + + public TreeVariable(Variable variable) : base(variable.name, variable.sort) + { + this.variable = variable; + } + + public override string ToString() => variable.Name(); + + public override List<Tree> findSubTree(Tree tree) + { + List<Tree> result = new List<Tree>(); + if (tree as TreeVariable != null && ((TreeVariable)tree).variable == variable) + { + result.Add(this); + } + return result; + } + public override List<Variable> findUsedVars() => new List<Variable>() { variable }; + + public override bool Equals(Tree tree) => findSubTree(tree).Count > 0; + + public override Tree Copy() => new TreeVariable(variable); + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Antlr.cs b/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Antlr.cs new file mode 100644 index 0000000000000000000000000000000000000000..ff28e49f2074c84bba50684f2cc2fc3d3b3bf5a9 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Antlr.cs @@ -0,0 +1,28 @@ +using Eingabeverwaltung.Parser.ADT_Parser; +using Eingabeverwaltung.Metamodell; +using Antlr4.Runtime.Tree; +using Antlr4.Runtime; + +namespace Eingabeverwaltung.Parser +{ + public static class ADT_Antlr + { + public static ADT parse(string ADT_input) + { + Container container = new Container(); + + ICharStream chars = new AntlrInputStream(ADT_input); + ITokenSource lexer = new ADTLexer(chars); + ITokenStream tokens = new CommonTokenStream(lexer); + ADTParser parser = new ADTParser(tokens); + + parser.BuildParseTree = true; + + ADTParser.AdtContext tree = parser.adt(); + IADTListener adt_Listener = new ADT_Listener(container); + ParseTreeWalker.Default.Walk(adt_Listener, tree); + + return container.ADT; + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Listener.cs b/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Listener.cs new file mode 100644 index 0000000000000000000000000000000000000000..8b396da1cc79c4ce8eeb38eb8a1188714bbe052a --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Listener.cs @@ -0,0 +1,204 @@ +using Eingabeverwaltung.Metamodell; +using Eingabeverwaltung.Parser.ADT_Parser; +using System; +using Antlr4.Runtime.Tree; +using Antlr4.Runtime; +using Antlr4.Runtime.Misc; +using System.Collections.Generic; +using System.Linq; + +namespace Eingabeverwaltung.Parser +{ + public class ADT_Listener : IADTListener + { + // object on which will be build + private Container container; + + // helping objects for building + private List<Sort> op_sorts; + + private Listener_Helper LH; + + public ADT_Listener(Container container) + { + this.container = container; + op_sorts = null; + + LH = new Listener_Helper(null, null, null, null, null, null); + } + + public void EnterAdt([NotNull] ADTParser.AdtContext context) { } + public void ExitAdt([NotNull] ADTParser.AdtContext context) + { + if (LH.adt_sorts == null) throw new Exception("adt_sorts = null at ExitAdt"); + if (LH.adt_ops == null) throw new Exception("adt_ops = null at ExitAdt"); + if (LH.adt_axioms == null) LH.adt_axioms = new List<Axiom>(); + if (LH.adt_sorts.Count < 1) throw new Exception("adt_sorts is empty at ExitAdt"); + if (LH.adt_ops.Count < 1) throw new Exception("adt_ops is empty at ExitAdt"); + container.ADT = new ADT(LH.adt_sorts, LH.adt_ops, LH.adt_axioms); + } + public void EnterName([NotNull] ADTParser.NameContext context) { } + public void ExitName([NotNull] ADTParser.NameContext context) { } + + public void EnterSorts([NotNull] ADTParser.SortsContext context) => LH.adt_sorts = new List<Sort>(); + public void ExitSorts([NotNull] ADTParser.SortsContext context) + { + if (LH.adt_sorts.Count < 1) throw new Exception("adt_sorts is empty at ExitSorts"); + } + + public void EnterSort([NotNull] ADTParser.SortContext context) { } + public void ExitSort([NotNull] ADTParser.SortContext context) + { + string sortName = context.BEZ().GetText(); + if (context.Parent.GetChild(0).GetText() == "sorts") + { + Test_Sorts_all_unique(sortName); + LH.adt_sorts.Add(new Sort(sortName)); + return; + } + if (new List<string>(){"operations","constructors"}.Contains(context.Parent.Parent.GetChild(0).GetText())) + { + Sort sort = LH.findSortInADT_Sorts(sortName); + Test_Operation_all_Sorts_were_defined_in_ADT(sortName); + op_sorts.Add(sort); + return; + } + if (context.Parent.Parent.GetChild(0).GetText() == "vars") return; // this job is done in ExitVar + throw new Exception("ExitSort with Context = " + context.GetText() + " in parent "+ context.Parent.GetChild(0).GetText() + " was not able to find the sense of its life."); + } + public void EnterConstructors([NotNull] ADTParser.ConstructorsContext context) => LH.adt_ops = new List<Operation>(); + public void ExitConstructors([NotNull] ADTParser.ConstructorsContext context) + { + if (LH.adt_ops.Count < 1) throw new Exception("adt_ops is empty at ExitConstructors"); + // check for each sort: numer & type of constructors is ok + foreach (Sort sort in LH.adt_sorts) + if (sort.GetBuildingConstructors().Count > 0 && sort.GetBasicConstructors().Count == 0) + throw new Exception("The sort "+sort.name+" has building constructors, but no basic constructors."); + } + + public void EnterOperations([NotNull] ADTParser.OperationsContext context) + { + if (LH.adt_ops == null) LH.adt_ops = new List<Operation>(); + } + public void ExitOperations([NotNull] ADTParser.OperationsContext context) + { + if (LH.adt_ops.Count < 1) throw new Exception("adt_ops is empty at ExitOperations"); + } + + public void EnterOperation(ADTParser.OperationContext context) => op_sorts = new List<Sort>(); + public void ExitOperation(ADTParser.OperationContext context) + { + if (op_sorts.Count < 1) throw new Exception("op_sorts is empty at ExitOperation"); + string operationName = context.BEZ().GetText(); + Test_Operations_all_unique(operationName); + Operation operation; + if (context.Parent.GetChild(0).GetText() == "operations") + operation = new Operation(operationName, op_sorts); + else if (context.Parent.GetChild(0).GetText() == "constructors") + { + bool isBasic = true; + for (int s = 0; s < op_sorts.Count - 1; s++) + if (op_sorts[s] == op_sorts.Last()) { isBasic = false; break; } + if (isBasic) operation = new BasicConstructor(operationName, op_sorts); + else operation = new BuildingConstructor(operationName, op_sorts); + op_sorts.Last().SetConstructor((Constructor)operation); + } + else throw new Exception("ExitOperation with Context = " + context.GetText() + " in parent " + context.Parent.GetChild(0).GetText() + " was not able to find the sense of its life."); + LH.adt_ops.Add(operation); + } + + public void EnterVars([NotNull] ADTParser.VarsContext context) => LH.EnterVars(); + public void ExitVars([NotNull] ADTParser.VarsContext context) { } + + public void EnterVar([NotNull] ADTParser.VarContext context) { } + public void ExitVar([NotNull] ADTParser.VarContext context) + => LH.ExitVar(context.BEZ().GetText(), context.sort().BEZ().GetText()); + + public void EnterAxioms([NotNull] ADTParser.AxiomsContext context) => LH.adt_axioms = new List<Axiom>(); + public void ExitAxioms([NotNull] ADTParser.AxiomsContext context) + { + if (LH.adt_axioms.Count < 1) throw new Exception("adt_axioms is empty at ExitAxioms"); + } + + public void EnterAxiom([NotNull] ADTParser.AxiomContext context) => LH.trees = new List<Tree>(); + public void ExitAxiom([NotNull] ADTParser.AxiomContext context) + { + string axiomName = context.BEZ().GetText(); + Test_Axioms_all_unique(axiomName); + LH.ExitEq(); + LH.adt_axioms.Add(new Axiom(axiomName, LH.equation)); + } + + // Trees + public void EnterMytree([NotNull] ADTParser.MytreeContext context) { } + public void ExitMytree([NotNull] ADTParser.MytreeContext context) { } + + public void EnterTreeLeaf([NotNull] ADTParser.TreeLeafContext context) { } + public void ExitTreeLeaf([NotNull] ADTParser.TreeLeafContext context) + => LH.ExitTreeLeaf(context.BEZ().GetText()); + + public void EnterTreeNode([NotNull] ADTParser.TreeNodeContext context) { } + public void ExitTreeNode([NotNull] ADTParser.TreeNodeContext context) + => LH.ExitTreeNode(context.BEZ().GetText(), context.ChildCount, context.GetText()); + + // useless Interface requirements + public void EnterEveryRule(ParserRuleContext ctx) { } + public void ExitEveryRule(ParserRuleContext ctx) { } + public void VisitErrorNode(IErrorNode node) { } + public void VisitTerminal(ITerminalNode node) { } + + /// <summary> + /// Returns null if not able to find + /// </summary> + /// <param name="operationName"></param> + /// <returns></returns> + private Operation findOperationInADT_Ops(string operationName) => LH.findOperationInADT_Ops(operationName, 0, false); + + // Alle Offiziell notwendige Typtests + + /// <summary> + /// This Test is activated always when a new Sort gets added to the sortList of the ADT, + /// so as result all Sorts are unique. + /// </summary> + /// <param name="sortName"></param> + private void Test_Sorts_all_unique(string sortName) + { + if (LH.findSortInADT_Sorts(sortName) != null) throw new Exception("The Sort " + sortName + " was defined more than 1 times in Sorts of ADT!"); + } + /// <summary> + /// This Test is activated always when a new Operation gets added to the operationList of the ADT, + /// so as result all Operations are unique. + /// </summary> + /// <param name="operationName"></param> + private void Test_Operations_all_unique(string operationName) + { + if (findOperationInADT_Ops(operationName) != null) throw new Exception("The Operation " + operationName + " was defined more than 1 times in Operations of ADT!"); + } + /// <summary> + /// This Test is activated always when a new Sort gets added to the sortList of an Operation, + /// so as result every Sort of every Operation was defined in the ADT. + /// </summary> + /// <param name="sortName"></param> + private void Test_Operation_all_Sorts_were_defined_in_ADT(string sortName) + { + if (LH.findSortInADT_Sorts(sortName) == null) throw new Exception("Found a Sort " + sortName + " in Operations that was not defined in Sorts!"); + } + /// <summary> + /// This Test is activated always when a new Axiom gets added to the axiomList of the ADT, + /// so as result all Axioms are unique. + /// </summary> + /// <param name="axiomName"></param> + private void Test_Axioms_all_unique(string axiomName) + { + foreach (Axiom axiom in LH.adt_axioms) + { + if (axiom.name == axiomName) throw new Exception("The Axiom " + axiomName + " was defined more than 1 times in Axioms of ADT!"); + } + } + /// <summary> + /// This is done in LH.ExitEq() by Test_Equation_both_sides_have_same_Sort. + /// This dummy Method is for knowing, that this Test is implemented. + /// </summary> + private void Test_Axiom_both_sides_have_same_Sort() {/* Nothing here need to be. */} + } +} \ No newline at end of file diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Parser/ADT.interp b/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Parser/ADT.interp new file mode 100644 index 0000000000000000000000000000000000000000..650b3122d481495eca6ee3758b5925c4527c223d --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Parser/ADT.interp @@ -0,0 +1,59 @@ +token literal names: +null +'name' +'sorts' +',' +'constructors' +'operations' +':' +'><' +'->' +'vars' +'axioms' +'=' +'(' +')' +null +null +null +null + +token symbolic names: +null +null +null +null +null +null +null +null +null +null +null +null +null +null +BEZ +NAT +WHITESPACE +NEWLINE + +rule names: +adt +name +sorts +sort +constructors +operations +operation +vars +var +axioms +axiom +mytree +treeLeaf +treeNode + + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 19, 131, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 3, 2, 5, 2, 32, 10, 2, 3, 2, 3, 2, 5, 2, 36, 10, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 2, 42, 10, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 7, 4, 53, 10, 4, 12, 4, 14, 4, 56, 11, 4, 3, 5, 3, 5, 3, 6, 3, 6, 6, 6, 62, 10, 6, 13, 6, 14, 6, 63, 3, 7, 3, 7, 6, 7, 68, 10, 7, 13, 7, 14, 7, 69, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 7, 8, 77, 10, 8, 12, 8, 14, 8, 80, 11, 8, 3, 8, 3, 8, 5, 8, 84, 10, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 7, 9, 92, 10, 9, 12, 9, 14, 9, 95, 11, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 6, 11, 103, 10, 11, 13, 11, 14, 11, 104, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 5, 13, 115, 10, 13, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 7, 15, 124, 10, 15, 12, 15, 14, 15, 127, 11, 15, 3, 15, 3, 15, 3, 15, 2, 2, 16, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 2, 2, 2, 128, 2, 31, 3, 2, 2, 2, 4, 45, 3, 2, 2, 2, 6, 48, 3, 2, 2, 2, 8, 57, 3, 2, 2, 2, 10, 59, 3, 2, 2, 2, 12, 65, 3, 2, 2, 2, 14, 71, 3, 2, 2, 2, 16, 87, 3, 2, 2, 2, 18, 96, 3, 2, 2, 2, 20, 100, 3, 2, 2, 2, 22, 106, 3, 2, 2, 2, 24, 114, 3, 2, 2, 2, 26, 116, 3, 2, 2, 2, 28, 118, 3, 2, 2, 2, 30, 32, 5, 4, 3, 2, 31, 30, 3, 2, 2, 2, 31, 32, 3, 2, 2, 2, 32, 33, 3, 2, 2, 2, 33, 35, 5, 6, 4, 2, 34, 36, 5, 10, 6, 2, 35, 34, 3, 2, 2, 2, 35, 36, 3, 2, 2, 2, 36, 37, 3, 2, 2, 2, 37, 41, 5, 12, 7, 2, 38, 39, 5, 16, 9, 2, 39, 40, 5, 20, 11, 2, 40, 42, 3, 2, 2, 2, 41, 38, 3, 2, 2, 2, 41, 42, 3, 2, 2, 2, 42, 43, 3, 2, 2, 2, 43, 44, 7, 2, 2, 3, 44, 3, 3, 2, 2, 2, 45, 46, 7, 3, 2, 2, 46, 47, 7, 16, 2, 2, 47, 5, 3, 2, 2, 2, 48, 49, 7, 4, 2, 2, 49, 54, 5, 8, 5, 2, 50, 51, 7, 5, 2, 2, 51, 53, 5, 8, 5, 2, 52, 50, 3, 2, 2, 2, 53, 56, 3, 2, 2, 2, 54, 52, 3, 2, 2, 2, 54, 55, 3, 2, 2, 2, 55, 7, 3, 2, 2, 2, 56, 54, 3, 2, 2, 2, 57, 58, 7, 16, 2, 2, 58, 9, 3, 2, 2, 2, 59, 61, 7, 6, 2, 2, 60, 62, 5, 14, 8, 2, 61, 60, 3, 2, 2, 2, 62, 63, 3, 2, 2, 2, 63, 61, 3, 2, 2, 2, 63, 64, 3, 2, 2, 2, 64, 11, 3, 2, 2, 2, 65, 67, 7, 7, 2, 2, 66, 68, 5, 14, 8, 2, 67, 66, 3, 2, 2, 2, 68, 69, 3, 2, 2, 2, 69, 67, 3, 2, 2, 2, 69, 70, 3, 2, 2, 2, 70, 13, 3, 2, 2, 2, 71, 72, 7, 16, 2, 2, 72, 83, 7, 8, 2, 2, 73, 78, 5, 8, 5, 2, 74, 75, 7, 9, 2, 2, 75, 77, 5, 8, 5, 2, 76, 74, 3, 2, 2, 2, 77, 80, 3, 2, 2, 2, 78, 76, 3, 2, 2, 2, 78, 79, 3, 2, 2, 2, 79, 81, 3, 2, 2, 2, 80, 78, 3, 2, 2, 2, 81, 82, 7, 10, 2, 2, 82, 84, 3, 2, 2, 2, 83, 73, 3, 2, 2, 2, 83, 84, 3, 2, 2, 2, 84, 85, 3, 2, 2, 2, 85, 86, 5, 8, 5, 2, 86, 15, 3, 2, 2, 2, 87, 88, 7, 11, 2, 2, 88, 93, 5, 18, 10, 2, 89, 90, 7, 5, 2, 2, 90, 92, 5, 18, 10, 2, 91, 89, 3, 2, 2, 2, 92, 95, 3, 2, 2, 2, 93, 91, 3, 2, 2, 2, 93, 94, 3, 2, 2, 2, 94, 17, 3, 2, 2, 2, 95, 93, 3, 2, 2, 2, 96, 97, 7, 16, 2, 2, 97, 98, 7, 8, 2, 2, 98, 99, 5, 8, 5, 2, 99, 19, 3, 2, 2, 2, 100, 102, 7, 12, 2, 2, 101, 103, 5, 22, 12, 2, 102, 101, 3, 2, 2, 2, 103, 104, 3, 2, 2, 2, 104, 102, 3, 2, 2, 2, 104, 105, 3, 2, 2, 2, 105, 21, 3, 2, 2, 2, 106, 107, 7, 16, 2, 2, 107, 108, 7, 8, 2, 2, 108, 109, 5, 24, 13, 2, 109, 110, 7, 13, 2, 2, 110, 111, 5, 24, 13, 2, 111, 23, 3, 2, 2, 2, 112, 115, 5, 26, 14, 2, 113, 115, 5, 28, 15, 2, 114, 112, 3, 2, 2, 2, 114, 113, 3, 2, 2, 2, 115, 25, 3, 2, 2, 2, 116, 117, 7, 16, 2, 2, 117, 27, 3, 2, 2, 2, 118, 119, 7, 16, 2, 2, 119, 120, 7, 14, 2, 2, 120, 125, 5, 24, 13, 2, 121, 122, 7, 5, 2, 2, 122, 124, 5, 24, 13, 2, 123, 121, 3, 2, 2, 2, 124, 127, 3, 2, 2, 2, 125, 123, 3, 2, 2, 2, 125, 126, 3, 2, 2, 2, 126, 128, 3, 2, 2, 2, 127, 125, 3, 2, 2, 2, 128, 129, 7, 15, 2, 2, 129, 29, 3, 2, 2, 2, 14, 31, 35, 41, 54, 63, 69, 78, 83, 93, 104, 114, 125] \ No newline at end of file diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Parser/ADT.tokens b/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Parser/ADT.tokens new file mode 100644 index 0000000000000000000000000000000000000000..42181ff1b310f55ad8e0a3cfd99c8c60108924ba --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Parser/ADT.tokens @@ -0,0 +1,30 @@ +T__0=1 +T__1=2 +T__2=3 +T__3=4 +T__4=5 +T__5=6 +T__6=7 +T__7=8 +T__8=9 +T__9=10 +T__10=11 +T__11=12 +T__12=13 +BEZ=14 +NAT=15 +WHITESPACE=16 +NEWLINE=17 +'name'=1 +'sorts'=2 +','=3 +'constructors'=4 +'operations'=5 +':'=6 +'><'=7 +'->'=8 +'vars'=9 +'axioms'=10 +'='=11 +'('=12 +')'=13 diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Parser/ADTBaseListener.cs b/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Parser/ADTBaseListener.cs new file mode 100644 index 0000000000000000000000000000000000000000..86a09e520961ccf6844dbb5999d80179ead39d93 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Parser/ADTBaseListener.cs @@ -0,0 +1,220 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// ANTLR Version: 4.8 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +// Generated from ADT.g4 by ANTLR 4.8 + +// Unreachable code detected +#pragma warning disable 0162 +// The variable '...' is assigned but its value is never used +#pragma warning disable 0219 +// Missing XML comment for publicly visible type or member '...' +#pragma warning disable 1591 +// Ambiguous reference in cref attribute +#pragma warning disable 419 + +namespace Eingabeverwaltung.Parser.ADT_Parser { + +using Antlr4.Runtime.Misc; +using IErrorNode = Antlr4.Runtime.Tree.IErrorNode; +using ITerminalNode = Antlr4.Runtime.Tree.ITerminalNode; +using IToken = Antlr4.Runtime.IToken; +using ParserRuleContext = Antlr4.Runtime.ParserRuleContext; + +/// <summary> +/// This class provides an empty implementation of <see cref="IADTListener"/>, +/// which can be extended to create a listener which only needs to handle a subset +/// of the available methods. +/// </summary> +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.8")] +[System.CLSCompliant(false)] +public partial class ADTBaseListener : IADTListener { + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.adt"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterAdt([NotNull] ADTParser.AdtContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.adt"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitAdt([NotNull] ADTParser.AdtContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.name"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterName([NotNull] ADTParser.NameContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.name"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitName([NotNull] ADTParser.NameContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.sorts"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterSorts([NotNull] ADTParser.SortsContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.sorts"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitSorts([NotNull] ADTParser.SortsContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.sort"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterSort([NotNull] ADTParser.SortContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.sort"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitSort([NotNull] ADTParser.SortContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.constructors"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterConstructors([NotNull] ADTParser.ConstructorsContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.constructors"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitConstructors([NotNull] ADTParser.ConstructorsContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.operations"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterOperations([NotNull] ADTParser.OperationsContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.operations"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitOperations([NotNull] ADTParser.OperationsContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.operation"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterOperation([NotNull] ADTParser.OperationContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.operation"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitOperation([NotNull] ADTParser.OperationContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.vars"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterVars([NotNull] ADTParser.VarsContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.vars"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitVars([NotNull] ADTParser.VarsContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.var"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterVar([NotNull] ADTParser.VarContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.var"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitVar([NotNull] ADTParser.VarContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.axioms"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterAxioms([NotNull] ADTParser.AxiomsContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.axioms"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitAxioms([NotNull] ADTParser.AxiomsContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.axiom"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterAxiom([NotNull] ADTParser.AxiomContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.axiom"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitAxiom([NotNull] ADTParser.AxiomContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.mytree"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterMytree([NotNull] ADTParser.MytreeContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.mytree"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitMytree([NotNull] ADTParser.MytreeContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.treeLeaf"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterTreeLeaf([NotNull] ADTParser.TreeLeafContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.treeLeaf"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitTreeLeaf([NotNull] ADTParser.TreeLeafContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.treeNode"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterTreeNode([NotNull] ADTParser.TreeNodeContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.treeNode"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitTreeNode([NotNull] ADTParser.TreeNodeContext context) { } + + /// <inheritdoc/> + /// <remarks>The default implementation does nothing.</remarks> + public virtual void EnterEveryRule([NotNull] ParserRuleContext context) { } + /// <inheritdoc/> + /// <remarks>The default implementation does nothing.</remarks> + public virtual void ExitEveryRule([NotNull] ParserRuleContext context) { } + /// <inheritdoc/> + /// <remarks>The default implementation does nothing.</remarks> + public virtual void VisitTerminal([NotNull] ITerminalNode node) { } + /// <inheritdoc/> + /// <remarks>The default implementation does nothing.</remarks> + public virtual void VisitErrorNode([NotNull] IErrorNode node) { } +} +} // namespace Eingabeverwaltung.Parser.ADT_Parser diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Parser/ADTLexer.cs b/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Parser/ADTLexer.cs new file mode 100644 index 0000000000000000000000000000000000000000..366927c798475f213bddd407fd749089099ade93 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Parser/ADTLexer.cs @@ -0,0 +1,213 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// ANTLR Version: 4.8 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +// Generated from ADT.g4 by ANTLR 4.8 + +// Unreachable code detected +#pragma warning disable 0162 +// The variable '...' is assigned but its value is never used +#pragma warning disable 0219 +// Missing XML comment for publicly visible type or member '...' +#pragma warning disable 1591 +// Ambiguous reference in cref attribute +#pragma warning disable 419 + +namespace Eingabeverwaltung.Parser.ADT_Parser { +using System; +using System.IO; +using System.Text; +using Antlr4.Runtime; +using Antlr4.Runtime.Atn; +using Antlr4.Runtime.Misc; +using DFA = Antlr4.Runtime.Dfa.DFA; + +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.8")] +[System.CLSCompliant(false)] +public partial class ADTLexer : Lexer { + protected static DFA[] decisionToDFA; + protected static PredictionContextCache sharedContextCache = new PredictionContextCache(); + public const int + T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, + T__9=10, T__10=11, T__11=12, T__12=13, BEZ=14, NAT=15, WHITESPACE=16, + NEWLINE=17; + public static string[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static string[] modeNames = { + "DEFAULT_MODE" + }; + + public static readonly string[] ruleNames = { + "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8", + "T__9", "T__10", "T__11", "T__12", "BEZ", "NAT", "WHITESPACE", "NEWLINE" + }; + + + public ADTLexer(ICharStream input) + : this(input, Console.Out, Console.Error) { } + + public ADTLexer(ICharStream input, TextWriter output, TextWriter errorOutput) + : base(input, output, errorOutput) + { + Interpreter = new LexerATNSimulator(this, _ATN, decisionToDFA, sharedContextCache); + } + + private static readonly string[] _LiteralNames = { + null, "'name'", "'sorts'", "','", "'constructors'", "'operations'", "':'", + "'><'", "'->'", "'vars'", "'axioms'", "'='", "'('", "')'" + }; + private static readonly string[] _SymbolicNames = { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, "BEZ", "NAT", "WHITESPACE", "NEWLINE" + }; + public static readonly IVocabulary DefaultVocabulary = new Vocabulary(_LiteralNames, _SymbolicNames); + + [NotNull] + public override IVocabulary Vocabulary + { + get + { + return DefaultVocabulary; + } + } + + public override string GrammarFileName { get { return "ADT.g4"; } } + + public override string[] RuleNames { get { return ruleNames; } } + + public override string[] ChannelNames { get { return channelNames; } } + + public override string[] ModeNames { get { return modeNames; } } + + public override string SerializedAtn { get { return new string(_serializedATN); } } + + static ADTLexer() { + decisionToDFA = new DFA[_ATN.NumberOfDecisions]; + for (int i = 0; i < _ATN.NumberOfDecisions; i++) { + decisionToDFA[i] = new DFA(_ATN.GetDecisionState(i), i); + } + } + private static char[] _serializedATN = { + '\x3', '\x608B', '\xA72A', '\x8133', '\xB9ED', '\x417C', '\x3BE7', '\x7786', + '\x5964', '\x2', '\x13', '\x84', '\b', '\x1', '\x4', '\x2', '\t', '\x2', + '\x4', '\x3', '\t', '\x3', '\x4', '\x4', '\t', '\x4', '\x4', '\x5', '\t', + '\x5', '\x4', '\x6', '\t', '\x6', '\x4', '\a', '\t', '\a', '\x4', '\b', + '\t', '\b', '\x4', '\t', '\t', '\t', '\x4', '\n', '\t', '\n', '\x4', '\v', + '\t', '\v', '\x4', '\f', '\t', '\f', '\x4', '\r', '\t', '\r', '\x4', '\xE', + '\t', '\xE', '\x4', '\xF', '\t', '\xF', '\x4', '\x10', '\t', '\x10', '\x4', + '\x11', '\t', '\x11', '\x4', '\x12', '\t', '\x12', '\x3', '\x2', '\x3', + '\x2', '\x3', '\x2', '\x3', '\x2', '\x3', '\x2', '\x3', '\x3', '\x3', + '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', + '\x4', '\x3', '\x4', '\x3', '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', + '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', + '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', + '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', + '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', + '\x6', '\x3', '\a', '\x3', '\a', '\x3', '\b', '\x3', '\b', '\x3', '\b', + '\x3', '\t', '\x3', '\t', '\x3', '\t', '\x3', '\n', '\x3', '\n', '\x3', + '\n', '\x3', '\n', '\x3', '\n', '\x3', '\v', '\x3', '\v', '\x3', '\v', + '\x3', '\v', '\x3', '\v', '\x3', '\v', '\x3', '\v', '\x3', '\f', '\x3', + '\f', '\x3', '\r', '\x3', '\r', '\x3', '\xE', '\x3', '\xE', '\x3', '\xF', + '\x5', '\xF', '\x66', '\n', '\xF', '\x3', '\xF', '\a', '\xF', 'i', '\n', + '\xF', '\f', '\xF', '\xE', '\xF', 'l', '\v', '\xF', '\x3', '\x10', '\x3', + '\x10', '\x3', '\x10', '\a', '\x10', 'q', '\n', '\x10', '\f', '\x10', + '\xE', '\x10', 't', '\v', '\x10', '\x5', '\x10', 'v', '\n', '\x10', '\x3', + '\x11', '\x3', '\x11', '\x3', '\x11', '\x3', '\x11', '\x3', '\x12', '\x5', + '\x12', '}', '\n', '\x12', '\x3', '\x12', '\x3', '\x12', '\x5', '\x12', + '\x81', '\n', '\x12', '\x3', '\x12', '\x3', '\x12', '\x2', '\x2', '\x13', + '\x3', '\x3', '\x5', '\x4', '\a', '\x5', '\t', '\x6', '\v', '\a', '\r', + '\b', '\xF', '\t', '\x11', '\n', '\x13', '\v', '\x15', '\f', '\x17', '\r', + '\x19', '\xE', '\x1B', '\xF', '\x1D', '\x10', '\x1F', '\x11', '!', '\x12', + '#', '\x13', '\x3', '\x2', '\a', '\x4', '\x2', '\x43', '\\', '\x63', '|', + '\x6', '\x2', '\x32', ';', '\x43', '\\', '\x61', '\x61', '\x63', '|', + '\x3', '\x2', '\x33', ';', '\x3', '\x2', '\x32', ';', '\x4', '\x2', '\v', + '\v', '\"', '\"', '\x2', '\x88', '\x2', '\x3', '\x3', '\x2', '\x2', '\x2', + '\x2', '\x5', '\x3', '\x2', '\x2', '\x2', '\x2', '\a', '\x3', '\x2', '\x2', + '\x2', '\x2', '\t', '\x3', '\x2', '\x2', '\x2', '\x2', '\v', '\x3', '\x2', + '\x2', '\x2', '\x2', '\r', '\x3', '\x2', '\x2', '\x2', '\x2', '\xF', '\x3', + '\x2', '\x2', '\x2', '\x2', '\x11', '\x3', '\x2', '\x2', '\x2', '\x2', + '\x13', '\x3', '\x2', '\x2', '\x2', '\x2', '\x15', '\x3', '\x2', '\x2', + '\x2', '\x2', '\x17', '\x3', '\x2', '\x2', '\x2', '\x2', '\x19', '\x3', + '\x2', '\x2', '\x2', '\x2', '\x1B', '\x3', '\x2', '\x2', '\x2', '\x2', + '\x1D', '\x3', '\x2', '\x2', '\x2', '\x2', '\x1F', '\x3', '\x2', '\x2', + '\x2', '\x2', '!', '\x3', '\x2', '\x2', '\x2', '\x2', '#', '\x3', '\x2', + '\x2', '\x2', '\x3', '%', '\x3', '\x2', '\x2', '\x2', '\x5', '*', '\x3', + '\x2', '\x2', '\x2', '\a', '\x30', '\x3', '\x2', '\x2', '\x2', '\t', '\x32', + '\x3', '\x2', '\x2', '\x2', '\v', '?', '\x3', '\x2', '\x2', '\x2', '\r', + 'J', '\x3', '\x2', '\x2', '\x2', '\xF', 'L', '\x3', '\x2', '\x2', '\x2', + '\x11', 'O', '\x3', '\x2', '\x2', '\x2', '\x13', 'R', '\x3', '\x2', '\x2', + '\x2', '\x15', 'W', '\x3', '\x2', '\x2', '\x2', '\x17', '^', '\x3', '\x2', + '\x2', '\x2', '\x19', '`', '\x3', '\x2', '\x2', '\x2', '\x1B', '\x62', + '\x3', '\x2', '\x2', '\x2', '\x1D', '\x65', '\x3', '\x2', '\x2', '\x2', + '\x1F', 'u', '\x3', '\x2', '\x2', '\x2', '!', 'w', '\x3', '\x2', '\x2', + '\x2', '#', '\x80', '\x3', '\x2', '\x2', '\x2', '%', '&', '\a', 'p', '\x2', + '\x2', '&', '\'', '\a', '\x63', '\x2', '\x2', '\'', '(', '\a', 'o', '\x2', + '\x2', '(', ')', '\a', 'g', '\x2', '\x2', ')', '\x4', '\x3', '\x2', '\x2', + '\x2', '*', '+', '\a', 'u', '\x2', '\x2', '+', ',', '\a', 'q', '\x2', + '\x2', ',', '-', '\a', 't', '\x2', '\x2', '-', '.', '\a', 'v', '\x2', + '\x2', '.', '/', '\a', 'u', '\x2', '\x2', '/', '\x6', '\x3', '\x2', '\x2', + '\x2', '\x30', '\x31', '\a', '.', '\x2', '\x2', '\x31', '\b', '\x3', '\x2', + '\x2', '\x2', '\x32', '\x33', '\a', '\x65', '\x2', '\x2', '\x33', '\x34', + '\a', 'q', '\x2', '\x2', '\x34', '\x35', '\a', 'p', '\x2', '\x2', '\x35', + '\x36', '\a', 'u', '\x2', '\x2', '\x36', '\x37', '\a', 'v', '\x2', '\x2', + '\x37', '\x38', '\a', 't', '\x2', '\x2', '\x38', '\x39', '\a', 'w', '\x2', + '\x2', '\x39', ':', '\a', '\x65', '\x2', '\x2', ':', ';', '\a', 'v', '\x2', + '\x2', ';', '<', '\a', 'q', '\x2', '\x2', '<', '=', '\a', 't', '\x2', + '\x2', '=', '>', '\a', 'u', '\x2', '\x2', '>', '\n', '\x3', '\x2', '\x2', + '\x2', '?', '@', '\a', 'q', '\x2', '\x2', '@', '\x41', '\a', 'r', '\x2', + '\x2', '\x41', '\x42', '\a', 'g', '\x2', '\x2', '\x42', '\x43', '\a', + 't', '\x2', '\x2', '\x43', '\x44', '\a', '\x63', '\x2', '\x2', '\x44', + '\x45', '\a', 'v', '\x2', '\x2', '\x45', '\x46', '\a', 'k', '\x2', '\x2', + '\x46', 'G', '\a', 'q', '\x2', '\x2', 'G', 'H', '\a', 'p', '\x2', '\x2', + 'H', 'I', '\a', 'u', '\x2', '\x2', 'I', '\f', '\x3', '\x2', '\x2', '\x2', + 'J', 'K', '\a', '<', '\x2', '\x2', 'K', '\xE', '\x3', '\x2', '\x2', '\x2', + 'L', 'M', '\a', '@', '\x2', '\x2', 'M', 'N', '\a', '>', '\x2', '\x2', + 'N', '\x10', '\x3', '\x2', '\x2', '\x2', 'O', 'P', '\a', '/', '\x2', '\x2', + 'P', 'Q', '\a', '@', '\x2', '\x2', 'Q', '\x12', '\x3', '\x2', '\x2', '\x2', + 'R', 'S', '\a', 'x', '\x2', '\x2', 'S', 'T', '\a', '\x63', '\x2', '\x2', + 'T', 'U', '\a', 't', '\x2', '\x2', 'U', 'V', '\a', 'u', '\x2', '\x2', + 'V', '\x14', '\x3', '\x2', '\x2', '\x2', 'W', 'X', '\a', '\x63', '\x2', + '\x2', 'X', 'Y', '\a', 'z', '\x2', '\x2', 'Y', 'Z', '\a', 'k', '\x2', + '\x2', 'Z', '[', '\a', 'q', '\x2', '\x2', '[', '\\', '\a', 'o', '\x2', + '\x2', '\\', ']', '\a', 'u', '\x2', '\x2', ']', '\x16', '\x3', '\x2', + '\x2', '\x2', '^', '_', '\a', '?', '\x2', '\x2', '_', '\x18', '\x3', '\x2', + '\x2', '\x2', '`', '\x61', '\a', '*', '\x2', '\x2', '\x61', '\x1A', '\x3', + '\x2', '\x2', '\x2', '\x62', '\x63', '\a', '+', '\x2', '\x2', '\x63', + '\x1C', '\x3', '\x2', '\x2', '\x2', '\x64', '\x66', '\t', '\x2', '\x2', + '\x2', '\x65', '\x64', '\x3', '\x2', '\x2', '\x2', '\x66', 'j', '\x3', + '\x2', '\x2', '\x2', 'g', 'i', '\t', '\x3', '\x2', '\x2', 'h', 'g', '\x3', + '\x2', '\x2', '\x2', 'i', 'l', '\x3', '\x2', '\x2', '\x2', 'j', 'h', '\x3', + '\x2', '\x2', '\x2', 'j', 'k', '\x3', '\x2', '\x2', '\x2', 'k', '\x1E', + '\x3', '\x2', '\x2', '\x2', 'l', 'j', '\x3', '\x2', '\x2', '\x2', 'm', + 'v', '\a', '\x32', '\x2', '\x2', 'n', 'r', '\t', '\x4', '\x2', '\x2', + 'o', 'q', '\t', '\x5', '\x2', '\x2', 'p', 'o', '\x3', '\x2', '\x2', '\x2', + 'q', 't', '\x3', '\x2', '\x2', '\x2', 'r', 'p', '\x3', '\x2', '\x2', '\x2', + 'r', 's', '\x3', '\x2', '\x2', '\x2', 's', 'v', '\x3', '\x2', '\x2', '\x2', + 't', 'r', '\x3', '\x2', '\x2', '\x2', 'u', 'm', '\x3', '\x2', '\x2', '\x2', + 'u', 'n', '\x3', '\x2', '\x2', '\x2', 'v', ' ', '\x3', '\x2', '\x2', '\x2', + 'w', 'x', '\t', '\x6', '\x2', '\x2', 'x', 'y', '\x3', '\x2', '\x2', '\x2', + 'y', 'z', '\b', '\x11', '\x2', '\x2', 'z', '\"', '\x3', '\x2', '\x2', + '\x2', '{', '}', '\a', '\xF', '\x2', '\x2', '|', '{', '\x3', '\x2', '\x2', + '\x2', '|', '}', '\x3', '\x2', '\x2', '\x2', '}', '~', '\x3', '\x2', '\x2', + '\x2', '~', '\x81', '\a', '\f', '\x2', '\x2', '\x7F', '\x81', '\a', '\xF', + '\x2', '\x2', '\x80', '|', '\x3', '\x2', '\x2', '\x2', '\x80', '\x7F', + '\x3', '\x2', '\x2', '\x2', '\x81', '\x82', '\x3', '\x2', '\x2', '\x2', + '\x82', '\x83', '\b', '\x12', '\x2', '\x2', '\x83', '$', '\x3', '\x2', + '\x2', '\x2', '\n', '\x2', '\x65', 'h', 'j', 'r', 'u', '|', '\x80', '\x3', + '\b', '\x2', '\x2', + }; + + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN); + + +} +} // namespace Eingabeverwaltung.Parser.ADT_Parser diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Parser/ADTLexer.interp b/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Parser/ADTLexer.interp new file mode 100644 index 0000000000000000000000000000000000000000..95a7f8525f41b45bc3eda3599c900d8cac3f20d9 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Parser/ADTLexer.interp @@ -0,0 +1,68 @@ +token literal names: +null +'name' +'sorts' +',' +'constructors' +'operations' +':' +'><' +'->' +'vars' +'axioms' +'=' +'(' +')' +null +null +null +null + +token symbolic names: +null +null +null +null +null +null +null +null +null +null +null +null +null +null +BEZ +NAT +WHITESPACE +NEWLINE + +rule names: +T__0 +T__1 +T__2 +T__3 +T__4 +T__5 +T__6 +T__7 +T__8 +T__9 +T__10 +T__11 +T__12 +BEZ +NAT +WHITESPACE +NEWLINE + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 19, 132, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 13, 3, 13, 3, 14, 3, 14, 3, 15, 5, 15, 102, 10, 15, 3, 15, 7, 15, 105, 10, 15, 12, 15, 14, 15, 108, 11, 15, 3, 16, 3, 16, 3, 16, 7, 16, 113, 10, 16, 12, 16, 14, 16, 116, 11, 16, 5, 16, 118, 10, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 5, 18, 125, 10, 18, 3, 18, 3, 18, 5, 18, 129, 10, 18, 3, 18, 3, 18, 2, 2, 19, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18, 35, 19, 3, 2, 7, 4, 2, 67, 92, 99, 124, 6, 2, 50, 59, 67, 92, 97, 97, 99, 124, 3, 2, 51, 59, 3, 2, 50, 59, 4, 2, 11, 11, 34, 34, 2, 136, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 3, 37, 3, 2, 2, 2, 5, 42, 3, 2, 2, 2, 7, 48, 3, 2, 2, 2, 9, 50, 3, 2, 2, 2, 11, 63, 3, 2, 2, 2, 13, 74, 3, 2, 2, 2, 15, 76, 3, 2, 2, 2, 17, 79, 3, 2, 2, 2, 19, 82, 3, 2, 2, 2, 21, 87, 3, 2, 2, 2, 23, 94, 3, 2, 2, 2, 25, 96, 3, 2, 2, 2, 27, 98, 3, 2, 2, 2, 29, 101, 3, 2, 2, 2, 31, 117, 3, 2, 2, 2, 33, 119, 3, 2, 2, 2, 35, 128, 3, 2, 2, 2, 37, 38, 7, 112, 2, 2, 38, 39, 7, 99, 2, 2, 39, 40, 7, 111, 2, 2, 40, 41, 7, 103, 2, 2, 41, 4, 3, 2, 2, 2, 42, 43, 7, 117, 2, 2, 43, 44, 7, 113, 2, 2, 44, 45, 7, 116, 2, 2, 45, 46, 7, 118, 2, 2, 46, 47, 7, 117, 2, 2, 47, 6, 3, 2, 2, 2, 48, 49, 7, 46, 2, 2, 49, 8, 3, 2, 2, 2, 50, 51, 7, 101, 2, 2, 51, 52, 7, 113, 2, 2, 52, 53, 7, 112, 2, 2, 53, 54, 7, 117, 2, 2, 54, 55, 7, 118, 2, 2, 55, 56, 7, 116, 2, 2, 56, 57, 7, 119, 2, 2, 57, 58, 7, 101, 2, 2, 58, 59, 7, 118, 2, 2, 59, 60, 7, 113, 2, 2, 60, 61, 7, 116, 2, 2, 61, 62, 7, 117, 2, 2, 62, 10, 3, 2, 2, 2, 63, 64, 7, 113, 2, 2, 64, 65, 7, 114, 2, 2, 65, 66, 7, 103, 2, 2, 66, 67, 7, 116, 2, 2, 67, 68, 7, 99, 2, 2, 68, 69, 7, 118, 2, 2, 69, 70, 7, 107, 2, 2, 70, 71, 7, 113, 2, 2, 71, 72, 7, 112, 2, 2, 72, 73, 7, 117, 2, 2, 73, 12, 3, 2, 2, 2, 74, 75, 7, 60, 2, 2, 75, 14, 3, 2, 2, 2, 76, 77, 7, 64, 2, 2, 77, 78, 7, 62, 2, 2, 78, 16, 3, 2, 2, 2, 79, 80, 7, 47, 2, 2, 80, 81, 7, 64, 2, 2, 81, 18, 3, 2, 2, 2, 82, 83, 7, 120, 2, 2, 83, 84, 7, 99, 2, 2, 84, 85, 7, 116, 2, 2, 85, 86, 7, 117, 2, 2, 86, 20, 3, 2, 2, 2, 87, 88, 7, 99, 2, 2, 88, 89, 7, 122, 2, 2, 89, 90, 7, 107, 2, 2, 90, 91, 7, 113, 2, 2, 91, 92, 7, 111, 2, 2, 92, 93, 7, 117, 2, 2, 93, 22, 3, 2, 2, 2, 94, 95, 7, 63, 2, 2, 95, 24, 3, 2, 2, 2, 96, 97, 7, 42, 2, 2, 97, 26, 3, 2, 2, 2, 98, 99, 7, 43, 2, 2, 99, 28, 3, 2, 2, 2, 100, 102, 9, 2, 2, 2, 101, 100, 3, 2, 2, 2, 102, 106, 3, 2, 2, 2, 103, 105, 9, 3, 2, 2, 104, 103, 3, 2, 2, 2, 105, 108, 3, 2, 2, 2, 106, 104, 3, 2, 2, 2, 106, 107, 3, 2, 2, 2, 107, 30, 3, 2, 2, 2, 108, 106, 3, 2, 2, 2, 109, 118, 7, 50, 2, 2, 110, 114, 9, 4, 2, 2, 111, 113, 9, 5, 2, 2, 112, 111, 3, 2, 2, 2, 113, 116, 3, 2, 2, 2, 114, 112, 3, 2, 2, 2, 114, 115, 3, 2, 2, 2, 115, 118, 3, 2, 2, 2, 116, 114, 3, 2, 2, 2, 117, 109, 3, 2, 2, 2, 117, 110, 3, 2, 2, 2, 118, 32, 3, 2, 2, 2, 119, 120, 9, 6, 2, 2, 120, 121, 3, 2, 2, 2, 121, 122, 8, 17, 2, 2, 122, 34, 3, 2, 2, 2, 123, 125, 7, 15, 2, 2, 124, 123, 3, 2, 2, 2, 124, 125, 3, 2, 2, 2, 125, 126, 3, 2, 2, 2, 126, 129, 7, 12, 2, 2, 127, 129, 7, 15, 2, 2, 128, 124, 3, 2, 2, 2, 128, 127, 3, 2, 2, 2, 129, 130, 3, 2, 2, 2, 130, 131, 8, 18, 2, 2, 131, 36, 3, 2, 2, 2, 10, 2, 101, 104, 106, 114, 117, 124, 128, 3, 8, 2, 2] \ No newline at end of file diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Parser/ADTLexer.tokens b/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Parser/ADTLexer.tokens new file mode 100644 index 0000000000000000000000000000000000000000..42181ff1b310f55ad8e0a3cfd99c8c60108924ba --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Parser/ADTLexer.tokens @@ -0,0 +1,30 @@ +T__0=1 +T__1=2 +T__2=3 +T__3=4 +T__4=5 +T__5=6 +T__6=7 +T__7=8 +T__8=9 +T__9=10 +T__10=11 +T__11=12 +T__12=13 +BEZ=14 +NAT=15 +WHITESPACE=16 +NEWLINE=17 +'name'=1 +'sorts'=2 +','=3 +'constructors'=4 +'operations'=5 +':'=6 +'><'=7 +'->'=8 +'vars'=9 +'axioms'=10 +'='=11 +'('=12 +')'=13 diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Parser/ADTListener.cs b/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Parser/ADTListener.cs new file mode 100644 index 0000000000000000000000000000000000000000..20ddf0cd06fe7ab08ae0b00308a2bb5859895565 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Parser/ADTListener.cs @@ -0,0 +1,175 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// ANTLR Version: 4.8 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +// Generated from ADT.g4 by ANTLR 4.8 + +// Unreachable code detected +#pragma warning disable 0162 +// The variable '...' is assigned but its value is never used +#pragma warning disable 0219 +// Missing XML comment for publicly visible type or member '...' +#pragma warning disable 1591 +// Ambiguous reference in cref attribute +#pragma warning disable 419 + +namespace Eingabeverwaltung.Parser.ADT_Parser { +using Antlr4.Runtime.Misc; +using IParseTreeListener = Antlr4.Runtime.Tree.IParseTreeListener; +using IToken = Antlr4.Runtime.IToken; + +/// <summary> +/// This interface defines a complete listener for a parse tree produced by +/// <see cref="ADTParser"/>. +/// </summary> +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.8")] +[System.CLSCompliant(false)] +public interface IADTListener : IParseTreeListener { + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.adt"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterAdt([NotNull] ADTParser.AdtContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.adt"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitAdt([NotNull] ADTParser.AdtContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.name"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterName([NotNull] ADTParser.NameContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.name"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitName([NotNull] ADTParser.NameContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.sorts"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterSorts([NotNull] ADTParser.SortsContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.sorts"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitSorts([NotNull] ADTParser.SortsContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.sort"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterSort([NotNull] ADTParser.SortContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.sort"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitSort([NotNull] ADTParser.SortContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.constructors"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterConstructors([NotNull] ADTParser.ConstructorsContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.constructors"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitConstructors([NotNull] ADTParser.ConstructorsContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.operations"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterOperations([NotNull] ADTParser.OperationsContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.operations"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitOperations([NotNull] ADTParser.OperationsContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.operation"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterOperation([NotNull] ADTParser.OperationContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.operation"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitOperation([NotNull] ADTParser.OperationContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.vars"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterVars([NotNull] ADTParser.VarsContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.vars"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitVars([NotNull] ADTParser.VarsContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.var"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterVar([NotNull] ADTParser.VarContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.var"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitVar([NotNull] ADTParser.VarContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.axioms"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterAxioms([NotNull] ADTParser.AxiomsContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.axioms"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitAxioms([NotNull] ADTParser.AxiomsContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.axiom"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterAxiom([NotNull] ADTParser.AxiomContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.axiom"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitAxiom([NotNull] ADTParser.AxiomContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.mytree"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterMytree([NotNull] ADTParser.MytreeContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.mytree"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitMytree([NotNull] ADTParser.MytreeContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.treeLeaf"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterTreeLeaf([NotNull] ADTParser.TreeLeafContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.treeLeaf"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitTreeLeaf([NotNull] ADTParser.TreeLeafContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ADTParser.treeNode"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterTreeNode([NotNull] ADTParser.TreeNodeContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ADTParser.treeNode"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitTreeNode([NotNull] ADTParser.TreeNodeContext context); +} +} // namespace Eingabeverwaltung.Parser.ADT_Parser diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Parser/ADTParser.cs b/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Parser/ADTParser.cs new file mode 100644 index 0000000000000000000000000000000000000000..55c135a76b4f158807df8bb8f845eff332bf21b6 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/ADT_Parser/ADTParser.cs @@ -0,0 +1,969 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// ANTLR Version: 4.8 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +// Generated from ADT.g4 by ANTLR 4.8 + +// Unreachable code detected +#pragma warning disable 0162 +// The variable '...' is assigned but its value is never used +#pragma warning disable 0219 +// Missing XML comment for publicly visible type or member '...' +#pragma warning disable 1591 +// Ambiguous reference in cref attribute +#pragma warning disable 419 + +namespace Eingabeverwaltung.Parser.ADT_Parser { +using System; +using System.IO; +using System.Text; +using System.Diagnostics; +using System.Collections.Generic; +using Antlr4.Runtime; +using Antlr4.Runtime.Atn; +using Antlr4.Runtime.Misc; +using Antlr4.Runtime.Tree; +using DFA = Antlr4.Runtime.Dfa.DFA; + +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.8")] +[System.CLSCompliant(false)] +public partial class ADTParser : Parser { + protected static DFA[] decisionToDFA; + protected static PredictionContextCache sharedContextCache = new PredictionContextCache(); + public const int + T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, + T__9=10, T__10=11, T__11=12, T__12=13, BEZ=14, NAT=15, WHITESPACE=16, + NEWLINE=17; + public const int + RULE_adt = 0, RULE_name = 1, RULE_sorts = 2, RULE_sort = 3, RULE_constructors = 4, + RULE_operations = 5, RULE_operation = 6, RULE_vars = 7, RULE_var = 8, + RULE_axioms = 9, RULE_axiom = 10, RULE_mytree = 11, RULE_treeLeaf = 12, + RULE_treeNode = 13; + public static readonly string[] ruleNames = { + "adt", "name", "sorts", "sort", "constructors", "operations", "operation", + "vars", "var", "axioms", "axiom", "mytree", "treeLeaf", "treeNode" + }; + + private static readonly string[] _LiteralNames = { + null, "'name'", "'sorts'", "','", "'constructors'", "'operations'", "':'", + "'><'", "'->'", "'vars'", "'axioms'", "'='", "'('", "')'" + }; + private static readonly string[] _SymbolicNames = { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, "BEZ", "NAT", "WHITESPACE", "NEWLINE" + }; + public static readonly IVocabulary DefaultVocabulary = new Vocabulary(_LiteralNames, _SymbolicNames); + + [NotNull] + public override IVocabulary Vocabulary + { + get + { + return DefaultVocabulary; + } + } + + public override string GrammarFileName { get { return "ADT.g4"; } } + + public override string[] RuleNames { get { return ruleNames; } } + + public override string SerializedAtn { get { return new string(_serializedATN); } } + + static ADTParser() { + decisionToDFA = new DFA[_ATN.NumberOfDecisions]; + for (int i = 0; i < _ATN.NumberOfDecisions; i++) { + decisionToDFA[i] = new DFA(_ATN.GetDecisionState(i), i); + } + } + + public ADTParser(ITokenStream input) : this(input, Console.Out, Console.Error) { } + + public ADTParser(ITokenStream input, TextWriter output, TextWriter errorOutput) + : base(input, output, errorOutput) + { + Interpreter = new ParserATNSimulator(this, _ATN, decisionToDFA, sharedContextCache); + } + + public partial class AdtContext : ParserRuleContext { + public SortsContext sorts() { + return GetRuleContext<SortsContext>(0); + } + public OperationsContext operations() { + return GetRuleContext<OperationsContext>(0); + } + public ITerminalNode Eof() { return GetToken(ADTParser.Eof, 0); } + public NameContext name() { + return GetRuleContext<NameContext>(0); + } + public ConstructorsContext constructors() { + return GetRuleContext<ConstructorsContext>(0); + } + public VarsContext vars() { + return GetRuleContext<VarsContext>(0); + } + public AxiomsContext axioms() { + return GetRuleContext<AxiomsContext>(0); + } + public AdtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_adt; } } + public override void EnterRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.EnterAdt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.ExitAdt(this); + } + } + + [RuleVersion(0)] + public AdtContext adt() { + AdtContext _localctx = new AdtContext(Context, State); + EnterRule(_localctx, 0, RULE_adt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 29; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==T__0) { + { + State = 28; name(); + } + } + + State = 31; sorts(); + State = 33; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==T__3) { + { + State = 32; constructors(); + } + } + + State = 35; operations(); + State = 39; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==T__8) { + { + State = 36; vars(); + State = 37; axioms(); + } + } + + State = 41; Match(Eof); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class NameContext : ParserRuleContext { + public ITerminalNode BEZ() { return GetToken(ADTParser.BEZ, 0); } + public NameContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_name; } } + public override void EnterRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.EnterName(this); + } + public override void ExitRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.ExitName(this); + } + } + + [RuleVersion(0)] + public NameContext name() { + NameContext _localctx = new NameContext(Context, State); + EnterRule(_localctx, 2, RULE_name); + try { + EnterOuterAlt(_localctx, 1); + { + State = 43; Match(T__0); + State = 44; Match(BEZ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SortsContext : ParserRuleContext { + public SortContext[] sort() { + return GetRuleContexts<SortContext>(); + } + public SortContext sort(int i) { + return GetRuleContext<SortContext>(i); + } + public SortsContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_sorts; } } + public override void EnterRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.EnterSorts(this); + } + public override void ExitRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.ExitSorts(this); + } + } + + [RuleVersion(0)] + public SortsContext sorts() { + SortsContext _localctx = new SortsContext(Context, State); + EnterRule(_localctx, 4, RULE_sorts); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 46; Match(T__1); + State = 47; sort(); + State = 52; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==T__2) { + { + { + State = 48; Match(T__2); + State = 49; sort(); + } + } + State = 54; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SortContext : ParserRuleContext { + public ITerminalNode BEZ() { return GetToken(ADTParser.BEZ, 0); } + public SortContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_sort; } } + public override void EnterRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.EnterSort(this); + } + public override void ExitRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.ExitSort(this); + } + } + + [RuleVersion(0)] + public SortContext sort() { + SortContext _localctx = new SortContext(Context, State); + EnterRule(_localctx, 6, RULE_sort); + try { + EnterOuterAlt(_localctx, 1); + { + State = 55; Match(BEZ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ConstructorsContext : ParserRuleContext { + public OperationContext[] operation() { + return GetRuleContexts<OperationContext>(); + } + public OperationContext operation(int i) { + return GetRuleContext<OperationContext>(i); + } + public ConstructorsContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_constructors; } } + public override void EnterRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.EnterConstructors(this); + } + public override void ExitRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.ExitConstructors(this); + } + } + + [RuleVersion(0)] + public ConstructorsContext constructors() { + ConstructorsContext _localctx = new ConstructorsContext(Context, State); + EnterRule(_localctx, 8, RULE_constructors); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 57; Match(T__3); + State = 59; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 58; operation(); + } + } + State = 61; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==BEZ ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class OperationsContext : ParserRuleContext { + public OperationContext[] operation() { + return GetRuleContexts<OperationContext>(); + } + public OperationContext operation(int i) { + return GetRuleContext<OperationContext>(i); + } + public OperationsContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_operations; } } + public override void EnterRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.EnterOperations(this); + } + public override void ExitRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.ExitOperations(this); + } + } + + [RuleVersion(0)] + public OperationsContext operations() { + OperationsContext _localctx = new OperationsContext(Context, State); + EnterRule(_localctx, 10, RULE_operations); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 63; Match(T__4); + State = 65; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 64; operation(); + } + } + State = 67; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==BEZ ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class OperationContext : ParserRuleContext { + public ITerminalNode BEZ() { return GetToken(ADTParser.BEZ, 0); } + public SortContext[] sort() { + return GetRuleContexts<SortContext>(); + } + public SortContext sort(int i) { + return GetRuleContext<SortContext>(i); + } + public OperationContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_operation; } } + public override void EnterRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.EnterOperation(this); + } + public override void ExitRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.ExitOperation(this); + } + } + + [RuleVersion(0)] + public OperationContext operation() { + OperationContext _localctx = new OperationContext(Context, State); + EnterRule(_localctx, 12, RULE_operation); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 69; Match(BEZ); + State = 70; Match(T__5); + State = 81; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,7,Context) ) { + case 1: + { + State = 71; sort(); + State = 76; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==T__6) { + { + { + State = 72; Match(T__6); + State = 73; sort(); + } + } + State = 78; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + State = 79; Match(T__7); + } + break; + } + State = 83; sort(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class VarsContext : ParserRuleContext { + public VarContext[] var() { + return GetRuleContexts<VarContext>(); + } + public VarContext var(int i) { + return GetRuleContext<VarContext>(i); + } + public VarsContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_vars; } } + public override void EnterRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.EnterVars(this); + } + public override void ExitRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.ExitVars(this); + } + } + + [RuleVersion(0)] + public VarsContext vars() { + VarsContext _localctx = new VarsContext(Context, State); + EnterRule(_localctx, 14, RULE_vars); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 85; Match(T__8); + State = 86; var(); + State = 91; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==T__2) { + { + { + State = 87; Match(T__2); + State = 88; var(); + } + } + State = 93; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class VarContext : ParserRuleContext { + public ITerminalNode BEZ() { return GetToken(ADTParser.BEZ, 0); } + public SortContext sort() { + return GetRuleContext<SortContext>(0); + } + public VarContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_var; } } + public override void EnterRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.EnterVar(this); + } + public override void ExitRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.ExitVar(this); + } + } + + [RuleVersion(0)] + public VarContext var() { + VarContext _localctx = new VarContext(Context, State); + EnterRule(_localctx, 16, RULE_var); + try { + EnterOuterAlt(_localctx, 1); + { + State = 94; Match(BEZ); + State = 95; Match(T__5); + State = 96; sort(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class AxiomsContext : ParserRuleContext { + public AxiomContext[] axiom() { + return GetRuleContexts<AxiomContext>(); + } + public AxiomContext axiom(int i) { + return GetRuleContext<AxiomContext>(i); + } + public AxiomsContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_axioms; } } + public override void EnterRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.EnterAxioms(this); + } + public override void ExitRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.ExitAxioms(this); + } + } + + [RuleVersion(0)] + public AxiomsContext axioms() { + AxiomsContext _localctx = new AxiomsContext(Context, State); + EnterRule(_localctx, 18, RULE_axioms); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 98; Match(T__9); + State = 100; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 99; axiom(); + } + } + State = 102; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==BEZ ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class AxiomContext : ParserRuleContext { + public ITerminalNode BEZ() { return GetToken(ADTParser.BEZ, 0); } + public MytreeContext[] mytree() { + return GetRuleContexts<MytreeContext>(); + } + public MytreeContext mytree(int i) { + return GetRuleContext<MytreeContext>(i); + } + public AxiomContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_axiom; } } + public override void EnterRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.EnterAxiom(this); + } + public override void ExitRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.ExitAxiom(this); + } + } + + [RuleVersion(0)] + public AxiomContext axiom() { + AxiomContext _localctx = new AxiomContext(Context, State); + EnterRule(_localctx, 20, RULE_axiom); + try { + EnterOuterAlt(_localctx, 1); + { + State = 104; Match(BEZ); + State = 105; Match(T__5); + State = 106; mytree(); + State = 107; Match(T__10); + State = 108; mytree(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MytreeContext : ParserRuleContext { + public TreeLeafContext treeLeaf() { + return GetRuleContext<TreeLeafContext>(0); + } + public TreeNodeContext treeNode() { + return GetRuleContext<TreeNodeContext>(0); + } + public MytreeContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_mytree; } } + public override void EnterRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.EnterMytree(this); + } + public override void ExitRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.ExitMytree(this); + } + } + + [RuleVersion(0)] + public MytreeContext mytree() { + MytreeContext _localctx = new MytreeContext(Context, State); + EnterRule(_localctx, 22, RULE_mytree); + try { + State = 112; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,10,Context) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 110; treeLeaf(); + } + break; + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 111; treeNode(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TreeLeafContext : ParserRuleContext { + public ITerminalNode BEZ() { return GetToken(ADTParser.BEZ, 0); } + public TreeLeafContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_treeLeaf; } } + public override void EnterRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.EnterTreeLeaf(this); + } + public override void ExitRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.ExitTreeLeaf(this); + } + } + + [RuleVersion(0)] + public TreeLeafContext treeLeaf() { + TreeLeafContext _localctx = new TreeLeafContext(Context, State); + EnterRule(_localctx, 24, RULE_treeLeaf); + try { + EnterOuterAlt(_localctx, 1); + { + State = 114; Match(BEZ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TreeNodeContext : ParserRuleContext { + public ITerminalNode BEZ() { return GetToken(ADTParser.BEZ, 0); } + public MytreeContext[] mytree() { + return GetRuleContexts<MytreeContext>(); + } + public MytreeContext mytree(int i) { + return GetRuleContext<MytreeContext>(i); + } + public TreeNodeContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_treeNode; } } + public override void EnterRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.EnterTreeNode(this); + } + public override void ExitRule(IParseTreeListener listener) { + IADTListener typedListener = listener as IADTListener; + if (typedListener != null) typedListener.ExitTreeNode(this); + } + } + + [RuleVersion(0)] + public TreeNodeContext treeNode() { + TreeNodeContext _localctx = new TreeNodeContext(Context, State); + EnterRule(_localctx, 26, RULE_treeNode); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 116; Match(BEZ); + State = 117; Match(T__11); + State = 118; mytree(); + State = 123; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==T__2) { + { + { + State = 119; Match(T__2); + State = 120; mytree(); + } + } + State = 125; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + State = 126; Match(T__12); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + private static char[] _serializedATN = { + '\x3', '\x608B', '\xA72A', '\x8133', '\xB9ED', '\x417C', '\x3BE7', '\x7786', + '\x5964', '\x3', '\x13', '\x83', '\x4', '\x2', '\t', '\x2', '\x4', '\x3', + '\t', '\x3', '\x4', '\x4', '\t', '\x4', '\x4', '\x5', '\t', '\x5', '\x4', + '\x6', '\t', '\x6', '\x4', '\a', '\t', '\a', '\x4', '\b', '\t', '\b', + '\x4', '\t', '\t', '\t', '\x4', '\n', '\t', '\n', '\x4', '\v', '\t', '\v', + '\x4', '\f', '\t', '\f', '\x4', '\r', '\t', '\r', '\x4', '\xE', '\t', + '\xE', '\x4', '\xF', '\t', '\xF', '\x3', '\x2', '\x5', '\x2', ' ', '\n', + '\x2', '\x3', '\x2', '\x3', '\x2', '\x5', '\x2', '$', '\n', '\x2', '\x3', + '\x2', '\x3', '\x2', '\x3', '\x2', '\x3', '\x2', '\x5', '\x2', '*', '\n', + '\x2', '\x3', '\x2', '\x3', '\x2', '\x3', '\x3', '\x3', '\x3', '\x3', + '\x3', '\x3', '\x4', '\x3', '\x4', '\x3', '\x4', '\x3', '\x4', '\a', '\x4', + '\x35', '\n', '\x4', '\f', '\x4', '\xE', '\x4', '\x38', '\v', '\x4', '\x3', + '\x5', '\x3', '\x5', '\x3', '\x6', '\x3', '\x6', '\x6', '\x6', '>', '\n', + '\x6', '\r', '\x6', '\xE', '\x6', '?', '\x3', '\a', '\x3', '\a', '\x6', + '\a', '\x44', '\n', '\a', '\r', '\a', '\xE', '\a', '\x45', '\x3', '\b', + '\x3', '\b', '\x3', '\b', '\x3', '\b', '\x3', '\b', '\a', '\b', 'M', '\n', + '\b', '\f', '\b', '\xE', '\b', 'P', '\v', '\b', '\x3', '\b', '\x3', '\b', + '\x5', '\b', 'T', '\n', '\b', '\x3', '\b', '\x3', '\b', '\x3', '\t', '\x3', + '\t', '\x3', '\t', '\x3', '\t', '\a', '\t', '\\', '\n', '\t', '\f', '\t', + '\xE', '\t', '_', '\v', '\t', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', + '\n', '\x3', '\v', '\x3', '\v', '\x6', '\v', 'g', '\n', '\v', '\r', '\v', + '\xE', '\v', 'h', '\x3', '\f', '\x3', '\f', '\x3', '\f', '\x3', '\f', + '\x3', '\f', '\x3', '\f', '\x3', '\r', '\x3', '\r', '\x5', '\r', 's', + '\n', '\r', '\x3', '\xE', '\x3', '\xE', '\x3', '\xF', '\x3', '\xF', '\x3', + '\xF', '\x3', '\xF', '\x3', '\xF', '\a', '\xF', '|', '\n', '\xF', '\f', + '\xF', '\xE', '\xF', '\x7F', '\v', '\xF', '\x3', '\xF', '\x3', '\xF', + '\x3', '\xF', '\x2', '\x2', '\x10', '\x2', '\x4', '\x6', '\b', '\n', '\f', + '\xE', '\x10', '\x12', '\x14', '\x16', '\x18', '\x1A', '\x1C', '\x2', + '\x2', '\x2', '\x80', '\x2', '\x1F', '\x3', '\x2', '\x2', '\x2', '\x4', + '-', '\x3', '\x2', '\x2', '\x2', '\x6', '\x30', '\x3', '\x2', '\x2', '\x2', + '\b', '\x39', '\x3', '\x2', '\x2', '\x2', '\n', ';', '\x3', '\x2', '\x2', + '\x2', '\f', '\x41', '\x3', '\x2', '\x2', '\x2', '\xE', 'G', '\x3', '\x2', + '\x2', '\x2', '\x10', 'W', '\x3', '\x2', '\x2', '\x2', '\x12', '`', '\x3', + '\x2', '\x2', '\x2', '\x14', '\x64', '\x3', '\x2', '\x2', '\x2', '\x16', + 'j', '\x3', '\x2', '\x2', '\x2', '\x18', 'r', '\x3', '\x2', '\x2', '\x2', + '\x1A', 't', '\x3', '\x2', '\x2', '\x2', '\x1C', 'v', '\x3', '\x2', '\x2', + '\x2', '\x1E', ' ', '\x5', '\x4', '\x3', '\x2', '\x1F', '\x1E', '\x3', + '\x2', '\x2', '\x2', '\x1F', ' ', '\x3', '\x2', '\x2', '\x2', ' ', '!', + '\x3', '\x2', '\x2', '\x2', '!', '#', '\x5', '\x6', '\x4', '\x2', '\"', + '$', '\x5', '\n', '\x6', '\x2', '#', '\"', '\x3', '\x2', '\x2', '\x2', + '#', '$', '\x3', '\x2', '\x2', '\x2', '$', '%', '\x3', '\x2', '\x2', '\x2', + '%', ')', '\x5', '\f', '\a', '\x2', '&', '\'', '\x5', '\x10', '\t', '\x2', + '\'', '(', '\x5', '\x14', '\v', '\x2', '(', '*', '\x3', '\x2', '\x2', + '\x2', ')', '&', '\x3', '\x2', '\x2', '\x2', ')', '*', '\x3', '\x2', '\x2', + '\x2', '*', '+', '\x3', '\x2', '\x2', '\x2', '+', ',', '\a', '\x2', '\x2', + '\x3', ',', '\x3', '\x3', '\x2', '\x2', '\x2', '-', '.', '\a', '\x3', + '\x2', '\x2', '.', '/', '\a', '\x10', '\x2', '\x2', '/', '\x5', '\x3', + '\x2', '\x2', '\x2', '\x30', '\x31', '\a', '\x4', '\x2', '\x2', '\x31', + '\x36', '\x5', '\b', '\x5', '\x2', '\x32', '\x33', '\a', '\x5', '\x2', + '\x2', '\x33', '\x35', '\x5', '\b', '\x5', '\x2', '\x34', '\x32', '\x3', + '\x2', '\x2', '\x2', '\x35', '\x38', '\x3', '\x2', '\x2', '\x2', '\x36', + '\x34', '\x3', '\x2', '\x2', '\x2', '\x36', '\x37', '\x3', '\x2', '\x2', + '\x2', '\x37', '\a', '\x3', '\x2', '\x2', '\x2', '\x38', '\x36', '\x3', + '\x2', '\x2', '\x2', '\x39', ':', '\a', '\x10', '\x2', '\x2', ':', '\t', + '\x3', '\x2', '\x2', '\x2', ';', '=', '\a', '\x6', '\x2', '\x2', '<', + '>', '\x5', '\xE', '\b', '\x2', '=', '<', '\x3', '\x2', '\x2', '\x2', + '>', '?', '\x3', '\x2', '\x2', '\x2', '?', '=', '\x3', '\x2', '\x2', '\x2', + '?', '@', '\x3', '\x2', '\x2', '\x2', '@', '\v', '\x3', '\x2', '\x2', + '\x2', '\x41', '\x43', '\a', '\a', '\x2', '\x2', '\x42', '\x44', '\x5', + '\xE', '\b', '\x2', '\x43', '\x42', '\x3', '\x2', '\x2', '\x2', '\x44', + '\x45', '\x3', '\x2', '\x2', '\x2', '\x45', '\x43', '\x3', '\x2', '\x2', + '\x2', '\x45', '\x46', '\x3', '\x2', '\x2', '\x2', '\x46', '\r', '\x3', + '\x2', '\x2', '\x2', 'G', 'H', '\a', '\x10', '\x2', '\x2', 'H', 'S', '\a', + '\b', '\x2', '\x2', 'I', 'N', '\x5', '\b', '\x5', '\x2', 'J', 'K', '\a', + '\t', '\x2', '\x2', 'K', 'M', '\x5', '\b', '\x5', '\x2', 'L', 'J', '\x3', + '\x2', '\x2', '\x2', 'M', 'P', '\x3', '\x2', '\x2', '\x2', 'N', 'L', '\x3', + '\x2', '\x2', '\x2', 'N', 'O', '\x3', '\x2', '\x2', '\x2', 'O', 'Q', '\x3', + '\x2', '\x2', '\x2', 'P', 'N', '\x3', '\x2', '\x2', '\x2', 'Q', 'R', '\a', + '\n', '\x2', '\x2', 'R', 'T', '\x3', '\x2', '\x2', '\x2', 'S', 'I', '\x3', + '\x2', '\x2', '\x2', 'S', 'T', '\x3', '\x2', '\x2', '\x2', 'T', 'U', '\x3', + '\x2', '\x2', '\x2', 'U', 'V', '\x5', '\b', '\x5', '\x2', 'V', '\xF', + '\x3', '\x2', '\x2', '\x2', 'W', 'X', '\a', '\v', '\x2', '\x2', 'X', ']', + '\x5', '\x12', '\n', '\x2', 'Y', 'Z', '\a', '\x5', '\x2', '\x2', 'Z', + '\\', '\x5', '\x12', '\n', '\x2', '[', 'Y', '\x3', '\x2', '\x2', '\x2', + '\\', '_', '\x3', '\x2', '\x2', '\x2', ']', '[', '\x3', '\x2', '\x2', + '\x2', ']', '^', '\x3', '\x2', '\x2', '\x2', '^', '\x11', '\x3', '\x2', + '\x2', '\x2', '_', ']', '\x3', '\x2', '\x2', '\x2', '`', '\x61', '\a', + '\x10', '\x2', '\x2', '\x61', '\x62', '\a', '\b', '\x2', '\x2', '\x62', + '\x63', '\x5', '\b', '\x5', '\x2', '\x63', '\x13', '\x3', '\x2', '\x2', + '\x2', '\x64', '\x66', '\a', '\f', '\x2', '\x2', '\x65', 'g', '\x5', '\x16', + '\f', '\x2', '\x66', '\x65', '\x3', '\x2', '\x2', '\x2', 'g', 'h', '\x3', + '\x2', '\x2', '\x2', 'h', '\x66', '\x3', '\x2', '\x2', '\x2', 'h', 'i', + '\x3', '\x2', '\x2', '\x2', 'i', '\x15', '\x3', '\x2', '\x2', '\x2', 'j', + 'k', '\a', '\x10', '\x2', '\x2', 'k', 'l', '\a', '\b', '\x2', '\x2', 'l', + 'm', '\x5', '\x18', '\r', '\x2', 'm', 'n', '\a', '\r', '\x2', '\x2', 'n', + 'o', '\x5', '\x18', '\r', '\x2', 'o', '\x17', '\x3', '\x2', '\x2', '\x2', + 'p', 's', '\x5', '\x1A', '\xE', '\x2', 'q', 's', '\x5', '\x1C', '\xF', + '\x2', 'r', 'p', '\x3', '\x2', '\x2', '\x2', 'r', 'q', '\x3', '\x2', '\x2', + '\x2', 's', '\x19', '\x3', '\x2', '\x2', '\x2', 't', 'u', '\a', '\x10', + '\x2', '\x2', 'u', '\x1B', '\x3', '\x2', '\x2', '\x2', 'v', 'w', '\a', + '\x10', '\x2', '\x2', 'w', 'x', '\a', '\xE', '\x2', '\x2', 'x', '}', '\x5', + '\x18', '\r', '\x2', 'y', 'z', '\a', '\x5', '\x2', '\x2', 'z', '|', '\x5', + '\x18', '\r', '\x2', '{', 'y', '\x3', '\x2', '\x2', '\x2', '|', '\x7F', + '\x3', '\x2', '\x2', '\x2', '}', '{', '\x3', '\x2', '\x2', '\x2', '}', + '~', '\x3', '\x2', '\x2', '\x2', '~', '\x80', '\x3', '\x2', '\x2', '\x2', + '\x7F', '}', '\x3', '\x2', '\x2', '\x2', '\x80', '\x81', '\a', '\xF', + '\x2', '\x2', '\x81', '\x1D', '\x3', '\x2', '\x2', '\x2', '\xE', '\x1F', + '#', ')', '\x36', '?', '\x45', 'N', 'S', ']', 'h', 'r', '}', + }; + + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN); + + +} +} // namespace Eingabeverwaltung.Parser.ADT_Parser diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/Listener_Helper.cs b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Listener_Helper.cs new file mode 100644 index 0000000000000000000000000000000000000000..7f7cfa9c6f972986ca3b85b8100c90b1b2dd9002 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Listener_Helper.cs @@ -0,0 +1,309 @@ +using System; +using System.Linq; +using System.Collections.Generic; +using Eingabeverwaltung.Metamodell; + +namespace Eingabeverwaltung.Parser +{ + /// <summary> + /// This class holds Methods and Objects which are needed for more than one Listener. + /// </summary> + public class Listener_Helper + { + // helping objects for building + public List<Sort> adt_sorts; + public List<Operation> adt_ops; + public List<Variable> adt_vars; // this is not always vars of adt, but in case of equation vars of equation + public List<Variable> allQVars; // allQVars and fixedVars are just for saving their difference + public List<Variable> fixedVars; + public List<Axiom> adt_axioms; + // Equation + public Equation equation; + // Tree + public List<Tree> trees; + public Listener_Helper(List<Sort> adt_sorts, List<Operation> adt_ops, List<Variable> adt_vars, List<Axiom> adt_axioms, Equation equation, List<Tree> trees) + { + this.adt_sorts = adt_sorts; + this.adt_ops = adt_ops; + this.adt_vars = adt_vars; + this.adt_axioms = adt_axioms; + this.equation = equation; + this.trees = trees; + allQVars = new List<Variable>(); + fixedVars = new List<Variable>(); + } + // Equation + public void EnterEq() + { + trees = new List<Tree>(); + allQVars = new List<Variable>(); + fixedVars = new List<Variable>(); + } + public void ExitEq() + { + if (trees.Count != 2) throw new Exception("Calculated " + trees.Count + " Trees in Equation! The Trees are: " + TreeListToString(trees)); + Test_Equation_both_sides_have_same_Sort(trees[0], trees[1]); + equation = new Equation(trees[0], trees[1], adt_vars); + } + + public void ExitEqVarDef() + { + adt_vars = new List<Variable>(fixedVars); + adt_vars.AddRange(allQVars); + } + + public void EnterVars() => adt_vars = new List<Variable>(); + + public void ExitVar(string variableName, string sortName) + { + Sort sort = findSortInADT_Sorts(sortName); + Test_Variable_Sort_was_defined_in_ADT(sortName); + Test_Variables_all_unique(variableName); + adt_vars.Add(new Variable(variableName, sort)); + } + + // Trees + /// <summary> + /// TreeLeaf is whether a Variable or a constant (ComposedTree without children) + /// </summary> + /// <param name="treeName"></param> + public void ExitTreeLeaf(string treeName) + { + Tree result = null; + Variable variable = findVariableInADT_Vars(treeName); + if (variable != null) + result = new TreeVariable(variable); + else + { + Operation operation = findOperationInADT_Ops(treeName, 0); + if (operation != null) + result = new ComposedTree(operation, new List<Tree>()); + } + if (result == null) throw new Exception("The Tree " + treeName + " could not be found in Vars or Operations of the ADT!"); + trees.Add(result); + } + + public void ExitTreeNode(string treeName, int context_ChildCount, string context_Text) + { + int childCount = (int)Math.Ceiling(((double)(context_ChildCount - 3)) / 2); // -1 for BEZ, -1 for "(", -1 for ")", ceiling(/2) = -1 for each "," between 2 children + // All children of current tree are in this.trees because inner trees 1st, but sure is sure + if (trees.Count >= childCount) + { + Operation operation = findOperationInADT_Ops(treeName, childCount); + if (operation == null) throw new Exception("The Tree " + treeName + " could not be found in Operations of the ADT!"); + List<Tree> children = new List<Tree>(); + for (int i = 0; i < operation.sorts.Count - 1; i++) + { + if (trees.Count == 0) + throw new Exception("Not enough created trees for the current tree! CurrentTreeName: " + treeName + "\n Context: " + context_Text + "\n added children: " + TreeListToString(children)); + children.Add(trees.Last()); + trees.RemoveAt(trees.Count - 1); + } + children.Reverse(); + Test_ComposedTree_Children_Sorts_are_correct(operation, children); + Tree currentTree = new ComposedTree(operation, children); + trees.Add(currentTree); + } + else + { + throw new Exception("Not all childen of the current Tree " + treeName + " are in trees!"); + } + } + + // Helping functions + + /// <summary> + /// Sets the context of variables for creating trees. + /// Input: List of definition tables. Later tables are overwritten by earlier tables. + /// One definition table is one List of Variables. + /// </summary> + /// <param name="contextList"></param> + public List<Variable> getVariableContext(List<List<Variable>> contextList) + { + List<Variable> result = new List<Variable>(); + if (contextList.Count > 0) result.AddRange(contextList[0]); + else return result; + for (int tableNum = 1; tableNum < contextList.Count; tableNum++) + { + List<Variable> table = contextList[tableNum]; // use table readOnly! + foreach (Variable var in table) + { + bool found = false; + foreach (Variable resVar in result) + if (var.name == resVar.name) { found = true; break; } + if (!found) result.Add(var); + } + } + return result; + } + + /// <summary> + /// This Method is actually same as getVariableContext, but puts result to adt_vars. + /// </summary> + /// <param name="contextList"></param> + public void setVariableContext(List<List<Variable>> contextList) + => adt_vars = getVariableContext(contextList); + + /// <summary> + /// Returns null if not able to find + /// </summary> + /// <param name="sortName"></param> + /// <returns></returns> + public Sort findSortInADT_Sorts(string sortName) + { + foreach (Sort sort in adt_sorts) + if (sort.name == sortName) + return sort; + return null; + } + + /// <summary> + /// Returns null if not able to find. Throws Exception if inputtedChildCount != expected ChildCount from the found Operation. + /// </summary> + /// <param name="operationName"></param> + /// <param name="inputtedChildCount"></param> + /// <returns></returns> + public Operation findOperationInADT_Ops(string operationName, int inputtedChildCount) => findOperationInADT_Ops(operationName, inputtedChildCount, true); + /// <summary> + /// Returns null if not able to find + /// </summary> + /// <param name="operationName"></param> + /// <param name="inputtedChildCount"></param> + /// <param name="testChildCount"></param> + /// <returns></returns> + public Operation findOperationInADT_Ops(string operationName, int inputtedChildCount, bool testChildCount) + { + foreach (Operation operation in adt_ops) + { + if (operation.name == operationName) + { + if (testChildCount) Test_ComposedTree_ChildCount_is_corrent(operation, inputtedChildCount); + return operation; + } + } + return null; + } + + /// <summary> + /// Returns null if not able to find + /// </summary> + /// <param name="variableName"></param> + /// <returns></returns> + public Variable findVariableInADT_Vars(string variableName) + { + if (adt_vars == null) return null; + foreach (Variable variable in adt_vars) + if (variable.name == variableName) return variable; + return null; + + } + + /// <summary> + /// Returns null if not able to find + /// </summary> + /// <param name="variableName"></param> + /// <returns></returns> + public Variable findVariableInAllQVarsOrFixedVars(string variableName) + { + foreach (Variable variable in allQVars) + if (variable.name == variableName) return variable; + foreach (Variable variable in fixedVars) + if (variable.name == variableName) return variable; + return null; + } + + /// <summary> + /// Returns null if not able to find + /// Finds Variable in specified Variable list + /// </summary> + /// <param name="variableName"></param> + /// <returns></returns> + public Variable findVariable(string variableName, List<Variable> variables) + { + if (variables == null) return null; + foreach (Variable variable in variables) + if (variable.name == variableName) return variable; + return null; + } + + /// <summary> + /// Returns null if not able to find + /// </summary> + /// <param name="axiomName"></param> + /// <returns></returns> + public Axiom findAxiomInADT_Axioms(string axiomName) + { + foreach (Axiom axiom in adt_axioms) + if (axiom.name == axiomName) return axiom; + return null; + } + + public string TreeListToString(List<Tree> treeList) + { + string result = ""; + foreach (Tree tree in treeList) + result += tree.ToString() + ','; + if (result.Length > 0) result.Remove(result.Length - 1); + return result; + } + + // Alle Offiziell notwendige Typtests + + /// <summary> + /// This Test get always activeted when a Tree gets parsed. + /// </summary> + /// <param name="operation"></param> + /// <param name="inputtedChildCount"></param> + private void Test_ComposedTree_ChildCount_is_corrent(Operation operation, int inputtedChildCount) + { + if (operation.sorts.Count != inputtedChildCount + 1) + throw new Exception("The Operation_Tree " + operation.name + " was inputted with " + inputtedChildCount + " children, expected " + (operation.sorts.Count - 1) + " children!"); + } + private void Test_ComposedTree_Children_Sorts_are_correct(Operation operation, List<Tree> children) + { + for (int i = 0; i < children.Count; i++) + { + string type = ""; + if (children[i] as ComposedTree != null) type = "ComposedTree"; + else type = "Variable"; + if (children[i].sort != operation.sorts[i]) + throw new Exception("Error while building the tree " + operation.name + ": The the child (" + type + ") " + children[i].name + + " with the Sort " + children[i].sort.name + " is not " + operation.sorts[i].name + "!"); + } + } + /// <summary> + /// This Test is done by getting the Variable or Operation from the TreeName in the big if clause of ExitMyTree method. + /// Moving that Test to this Method is not possible. + /// Implementing that Test here again is nonsense. + /// This Method does actually nothing, its just a dummy for knowing, that this Test is implemented. + /// </summary> + private void Test_Tree_Variables_were_defined_in_ADT() {/* Nothing here need to be. */} + private void Test_Equation_both_sides_have_same_Sort(Tree leftTree, Tree rightTree) + { + if (leftTree.sort.name != rightTree.sort.name) + throw new Exception("The Equation has not the same Sort on its 2 sides! Sort of leftTree: " + leftTree.sort.name + " Sort of rightTree: " + rightTree.sort.name); + } + + /// <summary> + /// This Test is activated always when the Sort of a Variable gets read from the parser, + /// so as result the Sort of every Variable was defined in the ADT. + /// </summary> + /// <param name="sortName"></param> + private void Test_Variable_Sort_was_defined_in_ADT(string sortName) + { + if (findSortInADT_Sorts(sortName) == null) throw new Exception("Found a Sort " + sortName + " in Variable that was not defined in Sorts!"); + } + + /// <summary> + /// This Test is activated always when a new Variable gets added to the variableList of the ADT / Equation, + /// so as result all Variables are unique. + /// </summary> + /// <param name="variableName"></param> + private void Test_Variables_all_unique(string variableName) + { + if (findVariableInADT_Vars(variableName) != null + || findVariableInAllQVarsOrFixedVars(variableName) != null + ) throw new Exception("The Variable " + variableName + " was defined more than 1 times.!"); + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Antlr.cs b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Antlr.cs new file mode 100644 index 0000000000000000000000000000000000000000..fdb2e6af4d373eb29acb868e57dd41d572f12a0d --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Antlr.cs @@ -0,0 +1,35 @@ +using Eingabeverwaltung.Parser.Proof_Parser; +using Eingabeverwaltung.Metamodell; +using Antlr4.Runtime.Tree; +using Antlr4.Runtime; + +namespace Eingabeverwaltung.Parser +{ + public static class Proof_Antlr + { + /// <summary> + /// Requires a Container with filled ADT and Task + /// </summary> + /// <param name="Task_input"></param> + /// <param name="container"></param> + /// <returns></returns> + public static void parse(string Proof_input, Container container) + { + ICharStream chars = new AntlrInputStream(Proof_input); + ITokenSource lexer = new ProofLexer(chars); + ITokenStream tokens = new CommonTokenStream(lexer); + ProofParser parser = new ProofParser(tokens); + + parser.BuildParseTree = true; + + ProofParser.ProofContext tree = parser.proof(); + + // create Proof without TransformationSteps + IProofListener PL = new Proof_Listener(container); + ParseTreeWalker.Default.Walk(PL, tree); + // walk again and create all TransformationSteps: Now cycles are no Problem anymore. + IProofListener TL = new TransformationStep_Listener(container); + ParseTreeWalker.Default.Walk(TL, tree); + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Listener.cs b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Listener.cs new file mode 100644 index 0000000000000000000000000000000000000000..13224ef03db9f755c579e33b3908808f7654f24f --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Listener.cs @@ -0,0 +1,271 @@ +using Eingabeverwaltung.Parser.Proof_Parser; +using Eingabeverwaltung.Metamodell; +using Antlr4.Runtime.Tree; +using Antlr4.Runtime; +using Antlr4.Runtime.Misc; +using System.Collections.Generic; +using System; + +namespace Eingabeverwaltung.Parser +{ + /// <summary> + /// Proof_Listener creates the Proof but without TransformationSteps, because + /// of the problems of cyclic Lemma usage or finding the topological order of uncyclic lemmata. + /// </summary> + public class Proof_Listener : IProofListener + { + // object on which will be build + private Container container; + + // helping Listener for building + private Listener_Helper LH; + + // Lemma parts + private SingleProof mainProof; + private List<Lemma> lemmata; + private Lemma lemmaDef; + + private SingleProof SP; + + // Induction parts + Variable indVar; + List<InductionCase> indCases; + List<InductionHypothesis> indHyps; + + // Transformation parts + private Tree startTree; + + public Proof_Listener(Container container) + { + this.container = container; + LH = new Listener_Helper(container.ADT.sorts, container.ADT.operations, null, container.ADT.axioms, null, null); + + mainProof = null; + lemmata = null; + lemmaDef = null; + SP = null; + + indVar = null; + indCases = null; + indHyps = null; + + startTree = null; + } + + // Proof controlling structures and lemmata + public void EnterProof([NotNull] ProofParser.ProofContext context) => lemmata = new List<Lemma>(); + public void ExitProof([NotNull] ProofParser.ProofContext context) + { + if (mainProof == null) throw new Exception("No main proof found in ExitProof!"); + container.Proof = new Proof(mainProof, lemmata); + } + public void EnterMainProof([NotNull] ProofParser.MainProofContext context) + { + // Variablen der Aufgabenstellung gelten im Hauptbeweis als erstes + List<List<Variable>> variableDefinitionContext; + variableDefinitionContext = new List<List<Variable>>() { container.Task.task.eq.variables }; + // Variablen des ADT gelten im Hauptbeweis als zweites, falls vorhanden + if (container.ADT.axioms.Count != 0) variableDefinitionContext.Add(container.ADT.axioms[0].eq.variables); + LH.setVariableContext(variableDefinitionContext); + // feste / allQ Variablen in LH laden + LH.fixedVars = container.Task.task.fixedVars; + LH.allQVars = new List<Variable>(container.Task.task.eq.variables); + foreach (Variable var in LH.fixedVars) + LH.allQVars.Remove(var); + } + public void ExitMainProof([NotNull] ProofParser.MainProofContext context) => mainProof = SP; + public void EnterLemma([NotNull] ProofParser.LemmaContext context) { } + public void ExitLemma([NotNull] ProofParser.LemmaContext context) + { + lemmata.Add(new Lemma(lemmaDef.name, lemmaDef.eq, lemmaDef.fixedVars, SP)); + lemmaDef = null; // notwendig, damit SP weis, ob es gerade nicht in einem Lemma ist + } + public void EnterLemmaDef([NotNull] ProofParser.LemmaDefContext context) { } + public void ExitLemmaDef([NotNull] ProofParser.LemmaDefContext context) + { + string lemmaName = context.BEZ().GetText(); + Test_Lemmata_all_Unique(lemmaName,"Lemma"); + lemmaDef = new Lemma(lemmaName, LH.equation, LH.fixedVars,null); + // Im Beweis des Lemmas gelten zuerst die Variablen des Lemmas (gilt bereits durch das Bauen der Gleichung) + List<List<Variable>> variableDefinitionContext; + variableDefinitionContext = new List<List<Variable>>() { LH.adt_vars }; + // Im Beweis des Lemmas gelten als zweites die Variablen des ADTs, falls vorhanden + if (container.ADT.axioms.Count != 0) variableDefinitionContext.Add(container.ADT.axioms[0].eq.variables); + LH.setVariableContext(variableDefinitionContext); + } + public void EnterSingleProof([NotNull] ProofParser.SingleProofContext context) => SP = null; + public void ExitSingleProof([NotNull] ProofParser.SingleProofContext context) + { + if (SP == null) throw new Exception("No SingleProof found in ExitSingleProof!"); + } + public void EnterProof_end([NotNull] ProofParser.Proof_endContext context) { } + public void ExitProof_end([NotNull] ProofParser.Proof_endContext context) { } + + // Transformation + public void EnterTransformation([NotNull] ProofParser.TransformationContext context) { } + public void ExitTransformation([NotNull] ProofParser.TransformationContext context) + { + SP = new Transformation(startTree, new List<TransformationStep>()); + } + + public void EnterStart_tree([NotNull] ProofParser.Start_treeContext context) => LH.trees = new List<Tree>(); + public void ExitStart_tree([NotNull] ProofParser.Start_treeContext context) + { + if (LH.trees.Count != 1) throw new Exception("Trees was Expected to have 1 Tree for Start_tree, but found " + LH.trees.Count + " trees! They are: " + LH.TreeListToString(LH.trees)); + startTree = LH.trees[0]; + } + + // TransformationStep is parsed by TransformationStep_Listener + public void EnterTransformation_step([NotNull] ProofParser.Transformation_stepContext context) { } + public void ExitTransformation_step([NotNull] ProofParser.Transformation_stepContext context) { } + public void EnterAxiom([NotNull] ProofParser.AxiomContext context) { } + public void ExitAxiom([NotNull] ProofParser.AxiomContext context) { } + + public void EnterDirection([NotNull] ProofParser.DirectionContext context) { } + public void ExitDirection([NotNull] ProofParser.DirectionContext context) { } + public void EnterTermpart([NotNull] ProofParser.TermpartContext context) { } + public void ExitTermpart([NotNull] ProofParser.TermpartContext context) { } + + public void EnterSubst([NotNull] ProofParser.SubstContext context) { } + public void ExitSubst([NotNull] ProofParser.SubstContext context) { } + + public void EnterSub([NotNull] ProofParser.SubContext context) { } + public void ExitSub([NotNull] ProofParser.SubContext context) { } + + public void EnterResult_tree([NotNull] ProofParser.Result_treeContext context) { } + public void ExitResult_tree([NotNull] ProofParser.Result_treeContext context) { } + + // Induction + public void EnterInduction([NotNull] ProofParser.InductionContext context) + { indVar = null; indCases = new List<InductionCase>(); indHyps = new List<InductionHypothesis>(); } + public void ExitInduction([NotNull] ProofParser.InductionContext context) + { + string proofName = ""; + SingleTask lemmaIndVarTask = null; + if (indVar == null) + {// find indVar + if (context.Parent.Parent.GetChild(0).GetText() == "proof") + { indVar = container.Task.task.indVariable; proofName = "main proof"; } + else if (context.Parent.Parent.GetChild(0).GetChild(0).GetText() == "lemma") + { + proofName = ((ProofParser.LemmaDefContext)context.Parent.Parent.GetChild(0)).BEZ().GetText(); + foreach (SingleTask lemmaTask in container.Task.lemmaTasks) + if (lemmaTask.name == proofName) { indVar = lemmaTask.indVariable; lemmaIndVarTask = lemmaTask; break; } + } + else throw new Exception("ExitInduction with Context = " + context.GetText() + " was not able to find the sense of its life."); + + } + if (indVar == null) throw new Exception("Induction variable of proof "+ proofName + " is neither definied in proof nor in task!"); + Equation eq = null; List<Variable> fixedVars = null; + if (lemmaDef != null) + {// this SP is in lemma lemmaDef + eq = lemmaDef.eq; fixedVars = lemmaDef.fixedVars; + }else + {// this SP is in Mainproof + eq = container.Task.task.eq; fixedVars = container.Task.task.fixedVars; + } + if (lemmaIndVarTask != null) + { // inVar must be of context of its lemma: find substitution to get correct variable. + Ueberpruefung.CheckHelper.getSubsAndRenamings(eq, lemmaIndVarTask.eq, out List<Substitution> subs, out List<Substitution> renamings); + bool changed = false; + if (subs == null) ;// then lemma is not proving the task (error 22), do nothing then + else + foreach(Substitution renaming in renamings) + if (renaming.tree is TreeVariable tv) + if (tv.variable == indVar) { indVar = renaming.variable; changed = true; break; } + if (!changed) indVar = null; + } + SP = new Induction(eq,fixedVars,indVar,indCases, indHyps); + } + public void EnterInd_var([NotNull] ProofParser.Ind_varContext context) + { + string variableName = context.BEZ().GetText(); + Variable variable = LH.findVariableInADT_Vars(variableName); + if (variable == null) throw new Exception("Could not find Induction variable " + variableName + " in current context of variables."); + indVar = variable; + } + public void ExitInd_var([NotNull] ProofParser.Ind_varContext context) { } + public void EnterInd_basis([NotNull] ProofParser.Ind_basisContext context) => SP = null; + public void ExitInd_basis([NotNull] ProofParser.Ind_basisContext context) + { + if (SP is Transformation tr) + indCases.Add(new InductionCase("IA", LH.equation, LH.fixedVars, tr)); + else throw new Exception("Found Singleproof in induction basis that is not a transformation!"); + } + public void EnterInd_step([NotNull] ProofParser.Ind_stepContext context) => SP = null; + public void ExitInd_step([NotNull] ProofParser.Ind_stepContext context) + { + if (SP is Transformation tr) + indCases.Add(new InductionCase("IS", LH.equation, LH.fixedVars, tr)); + else throw new Exception("Found Singleproof in induction step that is not a transformation!"); + } + public void EnterInd_hyp([NotNull] ProofParser.Ind_hypContext context) { } + public void ExitInd_hyp([NotNull] ProofParser.Ind_hypContext context) + { + string name; + if (context.BEZ() != null) + name = context.BEZ().GetText(); + else name = "IH"; + foreach (InductionHypothesis ih in indHyps) + if (ih.name == name) throw new Exception("There are more then 1 inductionhypothesis with name "+name+"!"); + Test_Lemmata_all_Unique(name,"InductionHypothesis"); + indHyps.Add(new InductionHypothesis(name,LH.equation, LH.fixedVars)); + + } + public void EnterInd_case([NotNull] ProofParser.Ind_caseContext context) { } + public void ExitInd_case([NotNull] ProofParser.Ind_caseContext context) + { + // Im Beweis gelten zuerst die Variablen der Gleichung (gilt bereits durch das Bauen der Gleichung) + List<List<Variable>> variableDefinitionContext; + variableDefinitionContext = new List<List<Variable>>() { LH.adt_vars }; + // Im Beweis gelten als zweites die Variablen des ADTs, falls vorhanden + if (container.ADT.axioms.Count != 0) variableDefinitionContext.Add(container.ADT.axioms[0].eq.variables); + LH.setVariableContext(variableDefinitionContext); + } + + // Equation Rules + public void EnterEq([NotNull] ProofParser.EqContext context) => LH.EnterEq(); + public void ExitEq([NotNull] ProofParser.EqContext context) => LH.ExitEq(); + public void EnterEq_var_def([NotNull] ProofParser.Eq_var_defContext context) => LH.EnterVars(); + public void ExitEq_var_def([NotNull] ProofParser.Eq_var_defContext context) => LH.ExitEqVarDef(); + public void EnterFixed([NotNull] ProofParser.FixedContext context) => LH.EnterVars(); + public void ExitFixed([NotNull] ProofParser.FixedContext context) => LH.fixedVars = LH.adt_vars; + public void EnterForall([NotNull] ProofParser.ForallContext context) => LH.EnterVars(); + public void ExitForall([NotNull] ProofParser.ForallContext context) => LH.allQVars = LH.adt_vars; + public void EnterVar([NotNull] ProofParser.VarContext context) { } + public void ExitVar([NotNull] ProofParser.VarContext context) + => LH.ExitVar(context.BEZ().GetText(), context.sort().BEZ().GetText()); + public void EnterSort([NotNull] ProofParser.SortContext context) { } + public void ExitSort([NotNull] ProofParser.SortContext context) { } + + // Trees + public void EnterMytree([NotNull] ProofParser.MytreeContext context) { } + public void ExitMytree([NotNull] ProofParser.MytreeContext context) { } + + public void EnterTreeLeaf([NotNull] ProofParser.TreeLeafContext context) { } + public void ExitTreeLeaf([NotNull] ProofParser.TreeLeafContext context) + => LH.ExitTreeLeaf(context.BEZ().GetText()); + + public void EnterTreeNode([NotNull] ProofParser.TreeNodeContext context) { } + public void ExitTreeNode([NotNull] ProofParser.TreeNodeContext context) + => LH.ExitTreeNode(context.BEZ().GetText(), context.ChildCount, context.GetText()); + + // useless Interface requirements + public void EnterEveryRule(ParserRuleContext ctx) { } + public void ExitEveryRule(ParserRuleContext ctx) { } + public void VisitErrorNode(IErrorNode node) { } + public void VisitTerminal(ITerminalNode node) { } + + // Alle Offiziell notwendige Typtests + + private void Test_Lemmata_all_Unique(string name, string type) + { + foreach (Rule axiom in LH.adt_axioms) + if (axiom.name == name) throw new Exception("The " + type + " "+ name + " has same name like 1 Axiom of ADT!"); + foreach (Rule lemma in lemmata) + if (lemma.name == name) throw new Exception("The " + type + " "+ name + " has same name like 1 Lemma of Proof!"); + foreach (Rule lemma in container.Task.lemmata) + if (lemma.name == name) throw new Exception("The " + type + " "+ name + " has same name like 1 Lemma of Task!"); + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Parser/Proof.interp b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Parser/Proof.interp new file mode 100644 index 0000000000000000000000000000000000000000..26654370ebd809f7482ea5a53877587bcf47870e --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Parser/Proof.interp @@ -0,0 +1,99 @@ +token literal names: +null +'proof' +'lemma' +':' +'q.e.d.' +'w.z.b.w.' +'Q.E.D.' +'W.Z.B.W.' +'induction' +'IA' +'IS' +'zu zeigen:' +'IH' +'{' +',' +'}' +'=' +'lr' +'rl' +'[' +']' +'/' +'forall' +'fixed' +'(' +')' +null +null +null +null + +token symbolic names: +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +BEZ +NAT +WHITESPACE +NEWLINE + +rule names: +proof +mainProof +lemma +lemmaDef +singleProof +proof_end +induction +ind_var +ind_basis +ind_step +ind_case +ind_hyp +transformation +start_tree +transformation_step +axiom +direction +termpart +subst +sub +result_tree +var +sort +forall +fixed +eq_var_def +eq +mytree +treeLeaf +treeNode + + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 31, 258, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 3, 2, 7, 2, 64, 10, 2, 12, 2, 14, 2, 67, 11, 2, 3, 2, 3, 2, 7, 2, 71, 10, 2, 12, 2, 14, 2, 74, 11, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 5, 3, 81, 10, 3, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 5, 6, 93, 10, 6, 3, 7, 3, 7, 3, 8, 5, 8, 98, 10, 8, 3, 8, 6, 8, 101, 10, 8, 13, 8, 14, 8, 102, 3, 8, 6, 8, 106, 10, 8, 13, 8, 14, 8, 107, 3, 8, 7, 8, 111, 10, 8, 12, 8, 14, 8, 114, 11, 8, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 5, 10, 121, 10, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 5, 11, 128, 10, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 5, 13, 138, 10, 13, 3, 13, 3, 13, 5, 13, 142, 10, 13, 5, 13, 144, 10, 13, 3, 13, 3, 13, 3, 14, 3, 14, 6, 14, 150, 10, 14, 13, 14, 14, 14, 151, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 18, 3, 18, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 7, 20, 178, 10, 20, 12, 20, 14, 20, 181, 11, 20, 5, 20, 183, 10, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 7, 25, 203, 10, 25, 12, 25, 14, 25, 206, 11, 25, 3, 26, 3, 26, 3, 26, 3, 26, 7, 26, 212, 10, 26, 12, 26, 14, 26, 215, 11, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 223, 10, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 231, 10, 27, 5, 27, 233, 10, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 5, 29, 242, 10, 29, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 7, 31, 251, 10, 31, 12, 31, 14, 31, 254, 11, 31, 3, 31, 3, 31, 3, 31, 2, 2, 32, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 2, 5, 3, 2, 6, 9, 4, 2, 14, 14, 28, 28, 3, 2, 19, 20, 2, 251, 2, 65, 3, 2, 2, 2, 4, 77, 3, 2, 2, 2, 6, 82, 3, 2, 2, 2, 8, 85, 3, 2, 2, 2, 10, 92, 3, 2, 2, 2, 12, 94, 3, 2, 2, 2, 14, 97, 3, 2, 2, 2, 16, 115, 3, 2, 2, 2, 18, 118, 3, 2, 2, 2, 20, 125, 3, 2, 2, 2, 22, 132, 3, 2, 2, 2, 24, 135, 3, 2, 2, 2, 26, 147, 3, 2, 2, 2, 28, 153, 3, 2, 2, 2, 30, 155, 3, 2, 2, 2, 32, 167, 3, 2, 2, 2, 34, 169, 3, 2, 2, 2, 36, 171, 3, 2, 2, 2, 38, 173, 3, 2, 2, 2, 40, 186, 3, 2, 2, 2, 42, 190, 3, 2, 2, 2, 44, 192, 3, 2, 2, 2, 46, 196, 3, 2, 2, 2, 48, 198, 3, 2, 2, 2, 50, 207, 3, 2, 2, 2, 52, 232, 3, 2, 2, 2, 54, 234, 3, 2, 2, 2, 56, 241, 3, 2, 2, 2, 58, 243, 3, 2, 2, 2, 60, 245, 3, 2, 2, 2, 62, 64, 5, 6, 4, 2, 63, 62, 3, 2, 2, 2, 64, 67, 3, 2, 2, 2, 65, 63, 3, 2, 2, 2, 65, 66, 3, 2, 2, 2, 66, 68, 3, 2, 2, 2, 67, 65, 3, 2, 2, 2, 68, 72, 5, 4, 3, 2, 69, 71, 5, 6, 4, 2, 70, 69, 3, 2, 2, 2, 71, 74, 3, 2, 2, 2, 72, 70, 3, 2, 2, 2, 72, 73, 3, 2, 2, 2, 73, 75, 3, 2, 2, 2, 74, 72, 3, 2, 2, 2, 75, 76, 7, 2, 2, 3, 76, 3, 3, 2, 2, 2, 77, 78, 7, 3, 2, 2, 78, 80, 5, 10, 6, 2, 79, 81, 5, 12, 7, 2, 80, 79, 3, 2, 2, 2, 80, 81, 3, 2, 2, 2, 81, 5, 3, 2, 2, 2, 82, 83, 5, 8, 5, 2, 83, 84, 5, 10, 6, 2, 84, 7, 3, 2, 2, 2, 85, 86, 7, 4, 2, 2, 86, 87, 7, 28, 2, 2, 87, 88, 7, 5, 2, 2, 88, 89, 5, 54, 28, 2, 89, 9, 3, 2, 2, 2, 90, 93, 5, 14, 8, 2, 91, 93, 5, 26, 14, 2, 92, 90, 3, 2, 2, 2, 92, 91, 3, 2, 2, 2, 93, 11, 3, 2, 2, 2, 94, 95, 9, 2, 2, 2, 95, 13, 3, 2, 2, 2, 96, 98, 5, 16, 9, 2, 97, 96, 3, 2, 2, 2, 97, 98, 3, 2, 2, 2, 98, 100, 3, 2, 2, 2, 99, 101, 5, 18, 10, 2, 100, 99, 3, 2, 2, 2, 101, 102, 3, 2, 2, 2, 102, 100, 3, 2, 2, 2, 102, 103, 3, 2, 2, 2, 103, 105, 3, 2, 2, 2, 104, 106, 5, 24, 13, 2, 105, 104, 3, 2, 2, 2, 106, 107, 3, 2, 2, 2, 107, 105, 3, 2, 2, 2, 107, 108, 3, 2, 2, 2, 108, 112, 3, 2, 2, 2, 109, 111, 5, 20, 11, 2, 110, 109, 3, 2, 2, 2, 111, 114, 3, 2, 2, 2, 112, 110, 3, 2, 2, 2, 112, 113, 3, 2, 2, 2, 113, 15, 3, 2, 2, 2, 114, 112, 3, 2, 2, 2, 115, 116, 7, 10, 2, 2, 116, 117, 7, 28, 2, 2, 117, 17, 3, 2, 2, 2, 118, 120, 7, 11, 2, 2, 119, 121, 7, 5, 2, 2, 120, 119, 3, 2, 2, 2, 120, 121, 3, 2, 2, 2, 121, 122, 3, 2, 2, 2, 122, 123, 5, 22, 12, 2, 123, 124, 5, 26, 14, 2, 124, 19, 3, 2, 2, 2, 125, 127, 7, 12, 2, 2, 126, 128, 7, 5, 2, 2, 127, 126, 3, 2, 2, 2, 127, 128, 3, 2, 2, 2, 128, 129, 3, 2, 2, 2, 129, 130, 5, 22, 12, 2, 130, 131, 5, 26, 14, 2, 131, 21, 3, 2, 2, 2, 132, 133, 7, 13, 2, 2, 133, 134, 5, 54, 28, 2, 134, 23, 3, 2, 2, 2, 135, 137, 7, 14, 2, 2, 136, 138, 7, 5, 2, 2, 137, 136, 3, 2, 2, 2, 137, 138, 3, 2, 2, 2, 138, 143, 3, 2, 2, 2, 139, 141, 7, 28, 2, 2, 140, 142, 7, 5, 2, 2, 141, 140, 3, 2, 2, 2, 141, 142, 3, 2, 2, 2, 142, 144, 3, 2, 2, 2, 143, 139, 3, 2, 2, 2, 143, 144, 3, 2, 2, 2, 144, 145, 3, 2, 2, 2, 145, 146, 5, 54, 28, 2, 146, 25, 3, 2, 2, 2, 147, 149, 5, 28, 15, 2, 148, 150, 5, 30, 16, 2, 149, 148, 3, 2, 2, 2, 150, 151, 3, 2, 2, 2, 151, 149, 3, 2, 2, 2, 151, 152, 3, 2, 2, 2, 152, 27, 3, 2, 2, 2, 153, 154, 5, 56, 29, 2, 154, 29, 3, 2, 2, 2, 155, 156, 7, 15, 2, 2, 156, 157, 5, 32, 17, 2, 157, 158, 7, 16, 2, 2, 158, 159, 5, 34, 18, 2, 159, 160, 7, 16, 2, 2, 160, 161, 5, 36, 19, 2, 161, 162, 7, 16, 2, 2, 162, 163, 5, 38, 20, 2, 163, 164, 7, 17, 2, 2, 164, 165, 7, 18, 2, 2, 165, 166, 5, 42, 22, 2, 166, 31, 3, 2, 2, 2, 167, 168, 9, 3, 2, 2, 168, 33, 3, 2, 2, 2, 169, 170, 9, 4, 2, 2, 170, 35, 3, 2, 2, 2, 171, 172, 5, 56, 29, 2, 172, 37, 3, 2, 2, 2, 173, 182, 7, 21, 2, 2, 174, 179, 5, 40, 21, 2, 175, 176, 7, 16, 2, 2, 176, 178, 5, 40, 21, 2, 177, 175, 3, 2, 2, 2, 178, 181, 3, 2, 2, 2, 179, 177, 3, 2, 2, 2, 179, 180, 3, 2, 2, 2, 180, 183, 3, 2, 2, 2, 181, 179, 3, 2, 2, 2, 182, 174, 3, 2, 2, 2, 182, 183, 3, 2, 2, 2, 183, 184, 3, 2, 2, 2, 184, 185, 7, 22, 2, 2, 185, 39, 3, 2, 2, 2, 186, 187, 5, 56, 29, 2, 187, 188, 7, 23, 2, 2, 188, 189, 7, 28, 2, 2, 189, 41, 3, 2, 2, 2, 190, 191, 5, 56, 29, 2, 191, 43, 3, 2, 2, 2, 192, 193, 7, 28, 2, 2, 193, 194, 7, 5, 2, 2, 194, 195, 5, 46, 24, 2, 195, 45, 3, 2, 2, 2, 196, 197, 7, 28, 2, 2, 197, 47, 3, 2, 2, 2, 198, 199, 7, 24, 2, 2, 199, 204, 5, 44, 23, 2, 200, 201, 7, 16, 2, 2, 201, 203, 5, 44, 23, 2, 202, 200, 3, 2, 2, 2, 203, 206, 3, 2, 2, 2, 204, 202, 3, 2, 2, 2, 204, 205, 3, 2, 2, 2, 205, 49, 3, 2, 2, 2, 206, 204, 3, 2, 2, 2, 207, 208, 7, 25, 2, 2, 208, 213, 5, 44, 23, 2, 209, 210, 7, 16, 2, 2, 210, 212, 5, 44, 23, 2, 211, 209, 3, 2, 2, 2, 212, 215, 3, 2, 2, 2, 213, 211, 3, 2, 2, 2, 213, 214, 3, 2, 2, 2, 214, 51, 3, 2, 2, 2, 215, 213, 3, 2, 2, 2, 216, 217, 5, 50, 26, 2, 217, 218, 7, 5, 2, 2, 218, 222, 3, 2, 2, 2, 219, 220, 5, 48, 25, 2, 220, 221, 7, 5, 2, 2, 221, 223, 3, 2, 2, 2, 222, 219, 3, 2, 2, 2, 222, 223, 3, 2, 2, 2, 223, 233, 3, 2, 2, 2, 224, 225, 5, 48, 25, 2, 225, 226, 7, 5, 2, 2, 226, 230, 3, 2, 2, 2, 227, 228, 5, 50, 26, 2, 228, 229, 7, 5, 2, 2, 229, 231, 3, 2, 2, 2, 230, 227, 3, 2, 2, 2, 230, 231, 3, 2, 2, 2, 231, 233, 3, 2, 2, 2, 232, 216, 3, 2, 2, 2, 232, 224, 3, 2, 2, 2, 232, 233, 3, 2, 2, 2, 233, 53, 3, 2, 2, 2, 234, 235, 5, 52, 27, 2, 235, 236, 5, 56, 29, 2, 236, 237, 7, 18, 2, 2, 237, 238, 5, 56, 29, 2, 238, 55, 3, 2, 2, 2, 239, 242, 5, 58, 30, 2, 240, 242, 5, 60, 31, 2, 241, 239, 3, 2, 2, 2, 241, 240, 3, 2, 2, 2, 242, 57, 3, 2, 2, 2, 243, 244, 7, 28, 2, 2, 244, 59, 3, 2, 2, 2, 245, 246, 7, 28, 2, 2, 246, 247, 7, 26, 2, 2, 247, 252, 5, 56, 29, 2, 248, 249, 7, 16, 2, 2, 249, 251, 5, 56, 29, 2, 250, 248, 3, 2, 2, 2, 251, 254, 3, 2, 2, 2, 252, 250, 3, 2, 2, 2, 252, 253, 3, 2, 2, 2, 253, 255, 3, 2, 2, 2, 254, 252, 3, 2, 2, 2, 255, 256, 7, 27, 2, 2, 256, 61, 3, 2, 2, 2, 25, 65, 72, 80, 92, 97, 102, 107, 112, 120, 127, 137, 141, 143, 151, 179, 182, 204, 213, 222, 230, 232, 241, 252] \ No newline at end of file diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Parser/Proof.tokens b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Parser/Proof.tokens new file mode 100644 index 0000000000000000000000000000000000000000..1653ec6993e186d643239faad3d76b0295eb585c --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Parser/Proof.tokens @@ -0,0 +1,54 @@ +T__0=1 +T__1=2 +T__2=3 +T__3=4 +T__4=5 +T__5=6 +T__6=7 +T__7=8 +T__8=9 +T__9=10 +T__10=11 +T__11=12 +T__12=13 +T__13=14 +T__14=15 +T__15=16 +T__16=17 +T__17=18 +T__18=19 +T__19=20 +T__20=21 +T__21=22 +T__22=23 +T__23=24 +T__24=25 +BEZ=26 +NAT=27 +WHITESPACE=28 +NEWLINE=29 +'proof'=1 +'lemma'=2 +':'=3 +'q.e.d.'=4 +'w.z.b.w.'=5 +'Q.E.D.'=6 +'W.Z.B.W.'=7 +'induction'=8 +'IA'=9 +'IS'=10 +'zu zeigen:'=11 +'IH'=12 +'{'=13 +','=14 +'}'=15 +'='=16 +'lr'=17 +'rl'=18 +'['=19 +']'=20 +'/'=21 +'forall'=22 +'fixed'=23 +'('=24 +')'=25 diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Parser/ProofBaseListener.cs b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Parser/ProofBaseListener.cs new file mode 100644 index 0000000000000000000000000000000000000000..252862601039efaf9ef68fed70bf246f249e7424 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Parser/ProofBaseListener.cs @@ -0,0 +1,412 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// ANTLR Version: 4.8 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +// Generated from Proof.g4 by ANTLR 4.8 + +// Unreachable code detected +#pragma warning disable 0162 +// The variable '...' is assigned but its value is never used +#pragma warning disable 0219 +// Missing XML comment for publicly visible type or member '...' +#pragma warning disable 1591 +// Ambiguous reference in cref attribute +#pragma warning disable 419 + +namespace Eingabeverwaltung.Parser.Proof_Parser { + +using Antlr4.Runtime.Misc; +using IErrorNode = Antlr4.Runtime.Tree.IErrorNode; +using ITerminalNode = Antlr4.Runtime.Tree.ITerminalNode; +using IToken = Antlr4.Runtime.IToken; +using ParserRuleContext = Antlr4.Runtime.ParserRuleContext; + +/// <summary> +/// This class provides an empty implementation of <see cref="IProofListener"/>, +/// which can be extended to create a listener which only needs to handle a subset +/// of the available methods. +/// </summary> +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.8")] +[System.CLSCompliant(false)] +public partial class ProofBaseListener : IProofListener { + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.proof"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterProof([NotNull] ProofParser.ProofContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.proof"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitProof([NotNull] ProofParser.ProofContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.mainProof"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterMainProof([NotNull] ProofParser.MainProofContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.mainProof"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitMainProof([NotNull] ProofParser.MainProofContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.lemma"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterLemma([NotNull] ProofParser.LemmaContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.lemma"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitLemma([NotNull] ProofParser.LemmaContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.lemmaDef"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterLemmaDef([NotNull] ProofParser.LemmaDefContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.lemmaDef"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitLemmaDef([NotNull] ProofParser.LemmaDefContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.singleProof"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterSingleProof([NotNull] ProofParser.SingleProofContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.singleProof"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitSingleProof([NotNull] ProofParser.SingleProofContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.proof_end"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterProof_end([NotNull] ProofParser.Proof_endContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.proof_end"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitProof_end([NotNull] ProofParser.Proof_endContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.induction"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterInduction([NotNull] ProofParser.InductionContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.induction"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitInduction([NotNull] ProofParser.InductionContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.ind_var"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterInd_var([NotNull] ProofParser.Ind_varContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.ind_var"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitInd_var([NotNull] ProofParser.Ind_varContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.ind_basis"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterInd_basis([NotNull] ProofParser.Ind_basisContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.ind_basis"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitInd_basis([NotNull] ProofParser.Ind_basisContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.ind_step"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterInd_step([NotNull] ProofParser.Ind_stepContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.ind_step"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitInd_step([NotNull] ProofParser.Ind_stepContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.ind_case"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterInd_case([NotNull] ProofParser.Ind_caseContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.ind_case"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitInd_case([NotNull] ProofParser.Ind_caseContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.ind_hyp"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterInd_hyp([NotNull] ProofParser.Ind_hypContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.ind_hyp"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitInd_hyp([NotNull] ProofParser.Ind_hypContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.transformation"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterTransformation([NotNull] ProofParser.TransformationContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.transformation"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitTransformation([NotNull] ProofParser.TransformationContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.start_tree"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterStart_tree([NotNull] ProofParser.Start_treeContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.start_tree"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitStart_tree([NotNull] ProofParser.Start_treeContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.transformation_step"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterTransformation_step([NotNull] ProofParser.Transformation_stepContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.transformation_step"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitTransformation_step([NotNull] ProofParser.Transformation_stepContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.axiom"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterAxiom([NotNull] ProofParser.AxiomContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.axiom"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitAxiom([NotNull] ProofParser.AxiomContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.direction"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterDirection([NotNull] ProofParser.DirectionContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.direction"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitDirection([NotNull] ProofParser.DirectionContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.termpart"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterTermpart([NotNull] ProofParser.TermpartContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.termpart"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitTermpart([NotNull] ProofParser.TermpartContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.subst"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterSubst([NotNull] ProofParser.SubstContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.subst"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitSubst([NotNull] ProofParser.SubstContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.sub"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterSub([NotNull] ProofParser.SubContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.sub"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitSub([NotNull] ProofParser.SubContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.result_tree"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterResult_tree([NotNull] ProofParser.Result_treeContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.result_tree"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitResult_tree([NotNull] ProofParser.Result_treeContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.var"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterVar([NotNull] ProofParser.VarContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.var"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitVar([NotNull] ProofParser.VarContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.sort"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterSort([NotNull] ProofParser.SortContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.sort"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitSort([NotNull] ProofParser.SortContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.forall"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterForall([NotNull] ProofParser.ForallContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.forall"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitForall([NotNull] ProofParser.ForallContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.fixed"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterFixed([NotNull] ProofParser.FixedContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.fixed"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitFixed([NotNull] ProofParser.FixedContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.eq_var_def"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterEq_var_def([NotNull] ProofParser.Eq_var_defContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.eq_var_def"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitEq_var_def([NotNull] ProofParser.Eq_var_defContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.eq"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterEq([NotNull] ProofParser.EqContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.eq"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitEq([NotNull] ProofParser.EqContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.mytree"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterMytree([NotNull] ProofParser.MytreeContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.mytree"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitMytree([NotNull] ProofParser.MytreeContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.treeLeaf"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterTreeLeaf([NotNull] ProofParser.TreeLeafContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.treeLeaf"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitTreeLeaf([NotNull] ProofParser.TreeLeafContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.treeNode"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterTreeNode([NotNull] ProofParser.TreeNodeContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.treeNode"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitTreeNode([NotNull] ProofParser.TreeNodeContext context) { } + + /// <inheritdoc/> + /// <remarks>The default implementation does nothing.</remarks> + public virtual void EnterEveryRule([NotNull] ParserRuleContext context) { } + /// <inheritdoc/> + /// <remarks>The default implementation does nothing.</remarks> + public virtual void ExitEveryRule([NotNull] ParserRuleContext context) { } + /// <inheritdoc/> + /// <remarks>The default implementation does nothing.</remarks> + public virtual void VisitTerminal([NotNull] ITerminalNode node) { } + /// <inheritdoc/> + /// <remarks>The default implementation does nothing.</remarks> + public virtual void VisitErrorNode([NotNull] IErrorNode node) { } +} +} // namespace Eingabeverwaltung.Parser.Proof_Parser diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Parser/ProofLexer.cs b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Parser/ProofLexer.cs new file mode 100644 index 0000000000000000000000000000000000000000..52d8be643662e25cc7b3f296bbf3c1a0dafb1ff1 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Parser/ProofLexer.cs @@ -0,0 +1,281 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// ANTLR Version: 4.8 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +// Generated from Proof.g4 by ANTLR 4.8 + +// Unreachable code detected +#pragma warning disable 0162 +// The variable '...' is assigned but its value is never used +#pragma warning disable 0219 +// Missing XML comment for publicly visible type or member '...' +#pragma warning disable 1591 +// Ambiguous reference in cref attribute +#pragma warning disable 419 + +namespace Eingabeverwaltung.Parser.Proof_Parser { +using System; +using System.IO; +using System.Text; +using Antlr4.Runtime; +using Antlr4.Runtime.Atn; +using Antlr4.Runtime.Misc; +using DFA = Antlr4.Runtime.Dfa.DFA; + +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.8")] +[System.CLSCompliant(false)] +public partial class ProofLexer : Lexer { + protected static DFA[] decisionToDFA; + protected static PredictionContextCache sharedContextCache = new PredictionContextCache(); + public const int + T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, + T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17, + T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, T__22=23, T__23=24, + T__24=25, BEZ=26, NAT=27, WHITESPACE=28, NEWLINE=29; + public static string[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static string[] modeNames = { + "DEFAULT_MODE" + }; + + public static readonly string[] ruleNames = { + "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8", + "T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15", "T__16", + "T__17", "T__18", "T__19", "T__20", "T__21", "T__22", "T__23", "T__24", + "BEZ", "NAT", "WHITESPACE", "NEWLINE" + }; + + + public ProofLexer(ICharStream input) + : this(input, Console.Out, Console.Error) { } + + public ProofLexer(ICharStream input, TextWriter output, TextWriter errorOutput) + : base(input, output, errorOutput) + { + Interpreter = new LexerATNSimulator(this, _ATN, decisionToDFA, sharedContextCache); + } + + private static readonly string[] _LiteralNames = { + null, "'proof'", "'lemma'", "':'", "'q.e.d.'", "'w.z.b.w.'", "'Q.E.D.'", + "'W.Z.B.W.'", "'induction'", "'IA'", "'IS'", "'zu zeigen:'", "'IH'", "'{'", + "','", "'}'", "'='", "'lr'", "'rl'", "'['", "']'", "'/'", "'forall'", + "'fixed'", "'('", "')'" + }; + private static readonly string[] _SymbolicNames = { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, "BEZ", "NAT", "WHITESPACE", "NEWLINE" + }; + public static readonly IVocabulary DefaultVocabulary = new Vocabulary(_LiteralNames, _SymbolicNames); + + [NotNull] + public override IVocabulary Vocabulary + { + get + { + return DefaultVocabulary; + } + } + + public override string GrammarFileName { get { return "Proof.g4"; } } + + public override string[] RuleNames { get { return ruleNames; } } + + public override string[] ChannelNames { get { return channelNames; } } + + public override string[] ModeNames { get { return modeNames; } } + + public override string SerializedAtn { get { return new string(_serializedATN); } } + + static ProofLexer() { + decisionToDFA = new DFA[_ATN.NumberOfDecisions]; + for (int i = 0; i < _ATN.NumberOfDecisions; i++) { + decisionToDFA[i] = new DFA(_ATN.GetDecisionState(i), i); + } + } + private static char[] _serializedATN = { + '\x3', '\x608B', '\xA72A', '\x8133', '\xB9ED', '\x417C', '\x3BE7', '\x7786', + '\x5964', '\x2', '\x1F', '\xCE', '\b', '\x1', '\x4', '\x2', '\t', '\x2', + '\x4', '\x3', '\t', '\x3', '\x4', '\x4', '\t', '\x4', '\x4', '\x5', '\t', + '\x5', '\x4', '\x6', '\t', '\x6', '\x4', '\a', '\t', '\a', '\x4', '\b', + '\t', '\b', '\x4', '\t', '\t', '\t', '\x4', '\n', '\t', '\n', '\x4', '\v', + '\t', '\v', '\x4', '\f', '\t', '\f', '\x4', '\r', '\t', '\r', '\x4', '\xE', + '\t', '\xE', '\x4', '\xF', '\t', '\xF', '\x4', '\x10', '\t', '\x10', '\x4', + '\x11', '\t', '\x11', '\x4', '\x12', '\t', '\x12', '\x4', '\x13', '\t', + '\x13', '\x4', '\x14', '\t', '\x14', '\x4', '\x15', '\t', '\x15', '\x4', + '\x16', '\t', '\x16', '\x4', '\x17', '\t', '\x17', '\x4', '\x18', '\t', + '\x18', '\x4', '\x19', '\t', '\x19', '\x4', '\x1A', '\t', '\x1A', '\x4', + '\x1B', '\t', '\x1B', '\x4', '\x1C', '\t', '\x1C', '\x4', '\x1D', '\t', + '\x1D', '\x4', '\x1E', '\t', '\x1E', '\x3', '\x2', '\x3', '\x2', '\x3', + '\x2', '\x3', '\x2', '\x3', '\x2', '\x3', '\x2', '\x3', '\x3', '\x3', + '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', + '\x4', '\x3', '\x4', '\x3', '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', + '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', '\x6', '\x3', + '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', + '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', '\a', '\x3', '\a', '\x3', '\a', + '\x3', '\a', '\x3', '\a', '\x3', '\a', '\x3', '\a', '\x3', '\b', '\x3', + '\b', '\x3', '\b', '\x3', '\b', '\x3', '\b', '\x3', '\b', '\x3', '\b', + '\x3', '\b', '\x3', '\b', '\x3', '\t', '\x3', '\t', '\x3', '\t', '\x3', + '\t', '\x3', '\t', '\x3', '\t', '\x3', '\t', '\x3', '\t', '\x3', '\t', + '\x3', '\t', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\v', '\x3', + '\v', '\x3', '\v', '\x3', '\f', '\x3', '\f', '\x3', '\f', '\x3', '\f', + '\x3', '\f', '\x3', '\f', '\x3', '\f', '\x3', '\f', '\x3', '\f', '\x3', + '\f', '\x3', '\f', '\x3', '\r', '\x3', '\r', '\x3', '\r', '\x3', '\xE', + '\x3', '\xE', '\x3', '\xF', '\x3', '\xF', '\x3', '\x10', '\x3', '\x10', + '\x3', '\x11', '\x3', '\x11', '\x3', '\x12', '\x3', '\x12', '\x3', '\x12', + '\x3', '\x13', '\x3', '\x13', '\x3', '\x13', '\x3', '\x14', '\x3', '\x14', + '\x3', '\x15', '\x3', '\x15', '\x3', '\x16', '\x3', '\x16', '\x3', '\x17', + '\x3', '\x17', '\x3', '\x17', '\x3', '\x17', '\x3', '\x17', '\x3', '\x17', + '\x3', '\x17', '\x3', '\x18', '\x3', '\x18', '\x3', '\x18', '\x3', '\x18', + '\x3', '\x18', '\x3', '\x18', '\x3', '\x19', '\x3', '\x19', '\x3', '\x1A', + '\x3', '\x1A', '\x3', '\x1B', '\x5', '\x1B', '\xB0', '\n', '\x1B', '\x3', + '\x1B', '\a', '\x1B', '\xB3', '\n', '\x1B', '\f', '\x1B', '\xE', '\x1B', + '\xB6', '\v', '\x1B', '\x3', '\x1C', '\x3', '\x1C', '\x3', '\x1C', '\a', + '\x1C', '\xBB', '\n', '\x1C', '\f', '\x1C', '\xE', '\x1C', '\xBE', '\v', + '\x1C', '\x5', '\x1C', '\xC0', '\n', '\x1C', '\x3', '\x1D', '\x3', '\x1D', + '\x3', '\x1D', '\x3', '\x1D', '\x3', '\x1E', '\x5', '\x1E', '\xC7', '\n', + '\x1E', '\x3', '\x1E', '\x3', '\x1E', '\x5', '\x1E', '\xCB', '\n', '\x1E', + '\x3', '\x1E', '\x3', '\x1E', '\x2', '\x2', '\x1F', '\x3', '\x3', '\x5', + '\x4', '\a', '\x5', '\t', '\x6', '\v', '\a', '\r', '\b', '\xF', '\t', + '\x11', '\n', '\x13', '\v', '\x15', '\f', '\x17', '\r', '\x19', '\xE', + '\x1B', '\xF', '\x1D', '\x10', '\x1F', '\x11', '!', '\x12', '#', '\x13', + '%', '\x14', '\'', '\x15', ')', '\x16', '+', '\x17', '-', '\x18', '/', + '\x19', '\x31', '\x1A', '\x33', '\x1B', '\x35', '\x1C', '\x37', '\x1D', + '\x39', '\x1E', ';', '\x1F', '\x3', '\x2', '\a', '\x4', '\x2', '\x43', + '\\', '\x63', '|', '\x6', '\x2', '\x32', ';', '\x43', '\\', '\x61', '\x61', + '\x63', '|', '\x3', '\x2', '\x33', ';', '\x3', '\x2', '\x32', ';', '\x4', + '\x2', '\v', '\v', '\"', '\"', '\x2', '\xD2', '\x2', '\x3', '\x3', '\x2', + '\x2', '\x2', '\x2', '\x5', '\x3', '\x2', '\x2', '\x2', '\x2', '\a', '\x3', + '\x2', '\x2', '\x2', '\x2', '\t', '\x3', '\x2', '\x2', '\x2', '\x2', '\v', + '\x3', '\x2', '\x2', '\x2', '\x2', '\r', '\x3', '\x2', '\x2', '\x2', '\x2', + '\xF', '\x3', '\x2', '\x2', '\x2', '\x2', '\x11', '\x3', '\x2', '\x2', + '\x2', '\x2', '\x13', '\x3', '\x2', '\x2', '\x2', '\x2', '\x15', '\x3', + '\x2', '\x2', '\x2', '\x2', '\x17', '\x3', '\x2', '\x2', '\x2', '\x2', + '\x19', '\x3', '\x2', '\x2', '\x2', '\x2', '\x1B', '\x3', '\x2', '\x2', + '\x2', '\x2', '\x1D', '\x3', '\x2', '\x2', '\x2', '\x2', '\x1F', '\x3', + '\x2', '\x2', '\x2', '\x2', '!', '\x3', '\x2', '\x2', '\x2', '\x2', '#', + '\x3', '\x2', '\x2', '\x2', '\x2', '%', '\x3', '\x2', '\x2', '\x2', '\x2', + '\'', '\x3', '\x2', '\x2', '\x2', '\x2', ')', '\x3', '\x2', '\x2', '\x2', + '\x2', '+', '\x3', '\x2', '\x2', '\x2', '\x2', '-', '\x3', '\x2', '\x2', + '\x2', '\x2', '/', '\x3', '\x2', '\x2', '\x2', '\x2', '\x31', '\x3', '\x2', + '\x2', '\x2', '\x2', '\x33', '\x3', '\x2', '\x2', '\x2', '\x2', '\x35', + '\x3', '\x2', '\x2', '\x2', '\x2', '\x37', '\x3', '\x2', '\x2', '\x2', + '\x2', '\x39', '\x3', '\x2', '\x2', '\x2', '\x2', ';', '\x3', '\x2', '\x2', + '\x2', '\x3', '=', '\x3', '\x2', '\x2', '\x2', '\x5', '\x43', '\x3', '\x2', + '\x2', '\x2', '\a', 'I', '\x3', '\x2', '\x2', '\x2', '\t', 'K', '\x3', + '\x2', '\x2', '\x2', '\v', 'R', '\x3', '\x2', '\x2', '\x2', '\r', '[', + '\x3', '\x2', '\x2', '\x2', '\xF', '\x62', '\x3', '\x2', '\x2', '\x2', + '\x11', 'k', '\x3', '\x2', '\x2', '\x2', '\x13', 'u', '\x3', '\x2', '\x2', + '\x2', '\x15', 'x', '\x3', '\x2', '\x2', '\x2', '\x17', '{', '\x3', '\x2', + '\x2', '\x2', '\x19', '\x86', '\x3', '\x2', '\x2', '\x2', '\x1B', '\x89', + '\x3', '\x2', '\x2', '\x2', '\x1D', '\x8B', '\x3', '\x2', '\x2', '\x2', + '\x1F', '\x8D', '\x3', '\x2', '\x2', '\x2', '!', '\x8F', '\x3', '\x2', + '\x2', '\x2', '#', '\x91', '\x3', '\x2', '\x2', '\x2', '%', '\x94', '\x3', + '\x2', '\x2', '\x2', '\'', '\x97', '\x3', '\x2', '\x2', '\x2', ')', '\x99', + '\x3', '\x2', '\x2', '\x2', '+', '\x9B', '\x3', '\x2', '\x2', '\x2', '-', + '\x9D', '\x3', '\x2', '\x2', '\x2', '/', '\xA4', '\x3', '\x2', '\x2', + '\x2', '\x31', '\xAA', '\x3', '\x2', '\x2', '\x2', '\x33', '\xAC', '\x3', + '\x2', '\x2', '\x2', '\x35', '\xAF', '\x3', '\x2', '\x2', '\x2', '\x37', + '\xBF', '\x3', '\x2', '\x2', '\x2', '\x39', '\xC1', '\x3', '\x2', '\x2', + '\x2', ';', '\xCA', '\x3', '\x2', '\x2', '\x2', '=', '>', '\a', 'r', '\x2', + '\x2', '>', '?', '\a', 't', '\x2', '\x2', '?', '@', '\a', 'q', '\x2', + '\x2', '@', '\x41', '\a', 'q', '\x2', '\x2', '\x41', '\x42', '\a', 'h', + '\x2', '\x2', '\x42', '\x4', '\x3', '\x2', '\x2', '\x2', '\x43', '\x44', + '\a', 'n', '\x2', '\x2', '\x44', '\x45', '\a', 'g', '\x2', '\x2', '\x45', + '\x46', '\a', 'o', '\x2', '\x2', '\x46', 'G', '\a', 'o', '\x2', '\x2', + 'G', 'H', '\a', '\x63', '\x2', '\x2', 'H', '\x6', '\x3', '\x2', '\x2', + '\x2', 'I', 'J', '\a', '<', '\x2', '\x2', 'J', '\b', '\x3', '\x2', '\x2', + '\x2', 'K', 'L', '\a', 's', '\x2', '\x2', 'L', 'M', '\a', '\x30', '\x2', + '\x2', 'M', 'N', '\a', 'g', '\x2', '\x2', 'N', 'O', '\a', '\x30', '\x2', + '\x2', 'O', 'P', '\a', '\x66', '\x2', '\x2', 'P', 'Q', '\a', '\x30', '\x2', + '\x2', 'Q', '\n', '\x3', '\x2', '\x2', '\x2', 'R', 'S', '\a', 'y', '\x2', + '\x2', 'S', 'T', '\a', '\x30', '\x2', '\x2', 'T', 'U', '\a', '|', '\x2', + '\x2', 'U', 'V', '\a', '\x30', '\x2', '\x2', 'V', 'W', '\a', '\x64', '\x2', + '\x2', 'W', 'X', '\a', '\x30', '\x2', '\x2', 'X', 'Y', '\a', 'y', '\x2', + '\x2', 'Y', 'Z', '\a', '\x30', '\x2', '\x2', 'Z', '\f', '\x3', '\x2', + '\x2', '\x2', '[', '\\', '\a', 'S', '\x2', '\x2', '\\', ']', '\a', '\x30', + '\x2', '\x2', ']', '^', '\a', 'G', '\x2', '\x2', '^', '_', '\a', '\x30', + '\x2', '\x2', '_', '`', '\a', '\x46', '\x2', '\x2', '`', '\x61', '\a', + '\x30', '\x2', '\x2', '\x61', '\xE', '\x3', '\x2', '\x2', '\x2', '\x62', + '\x63', '\a', 'Y', '\x2', '\x2', '\x63', '\x64', '\a', '\x30', '\x2', + '\x2', '\x64', '\x65', '\a', '\\', '\x2', '\x2', '\x65', '\x66', '\a', + '\x30', '\x2', '\x2', '\x66', 'g', '\a', '\x44', '\x2', '\x2', 'g', 'h', + '\a', '\x30', '\x2', '\x2', 'h', 'i', '\a', 'Y', '\x2', '\x2', 'i', 'j', + '\a', '\x30', '\x2', '\x2', 'j', '\x10', '\x3', '\x2', '\x2', '\x2', 'k', + 'l', '\a', 'k', '\x2', '\x2', 'l', 'm', '\a', 'p', '\x2', '\x2', 'm', + 'n', '\a', '\x66', '\x2', '\x2', 'n', 'o', '\a', 'w', '\x2', '\x2', 'o', + 'p', '\a', '\x65', '\x2', '\x2', 'p', 'q', '\a', 'v', '\x2', '\x2', 'q', + 'r', '\a', 'k', '\x2', '\x2', 'r', 's', '\a', 'q', '\x2', '\x2', 's', + 't', '\a', 'p', '\x2', '\x2', 't', '\x12', '\x3', '\x2', '\x2', '\x2', + 'u', 'v', '\a', 'K', '\x2', '\x2', 'v', 'w', '\a', '\x43', '\x2', '\x2', + 'w', '\x14', '\x3', '\x2', '\x2', '\x2', 'x', 'y', '\a', 'K', '\x2', '\x2', + 'y', 'z', '\a', 'U', '\x2', '\x2', 'z', '\x16', '\x3', '\x2', '\x2', '\x2', + '{', '|', '\a', '|', '\x2', '\x2', '|', '}', '\a', 'w', '\x2', '\x2', + '}', '~', '\a', '\"', '\x2', '\x2', '~', '\x7F', '\a', '|', '\x2', '\x2', + '\x7F', '\x80', '\a', 'g', '\x2', '\x2', '\x80', '\x81', '\a', 'k', '\x2', + '\x2', '\x81', '\x82', '\a', 'i', '\x2', '\x2', '\x82', '\x83', '\a', + 'g', '\x2', '\x2', '\x83', '\x84', '\a', 'p', '\x2', '\x2', '\x84', '\x85', + '\a', '<', '\x2', '\x2', '\x85', '\x18', '\x3', '\x2', '\x2', '\x2', '\x86', + '\x87', '\a', 'K', '\x2', '\x2', '\x87', '\x88', '\a', 'J', '\x2', '\x2', + '\x88', '\x1A', '\x3', '\x2', '\x2', '\x2', '\x89', '\x8A', '\a', '}', + '\x2', '\x2', '\x8A', '\x1C', '\x3', '\x2', '\x2', '\x2', '\x8B', '\x8C', + '\a', '.', '\x2', '\x2', '\x8C', '\x1E', '\x3', '\x2', '\x2', '\x2', '\x8D', + '\x8E', '\a', '\x7F', '\x2', '\x2', '\x8E', ' ', '\x3', '\x2', '\x2', + '\x2', '\x8F', '\x90', '\a', '?', '\x2', '\x2', '\x90', '\"', '\x3', '\x2', + '\x2', '\x2', '\x91', '\x92', '\a', 'n', '\x2', '\x2', '\x92', '\x93', + '\a', 't', '\x2', '\x2', '\x93', '$', '\x3', '\x2', '\x2', '\x2', '\x94', + '\x95', '\a', 't', '\x2', '\x2', '\x95', '\x96', '\a', 'n', '\x2', '\x2', + '\x96', '&', '\x3', '\x2', '\x2', '\x2', '\x97', '\x98', '\a', ']', '\x2', + '\x2', '\x98', '(', '\x3', '\x2', '\x2', '\x2', '\x99', '\x9A', '\a', + '_', '\x2', '\x2', '\x9A', '*', '\x3', '\x2', '\x2', '\x2', '\x9B', '\x9C', + '\a', '\x31', '\x2', '\x2', '\x9C', ',', '\x3', '\x2', '\x2', '\x2', '\x9D', + '\x9E', '\a', 'h', '\x2', '\x2', '\x9E', '\x9F', '\a', 'q', '\x2', '\x2', + '\x9F', '\xA0', '\a', 't', '\x2', '\x2', '\xA0', '\xA1', '\a', '\x63', + '\x2', '\x2', '\xA1', '\xA2', '\a', 'n', '\x2', '\x2', '\xA2', '\xA3', + '\a', 'n', '\x2', '\x2', '\xA3', '.', '\x3', '\x2', '\x2', '\x2', '\xA4', + '\xA5', '\a', 'h', '\x2', '\x2', '\xA5', '\xA6', '\a', 'k', '\x2', '\x2', + '\xA6', '\xA7', '\a', 'z', '\x2', '\x2', '\xA7', '\xA8', '\a', 'g', '\x2', + '\x2', '\xA8', '\xA9', '\a', '\x66', '\x2', '\x2', '\xA9', '\x30', '\x3', + '\x2', '\x2', '\x2', '\xAA', '\xAB', '\a', '*', '\x2', '\x2', '\xAB', + '\x32', '\x3', '\x2', '\x2', '\x2', '\xAC', '\xAD', '\a', '+', '\x2', + '\x2', '\xAD', '\x34', '\x3', '\x2', '\x2', '\x2', '\xAE', '\xB0', '\t', + '\x2', '\x2', '\x2', '\xAF', '\xAE', '\x3', '\x2', '\x2', '\x2', '\xB0', + '\xB4', '\x3', '\x2', '\x2', '\x2', '\xB1', '\xB3', '\t', '\x3', '\x2', + '\x2', '\xB2', '\xB1', '\x3', '\x2', '\x2', '\x2', '\xB3', '\xB6', '\x3', + '\x2', '\x2', '\x2', '\xB4', '\xB2', '\x3', '\x2', '\x2', '\x2', '\xB4', + '\xB5', '\x3', '\x2', '\x2', '\x2', '\xB5', '\x36', '\x3', '\x2', '\x2', + '\x2', '\xB6', '\xB4', '\x3', '\x2', '\x2', '\x2', '\xB7', '\xC0', '\a', + '\x32', '\x2', '\x2', '\xB8', '\xBC', '\t', '\x4', '\x2', '\x2', '\xB9', + '\xBB', '\t', '\x5', '\x2', '\x2', '\xBA', '\xB9', '\x3', '\x2', '\x2', + '\x2', '\xBB', '\xBE', '\x3', '\x2', '\x2', '\x2', '\xBC', '\xBA', '\x3', + '\x2', '\x2', '\x2', '\xBC', '\xBD', '\x3', '\x2', '\x2', '\x2', '\xBD', + '\xC0', '\x3', '\x2', '\x2', '\x2', '\xBE', '\xBC', '\x3', '\x2', '\x2', + '\x2', '\xBF', '\xB7', '\x3', '\x2', '\x2', '\x2', '\xBF', '\xB8', '\x3', + '\x2', '\x2', '\x2', '\xC0', '\x38', '\x3', '\x2', '\x2', '\x2', '\xC1', + '\xC2', '\t', '\x6', '\x2', '\x2', '\xC2', '\xC3', '\x3', '\x2', '\x2', + '\x2', '\xC3', '\xC4', '\b', '\x1D', '\x2', '\x2', '\xC4', ':', '\x3', + '\x2', '\x2', '\x2', '\xC5', '\xC7', '\a', '\xF', '\x2', '\x2', '\xC6', + '\xC5', '\x3', '\x2', '\x2', '\x2', '\xC6', '\xC7', '\x3', '\x2', '\x2', + '\x2', '\xC7', '\xC8', '\x3', '\x2', '\x2', '\x2', '\xC8', '\xCB', '\a', + '\f', '\x2', '\x2', '\xC9', '\xCB', '\a', '\xF', '\x2', '\x2', '\xCA', + '\xC6', '\x3', '\x2', '\x2', '\x2', '\xCA', '\xC9', '\x3', '\x2', '\x2', + '\x2', '\xCB', '\xCC', '\x3', '\x2', '\x2', '\x2', '\xCC', '\xCD', '\b', + '\x1E', '\x2', '\x2', '\xCD', '<', '\x3', '\x2', '\x2', '\x2', '\n', '\x2', + '\xAF', '\xB2', '\xB4', '\xBC', '\xBF', '\xC6', '\xCA', '\x3', '\b', '\x2', + '\x2', + }; + + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN); + + +} +} // namespace Eingabeverwaltung.Parser.Proof_Parser diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Parser/ProofLexer.interp b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Parser/ProofLexer.interp new file mode 100644 index 0000000000000000000000000000000000000000..b4c295b8669b2bf2007bb3d6f0828846308734d6 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Parser/ProofLexer.interp @@ -0,0 +1,104 @@ +token literal names: +null +'proof' +'lemma' +':' +'q.e.d.' +'w.z.b.w.' +'Q.E.D.' +'W.Z.B.W.' +'induction' +'IA' +'IS' +'zu zeigen:' +'IH' +'{' +',' +'}' +'=' +'lr' +'rl' +'[' +']' +'/' +'forall' +'fixed' +'(' +')' +null +null +null +null + +token symbolic names: +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +BEZ +NAT +WHITESPACE +NEWLINE + +rule names: +T__0 +T__1 +T__2 +T__3 +T__4 +T__5 +T__6 +T__7 +T__8 +T__9 +T__10 +T__11 +T__12 +T__13 +T__14 +T__15 +T__16 +T__17 +T__18 +T__19 +T__20 +T__21 +T__22 +T__23 +T__24 +BEZ +NAT +WHITESPACE +NEWLINE + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 31, 206, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 15, 3, 15, 3, 16, 3, 16, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 21, 3, 21, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 26, 3, 26, 3, 27, 5, 27, 176, 10, 27, 3, 27, 7, 27, 179, 10, 27, 12, 27, 14, 27, 182, 11, 27, 3, 28, 3, 28, 3, 28, 7, 28, 187, 10, 28, 12, 28, 14, 28, 190, 11, 28, 5, 28, 192, 10, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 5, 30, 199, 10, 30, 3, 30, 3, 30, 5, 30, 203, 10, 30, 3, 30, 3, 30, 2, 2, 31, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18, 35, 19, 37, 20, 39, 21, 41, 22, 43, 23, 45, 24, 47, 25, 49, 26, 51, 27, 53, 28, 55, 29, 57, 30, 59, 31, 3, 2, 7, 4, 2, 67, 92, 99, 124, 6, 2, 50, 59, 67, 92, 97, 97, 99, 124, 3, 2, 51, 59, 3, 2, 50, 59, 4, 2, 11, 11, 34, 34, 2, 210, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 2, 59, 3, 2, 2, 2, 3, 61, 3, 2, 2, 2, 5, 67, 3, 2, 2, 2, 7, 73, 3, 2, 2, 2, 9, 75, 3, 2, 2, 2, 11, 82, 3, 2, 2, 2, 13, 91, 3, 2, 2, 2, 15, 98, 3, 2, 2, 2, 17, 107, 3, 2, 2, 2, 19, 117, 3, 2, 2, 2, 21, 120, 3, 2, 2, 2, 23, 123, 3, 2, 2, 2, 25, 134, 3, 2, 2, 2, 27, 137, 3, 2, 2, 2, 29, 139, 3, 2, 2, 2, 31, 141, 3, 2, 2, 2, 33, 143, 3, 2, 2, 2, 35, 145, 3, 2, 2, 2, 37, 148, 3, 2, 2, 2, 39, 151, 3, 2, 2, 2, 41, 153, 3, 2, 2, 2, 43, 155, 3, 2, 2, 2, 45, 157, 3, 2, 2, 2, 47, 164, 3, 2, 2, 2, 49, 170, 3, 2, 2, 2, 51, 172, 3, 2, 2, 2, 53, 175, 3, 2, 2, 2, 55, 191, 3, 2, 2, 2, 57, 193, 3, 2, 2, 2, 59, 202, 3, 2, 2, 2, 61, 62, 7, 114, 2, 2, 62, 63, 7, 116, 2, 2, 63, 64, 7, 113, 2, 2, 64, 65, 7, 113, 2, 2, 65, 66, 7, 104, 2, 2, 66, 4, 3, 2, 2, 2, 67, 68, 7, 110, 2, 2, 68, 69, 7, 103, 2, 2, 69, 70, 7, 111, 2, 2, 70, 71, 7, 111, 2, 2, 71, 72, 7, 99, 2, 2, 72, 6, 3, 2, 2, 2, 73, 74, 7, 60, 2, 2, 74, 8, 3, 2, 2, 2, 75, 76, 7, 115, 2, 2, 76, 77, 7, 48, 2, 2, 77, 78, 7, 103, 2, 2, 78, 79, 7, 48, 2, 2, 79, 80, 7, 102, 2, 2, 80, 81, 7, 48, 2, 2, 81, 10, 3, 2, 2, 2, 82, 83, 7, 121, 2, 2, 83, 84, 7, 48, 2, 2, 84, 85, 7, 124, 2, 2, 85, 86, 7, 48, 2, 2, 86, 87, 7, 100, 2, 2, 87, 88, 7, 48, 2, 2, 88, 89, 7, 121, 2, 2, 89, 90, 7, 48, 2, 2, 90, 12, 3, 2, 2, 2, 91, 92, 7, 83, 2, 2, 92, 93, 7, 48, 2, 2, 93, 94, 7, 71, 2, 2, 94, 95, 7, 48, 2, 2, 95, 96, 7, 70, 2, 2, 96, 97, 7, 48, 2, 2, 97, 14, 3, 2, 2, 2, 98, 99, 7, 89, 2, 2, 99, 100, 7, 48, 2, 2, 100, 101, 7, 92, 2, 2, 101, 102, 7, 48, 2, 2, 102, 103, 7, 68, 2, 2, 103, 104, 7, 48, 2, 2, 104, 105, 7, 89, 2, 2, 105, 106, 7, 48, 2, 2, 106, 16, 3, 2, 2, 2, 107, 108, 7, 107, 2, 2, 108, 109, 7, 112, 2, 2, 109, 110, 7, 102, 2, 2, 110, 111, 7, 119, 2, 2, 111, 112, 7, 101, 2, 2, 112, 113, 7, 118, 2, 2, 113, 114, 7, 107, 2, 2, 114, 115, 7, 113, 2, 2, 115, 116, 7, 112, 2, 2, 116, 18, 3, 2, 2, 2, 117, 118, 7, 75, 2, 2, 118, 119, 7, 67, 2, 2, 119, 20, 3, 2, 2, 2, 120, 121, 7, 75, 2, 2, 121, 122, 7, 85, 2, 2, 122, 22, 3, 2, 2, 2, 123, 124, 7, 124, 2, 2, 124, 125, 7, 119, 2, 2, 125, 126, 7, 34, 2, 2, 126, 127, 7, 124, 2, 2, 127, 128, 7, 103, 2, 2, 128, 129, 7, 107, 2, 2, 129, 130, 7, 105, 2, 2, 130, 131, 7, 103, 2, 2, 131, 132, 7, 112, 2, 2, 132, 133, 7, 60, 2, 2, 133, 24, 3, 2, 2, 2, 134, 135, 7, 75, 2, 2, 135, 136, 7, 74, 2, 2, 136, 26, 3, 2, 2, 2, 137, 138, 7, 125, 2, 2, 138, 28, 3, 2, 2, 2, 139, 140, 7, 46, 2, 2, 140, 30, 3, 2, 2, 2, 141, 142, 7, 127, 2, 2, 142, 32, 3, 2, 2, 2, 143, 144, 7, 63, 2, 2, 144, 34, 3, 2, 2, 2, 145, 146, 7, 110, 2, 2, 146, 147, 7, 116, 2, 2, 147, 36, 3, 2, 2, 2, 148, 149, 7, 116, 2, 2, 149, 150, 7, 110, 2, 2, 150, 38, 3, 2, 2, 2, 151, 152, 7, 93, 2, 2, 152, 40, 3, 2, 2, 2, 153, 154, 7, 95, 2, 2, 154, 42, 3, 2, 2, 2, 155, 156, 7, 49, 2, 2, 156, 44, 3, 2, 2, 2, 157, 158, 7, 104, 2, 2, 158, 159, 7, 113, 2, 2, 159, 160, 7, 116, 2, 2, 160, 161, 7, 99, 2, 2, 161, 162, 7, 110, 2, 2, 162, 163, 7, 110, 2, 2, 163, 46, 3, 2, 2, 2, 164, 165, 7, 104, 2, 2, 165, 166, 7, 107, 2, 2, 166, 167, 7, 122, 2, 2, 167, 168, 7, 103, 2, 2, 168, 169, 7, 102, 2, 2, 169, 48, 3, 2, 2, 2, 170, 171, 7, 42, 2, 2, 171, 50, 3, 2, 2, 2, 172, 173, 7, 43, 2, 2, 173, 52, 3, 2, 2, 2, 174, 176, 9, 2, 2, 2, 175, 174, 3, 2, 2, 2, 176, 180, 3, 2, 2, 2, 177, 179, 9, 3, 2, 2, 178, 177, 3, 2, 2, 2, 179, 182, 3, 2, 2, 2, 180, 178, 3, 2, 2, 2, 180, 181, 3, 2, 2, 2, 181, 54, 3, 2, 2, 2, 182, 180, 3, 2, 2, 2, 183, 192, 7, 50, 2, 2, 184, 188, 9, 4, 2, 2, 185, 187, 9, 5, 2, 2, 186, 185, 3, 2, 2, 2, 187, 190, 3, 2, 2, 2, 188, 186, 3, 2, 2, 2, 188, 189, 3, 2, 2, 2, 189, 192, 3, 2, 2, 2, 190, 188, 3, 2, 2, 2, 191, 183, 3, 2, 2, 2, 191, 184, 3, 2, 2, 2, 192, 56, 3, 2, 2, 2, 193, 194, 9, 6, 2, 2, 194, 195, 3, 2, 2, 2, 195, 196, 8, 29, 2, 2, 196, 58, 3, 2, 2, 2, 197, 199, 7, 15, 2, 2, 198, 197, 3, 2, 2, 2, 198, 199, 3, 2, 2, 2, 199, 200, 3, 2, 2, 2, 200, 203, 7, 12, 2, 2, 201, 203, 7, 15, 2, 2, 202, 198, 3, 2, 2, 2, 202, 201, 3, 2, 2, 2, 203, 204, 3, 2, 2, 2, 204, 205, 8, 30, 2, 2, 205, 60, 3, 2, 2, 2, 10, 2, 175, 178, 180, 188, 191, 198, 202, 3, 8, 2, 2] \ No newline at end of file diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Parser/ProofLexer.tokens b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Parser/ProofLexer.tokens new file mode 100644 index 0000000000000000000000000000000000000000..1653ec6993e186d643239faad3d76b0295eb585c --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Parser/ProofLexer.tokens @@ -0,0 +1,54 @@ +T__0=1 +T__1=2 +T__2=3 +T__3=4 +T__4=5 +T__5=6 +T__6=7 +T__7=8 +T__8=9 +T__9=10 +T__10=11 +T__11=12 +T__12=13 +T__13=14 +T__14=15 +T__15=16 +T__16=17 +T__17=18 +T__18=19 +T__19=20 +T__20=21 +T__21=22 +T__22=23 +T__23=24 +T__24=25 +BEZ=26 +NAT=27 +WHITESPACE=28 +NEWLINE=29 +'proof'=1 +'lemma'=2 +':'=3 +'q.e.d.'=4 +'w.z.b.w.'=5 +'Q.E.D.'=6 +'W.Z.B.W.'=7 +'induction'=8 +'IA'=9 +'IS'=10 +'zu zeigen:'=11 +'IH'=12 +'{'=13 +','=14 +'}'=15 +'='=16 +'lr'=17 +'rl'=18 +'['=19 +']'=20 +'/'=21 +'forall'=22 +'fixed'=23 +'('=24 +')'=25 diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Parser/ProofListener.cs b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Parser/ProofListener.cs new file mode 100644 index 0000000000000000000000000000000000000000..ddd56b858dad792e7893cdffc0018769b9a31b62 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Parser/ProofListener.cs @@ -0,0 +1,335 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// ANTLR Version: 4.8 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +// Generated from Proof.g4 by ANTLR 4.8 + +// Unreachable code detected +#pragma warning disable 0162 +// The variable '...' is assigned but its value is never used +#pragma warning disable 0219 +// Missing XML comment for publicly visible type or member '...' +#pragma warning disable 1591 +// Ambiguous reference in cref attribute +#pragma warning disable 419 + +namespace Eingabeverwaltung.Parser.Proof_Parser { +using Antlr4.Runtime.Misc; +using IParseTreeListener = Antlr4.Runtime.Tree.IParseTreeListener; +using IToken = Antlr4.Runtime.IToken; + +/// <summary> +/// This interface defines a complete listener for a parse tree produced by +/// <see cref="ProofParser"/>. +/// </summary> +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.8")] +[System.CLSCompliant(false)] +public interface IProofListener : IParseTreeListener { + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.proof"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterProof([NotNull] ProofParser.ProofContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.proof"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitProof([NotNull] ProofParser.ProofContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.mainProof"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterMainProof([NotNull] ProofParser.MainProofContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.mainProof"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitMainProof([NotNull] ProofParser.MainProofContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.lemma"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterLemma([NotNull] ProofParser.LemmaContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.lemma"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitLemma([NotNull] ProofParser.LemmaContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.lemmaDef"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterLemmaDef([NotNull] ProofParser.LemmaDefContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.lemmaDef"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitLemmaDef([NotNull] ProofParser.LemmaDefContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.singleProof"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterSingleProof([NotNull] ProofParser.SingleProofContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.singleProof"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitSingleProof([NotNull] ProofParser.SingleProofContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.proof_end"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterProof_end([NotNull] ProofParser.Proof_endContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.proof_end"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitProof_end([NotNull] ProofParser.Proof_endContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.induction"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterInduction([NotNull] ProofParser.InductionContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.induction"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitInduction([NotNull] ProofParser.InductionContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.ind_var"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterInd_var([NotNull] ProofParser.Ind_varContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.ind_var"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitInd_var([NotNull] ProofParser.Ind_varContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.ind_basis"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterInd_basis([NotNull] ProofParser.Ind_basisContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.ind_basis"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitInd_basis([NotNull] ProofParser.Ind_basisContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.ind_step"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterInd_step([NotNull] ProofParser.Ind_stepContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.ind_step"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitInd_step([NotNull] ProofParser.Ind_stepContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.ind_case"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterInd_case([NotNull] ProofParser.Ind_caseContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.ind_case"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitInd_case([NotNull] ProofParser.Ind_caseContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.ind_hyp"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterInd_hyp([NotNull] ProofParser.Ind_hypContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.ind_hyp"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitInd_hyp([NotNull] ProofParser.Ind_hypContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.transformation"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterTransformation([NotNull] ProofParser.TransformationContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.transformation"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitTransformation([NotNull] ProofParser.TransformationContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.start_tree"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterStart_tree([NotNull] ProofParser.Start_treeContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.start_tree"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitStart_tree([NotNull] ProofParser.Start_treeContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.transformation_step"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterTransformation_step([NotNull] ProofParser.Transformation_stepContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.transformation_step"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitTransformation_step([NotNull] ProofParser.Transformation_stepContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.axiom"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterAxiom([NotNull] ProofParser.AxiomContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.axiom"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitAxiom([NotNull] ProofParser.AxiomContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.direction"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterDirection([NotNull] ProofParser.DirectionContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.direction"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitDirection([NotNull] ProofParser.DirectionContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.termpart"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterTermpart([NotNull] ProofParser.TermpartContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.termpart"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitTermpart([NotNull] ProofParser.TermpartContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.subst"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterSubst([NotNull] ProofParser.SubstContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.subst"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitSubst([NotNull] ProofParser.SubstContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.sub"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterSub([NotNull] ProofParser.SubContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.sub"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitSub([NotNull] ProofParser.SubContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.result_tree"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterResult_tree([NotNull] ProofParser.Result_treeContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.result_tree"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitResult_tree([NotNull] ProofParser.Result_treeContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.var"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterVar([NotNull] ProofParser.VarContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.var"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitVar([NotNull] ProofParser.VarContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.sort"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterSort([NotNull] ProofParser.SortContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.sort"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitSort([NotNull] ProofParser.SortContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.forall"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterForall([NotNull] ProofParser.ForallContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.forall"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitForall([NotNull] ProofParser.ForallContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.fixed"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterFixed([NotNull] ProofParser.FixedContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.fixed"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitFixed([NotNull] ProofParser.FixedContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.eq_var_def"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterEq_var_def([NotNull] ProofParser.Eq_var_defContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.eq_var_def"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitEq_var_def([NotNull] ProofParser.Eq_var_defContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.eq"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterEq([NotNull] ProofParser.EqContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.eq"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitEq([NotNull] ProofParser.EqContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.mytree"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterMytree([NotNull] ProofParser.MytreeContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.mytree"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitMytree([NotNull] ProofParser.MytreeContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.treeLeaf"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterTreeLeaf([NotNull] ProofParser.TreeLeafContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.treeLeaf"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitTreeLeaf([NotNull] ProofParser.TreeLeafContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="ProofParser.treeNode"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterTreeNode([NotNull] ProofParser.TreeNodeContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="ProofParser.treeNode"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitTreeNode([NotNull] ProofParser.TreeNodeContext context); +} +} // namespace Eingabeverwaltung.Parser.Proof_Parser diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Parser/ProofParser.cs b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Parser/ProofParser.cs new file mode 100644 index 0000000000000000000000000000000000000000..78b1d1f5e91b6b47a469f82be9e03ec683c84028 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Proof_Parser/ProofParser.cs @@ -0,0 +1,1940 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// ANTLR Version: 4.8 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +// Generated from Proof.g4 by ANTLR 4.8 + +// Unreachable code detected +#pragma warning disable 0162 +// The variable '...' is assigned but its value is never used +#pragma warning disable 0219 +// Missing XML comment for publicly visible type or member '...' +#pragma warning disable 1591 +// Ambiguous reference in cref attribute +#pragma warning disable 419 + +namespace Eingabeverwaltung.Parser.Proof_Parser { +using System; +using System.IO; +using System.Text; +using System.Diagnostics; +using System.Collections.Generic; +using Antlr4.Runtime; +using Antlr4.Runtime.Atn; +using Antlr4.Runtime.Misc; +using Antlr4.Runtime.Tree; +using DFA = Antlr4.Runtime.Dfa.DFA; + +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.8")] +[System.CLSCompliant(false)] +public partial class ProofParser : Parser { + protected static DFA[] decisionToDFA; + protected static PredictionContextCache sharedContextCache = new PredictionContextCache(); + public const int + T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, + T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17, + T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, T__22=23, T__23=24, + T__24=25, BEZ=26, NAT=27, WHITESPACE=28, NEWLINE=29; + public const int + RULE_proof = 0, RULE_mainProof = 1, RULE_lemma = 2, RULE_lemmaDef = 3, + RULE_singleProof = 4, RULE_proof_end = 5, RULE_induction = 6, RULE_ind_var = 7, + RULE_ind_basis = 8, RULE_ind_step = 9, RULE_ind_case = 10, RULE_ind_hyp = 11, + RULE_transformation = 12, RULE_start_tree = 13, RULE_transformation_step = 14, + RULE_axiom = 15, RULE_direction = 16, RULE_termpart = 17, RULE_subst = 18, + RULE_sub = 19, RULE_result_tree = 20, RULE_var = 21, RULE_sort = 22, RULE_forall = 23, + RULE_fixed = 24, RULE_eq_var_def = 25, RULE_eq = 26, RULE_mytree = 27, + RULE_treeLeaf = 28, RULE_treeNode = 29; + public static readonly string[] ruleNames = { + "proof", "mainProof", "lemma", "lemmaDef", "singleProof", "proof_end", + "induction", "ind_var", "ind_basis", "ind_step", "ind_case", "ind_hyp", + "transformation", "start_tree", "transformation_step", "axiom", "direction", + "termpart", "subst", "sub", "result_tree", "var", "sort", "forall", "fixed", + "eq_var_def", "eq", "mytree", "treeLeaf", "treeNode" + }; + + private static readonly string[] _LiteralNames = { + null, "'proof'", "'lemma'", "':'", "'q.e.d.'", "'w.z.b.w.'", "'Q.E.D.'", + "'W.Z.B.W.'", "'induction'", "'IA'", "'IS'", "'zu zeigen:'", "'IH'", "'{'", + "','", "'}'", "'='", "'lr'", "'rl'", "'['", "']'", "'/'", "'forall'", + "'fixed'", "'('", "')'" + }; + private static readonly string[] _SymbolicNames = { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, "BEZ", "NAT", "WHITESPACE", "NEWLINE" + }; + public static readonly IVocabulary DefaultVocabulary = new Vocabulary(_LiteralNames, _SymbolicNames); + + [NotNull] + public override IVocabulary Vocabulary + { + get + { + return DefaultVocabulary; + } + } + + public override string GrammarFileName { get { return "Proof.g4"; } } + + public override string[] RuleNames { get { return ruleNames; } } + + public override string SerializedAtn { get { return new string(_serializedATN); } } + + static ProofParser() { + decisionToDFA = new DFA[_ATN.NumberOfDecisions]; + for (int i = 0; i < _ATN.NumberOfDecisions; i++) { + decisionToDFA[i] = new DFA(_ATN.GetDecisionState(i), i); + } + } + + public ProofParser(ITokenStream input) : this(input, Console.Out, Console.Error) { } + + public ProofParser(ITokenStream input, TextWriter output, TextWriter errorOutput) + : base(input, output, errorOutput) + { + Interpreter = new ParserATNSimulator(this, _ATN, decisionToDFA, sharedContextCache); + } + + public partial class ProofContext : ParserRuleContext { + public MainProofContext mainProof() { + return GetRuleContext<MainProofContext>(0); + } + public ITerminalNode Eof() { return GetToken(ProofParser.Eof, 0); } + public LemmaContext[] lemma() { + return GetRuleContexts<LemmaContext>(); + } + public LemmaContext lemma(int i) { + return GetRuleContext<LemmaContext>(i); + } + public ProofContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_proof; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterProof(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitProof(this); + } + } + + [RuleVersion(0)] + public ProofContext proof() { + ProofContext _localctx = new ProofContext(Context, State); + EnterRule(_localctx, 0, RULE_proof); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 63; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==T__1) { + { + { + State = 60; lemma(); + } + } + State = 65; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + State = 66; mainProof(); + State = 70; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==T__1) { + { + { + State = 67; lemma(); + } + } + State = 72; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + State = 73; Match(Eof); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MainProofContext : ParserRuleContext { + public SingleProofContext singleProof() { + return GetRuleContext<SingleProofContext>(0); + } + public Proof_endContext proof_end() { + return GetRuleContext<Proof_endContext>(0); + } + public MainProofContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_mainProof; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterMainProof(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitMainProof(this); + } + } + + [RuleVersion(0)] + public MainProofContext mainProof() { + MainProofContext _localctx = new MainProofContext(Context, State); + EnterRule(_localctx, 2, RULE_mainProof); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 75; Match(T__0); + State = 76; singleProof(); + State = 78; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__3) | (1L << T__4) | (1L << T__5) | (1L << T__6))) != 0)) { + { + State = 77; proof_end(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LemmaContext : ParserRuleContext { + public LemmaDefContext lemmaDef() { + return GetRuleContext<LemmaDefContext>(0); + } + public SingleProofContext singleProof() { + return GetRuleContext<SingleProofContext>(0); + } + public LemmaContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_lemma; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterLemma(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitLemma(this); + } + } + + [RuleVersion(0)] + public LemmaContext lemma() { + LemmaContext _localctx = new LemmaContext(Context, State); + EnterRule(_localctx, 4, RULE_lemma); + try { + EnterOuterAlt(_localctx, 1); + { + State = 80; lemmaDef(); + State = 81; singleProof(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LemmaDefContext : ParserRuleContext { + public ITerminalNode BEZ() { return GetToken(ProofParser.BEZ, 0); } + public EqContext eq() { + return GetRuleContext<EqContext>(0); + } + public LemmaDefContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_lemmaDef; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterLemmaDef(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitLemmaDef(this); + } + } + + [RuleVersion(0)] + public LemmaDefContext lemmaDef() { + LemmaDefContext _localctx = new LemmaDefContext(Context, State); + EnterRule(_localctx, 6, RULE_lemmaDef); + try { + EnterOuterAlt(_localctx, 1); + { + State = 83; Match(T__1); + State = 84; Match(BEZ); + State = 85; Match(T__2); + State = 86; eq(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SingleProofContext : ParserRuleContext { + public InductionContext induction() { + return GetRuleContext<InductionContext>(0); + } + public TransformationContext transformation() { + return GetRuleContext<TransformationContext>(0); + } + public SingleProofContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_singleProof; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterSingleProof(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitSingleProof(this); + } + } + + [RuleVersion(0)] + public SingleProofContext singleProof() { + SingleProofContext _localctx = new SingleProofContext(Context, State); + EnterRule(_localctx, 8, RULE_singleProof); + try { + State = 90; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case T__7: + case T__8: + EnterOuterAlt(_localctx, 1); + { + State = 88; induction(); + } + break; + case BEZ: + EnterOuterAlt(_localctx, 2); + { + State = 89; transformation(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Proof_endContext : ParserRuleContext { + public Proof_endContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_proof_end; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterProof_end(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitProof_end(this); + } + } + + [RuleVersion(0)] + public Proof_endContext proof_end() { + Proof_endContext _localctx = new Proof_endContext(Context, State); + EnterRule(_localctx, 10, RULE_proof_end); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 92; + _la = TokenStream.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__3) | (1L << T__4) | (1L << T__5) | (1L << T__6))) != 0)) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class InductionContext : ParserRuleContext { + public Ind_varContext ind_var() { + return GetRuleContext<Ind_varContext>(0); + } + public Ind_basisContext[] ind_basis() { + return GetRuleContexts<Ind_basisContext>(); + } + public Ind_basisContext ind_basis(int i) { + return GetRuleContext<Ind_basisContext>(i); + } + public Ind_hypContext[] ind_hyp() { + return GetRuleContexts<Ind_hypContext>(); + } + public Ind_hypContext ind_hyp(int i) { + return GetRuleContext<Ind_hypContext>(i); + } + public Ind_stepContext[] ind_step() { + return GetRuleContexts<Ind_stepContext>(); + } + public Ind_stepContext ind_step(int i) { + return GetRuleContext<Ind_stepContext>(i); + } + public InductionContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_induction; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterInduction(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitInduction(this); + } + } + + [RuleVersion(0)] + public InductionContext induction() { + InductionContext _localctx = new InductionContext(Context, State); + EnterRule(_localctx, 12, RULE_induction); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 95; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==T__7) { + { + State = 94; ind_var(); + } + } + + State = 98; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 97; ind_basis(); + } + } + State = 100; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==T__8 ); + State = 103; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 102; ind_hyp(); + } + } + State = 105; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==T__11 ); + State = 110; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==T__9) { + { + { + State = 107; ind_step(); + } + } + State = 112; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Ind_varContext : ParserRuleContext { + public ITerminalNode BEZ() { return GetToken(ProofParser.BEZ, 0); } + public Ind_varContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ind_var; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterInd_var(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitInd_var(this); + } + } + + [RuleVersion(0)] + public Ind_varContext ind_var() { + Ind_varContext _localctx = new Ind_varContext(Context, State); + EnterRule(_localctx, 14, RULE_ind_var); + try { + EnterOuterAlt(_localctx, 1); + { + State = 113; Match(T__7); + State = 114; Match(BEZ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Ind_basisContext : ParserRuleContext { + public Ind_caseContext ind_case() { + return GetRuleContext<Ind_caseContext>(0); + } + public TransformationContext transformation() { + return GetRuleContext<TransformationContext>(0); + } + public Ind_basisContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ind_basis; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterInd_basis(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitInd_basis(this); + } + } + + [RuleVersion(0)] + public Ind_basisContext ind_basis() { + Ind_basisContext _localctx = new Ind_basisContext(Context, State); + EnterRule(_localctx, 16, RULE_ind_basis); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 116; Match(T__8); + State = 118; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==T__2) { + { + State = 117; Match(T__2); + } + } + + State = 120; ind_case(); + State = 121; transformation(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Ind_stepContext : ParserRuleContext { + public Ind_caseContext ind_case() { + return GetRuleContext<Ind_caseContext>(0); + } + public TransformationContext transformation() { + return GetRuleContext<TransformationContext>(0); + } + public Ind_stepContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ind_step; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterInd_step(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitInd_step(this); + } + } + + [RuleVersion(0)] + public Ind_stepContext ind_step() { + Ind_stepContext _localctx = new Ind_stepContext(Context, State); + EnterRule(_localctx, 18, RULE_ind_step); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 123; Match(T__9); + State = 125; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==T__2) { + { + State = 124; Match(T__2); + } + } + + State = 127; ind_case(); + State = 128; transformation(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Ind_caseContext : ParserRuleContext { + public EqContext eq() { + return GetRuleContext<EqContext>(0); + } + public Ind_caseContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ind_case; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterInd_case(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitInd_case(this); + } + } + + [RuleVersion(0)] + public Ind_caseContext ind_case() { + Ind_caseContext _localctx = new Ind_caseContext(Context, State); + EnterRule(_localctx, 20, RULE_ind_case); + try { + EnterOuterAlt(_localctx, 1); + { + State = 130; Match(T__10); + State = 131; eq(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Ind_hypContext : ParserRuleContext { + public EqContext eq() { + return GetRuleContext<EqContext>(0); + } + public ITerminalNode BEZ() { return GetToken(ProofParser.BEZ, 0); } + public Ind_hypContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ind_hyp; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterInd_hyp(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitInd_hyp(this); + } + } + + [RuleVersion(0)] + public Ind_hypContext ind_hyp() { + Ind_hypContext _localctx = new Ind_hypContext(Context, State); + EnterRule(_localctx, 22, RULE_ind_hyp); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 133; Match(T__11); + State = 135; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==T__2) { + { + State = 134; Match(T__2); + } + } + + State = 141; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,12,Context) ) { + case 1: + { + State = 137; Match(BEZ); + State = 139; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==T__2) { + { + State = 138; Match(T__2); + } + } + + } + break; + } + State = 143; eq(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TransformationContext : ParserRuleContext { + public Start_treeContext start_tree() { + return GetRuleContext<Start_treeContext>(0); + } + public Transformation_stepContext[] transformation_step() { + return GetRuleContexts<Transformation_stepContext>(); + } + public Transformation_stepContext transformation_step(int i) { + return GetRuleContext<Transformation_stepContext>(i); + } + public TransformationContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_transformation; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterTransformation(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitTransformation(this); + } + } + + [RuleVersion(0)] + public TransformationContext transformation() { + TransformationContext _localctx = new TransformationContext(Context, State); + EnterRule(_localctx, 24, RULE_transformation); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 145; start_tree(); + State = 147; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 146; transformation_step(); + } + } + State = 149; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==T__12 ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Start_treeContext : ParserRuleContext { + public MytreeContext mytree() { + return GetRuleContext<MytreeContext>(0); + } + public Start_treeContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_start_tree; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterStart_tree(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitStart_tree(this); + } + } + + [RuleVersion(0)] + public Start_treeContext start_tree() { + Start_treeContext _localctx = new Start_treeContext(Context, State); + EnterRule(_localctx, 26, RULE_start_tree); + try { + EnterOuterAlt(_localctx, 1); + { + State = 151; mytree(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Transformation_stepContext : ParserRuleContext { + public AxiomContext axiom() { + return GetRuleContext<AxiomContext>(0); + } + public DirectionContext direction() { + return GetRuleContext<DirectionContext>(0); + } + public TermpartContext termpart() { + return GetRuleContext<TermpartContext>(0); + } + public SubstContext subst() { + return GetRuleContext<SubstContext>(0); + } + public Result_treeContext result_tree() { + return GetRuleContext<Result_treeContext>(0); + } + public Transformation_stepContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_transformation_step; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterTransformation_step(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitTransformation_step(this); + } + } + + [RuleVersion(0)] + public Transformation_stepContext transformation_step() { + Transformation_stepContext _localctx = new Transformation_stepContext(Context, State); + EnterRule(_localctx, 28, RULE_transformation_step); + try { + EnterOuterAlt(_localctx, 1); + { + State = 153; Match(T__12); + State = 154; axiom(); + State = 155; Match(T__13); + State = 156; direction(); + State = 157; Match(T__13); + State = 158; termpart(); + State = 159; Match(T__13); + State = 160; subst(); + State = 161; Match(T__14); + State = 162; Match(T__15); + State = 163; result_tree(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class AxiomContext : ParserRuleContext { + public ITerminalNode BEZ() { return GetToken(ProofParser.BEZ, 0); } + public AxiomContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_axiom; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterAxiom(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitAxiom(this); + } + } + + [RuleVersion(0)] + public AxiomContext axiom() { + AxiomContext _localctx = new AxiomContext(Context, State); + EnterRule(_localctx, 30, RULE_axiom); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 165; + _la = TokenStream.LA(1); + if ( !(_la==T__11 || _la==BEZ) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class DirectionContext : ParserRuleContext { + public DirectionContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_direction; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterDirection(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitDirection(this); + } + } + + [RuleVersion(0)] + public DirectionContext direction() { + DirectionContext _localctx = new DirectionContext(Context, State); + EnterRule(_localctx, 32, RULE_direction); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 167; + _la = TokenStream.LA(1); + if ( !(_la==T__16 || _la==T__17) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TermpartContext : ParserRuleContext { + public MytreeContext mytree() { + return GetRuleContext<MytreeContext>(0); + } + public TermpartContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_termpart; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterTermpart(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitTermpart(this); + } + } + + [RuleVersion(0)] + public TermpartContext termpart() { + TermpartContext _localctx = new TermpartContext(Context, State); + EnterRule(_localctx, 34, RULE_termpart); + try { + EnterOuterAlt(_localctx, 1); + { + State = 169; mytree(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SubstContext : ParserRuleContext { + public SubContext[] sub() { + return GetRuleContexts<SubContext>(); + } + public SubContext sub(int i) { + return GetRuleContext<SubContext>(i); + } + public SubstContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_subst; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterSubst(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitSubst(this); + } + } + + [RuleVersion(0)] + public SubstContext subst() { + SubstContext _localctx = new SubstContext(Context, State); + EnterRule(_localctx, 36, RULE_subst); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 171; Match(T__18); + State = 180; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==BEZ) { + { + State = 172; sub(); + State = 177; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==T__13) { + { + { + State = 173; Match(T__13); + State = 174; sub(); + } + } + State = 179; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + } + } + + State = 182; Match(T__19); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SubContext : ParserRuleContext { + public MytreeContext mytree() { + return GetRuleContext<MytreeContext>(0); + } + public ITerminalNode BEZ() { return GetToken(ProofParser.BEZ, 0); } + public SubContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_sub; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterSub(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitSub(this); + } + } + + [RuleVersion(0)] + public SubContext sub() { + SubContext _localctx = new SubContext(Context, State); + EnterRule(_localctx, 38, RULE_sub); + try { + EnterOuterAlt(_localctx, 1); + { + State = 184; mytree(); + State = 185; Match(T__20); + State = 186; Match(BEZ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Result_treeContext : ParserRuleContext { + public MytreeContext mytree() { + return GetRuleContext<MytreeContext>(0); + } + public Result_treeContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_result_tree; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterResult_tree(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitResult_tree(this); + } + } + + [RuleVersion(0)] + public Result_treeContext result_tree() { + Result_treeContext _localctx = new Result_treeContext(Context, State); + EnterRule(_localctx, 40, RULE_result_tree); + try { + EnterOuterAlt(_localctx, 1); + { + State = 188; mytree(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class VarContext : ParserRuleContext { + public ITerminalNode BEZ() { return GetToken(ProofParser.BEZ, 0); } + public SortContext sort() { + return GetRuleContext<SortContext>(0); + } + public VarContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_var; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterVar(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitVar(this); + } + } + + [RuleVersion(0)] + public VarContext var() { + VarContext _localctx = new VarContext(Context, State); + EnterRule(_localctx, 42, RULE_var); + try { + EnterOuterAlt(_localctx, 1); + { + State = 190; Match(BEZ); + State = 191; Match(T__2); + State = 192; sort(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SortContext : ParserRuleContext { + public ITerminalNode BEZ() { return GetToken(ProofParser.BEZ, 0); } + public SortContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_sort; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterSort(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitSort(this); + } + } + + [RuleVersion(0)] + public SortContext sort() { + SortContext _localctx = new SortContext(Context, State); + EnterRule(_localctx, 44, RULE_sort); + try { + EnterOuterAlt(_localctx, 1); + { + State = 194; Match(BEZ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ForallContext : ParserRuleContext { + public VarContext[] var() { + return GetRuleContexts<VarContext>(); + } + public VarContext var(int i) { + return GetRuleContext<VarContext>(i); + } + public ForallContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_forall; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterForall(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitForall(this); + } + } + + [RuleVersion(0)] + public ForallContext forall() { + ForallContext _localctx = new ForallContext(Context, State); + EnterRule(_localctx, 46, RULE_forall); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 196; Match(T__21); + State = 197; var(); + State = 202; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==T__13) { + { + { + State = 198; Match(T__13); + State = 199; var(); + } + } + State = 204; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class FixedContext : ParserRuleContext { + public VarContext[] var() { + return GetRuleContexts<VarContext>(); + } + public VarContext var(int i) { + return GetRuleContext<VarContext>(i); + } + public FixedContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_fixed; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterFixed(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitFixed(this); + } + } + + [RuleVersion(0)] + public FixedContext @fixed() { + FixedContext _localctx = new FixedContext(Context, State); + EnterRule(_localctx, 48, RULE_fixed); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 205; Match(T__22); + State = 206; var(); + State = 211; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==T__13) { + { + { + State = 207; Match(T__13); + State = 208; var(); + } + } + State = 213; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Eq_var_defContext : ParserRuleContext { + public FixedContext @fixed() { + return GetRuleContext<FixedContext>(0); + } + public ForallContext forall() { + return GetRuleContext<ForallContext>(0); + } + public Eq_var_defContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_eq_var_def; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterEq_var_def(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitEq_var_def(this); + } + } + + [RuleVersion(0)] + public Eq_var_defContext eq_var_def() { + Eq_var_defContext _localctx = new Eq_var_defContext(Context, State); + EnterRule(_localctx, 50, RULE_eq_var_def); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 230; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case T__22: + { + { + State = 214; @fixed(); + State = 215; Match(T__2); + } + State = 220; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==T__21) { + { + State = 217; forall(); + State = 218; Match(T__2); + } + } + + } + break; + case T__21: + { + { + State = 222; forall(); + State = 223; Match(T__2); + } + State = 228; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==T__22) { + { + State = 225; @fixed(); + State = 226; Match(T__2); + } + } + + } + break; + case BEZ: + break; + default: + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class EqContext : ParserRuleContext { + public Eq_var_defContext eq_var_def() { + return GetRuleContext<Eq_var_defContext>(0); + } + public MytreeContext[] mytree() { + return GetRuleContexts<MytreeContext>(); + } + public MytreeContext mytree(int i) { + return GetRuleContext<MytreeContext>(i); + } + public EqContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_eq; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterEq(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitEq(this); + } + } + + [RuleVersion(0)] + public EqContext eq() { + EqContext _localctx = new EqContext(Context, State); + EnterRule(_localctx, 52, RULE_eq); + try { + EnterOuterAlt(_localctx, 1); + { + State = 232; eq_var_def(); + State = 233; mytree(); + State = 234; Match(T__15); + State = 235; mytree(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MytreeContext : ParserRuleContext { + public TreeLeafContext treeLeaf() { + return GetRuleContext<TreeLeafContext>(0); + } + public TreeNodeContext treeNode() { + return GetRuleContext<TreeNodeContext>(0); + } + public MytreeContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_mytree; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterMytree(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitMytree(this); + } + } + + [RuleVersion(0)] + public MytreeContext mytree() { + MytreeContext _localctx = new MytreeContext(Context, State); + EnterRule(_localctx, 54, RULE_mytree); + try { + State = 239; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,21,Context) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 237; treeLeaf(); + } + break; + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 238; treeNode(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TreeLeafContext : ParserRuleContext { + public ITerminalNode BEZ() { return GetToken(ProofParser.BEZ, 0); } + public TreeLeafContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_treeLeaf; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterTreeLeaf(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitTreeLeaf(this); + } + } + + [RuleVersion(0)] + public TreeLeafContext treeLeaf() { + TreeLeafContext _localctx = new TreeLeafContext(Context, State); + EnterRule(_localctx, 56, RULE_treeLeaf); + try { + EnterOuterAlt(_localctx, 1); + { + State = 241; Match(BEZ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TreeNodeContext : ParserRuleContext { + public ITerminalNode BEZ() { return GetToken(ProofParser.BEZ, 0); } + public MytreeContext[] mytree() { + return GetRuleContexts<MytreeContext>(); + } + public MytreeContext mytree(int i) { + return GetRuleContext<MytreeContext>(i); + } + public TreeNodeContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_treeNode; } } + public override void EnterRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.EnterTreeNode(this); + } + public override void ExitRule(IParseTreeListener listener) { + IProofListener typedListener = listener as IProofListener; + if (typedListener != null) typedListener.ExitTreeNode(this); + } + } + + [RuleVersion(0)] + public TreeNodeContext treeNode() { + TreeNodeContext _localctx = new TreeNodeContext(Context, State); + EnterRule(_localctx, 58, RULE_treeNode); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 243; Match(BEZ); + State = 244; Match(T__23); + State = 245; mytree(); + State = 250; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==T__13) { + { + { + State = 246; Match(T__13); + State = 247; mytree(); + } + } + State = 252; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + State = 253; Match(T__24); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + private static char[] _serializedATN = { + '\x3', '\x608B', '\xA72A', '\x8133', '\xB9ED', '\x417C', '\x3BE7', '\x7786', + '\x5964', '\x3', '\x1F', '\x102', '\x4', '\x2', '\t', '\x2', '\x4', '\x3', + '\t', '\x3', '\x4', '\x4', '\t', '\x4', '\x4', '\x5', '\t', '\x5', '\x4', + '\x6', '\t', '\x6', '\x4', '\a', '\t', '\a', '\x4', '\b', '\t', '\b', + '\x4', '\t', '\t', '\t', '\x4', '\n', '\t', '\n', '\x4', '\v', '\t', '\v', + '\x4', '\f', '\t', '\f', '\x4', '\r', '\t', '\r', '\x4', '\xE', '\t', + '\xE', '\x4', '\xF', '\t', '\xF', '\x4', '\x10', '\t', '\x10', '\x4', + '\x11', '\t', '\x11', '\x4', '\x12', '\t', '\x12', '\x4', '\x13', '\t', + '\x13', '\x4', '\x14', '\t', '\x14', '\x4', '\x15', '\t', '\x15', '\x4', + '\x16', '\t', '\x16', '\x4', '\x17', '\t', '\x17', '\x4', '\x18', '\t', + '\x18', '\x4', '\x19', '\t', '\x19', '\x4', '\x1A', '\t', '\x1A', '\x4', + '\x1B', '\t', '\x1B', '\x4', '\x1C', '\t', '\x1C', '\x4', '\x1D', '\t', + '\x1D', '\x4', '\x1E', '\t', '\x1E', '\x4', '\x1F', '\t', '\x1F', '\x3', + '\x2', '\a', '\x2', '@', '\n', '\x2', '\f', '\x2', '\xE', '\x2', '\x43', + '\v', '\x2', '\x3', '\x2', '\x3', '\x2', '\a', '\x2', 'G', '\n', '\x2', + '\f', '\x2', '\xE', '\x2', 'J', '\v', '\x2', '\x3', '\x2', '\x3', '\x2', + '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x5', '\x3', 'Q', '\n', '\x3', + '\x3', '\x4', '\x3', '\x4', '\x3', '\x4', '\x3', '\x5', '\x3', '\x5', + '\x3', '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', '\x6', '\x3', '\x6', + '\x5', '\x6', ']', '\n', '\x6', '\x3', '\a', '\x3', '\a', '\x3', '\b', + '\x5', '\b', '\x62', '\n', '\b', '\x3', '\b', '\x6', '\b', '\x65', '\n', + '\b', '\r', '\b', '\xE', '\b', '\x66', '\x3', '\b', '\x6', '\b', 'j', + '\n', '\b', '\r', '\b', '\xE', '\b', 'k', '\x3', '\b', '\a', '\b', 'o', + '\n', '\b', '\f', '\b', '\xE', '\b', 'r', '\v', '\b', '\x3', '\t', '\x3', + '\t', '\x3', '\t', '\x3', '\n', '\x3', '\n', '\x5', '\n', 'y', '\n', '\n', + '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\v', '\x3', '\v', '\x5', + '\v', '\x80', '\n', '\v', '\x3', '\v', '\x3', '\v', '\x3', '\v', '\x3', + '\f', '\x3', '\f', '\x3', '\f', '\x3', '\r', '\x3', '\r', '\x5', '\r', + '\x8A', '\n', '\r', '\x3', '\r', '\x3', '\r', '\x5', '\r', '\x8E', '\n', + '\r', '\x5', '\r', '\x90', '\n', '\r', '\x3', '\r', '\x3', '\r', '\x3', + '\xE', '\x3', '\xE', '\x6', '\xE', '\x96', '\n', '\xE', '\r', '\xE', '\xE', + '\xE', '\x97', '\x3', '\xF', '\x3', '\xF', '\x3', '\x10', '\x3', '\x10', + '\x3', '\x10', '\x3', '\x10', '\x3', '\x10', '\x3', '\x10', '\x3', '\x10', + '\x3', '\x10', '\x3', '\x10', '\x3', '\x10', '\x3', '\x10', '\x3', '\x10', + '\x3', '\x11', '\x3', '\x11', '\x3', '\x12', '\x3', '\x12', '\x3', '\x13', + '\x3', '\x13', '\x3', '\x14', '\x3', '\x14', '\x3', '\x14', '\x3', '\x14', + '\a', '\x14', '\xB2', '\n', '\x14', '\f', '\x14', '\xE', '\x14', '\xB5', + '\v', '\x14', '\x5', '\x14', '\xB7', '\n', '\x14', '\x3', '\x14', '\x3', + '\x14', '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', '\x3', + '\x16', '\x3', '\x16', '\x3', '\x17', '\x3', '\x17', '\x3', '\x17', '\x3', + '\x17', '\x3', '\x18', '\x3', '\x18', '\x3', '\x19', '\x3', '\x19', '\x3', + '\x19', '\x3', '\x19', '\a', '\x19', '\xCB', '\n', '\x19', '\f', '\x19', + '\xE', '\x19', '\xCE', '\v', '\x19', '\x3', '\x1A', '\x3', '\x1A', '\x3', + '\x1A', '\x3', '\x1A', '\a', '\x1A', '\xD4', '\n', '\x1A', '\f', '\x1A', + '\xE', '\x1A', '\xD7', '\v', '\x1A', '\x3', '\x1B', '\x3', '\x1B', '\x3', + '\x1B', '\x3', '\x1B', '\x3', '\x1B', '\x3', '\x1B', '\x5', '\x1B', '\xDF', + '\n', '\x1B', '\x3', '\x1B', '\x3', '\x1B', '\x3', '\x1B', '\x3', '\x1B', + '\x3', '\x1B', '\x3', '\x1B', '\x5', '\x1B', '\xE7', '\n', '\x1B', '\x5', + '\x1B', '\xE9', '\n', '\x1B', '\x3', '\x1C', '\x3', '\x1C', '\x3', '\x1C', + '\x3', '\x1C', '\x3', '\x1C', '\x3', '\x1D', '\x3', '\x1D', '\x5', '\x1D', + '\xF2', '\n', '\x1D', '\x3', '\x1E', '\x3', '\x1E', '\x3', '\x1F', '\x3', + '\x1F', '\x3', '\x1F', '\x3', '\x1F', '\x3', '\x1F', '\a', '\x1F', '\xFB', + '\n', '\x1F', '\f', '\x1F', '\xE', '\x1F', '\xFE', '\v', '\x1F', '\x3', + '\x1F', '\x3', '\x1F', '\x3', '\x1F', '\x2', '\x2', ' ', '\x2', '\x4', + '\x6', '\b', '\n', '\f', '\xE', '\x10', '\x12', '\x14', '\x16', '\x18', + '\x1A', '\x1C', '\x1E', ' ', '\"', '$', '&', '(', '*', ',', '.', '\x30', + '\x32', '\x34', '\x36', '\x38', ':', '<', '\x2', '\x5', '\x3', '\x2', + '\x6', '\t', '\x4', '\x2', '\xE', '\xE', '\x1C', '\x1C', '\x3', '\x2', + '\x13', '\x14', '\x2', '\xFB', '\x2', '\x41', '\x3', '\x2', '\x2', '\x2', + '\x4', 'M', '\x3', '\x2', '\x2', '\x2', '\x6', 'R', '\x3', '\x2', '\x2', + '\x2', '\b', 'U', '\x3', '\x2', '\x2', '\x2', '\n', '\\', '\x3', '\x2', + '\x2', '\x2', '\f', '^', '\x3', '\x2', '\x2', '\x2', '\xE', '\x61', '\x3', + '\x2', '\x2', '\x2', '\x10', 's', '\x3', '\x2', '\x2', '\x2', '\x12', + 'v', '\x3', '\x2', '\x2', '\x2', '\x14', '}', '\x3', '\x2', '\x2', '\x2', + '\x16', '\x84', '\x3', '\x2', '\x2', '\x2', '\x18', '\x87', '\x3', '\x2', + '\x2', '\x2', '\x1A', '\x93', '\x3', '\x2', '\x2', '\x2', '\x1C', '\x99', + '\x3', '\x2', '\x2', '\x2', '\x1E', '\x9B', '\x3', '\x2', '\x2', '\x2', + ' ', '\xA7', '\x3', '\x2', '\x2', '\x2', '\"', '\xA9', '\x3', '\x2', '\x2', + '\x2', '$', '\xAB', '\x3', '\x2', '\x2', '\x2', '&', '\xAD', '\x3', '\x2', + '\x2', '\x2', '(', '\xBA', '\x3', '\x2', '\x2', '\x2', '*', '\xBE', '\x3', + '\x2', '\x2', '\x2', ',', '\xC0', '\x3', '\x2', '\x2', '\x2', '.', '\xC4', + '\x3', '\x2', '\x2', '\x2', '\x30', '\xC6', '\x3', '\x2', '\x2', '\x2', + '\x32', '\xCF', '\x3', '\x2', '\x2', '\x2', '\x34', '\xE8', '\x3', '\x2', + '\x2', '\x2', '\x36', '\xEA', '\x3', '\x2', '\x2', '\x2', '\x38', '\xF1', + '\x3', '\x2', '\x2', '\x2', ':', '\xF3', '\x3', '\x2', '\x2', '\x2', '<', + '\xF5', '\x3', '\x2', '\x2', '\x2', '>', '@', '\x5', '\x6', '\x4', '\x2', + '?', '>', '\x3', '\x2', '\x2', '\x2', '@', '\x43', '\x3', '\x2', '\x2', + '\x2', '\x41', '?', '\x3', '\x2', '\x2', '\x2', '\x41', '\x42', '\x3', + '\x2', '\x2', '\x2', '\x42', '\x44', '\x3', '\x2', '\x2', '\x2', '\x43', + '\x41', '\x3', '\x2', '\x2', '\x2', '\x44', 'H', '\x5', '\x4', '\x3', + '\x2', '\x45', 'G', '\x5', '\x6', '\x4', '\x2', '\x46', '\x45', '\x3', + '\x2', '\x2', '\x2', 'G', 'J', '\x3', '\x2', '\x2', '\x2', 'H', '\x46', + '\x3', '\x2', '\x2', '\x2', 'H', 'I', '\x3', '\x2', '\x2', '\x2', 'I', + 'K', '\x3', '\x2', '\x2', '\x2', 'J', 'H', '\x3', '\x2', '\x2', '\x2', + 'K', 'L', '\a', '\x2', '\x2', '\x3', 'L', '\x3', '\x3', '\x2', '\x2', + '\x2', 'M', 'N', '\a', '\x3', '\x2', '\x2', 'N', 'P', '\x5', '\n', '\x6', + '\x2', 'O', 'Q', '\x5', '\f', '\a', '\x2', 'P', 'O', '\x3', '\x2', '\x2', + '\x2', 'P', 'Q', '\x3', '\x2', '\x2', '\x2', 'Q', '\x5', '\x3', '\x2', + '\x2', '\x2', 'R', 'S', '\x5', '\b', '\x5', '\x2', 'S', 'T', '\x5', '\n', + '\x6', '\x2', 'T', '\a', '\x3', '\x2', '\x2', '\x2', 'U', 'V', '\a', '\x4', + '\x2', '\x2', 'V', 'W', '\a', '\x1C', '\x2', '\x2', 'W', 'X', '\a', '\x5', + '\x2', '\x2', 'X', 'Y', '\x5', '\x36', '\x1C', '\x2', 'Y', '\t', '\x3', + '\x2', '\x2', '\x2', 'Z', ']', '\x5', '\xE', '\b', '\x2', '[', ']', '\x5', + '\x1A', '\xE', '\x2', '\\', 'Z', '\x3', '\x2', '\x2', '\x2', '\\', '[', + '\x3', '\x2', '\x2', '\x2', ']', '\v', '\x3', '\x2', '\x2', '\x2', '^', + '_', '\t', '\x2', '\x2', '\x2', '_', '\r', '\x3', '\x2', '\x2', '\x2', + '`', '\x62', '\x5', '\x10', '\t', '\x2', '\x61', '`', '\x3', '\x2', '\x2', + '\x2', '\x61', '\x62', '\x3', '\x2', '\x2', '\x2', '\x62', '\x64', '\x3', + '\x2', '\x2', '\x2', '\x63', '\x65', '\x5', '\x12', '\n', '\x2', '\x64', + '\x63', '\x3', '\x2', '\x2', '\x2', '\x65', '\x66', '\x3', '\x2', '\x2', + '\x2', '\x66', '\x64', '\x3', '\x2', '\x2', '\x2', '\x66', 'g', '\x3', + '\x2', '\x2', '\x2', 'g', 'i', '\x3', '\x2', '\x2', '\x2', 'h', 'j', '\x5', + '\x18', '\r', '\x2', 'i', 'h', '\x3', '\x2', '\x2', '\x2', 'j', 'k', '\x3', + '\x2', '\x2', '\x2', 'k', 'i', '\x3', '\x2', '\x2', '\x2', 'k', 'l', '\x3', + '\x2', '\x2', '\x2', 'l', 'p', '\x3', '\x2', '\x2', '\x2', 'm', 'o', '\x5', + '\x14', '\v', '\x2', 'n', 'm', '\x3', '\x2', '\x2', '\x2', 'o', 'r', '\x3', + '\x2', '\x2', '\x2', 'p', 'n', '\x3', '\x2', '\x2', '\x2', 'p', 'q', '\x3', + '\x2', '\x2', '\x2', 'q', '\xF', '\x3', '\x2', '\x2', '\x2', 'r', 'p', + '\x3', '\x2', '\x2', '\x2', 's', 't', '\a', '\n', '\x2', '\x2', 't', 'u', + '\a', '\x1C', '\x2', '\x2', 'u', '\x11', '\x3', '\x2', '\x2', '\x2', 'v', + 'x', '\a', '\v', '\x2', '\x2', 'w', 'y', '\a', '\x5', '\x2', '\x2', 'x', + 'w', '\x3', '\x2', '\x2', '\x2', 'x', 'y', '\x3', '\x2', '\x2', '\x2', + 'y', 'z', '\x3', '\x2', '\x2', '\x2', 'z', '{', '\x5', '\x16', '\f', '\x2', + '{', '|', '\x5', '\x1A', '\xE', '\x2', '|', '\x13', '\x3', '\x2', '\x2', + '\x2', '}', '\x7F', '\a', '\f', '\x2', '\x2', '~', '\x80', '\a', '\x5', + '\x2', '\x2', '\x7F', '~', '\x3', '\x2', '\x2', '\x2', '\x7F', '\x80', + '\x3', '\x2', '\x2', '\x2', '\x80', '\x81', '\x3', '\x2', '\x2', '\x2', + '\x81', '\x82', '\x5', '\x16', '\f', '\x2', '\x82', '\x83', '\x5', '\x1A', + '\xE', '\x2', '\x83', '\x15', '\x3', '\x2', '\x2', '\x2', '\x84', '\x85', + '\a', '\r', '\x2', '\x2', '\x85', '\x86', '\x5', '\x36', '\x1C', '\x2', + '\x86', '\x17', '\x3', '\x2', '\x2', '\x2', '\x87', '\x89', '\a', '\xE', + '\x2', '\x2', '\x88', '\x8A', '\a', '\x5', '\x2', '\x2', '\x89', '\x88', + '\x3', '\x2', '\x2', '\x2', '\x89', '\x8A', '\x3', '\x2', '\x2', '\x2', + '\x8A', '\x8F', '\x3', '\x2', '\x2', '\x2', '\x8B', '\x8D', '\a', '\x1C', + '\x2', '\x2', '\x8C', '\x8E', '\a', '\x5', '\x2', '\x2', '\x8D', '\x8C', + '\x3', '\x2', '\x2', '\x2', '\x8D', '\x8E', '\x3', '\x2', '\x2', '\x2', + '\x8E', '\x90', '\x3', '\x2', '\x2', '\x2', '\x8F', '\x8B', '\x3', '\x2', + '\x2', '\x2', '\x8F', '\x90', '\x3', '\x2', '\x2', '\x2', '\x90', '\x91', + '\x3', '\x2', '\x2', '\x2', '\x91', '\x92', '\x5', '\x36', '\x1C', '\x2', + '\x92', '\x19', '\x3', '\x2', '\x2', '\x2', '\x93', '\x95', '\x5', '\x1C', + '\xF', '\x2', '\x94', '\x96', '\x5', '\x1E', '\x10', '\x2', '\x95', '\x94', + '\x3', '\x2', '\x2', '\x2', '\x96', '\x97', '\x3', '\x2', '\x2', '\x2', + '\x97', '\x95', '\x3', '\x2', '\x2', '\x2', '\x97', '\x98', '\x3', '\x2', + '\x2', '\x2', '\x98', '\x1B', '\x3', '\x2', '\x2', '\x2', '\x99', '\x9A', + '\x5', '\x38', '\x1D', '\x2', '\x9A', '\x1D', '\x3', '\x2', '\x2', '\x2', + '\x9B', '\x9C', '\a', '\xF', '\x2', '\x2', '\x9C', '\x9D', '\x5', ' ', + '\x11', '\x2', '\x9D', '\x9E', '\a', '\x10', '\x2', '\x2', '\x9E', '\x9F', + '\x5', '\"', '\x12', '\x2', '\x9F', '\xA0', '\a', '\x10', '\x2', '\x2', + '\xA0', '\xA1', '\x5', '$', '\x13', '\x2', '\xA1', '\xA2', '\a', '\x10', + '\x2', '\x2', '\xA2', '\xA3', '\x5', '&', '\x14', '\x2', '\xA3', '\xA4', + '\a', '\x11', '\x2', '\x2', '\xA4', '\xA5', '\a', '\x12', '\x2', '\x2', + '\xA5', '\xA6', '\x5', '*', '\x16', '\x2', '\xA6', '\x1F', '\x3', '\x2', + '\x2', '\x2', '\xA7', '\xA8', '\t', '\x3', '\x2', '\x2', '\xA8', '!', + '\x3', '\x2', '\x2', '\x2', '\xA9', '\xAA', '\t', '\x4', '\x2', '\x2', + '\xAA', '#', '\x3', '\x2', '\x2', '\x2', '\xAB', '\xAC', '\x5', '\x38', + '\x1D', '\x2', '\xAC', '%', '\x3', '\x2', '\x2', '\x2', '\xAD', '\xB6', + '\a', '\x15', '\x2', '\x2', '\xAE', '\xB3', '\x5', '(', '\x15', '\x2', + '\xAF', '\xB0', '\a', '\x10', '\x2', '\x2', '\xB0', '\xB2', '\x5', '(', + '\x15', '\x2', '\xB1', '\xAF', '\x3', '\x2', '\x2', '\x2', '\xB2', '\xB5', + '\x3', '\x2', '\x2', '\x2', '\xB3', '\xB1', '\x3', '\x2', '\x2', '\x2', + '\xB3', '\xB4', '\x3', '\x2', '\x2', '\x2', '\xB4', '\xB7', '\x3', '\x2', + '\x2', '\x2', '\xB5', '\xB3', '\x3', '\x2', '\x2', '\x2', '\xB6', '\xAE', + '\x3', '\x2', '\x2', '\x2', '\xB6', '\xB7', '\x3', '\x2', '\x2', '\x2', + '\xB7', '\xB8', '\x3', '\x2', '\x2', '\x2', '\xB8', '\xB9', '\a', '\x16', + '\x2', '\x2', '\xB9', '\'', '\x3', '\x2', '\x2', '\x2', '\xBA', '\xBB', + '\x5', '\x38', '\x1D', '\x2', '\xBB', '\xBC', '\a', '\x17', '\x2', '\x2', + '\xBC', '\xBD', '\a', '\x1C', '\x2', '\x2', '\xBD', ')', '\x3', '\x2', + '\x2', '\x2', '\xBE', '\xBF', '\x5', '\x38', '\x1D', '\x2', '\xBF', '+', + '\x3', '\x2', '\x2', '\x2', '\xC0', '\xC1', '\a', '\x1C', '\x2', '\x2', + '\xC1', '\xC2', '\a', '\x5', '\x2', '\x2', '\xC2', '\xC3', '\x5', '.', + '\x18', '\x2', '\xC3', '-', '\x3', '\x2', '\x2', '\x2', '\xC4', '\xC5', + '\a', '\x1C', '\x2', '\x2', '\xC5', '/', '\x3', '\x2', '\x2', '\x2', '\xC6', + '\xC7', '\a', '\x18', '\x2', '\x2', '\xC7', '\xCC', '\x5', ',', '\x17', + '\x2', '\xC8', '\xC9', '\a', '\x10', '\x2', '\x2', '\xC9', '\xCB', '\x5', + ',', '\x17', '\x2', '\xCA', '\xC8', '\x3', '\x2', '\x2', '\x2', '\xCB', + '\xCE', '\x3', '\x2', '\x2', '\x2', '\xCC', '\xCA', '\x3', '\x2', '\x2', + '\x2', '\xCC', '\xCD', '\x3', '\x2', '\x2', '\x2', '\xCD', '\x31', '\x3', + '\x2', '\x2', '\x2', '\xCE', '\xCC', '\x3', '\x2', '\x2', '\x2', '\xCF', + '\xD0', '\a', '\x19', '\x2', '\x2', '\xD0', '\xD5', '\x5', ',', '\x17', + '\x2', '\xD1', '\xD2', '\a', '\x10', '\x2', '\x2', '\xD2', '\xD4', '\x5', + ',', '\x17', '\x2', '\xD3', '\xD1', '\x3', '\x2', '\x2', '\x2', '\xD4', + '\xD7', '\x3', '\x2', '\x2', '\x2', '\xD5', '\xD3', '\x3', '\x2', '\x2', + '\x2', '\xD5', '\xD6', '\x3', '\x2', '\x2', '\x2', '\xD6', '\x33', '\x3', + '\x2', '\x2', '\x2', '\xD7', '\xD5', '\x3', '\x2', '\x2', '\x2', '\xD8', + '\xD9', '\x5', '\x32', '\x1A', '\x2', '\xD9', '\xDA', '\a', '\x5', '\x2', + '\x2', '\xDA', '\xDE', '\x3', '\x2', '\x2', '\x2', '\xDB', '\xDC', '\x5', + '\x30', '\x19', '\x2', '\xDC', '\xDD', '\a', '\x5', '\x2', '\x2', '\xDD', + '\xDF', '\x3', '\x2', '\x2', '\x2', '\xDE', '\xDB', '\x3', '\x2', '\x2', + '\x2', '\xDE', '\xDF', '\x3', '\x2', '\x2', '\x2', '\xDF', '\xE9', '\x3', + '\x2', '\x2', '\x2', '\xE0', '\xE1', '\x5', '\x30', '\x19', '\x2', '\xE1', + '\xE2', '\a', '\x5', '\x2', '\x2', '\xE2', '\xE6', '\x3', '\x2', '\x2', + '\x2', '\xE3', '\xE4', '\x5', '\x32', '\x1A', '\x2', '\xE4', '\xE5', '\a', + '\x5', '\x2', '\x2', '\xE5', '\xE7', '\x3', '\x2', '\x2', '\x2', '\xE6', + '\xE3', '\x3', '\x2', '\x2', '\x2', '\xE6', '\xE7', '\x3', '\x2', '\x2', + '\x2', '\xE7', '\xE9', '\x3', '\x2', '\x2', '\x2', '\xE8', '\xD8', '\x3', + '\x2', '\x2', '\x2', '\xE8', '\xE0', '\x3', '\x2', '\x2', '\x2', '\xE8', + '\xE9', '\x3', '\x2', '\x2', '\x2', '\xE9', '\x35', '\x3', '\x2', '\x2', + '\x2', '\xEA', '\xEB', '\x5', '\x34', '\x1B', '\x2', '\xEB', '\xEC', '\x5', + '\x38', '\x1D', '\x2', '\xEC', '\xED', '\a', '\x12', '\x2', '\x2', '\xED', + '\xEE', '\x5', '\x38', '\x1D', '\x2', '\xEE', '\x37', '\x3', '\x2', '\x2', + '\x2', '\xEF', '\xF2', '\x5', ':', '\x1E', '\x2', '\xF0', '\xF2', '\x5', + '<', '\x1F', '\x2', '\xF1', '\xEF', '\x3', '\x2', '\x2', '\x2', '\xF1', + '\xF0', '\x3', '\x2', '\x2', '\x2', '\xF2', '\x39', '\x3', '\x2', '\x2', + '\x2', '\xF3', '\xF4', '\a', '\x1C', '\x2', '\x2', '\xF4', ';', '\x3', + '\x2', '\x2', '\x2', '\xF5', '\xF6', '\a', '\x1C', '\x2', '\x2', '\xF6', + '\xF7', '\a', '\x1A', '\x2', '\x2', '\xF7', '\xFC', '\x5', '\x38', '\x1D', + '\x2', '\xF8', '\xF9', '\a', '\x10', '\x2', '\x2', '\xF9', '\xFB', '\x5', + '\x38', '\x1D', '\x2', '\xFA', '\xF8', '\x3', '\x2', '\x2', '\x2', '\xFB', + '\xFE', '\x3', '\x2', '\x2', '\x2', '\xFC', '\xFA', '\x3', '\x2', '\x2', + '\x2', '\xFC', '\xFD', '\x3', '\x2', '\x2', '\x2', '\xFD', '\xFF', '\x3', + '\x2', '\x2', '\x2', '\xFE', '\xFC', '\x3', '\x2', '\x2', '\x2', '\xFF', + '\x100', '\a', '\x1B', '\x2', '\x2', '\x100', '=', '\x3', '\x2', '\x2', + '\x2', '\x19', '\x41', 'H', 'P', '\\', '\x61', '\x66', 'k', 'p', 'x', + '\x7F', '\x89', '\x8D', '\x8F', '\x97', '\xB3', '\xB6', '\xCC', '\xD5', + '\xDE', '\xE6', '\xE8', '\xF1', '\xFC', + }; + + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN); + + +} +} // namespace Eingabeverwaltung.Parser.Proof_Parser diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Antlr.cs b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Antlr.cs new file mode 100644 index 0000000000000000000000000000000000000000..c32ace9360581b3660115c129f2fbe019148ed65 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Antlr.cs @@ -0,0 +1,30 @@ +using Eingabeverwaltung.Parser.Task_Parser; +using Eingabeverwaltung.Metamodell; +using Antlr4.Runtime.Tree; +using Antlr4.Runtime; + +namespace Eingabeverwaltung.Parser +{ + public static class Task_Antlr + { + /// <summary> + /// Requires a Container with filled ADT + /// </summary> + /// <param name="Task_input"></param> + /// <param name="container"></param> + /// <returns></returns> + public static void parse(string Task_input, Container container) + { + ICharStream chars = new AntlrInputStream(Task_input); + ITokenSource lexer = new TaskLexer(chars); + ITokenStream tokens = new CommonTokenStream(lexer); + TaskParser parser = new TaskParser(tokens); + + parser.BuildParseTree = true; + + TaskParser.TaskContext tree = parser.task(); + ITaskListener adt_Listener = new Task_Listener(container); + ParseTreeWalker.Default.Walk(adt_Listener, tree); + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Listener.cs b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Listener.cs new file mode 100644 index 0000000000000000000000000000000000000000..96dd6e1d19e478af2cdda4615fb0744df726636f --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Listener.cs @@ -0,0 +1,200 @@ +using Antlr4.Runtime; +using Antlr4.Runtime.Tree; +using Antlr4.Runtime.Misc; +using Eingabeverwaltung.Metamodell; +using Eingabeverwaltung.Parser.Task_Parser; +using System.Collections.Generic; +using System; + +namespace Eingabeverwaltung.Parser +{ + public class Task_Listener : ITaskListener + { + // object on which will be build + private Container container; + + // helping Listener for building + private Listener_Helper LH; + + // Task parts + private List<TaskLemma> lemmata; + private SingleTask mainTask; + private List<SingleTask> lemmaTasks; + private Variable indVar; + + // config parts + private IConfig mainConfig; + private SingleConfig singleConfig; + private List<InductionCaseConfig> indCaseConfigs; + private SingleConfig indHypConfig; + private int maxPt; + private int minSteps; + private int maxSteps; + + /// <summary> + /// Requires a Container with filled ADT + /// </summary> + /// <param name="container"></param> + public Task_Listener(Container container) + { + this.container = container; + + LH = new Listener_Helper(container.ADT.sorts,container.ADT.operations, null, container.ADT.axioms, null, null); + + lemmata = new List<TaskLemma>(); + mainTask = null; + lemmaTasks = new List<SingleTask>(); + indVar = null; + + mainConfig = null; + singleConfig = null; + indCaseConfigs = null; + indHypConfig = null; + maxPt = -1; + minSteps = -1; + maxSteps = -1; + } + + public void EnterTask([NotNull] TaskParser.TaskContext context) { } + public void ExitTask([NotNull] TaskParser.TaskContext context) + { + container.Task = new Task(mainTask,lemmaTasks,lemmata); + } + public void EnterTask_eq([NotNull] TaskParser.Task_eqContext context) { } + public void ExitTask_eq([NotNull] TaskParser.Task_eqContext context) + { + if (mainConfig == null) throw new Exception("No Config found for main task!"); + mainTask = new SingleTask("main task", LH.equation, LH.fixedVars, mainConfig, indVar); + indVar = null; + } + + public void EnterLemma_tasks([NotNull] TaskParser.Lemma_tasksContext context) { } + public void ExitLemma_tasks([NotNull] TaskParser.Lemma_tasksContext context) { } + public void EnterLemma_task([NotNull] TaskParser.Lemma_taskContext context) { } + public void ExitLemma_task([NotNull] TaskParser.Lemma_taskContext context) + { + string lemmaName = context.BEZ().GetText(); + Test_Lemmata_all_Unique(lemmaName); + if (mainConfig == null) throw new Exception("No Config found for lemma " + lemmaName); + lemmaTasks.Add(new SingleTask(lemmaName,LH.equation, LH.fixedVars, mainConfig, indVar)); + indVar = null; + } + + public void EnterTask_lemmata([NotNull] TaskParser.Task_lemmataContext context) { } + public void ExitTask_lemmata([NotNull] TaskParser.Task_lemmataContext context) { } + public void EnterTask_lemma([NotNull] TaskParser.Task_lemmaContext context) { } + public void ExitTask_lemma([NotNull] TaskParser.Task_lemmaContext context) + { + string lemmaName = context.BEZ().GetText(); + Test_Lemmata_all_Unique(lemmaName); + lemmata.Add(new TaskLemma(lemmaName,LH.equation, LH.fixedVars)); + } + + // Induction + public void EnterInd_var([NotNull] TaskParser.Ind_varContext context) + { + string variableName = context.BEZ().GetText(); + Variable variable = LH.findVariableInADT_Vars(variableName); + if (!LH.allQVars.Contains(variable)) + throw new Exception("Induction variable for task "+ context.Parent.GetChild(0).GetText()+" was not definied as allquantified before."); + if (variable.sort.GetConstructors().Count == 0) + throw new Exception("Induction variable for task " + context.Parent.GetChild(0).GetText()+" has no constructors!"); + indVar = variable; + } + public void ExitInd_var([NotNull] TaskParser.Ind_varContext context) { } + + // Config + public void EnterConfig([NotNull] TaskParser.ConfigContext context) { mainConfig = null; } + public void ExitConfig([NotNull] TaskParser.ConfigContext context) + { + if (mainConfig == null && singleConfig != null) mainConfig = singleConfig; + } + public void EnterInd_pt([NotNull] TaskParser.Ind_ptContext context) + { + indCaseConfigs = new List<InductionCaseConfig>(); + indHypConfig = null; + } + + public void ExitInd_pt([NotNull] TaskParser.Ind_ptContext context) + { + string taskName = context.Parent.Parent.GetChild(0).GetText(); + if (indVar == null) throw new Exception("Config for induction can't find its relation to induction variable!"); + if (indCaseConfigs.Count < indVar.sort.GetConstructors().Count) + throw new Exception("There are " + (indVar.sort.GetConstructors().Count - indCaseConfigs.Count) + + " missing cases for Config of induction for task " + taskName); + if (indHypConfig == null) throw new Exception("No Config for Inductionhypotheses found for task " + taskName); + mainConfig = new InductionConfig(indCaseConfigs, indHypConfig); + } + public void EnterCase_pt([NotNull] TaskParser.Case_ptContext context) { singleConfig = null; } + public void ExitCase_pt([NotNull] TaskParser.Case_ptContext context) + { + string constructorName = context.BEZ().GetText(); + Operation constructor = LH.findOperationInADT_Ops(constructorName, 0, false); + if (constructor as Constructor == null) throw new Exception("The induction case config refers not to a constructor: " + constructorName + "!"); + if (singleConfig == null) throw new Exception("No config found for induction case " + constructorName + "!"); + indCaseConfigs.Add(new InductionCaseConfig((Constructor)constructor, singleConfig)); + } + public void EnterIh_pt([NotNull] TaskParser.Ih_ptContext context) { maxPt = -1; minSteps = -1; maxSteps = -1; } + public void ExitIh_pt([NotNull] TaskParser.Ih_ptContext context) { indHypConfig = new SingleConfig(maxPt, minSteps, maxSteps); } + + public void EnterTask_pt([NotNull] TaskParser.Task_ptContext context) { maxPt = -1; minSteps = -1; maxSteps = -1; } + public void ExitTask_pt([NotNull] TaskParser.Task_ptContext context) + { + if (maxPt < 0) throw new Exception("No maxPt found!"); + if (minSteps < 0) throw new Exception("No minsteps found!"); + if (maxSteps < 0) throw new Exception("No maxsteps found!"); + singleConfig = new SingleConfig(maxPt, minSteps, maxSteps); + } + public void EnterMaxpt([NotNull] TaskParser.MaxptContext context) { } + public void ExitMaxpt([NotNull] TaskParser.MaxptContext context) { maxPt = int.Parse(context.NAT().GetText()); } + public void EnterMinsteps([NotNull] TaskParser.MinstepsContext context) { } + public void ExitMinsteps([NotNull] TaskParser.MinstepsContext context) { minSteps = int.Parse(context.NAT().GetText()); } + public void EnterMaxsteps([NotNull] TaskParser.MaxstepsContext context) { } + public void ExitMaxsteps([NotNull] TaskParser.MaxstepsContext context) { maxSteps = int.Parse(context.NAT().GetText()); } + + // Equation Rules + public void EnterEq([NotNull] TaskParser.EqContext context) => LH.EnterEq(); + public void ExitEq([NotNull] TaskParser.EqContext context) => LH.ExitEq(); + public void EnterEq_var_def([NotNull] TaskParser.Eq_var_defContext context) => LH.EnterVars(); + public void ExitEq_var_def([NotNull] TaskParser.Eq_var_defContext context) => LH.ExitEqVarDef(); + public void EnterFixed([NotNull] TaskParser.FixedContext context) => LH.EnterVars(); + public void ExitFixed([NotNull] TaskParser.FixedContext context) => LH.fixedVars = LH.adt_vars; + public void EnterForall([NotNull] TaskParser.ForallContext context) => LH.EnterVars(); + public void ExitForall([NotNull] TaskParser.ForallContext context) => LH.allQVars = LH.adt_vars; + public void EnterVar([NotNull] TaskParser.VarContext context) { } + public void ExitVar([NotNull] TaskParser.VarContext context) + => LH.ExitVar(context.BEZ().GetText(), context.sort().BEZ().GetText()); + public void EnterSort([NotNull] TaskParser.SortContext context) { } + public void ExitSort([NotNull] TaskParser.SortContext context) { } + + // Trees + public void EnterMytree([NotNull] TaskParser.MytreeContext context) { } + public void ExitMytree([NotNull] TaskParser.MytreeContext context) { } + + public void EnterTreeLeaf([NotNull] TaskParser.TreeLeafContext context) { } + public void ExitTreeLeaf([NotNull] TaskParser.TreeLeafContext context) + => LH.ExitTreeLeaf(context.BEZ().GetText()); + + public void EnterTreeNode([NotNull] TaskParser.TreeNodeContext context) { } + public void ExitTreeNode([NotNull] TaskParser.TreeNodeContext context) + => LH.ExitTreeNode(context.BEZ().GetText(), context.ChildCount, context.GetText()); + + // useless Interface requirements + public void EnterEveryRule(ParserRuleContext ctx) { } + public void ExitEveryRule(ParserRuleContext ctx) { } + public void VisitErrorNode(IErrorNode node) { } + public void VisitTerminal(ITerminalNode node) { } + + // Alle Offiziell notwendige Typtests + + private void Test_Lemmata_all_Unique(string lemmaName) + { + foreach (Rule axiom in LH.adt_axioms) + if (axiom.name == lemmaName) throw new Exception("The Lemma " + lemmaName + " has same name like 1 Axiom of ADT!"); + foreach (Rule lemma in lemmata) + if (lemma.name == lemmaName) throw new Exception("The Lemma " + lemmaName + " is defined multiple times in Task!"); + foreach (Rule lemma in lemmaTasks) + if (lemma.name == lemmaName) throw new Exception("The Lemma " + lemmaName + " is defined multiple times in Task!"); + } + } +} diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Parser/Task.interp b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Parser/Task.interp new file mode 100644 index 0000000000000000000000000000000000000000..d1929eb5acef9fc4af18684b56f9e278f011f17a --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Parser/Task.interp @@ -0,0 +1,77 @@ +token literal names: +null +'task' +'proof lemmata' +':' +'lemmata' +'induction' +'case' +'IH' +'maxpt' +'maxPt' +'minsteps' +'maxsteps' +'forall' +',' +'fixed' +'=' +'(' +')' +null +null +null +null + +token symbolic names: +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +BEZ +NAT +WHITESPACE +NEWLINE + +rule names: +task +task_eq +lemma_tasks +lemma_task +task_lemmata +task_lemma +ind_var +config +ind_pt +case_pt +ih_pt +task_pt +maxpt +minsteps +maxsteps +var +sort +forall +fixed +eq_var_def +eq +mytree +treeLeaf +treeNode + + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 23, 190, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 3, 2, 3, 2, 5, 2, 53, 10, 2, 3, 2, 5, 2, 56, 10, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 5, 3, 63, 10, 3, 3, 3, 3, 3, 3, 4, 3, 4, 6, 4, 69, 10, 4, 13, 4, 14, 4, 70, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 77, 10, 5, 3, 5, 3, 5, 3, 6, 3, 6, 6, 6, 83, 10, 6, 13, 6, 14, 6, 84, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 5, 9, 96, 10, 9, 3, 10, 6, 10, 99, 10, 10, 13, 10, 14, 10, 100, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 7, 19, 135, 10, 19, 12, 19, 14, 19, 138, 11, 19, 3, 20, 3, 20, 3, 20, 3, 20, 7, 20, 144, 10, 20, 12, 20, 14, 20, 147, 11, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 5, 21, 155, 10, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 5, 21, 163, 10, 21, 5, 21, 165, 10, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 5, 23, 174, 10, 23, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 7, 25, 183, 10, 25, 12, 25, 14, 25, 186, 11, 25, 3, 25, 3, 25, 3, 25, 2, 2, 26, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 2, 3, 3, 2, 10, 11, 2, 181, 2, 50, 3, 2, 2, 2, 4, 59, 3, 2, 2, 2, 6, 66, 3, 2, 2, 2, 8, 72, 3, 2, 2, 2, 10, 80, 3, 2, 2, 2, 12, 86, 3, 2, 2, 2, 14, 90, 3, 2, 2, 2, 16, 95, 3, 2, 2, 2, 18, 98, 3, 2, 2, 2, 20, 104, 3, 2, 2, 2, 22, 108, 3, 2, 2, 2, 24, 111, 3, 2, 2, 2, 26, 115, 3, 2, 2, 2, 28, 118, 3, 2, 2, 2, 30, 121, 3, 2, 2, 2, 32, 124, 3, 2, 2, 2, 34, 128, 3, 2, 2, 2, 36, 130, 3, 2, 2, 2, 38, 139, 3, 2, 2, 2, 40, 164, 3, 2, 2, 2, 42, 166, 3, 2, 2, 2, 44, 173, 3, 2, 2, 2, 46, 175, 3, 2, 2, 2, 48, 177, 3, 2, 2, 2, 50, 52, 5, 4, 3, 2, 51, 53, 5, 6, 4, 2, 52, 51, 3, 2, 2, 2, 52, 53, 3, 2, 2, 2, 53, 55, 3, 2, 2, 2, 54, 56, 5, 10, 6, 2, 55, 54, 3, 2, 2, 2, 55, 56, 3, 2, 2, 2, 56, 57, 3, 2, 2, 2, 57, 58, 7, 2, 2, 3, 58, 3, 3, 2, 2, 2, 59, 60, 7, 3, 2, 2, 60, 62, 5, 42, 22, 2, 61, 63, 5, 14, 8, 2, 62, 61, 3, 2, 2, 2, 62, 63, 3, 2, 2, 2, 63, 64, 3, 2, 2, 2, 64, 65, 5, 16, 9, 2, 65, 5, 3, 2, 2, 2, 66, 68, 7, 4, 2, 2, 67, 69, 5, 8, 5, 2, 68, 67, 3, 2, 2, 2, 69, 70, 3, 2, 2, 2, 70, 68, 3, 2, 2, 2, 70, 71, 3, 2, 2, 2, 71, 7, 3, 2, 2, 2, 72, 73, 7, 20, 2, 2, 73, 74, 7, 5, 2, 2, 74, 76, 5, 42, 22, 2, 75, 77, 5, 14, 8, 2, 76, 75, 3, 2, 2, 2, 76, 77, 3, 2, 2, 2, 77, 78, 3, 2, 2, 2, 78, 79, 5, 16, 9, 2, 79, 9, 3, 2, 2, 2, 80, 82, 7, 6, 2, 2, 81, 83, 5, 12, 7, 2, 82, 81, 3, 2, 2, 2, 83, 84, 3, 2, 2, 2, 84, 82, 3, 2, 2, 2, 84, 85, 3, 2, 2, 2, 85, 11, 3, 2, 2, 2, 86, 87, 7, 20, 2, 2, 87, 88, 7, 5, 2, 2, 88, 89, 5, 42, 22, 2, 89, 13, 3, 2, 2, 2, 90, 91, 7, 7, 2, 2, 91, 92, 7, 20, 2, 2, 92, 15, 3, 2, 2, 2, 93, 96, 5, 24, 13, 2, 94, 96, 5, 18, 10, 2, 95, 93, 3, 2, 2, 2, 95, 94, 3, 2, 2, 2, 96, 17, 3, 2, 2, 2, 97, 99, 5, 20, 11, 2, 98, 97, 3, 2, 2, 2, 99, 100, 3, 2, 2, 2, 100, 98, 3, 2, 2, 2, 100, 101, 3, 2, 2, 2, 101, 102, 3, 2, 2, 2, 102, 103, 5, 22, 12, 2, 103, 19, 3, 2, 2, 2, 104, 105, 7, 8, 2, 2, 105, 106, 7, 20, 2, 2, 106, 107, 5, 24, 13, 2, 107, 21, 3, 2, 2, 2, 108, 109, 7, 9, 2, 2, 109, 110, 5, 26, 14, 2, 110, 23, 3, 2, 2, 2, 111, 112, 5, 26, 14, 2, 112, 113, 5, 28, 15, 2, 113, 114, 5, 30, 16, 2, 114, 25, 3, 2, 2, 2, 115, 116, 9, 2, 2, 2, 116, 117, 7, 21, 2, 2, 117, 27, 3, 2, 2, 2, 118, 119, 7, 12, 2, 2, 119, 120, 7, 21, 2, 2, 120, 29, 3, 2, 2, 2, 121, 122, 7, 13, 2, 2, 122, 123, 7, 21, 2, 2, 123, 31, 3, 2, 2, 2, 124, 125, 7, 20, 2, 2, 125, 126, 7, 5, 2, 2, 126, 127, 5, 34, 18, 2, 127, 33, 3, 2, 2, 2, 128, 129, 7, 20, 2, 2, 129, 35, 3, 2, 2, 2, 130, 131, 7, 14, 2, 2, 131, 136, 5, 32, 17, 2, 132, 133, 7, 15, 2, 2, 133, 135, 5, 32, 17, 2, 134, 132, 3, 2, 2, 2, 135, 138, 3, 2, 2, 2, 136, 134, 3, 2, 2, 2, 136, 137, 3, 2, 2, 2, 137, 37, 3, 2, 2, 2, 138, 136, 3, 2, 2, 2, 139, 140, 7, 16, 2, 2, 140, 145, 5, 32, 17, 2, 141, 142, 7, 15, 2, 2, 142, 144, 5, 32, 17, 2, 143, 141, 3, 2, 2, 2, 144, 147, 3, 2, 2, 2, 145, 143, 3, 2, 2, 2, 145, 146, 3, 2, 2, 2, 146, 39, 3, 2, 2, 2, 147, 145, 3, 2, 2, 2, 148, 149, 5, 38, 20, 2, 149, 150, 7, 5, 2, 2, 150, 154, 3, 2, 2, 2, 151, 152, 5, 36, 19, 2, 152, 153, 7, 5, 2, 2, 153, 155, 3, 2, 2, 2, 154, 151, 3, 2, 2, 2, 154, 155, 3, 2, 2, 2, 155, 165, 3, 2, 2, 2, 156, 157, 5, 36, 19, 2, 157, 158, 7, 5, 2, 2, 158, 162, 3, 2, 2, 2, 159, 160, 5, 38, 20, 2, 160, 161, 7, 5, 2, 2, 161, 163, 3, 2, 2, 2, 162, 159, 3, 2, 2, 2, 162, 163, 3, 2, 2, 2, 163, 165, 3, 2, 2, 2, 164, 148, 3, 2, 2, 2, 164, 156, 3, 2, 2, 2, 164, 165, 3, 2, 2, 2, 165, 41, 3, 2, 2, 2, 166, 167, 5, 40, 21, 2, 167, 168, 5, 44, 23, 2, 168, 169, 7, 17, 2, 2, 169, 170, 5, 44, 23, 2, 170, 43, 3, 2, 2, 2, 171, 174, 5, 46, 24, 2, 172, 174, 5, 48, 25, 2, 173, 171, 3, 2, 2, 2, 173, 172, 3, 2, 2, 2, 174, 45, 3, 2, 2, 2, 175, 176, 7, 20, 2, 2, 176, 47, 3, 2, 2, 2, 177, 178, 7, 20, 2, 2, 178, 179, 7, 18, 2, 2, 179, 184, 5, 44, 23, 2, 180, 181, 7, 15, 2, 2, 181, 183, 5, 44, 23, 2, 182, 180, 3, 2, 2, 2, 183, 186, 3, 2, 2, 2, 184, 182, 3, 2, 2, 2, 184, 185, 3, 2, 2, 2, 185, 187, 3, 2, 2, 2, 186, 184, 3, 2, 2, 2, 187, 188, 7, 19, 2, 2, 188, 49, 3, 2, 2, 2, 17, 52, 55, 62, 70, 76, 84, 95, 100, 136, 145, 154, 162, 164, 173, 184] \ No newline at end of file diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Parser/Task.tokens b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Parser/Task.tokens new file mode 100644 index 0000000000000000000000000000000000000000..f045c4e0dd3118664b4921189098760f1d4b31d1 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Parser/Task.tokens @@ -0,0 +1,38 @@ +T__0=1 +T__1=2 +T__2=3 +T__3=4 +T__4=5 +T__5=6 +T__6=7 +T__7=8 +T__8=9 +T__9=10 +T__10=11 +T__11=12 +T__12=13 +T__13=14 +T__14=15 +T__15=16 +T__16=17 +BEZ=18 +NAT=19 +WHITESPACE=20 +NEWLINE=21 +'task'=1 +'proof lemmata'=2 +':'=3 +'lemmata'=4 +'induction'=5 +'case'=6 +'IH'=7 +'maxpt'=8 +'maxPt'=9 +'minsteps'=10 +'maxsteps'=11 +'forall'=12 +','=13 +'fixed'=14 +'='=15 +'('=16 +')'=17 diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Parser/TaskBaseListener.cs b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Parser/TaskBaseListener.cs new file mode 100644 index 0000000000000000000000000000000000000000..60785c66d567910e9496ed4723b22a997ef468fc --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Parser/TaskBaseListener.cs @@ -0,0 +1,340 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// ANTLR Version: 4.8 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +// Generated from Task.g4 by ANTLR 4.8 + +// Unreachable code detected +#pragma warning disable 0162 +// The variable '...' is assigned but its value is never used +#pragma warning disable 0219 +// Missing XML comment for publicly visible type or member '...' +#pragma warning disable 1591 +// Ambiguous reference in cref attribute +#pragma warning disable 419 + +namespace Eingabeverwaltung.Parser.Task_Parser { + +using Antlr4.Runtime.Misc; +using IErrorNode = Antlr4.Runtime.Tree.IErrorNode; +using ITerminalNode = Antlr4.Runtime.Tree.ITerminalNode; +using IToken = Antlr4.Runtime.IToken; +using ParserRuleContext = Antlr4.Runtime.ParserRuleContext; + +/// <summary> +/// This class provides an empty implementation of <see cref="ITaskListener"/>, +/// which can be extended to create a listener which only needs to handle a subset +/// of the available methods. +/// </summary> +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.8")] +[System.CLSCompliant(false)] +public partial class TaskBaseListener : ITaskListener { + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.task"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterTask([NotNull] TaskParser.TaskContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.task"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitTask([NotNull] TaskParser.TaskContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.task_eq"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterTask_eq([NotNull] TaskParser.Task_eqContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.task_eq"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitTask_eq([NotNull] TaskParser.Task_eqContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.lemma_tasks"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterLemma_tasks([NotNull] TaskParser.Lemma_tasksContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.lemma_tasks"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitLemma_tasks([NotNull] TaskParser.Lemma_tasksContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.lemma_task"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterLemma_task([NotNull] TaskParser.Lemma_taskContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.lemma_task"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitLemma_task([NotNull] TaskParser.Lemma_taskContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.task_lemmata"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterTask_lemmata([NotNull] TaskParser.Task_lemmataContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.task_lemmata"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitTask_lemmata([NotNull] TaskParser.Task_lemmataContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.task_lemma"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterTask_lemma([NotNull] TaskParser.Task_lemmaContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.task_lemma"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitTask_lemma([NotNull] TaskParser.Task_lemmaContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.ind_var"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterInd_var([NotNull] TaskParser.Ind_varContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.ind_var"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitInd_var([NotNull] TaskParser.Ind_varContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.config"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterConfig([NotNull] TaskParser.ConfigContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.config"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitConfig([NotNull] TaskParser.ConfigContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.ind_pt"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterInd_pt([NotNull] TaskParser.Ind_ptContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.ind_pt"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitInd_pt([NotNull] TaskParser.Ind_ptContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.case_pt"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterCase_pt([NotNull] TaskParser.Case_ptContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.case_pt"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitCase_pt([NotNull] TaskParser.Case_ptContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.ih_pt"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterIh_pt([NotNull] TaskParser.Ih_ptContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.ih_pt"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitIh_pt([NotNull] TaskParser.Ih_ptContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.task_pt"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterTask_pt([NotNull] TaskParser.Task_ptContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.task_pt"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitTask_pt([NotNull] TaskParser.Task_ptContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.maxpt"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterMaxpt([NotNull] TaskParser.MaxptContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.maxpt"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitMaxpt([NotNull] TaskParser.MaxptContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.minsteps"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterMinsteps([NotNull] TaskParser.MinstepsContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.minsteps"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitMinsteps([NotNull] TaskParser.MinstepsContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.maxsteps"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterMaxsteps([NotNull] TaskParser.MaxstepsContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.maxsteps"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitMaxsteps([NotNull] TaskParser.MaxstepsContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.var"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterVar([NotNull] TaskParser.VarContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.var"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitVar([NotNull] TaskParser.VarContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.sort"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterSort([NotNull] TaskParser.SortContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.sort"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitSort([NotNull] TaskParser.SortContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.forall"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterForall([NotNull] TaskParser.ForallContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.forall"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitForall([NotNull] TaskParser.ForallContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.fixed"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterFixed([NotNull] TaskParser.FixedContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.fixed"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitFixed([NotNull] TaskParser.FixedContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.eq_var_def"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterEq_var_def([NotNull] TaskParser.Eq_var_defContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.eq_var_def"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitEq_var_def([NotNull] TaskParser.Eq_var_defContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.eq"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterEq([NotNull] TaskParser.EqContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.eq"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitEq([NotNull] TaskParser.EqContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.mytree"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterMytree([NotNull] TaskParser.MytreeContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.mytree"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitMytree([NotNull] TaskParser.MytreeContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.treeLeaf"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterTreeLeaf([NotNull] TaskParser.TreeLeafContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.treeLeaf"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitTreeLeaf([NotNull] TaskParser.TreeLeafContext context) { } + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.treeNode"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void EnterTreeNode([NotNull] TaskParser.TreeNodeContext context) { } + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.treeNode"/>. + /// <para>The default implementation does nothing.</para> + /// </summary> + /// <param name="context">The parse tree.</param> + public virtual void ExitTreeNode([NotNull] TaskParser.TreeNodeContext context) { } + + /// <inheritdoc/> + /// <remarks>The default implementation does nothing.</remarks> + public virtual void EnterEveryRule([NotNull] ParserRuleContext context) { } + /// <inheritdoc/> + /// <remarks>The default implementation does nothing.</remarks> + public virtual void ExitEveryRule([NotNull] ParserRuleContext context) { } + /// <inheritdoc/> + /// <remarks>The default implementation does nothing.</remarks> + public virtual void VisitTerminal([NotNull] ITerminalNode node) { } + /// <inheritdoc/> + /// <remarks>The default implementation does nothing.</remarks> + public virtual void VisitErrorNode([NotNull] IErrorNode node) { } +} +} // namespace Eingabeverwaltung.Parser.Task_Parser diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Parser/TaskLexer.cs b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Parser/TaskLexer.cs new file mode 100644 index 0000000000000000000000000000000000000000..558d8412fe23085789118a5f2df1305e118df595 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Parser/TaskLexer.cs @@ -0,0 +1,251 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// ANTLR Version: 4.8 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +// Generated from Task.g4 by ANTLR 4.8 + +// Unreachable code detected +#pragma warning disable 0162 +// The variable '...' is assigned but its value is never used +#pragma warning disable 0219 +// Missing XML comment for publicly visible type or member '...' +#pragma warning disable 1591 +// Ambiguous reference in cref attribute +#pragma warning disable 419 + +namespace Eingabeverwaltung.Parser.Task_Parser { +using System; +using System.IO; +using System.Text; +using Antlr4.Runtime; +using Antlr4.Runtime.Atn; +using Antlr4.Runtime.Misc; +using DFA = Antlr4.Runtime.Dfa.DFA; + +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.8")] +[System.CLSCompliant(false)] +public partial class TaskLexer : Lexer { + protected static DFA[] decisionToDFA; + protected static PredictionContextCache sharedContextCache = new PredictionContextCache(); + public const int + T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, + T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17, + BEZ=18, NAT=19, WHITESPACE=20, NEWLINE=21; + public static string[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static string[] modeNames = { + "DEFAULT_MODE" + }; + + public static readonly string[] ruleNames = { + "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8", + "T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15", "T__16", + "BEZ", "NAT", "WHITESPACE", "NEWLINE" + }; + + + public TaskLexer(ICharStream input) + : this(input, Console.Out, Console.Error) { } + + public TaskLexer(ICharStream input, TextWriter output, TextWriter errorOutput) + : base(input, output, errorOutput) + { + Interpreter = new LexerATNSimulator(this, _ATN, decisionToDFA, sharedContextCache); + } + + private static readonly string[] _LiteralNames = { + null, "'task'", "'proof lemmata'", "':'", "'lemmata'", "'induction'", + "'case'", "'IH'", "'maxpt'", "'maxPt'", "'minsteps'", "'maxsteps'", "'forall'", + "','", "'fixed'", "'='", "'('", "')'" + }; + private static readonly string[] _SymbolicNames = { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, "BEZ", "NAT", "WHITESPACE", "NEWLINE" + }; + public static readonly IVocabulary DefaultVocabulary = new Vocabulary(_LiteralNames, _SymbolicNames); + + [NotNull] + public override IVocabulary Vocabulary + { + get + { + return DefaultVocabulary; + } + } + + public override string GrammarFileName { get { return "Task.g4"; } } + + public override string[] RuleNames { get { return ruleNames; } } + + public override string[] ChannelNames { get { return channelNames; } } + + public override string[] ModeNames { get { return modeNames; } } + + public override string SerializedAtn { get { return new string(_serializedATN); } } + + static TaskLexer() { + decisionToDFA = new DFA[_ATN.NumberOfDecisions]; + for (int i = 0; i < _ATN.NumberOfDecisions; i++) { + decisionToDFA[i] = new DFA(_ATN.GetDecisionState(i), i); + } + } + private static char[] _serializedATN = { + '\x3', '\x608B', '\xA72A', '\x8133', '\xB9ED', '\x417C', '\x3BE7', '\x7786', + '\x5964', '\x2', '\x17', '\xAF', '\b', '\x1', '\x4', '\x2', '\t', '\x2', + '\x4', '\x3', '\t', '\x3', '\x4', '\x4', '\t', '\x4', '\x4', '\x5', '\t', + '\x5', '\x4', '\x6', '\t', '\x6', '\x4', '\a', '\t', '\a', '\x4', '\b', + '\t', '\b', '\x4', '\t', '\t', '\t', '\x4', '\n', '\t', '\n', '\x4', '\v', + '\t', '\v', '\x4', '\f', '\t', '\f', '\x4', '\r', '\t', '\r', '\x4', '\xE', + '\t', '\xE', '\x4', '\xF', '\t', '\xF', '\x4', '\x10', '\t', '\x10', '\x4', + '\x11', '\t', '\x11', '\x4', '\x12', '\t', '\x12', '\x4', '\x13', '\t', + '\x13', '\x4', '\x14', '\t', '\x14', '\x4', '\x15', '\t', '\x15', '\x4', + '\x16', '\t', '\x16', '\x3', '\x2', '\x3', '\x2', '\x3', '\x2', '\x3', + '\x2', '\x3', '\x2', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', + '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', + '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', + '\x3', '\x3', '\x4', '\x3', '\x4', '\x3', '\x5', '\x3', '\x5', '\x3', + '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', + '\x5', '\x3', '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', + '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', + '\x6', '\x3', '\a', '\x3', '\a', '\x3', '\a', '\x3', '\a', '\x3', '\a', + '\x3', '\b', '\x3', '\b', '\x3', '\b', '\x3', '\t', '\x3', '\t', '\x3', + '\t', '\x3', '\t', '\x3', '\t', '\x3', '\t', '\x3', '\n', '\x3', '\n', + '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\v', '\x3', + '\v', '\x3', '\v', '\x3', '\v', '\x3', '\v', '\x3', '\v', '\x3', '\v', + '\x3', '\v', '\x3', '\v', '\x3', '\f', '\x3', '\f', '\x3', '\f', '\x3', + '\f', '\x3', '\f', '\x3', '\f', '\x3', '\f', '\x3', '\f', '\x3', '\f', + '\x3', '\r', '\x3', '\r', '\x3', '\r', '\x3', '\r', '\x3', '\r', '\x3', + '\r', '\x3', '\r', '\x3', '\xE', '\x3', '\xE', '\x3', '\xF', '\x3', '\xF', + '\x3', '\xF', '\x3', '\xF', '\x3', '\xF', '\x3', '\xF', '\x3', '\x10', + '\x3', '\x10', '\x3', '\x11', '\x3', '\x11', '\x3', '\x12', '\x3', '\x12', + '\x3', '\x13', '\x5', '\x13', '\x91', '\n', '\x13', '\x3', '\x13', '\a', + '\x13', '\x94', '\n', '\x13', '\f', '\x13', '\xE', '\x13', '\x97', '\v', + '\x13', '\x3', '\x14', '\x3', '\x14', '\x3', '\x14', '\a', '\x14', '\x9C', + '\n', '\x14', '\f', '\x14', '\xE', '\x14', '\x9F', '\v', '\x14', '\x5', + '\x14', '\xA1', '\n', '\x14', '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', + '\x3', '\x15', '\x3', '\x16', '\x5', '\x16', '\xA8', '\n', '\x16', '\x3', + '\x16', '\x3', '\x16', '\x5', '\x16', '\xAC', '\n', '\x16', '\x3', '\x16', + '\x3', '\x16', '\x2', '\x2', '\x17', '\x3', '\x3', '\x5', '\x4', '\a', + '\x5', '\t', '\x6', '\v', '\a', '\r', '\b', '\xF', '\t', '\x11', '\n', + '\x13', '\v', '\x15', '\f', '\x17', '\r', '\x19', '\xE', '\x1B', '\xF', + '\x1D', '\x10', '\x1F', '\x11', '!', '\x12', '#', '\x13', '%', '\x14', + '\'', '\x15', ')', '\x16', '+', '\x17', '\x3', '\x2', '\a', '\x4', '\x2', + '\x43', '\\', '\x63', '|', '\x6', '\x2', '\x32', ';', '\x43', '\\', '\x61', + '\x61', '\x63', '|', '\x3', '\x2', '\x33', ';', '\x3', '\x2', '\x32', + ';', '\x4', '\x2', '\v', '\v', '\"', '\"', '\x2', '\xB3', '\x2', '\x3', + '\x3', '\x2', '\x2', '\x2', '\x2', '\x5', '\x3', '\x2', '\x2', '\x2', + '\x2', '\a', '\x3', '\x2', '\x2', '\x2', '\x2', '\t', '\x3', '\x2', '\x2', + '\x2', '\x2', '\v', '\x3', '\x2', '\x2', '\x2', '\x2', '\r', '\x3', '\x2', + '\x2', '\x2', '\x2', '\xF', '\x3', '\x2', '\x2', '\x2', '\x2', '\x11', + '\x3', '\x2', '\x2', '\x2', '\x2', '\x13', '\x3', '\x2', '\x2', '\x2', + '\x2', '\x15', '\x3', '\x2', '\x2', '\x2', '\x2', '\x17', '\x3', '\x2', + '\x2', '\x2', '\x2', '\x19', '\x3', '\x2', '\x2', '\x2', '\x2', '\x1B', + '\x3', '\x2', '\x2', '\x2', '\x2', '\x1D', '\x3', '\x2', '\x2', '\x2', + '\x2', '\x1F', '\x3', '\x2', '\x2', '\x2', '\x2', '!', '\x3', '\x2', '\x2', + '\x2', '\x2', '#', '\x3', '\x2', '\x2', '\x2', '\x2', '%', '\x3', '\x2', + '\x2', '\x2', '\x2', '\'', '\x3', '\x2', '\x2', '\x2', '\x2', ')', '\x3', + '\x2', '\x2', '\x2', '\x2', '+', '\x3', '\x2', '\x2', '\x2', '\x3', '-', + '\x3', '\x2', '\x2', '\x2', '\x5', '\x32', '\x3', '\x2', '\x2', '\x2', + '\a', '@', '\x3', '\x2', '\x2', '\x2', '\t', '\x42', '\x3', '\x2', '\x2', + '\x2', '\v', 'J', '\x3', '\x2', '\x2', '\x2', '\r', 'T', '\x3', '\x2', + '\x2', '\x2', '\xF', 'Y', '\x3', '\x2', '\x2', '\x2', '\x11', '\\', '\x3', + '\x2', '\x2', '\x2', '\x13', '\x62', '\x3', '\x2', '\x2', '\x2', '\x15', + 'h', '\x3', '\x2', '\x2', '\x2', '\x17', 'q', '\x3', '\x2', '\x2', '\x2', + '\x19', 'z', '\x3', '\x2', '\x2', '\x2', '\x1B', '\x81', '\x3', '\x2', + '\x2', '\x2', '\x1D', '\x83', '\x3', '\x2', '\x2', '\x2', '\x1F', '\x89', + '\x3', '\x2', '\x2', '\x2', '!', '\x8B', '\x3', '\x2', '\x2', '\x2', '#', + '\x8D', '\x3', '\x2', '\x2', '\x2', '%', '\x90', '\x3', '\x2', '\x2', + '\x2', '\'', '\xA0', '\x3', '\x2', '\x2', '\x2', ')', '\xA2', '\x3', '\x2', + '\x2', '\x2', '+', '\xAB', '\x3', '\x2', '\x2', '\x2', '-', '.', '\a', + 'v', '\x2', '\x2', '.', '/', '\a', '\x63', '\x2', '\x2', '/', '\x30', + '\a', 'u', '\x2', '\x2', '\x30', '\x31', '\a', 'm', '\x2', '\x2', '\x31', + '\x4', '\x3', '\x2', '\x2', '\x2', '\x32', '\x33', '\a', 'r', '\x2', '\x2', + '\x33', '\x34', '\a', 't', '\x2', '\x2', '\x34', '\x35', '\a', 'q', '\x2', + '\x2', '\x35', '\x36', '\a', 'q', '\x2', '\x2', '\x36', '\x37', '\a', + 'h', '\x2', '\x2', '\x37', '\x38', '\a', '\"', '\x2', '\x2', '\x38', '\x39', + '\a', 'n', '\x2', '\x2', '\x39', ':', '\a', 'g', '\x2', '\x2', ':', ';', + '\a', 'o', '\x2', '\x2', ';', '<', '\a', 'o', '\x2', '\x2', '<', '=', + '\a', '\x63', '\x2', '\x2', '=', '>', '\a', 'v', '\x2', '\x2', '>', '?', + '\a', '\x63', '\x2', '\x2', '?', '\x6', '\x3', '\x2', '\x2', '\x2', '@', + '\x41', '\a', '<', '\x2', '\x2', '\x41', '\b', '\x3', '\x2', '\x2', '\x2', + '\x42', '\x43', '\a', 'n', '\x2', '\x2', '\x43', '\x44', '\a', 'g', '\x2', + '\x2', '\x44', '\x45', '\a', 'o', '\x2', '\x2', '\x45', '\x46', '\a', + 'o', '\x2', '\x2', '\x46', 'G', '\a', '\x63', '\x2', '\x2', 'G', 'H', + '\a', 'v', '\x2', '\x2', 'H', 'I', '\a', '\x63', '\x2', '\x2', 'I', '\n', + '\x3', '\x2', '\x2', '\x2', 'J', 'K', '\a', 'k', '\x2', '\x2', 'K', 'L', + '\a', 'p', '\x2', '\x2', 'L', 'M', '\a', '\x66', '\x2', '\x2', 'M', 'N', + '\a', 'w', '\x2', '\x2', 'N', 'O', '\a', '\x65', '\x2', '\x2', 'O', 'P', + '\a', 'v', '\x2', '\x2', 'P', 'Q', '\a', 'k', '\x2', '\x2', 'Q', 'R', + '\a', 'q', '\x2', '\x2', 'R', 'S', '\a', 'p', '\x2', '\x2', 'S', '\f', + '\x3', '\x2', '\x2', '\x2', 'T', 'U', '\a', '\x65', '\x2', '\x2', 'U', + 'V', '\a', '\x63', '\x2', '\x2', 'V', 'W', '\a', 'u', '\x2', '\x2', 'W', + 'X', '\a', 'g', '\x2', '\x2', 'X', '\xE', '\x3', '\x2', '\x2', '\x2', + 'Y', 'Z', '\a', 'K', '\x2', '\x2', 'Z', '[', '\a', 'J', '\x2', '\x2', + '[', '\x10', '\x3', '\x2', '\x2', '\x2', '\\', ']', '\a', 'o', '\x2', + '\x2', ']', '^', '\a', '\x63', '\x2', '\x2', '^', '_', '\a', 'z', '\x2', + '\x2', '_', '`', '\a', 'r', '\x2', '\x2', '`', '\x61', '\a', 'v', '\x2', + '\x2', '\x61', '\x12', '\x3', '\x2', '\x2', '\x2', '\x62', '\x63', '\a', + 'o', '\x2', '\x2', '\x63', '\x64', '\a', '\x63', '\x2', '\x2', '\x64', + '\x65', '\a', 'z', '\x2', '\x2', '\x65', '\x66', '\a', 'R', '\x2', '\x2', + '\x66', 'g', '\a', 'v', '\x2', '\x2', 'g', '\x14', '\x3', '\x2', '\x2', + '\x2', 'h', 'i', '\a', 'o', '\x2', '\x2', 'i', 'j', '\a', 'k', '\x2', + '\x2', 'j', 'k', '\a', 'p', '\x2', '\x2', 'k', 'l', '\a', 'u', '\x2', + '\x2', 'l', 'm', '\a', 'v', '\x2', '\x2', 'm', 'n', '\a', 'g', '\x2', + '\x2', 'n', 'o', '\a', 'r', '\x2', '\x2', 'o', 'p', '\a', 'u', '\x2', + '\x2', 'p', '\x16', '\x3', '\x2', '\x2', '\x2', 'q', 'r', '\a', 'o', '\x2', + '\x2', 'r', 's', '\a', '\x63', '\x2', '\x2', 's', 't', '\a', 'z', '\x2', + '\x2', 't', 'u', '\a', 'u', '\x2', '\x2', 'u', 'v', '\a', 'v', '\x2', + '\x2', 'v', 'w', '\a', 'g', '\x2', '\x2', 'w', 'x', '\a', 'r', '\x2', + '\x2', 'x', 'y', '\a', 'u', '\x2', '\x2', 'y', '\x18', '\x3', '\x2', '\x2', + '\x2', 'z', '{', '\a', 'h', '\x2', '\x2', '{', '|', '\a', 'q', '\x2', + '\x2', '|', '}', '\a', 't', '\x2', '\x2', '}', '~', '\a', '\x63', '\x2', + '\x2', '~', '\x7F', '\a', 'n', '\x2', '\x2', '\x7F', '\x80', '\a', 'n', + '\x2', '\x2', '\x80', '\x1A', '\x3', '\x2', '\x2', '\x2', '\x81', '\x82', + '\a', '.', '\x2', '\x2', '\x82', '\x1C', '\x3', '\x2', '\x2', '\x2', '\x83', + '\x84', '\a', 'h', '\x2', '\x2', '\x84', '\x85', '\a', 'k', '\x2', '\x2', + '\x85', '\x86', '\a', 'z', '\x2', '\x2', '\x86', '\x87', '\a', 'g', '\x2', + '\x2', '\x87', '\x88', '\a', '\x66', '\x2', '\x2', '\x88', '\x1E', '\x3', + '\x2', '\x2', '\x2', '\x89', '\x8A', '\a', '?', '\x2', '\x2', '\x8A', + ' ', '\x3', '\x2', '\x2', '\x2', '\x8B', '\x8C', '\a', '*', '\x2', '\x2', + '\x8C', '\"', '\x3', '\x2', '\x2', '\x2', '\x8D', '\x8E', '\a', '+', '\x2', + '\x2', '\x8E', '$', '\x3', '\x2', '\x2', '\x2', '\x8F', '\x91', '\t', + '\x2', '\x2', '\x2', '\x90', '\x8F', '\x3', '\x2', '\x2', '\x2', '\x91', + '\x95', '\x3', '\x2', '\x2', '\x2', '\x92', '\x94', '\t', '\x3', '\x2', + '\x2', '\x93', '\x92', '\x3', '\x2', '\x2', '\x2', '\x94', '\x97', '\x3', + '\x2', '\x2', '\x2', '\x95', '\x93', '\x3', '\x2', '\x2', '\x2', '\x95', + '\x96', '\x3', '\x2', '\x2', '\x2', '\x96', '&', '\x3', '\x2', '\x2', + '\x2', '\x97', '\x95', '\x3', '\x2', '\x2', '\x2', '\x98', '\xA1', '\a', + '\x32', '\x2', '\x2', '\x99', '\x9D', '\t', '\x4', '\x2', '\x2', '\x9A', + '\x9C', '\t', '\x5', '\x2', '\x2', '\x9B', '\x9A', '\x3', '\x2', '\x2', + '\x2', '\x9C', '\x9F', '\x3', '\x2', '\x2', '\x2', '\x9D', '\x9B', '\x3', + '\x2', '\x2', '\x2', '\x9D', '\x9E', '\x3', '\x2', '\x2', '\x2', '\x9E', + '\xA1', '\x3', '\x2', '\x2', '\x2', '\x9F', '\x9D', '\x3', '\x2', '\x2', + '\x2', '\xA0', '\x98', '\x3', '\x2', '\x2', '\x2', '\xA0', '\x99', '\x3', + '\x2', '\x2', '\x2', '\xA1', '(', '\x3', '\x2', '\x2', '\x2', '\xA2', + '\xA3', '\t', '\x6', '\x2', '\x2', '\xA3', '\xA4', '\x3', '\x2', '\x2', + '\x2', '\xA4', '\xA5', '\b', '\x15', '\x2', '\x2', '\xA5', '*', '\x3', + '\x2', '\x2', '\x2', '\xA6', '\xA8', '\a', '\xF', '\x2', '\x2', '\xA7', + '\xA6', '\x3', '\x2', '\x2', '\x2', '\xA7', '\xA8', '\x3', '\x2', '\x2', + '\x2', '\xA8', '\xA9', '\x3', '\x2', '\x2', '\x2', '\xA9', '\xAC', '\a', + '\f', '\x2', '\x2', '\xAA', '\xAC', '\a', '\xF', '\x2', '\x2', '\xAB', + '\xA7', '\x3', '\x2', '\x2', '\x2', '\xAB', '\xAA', '\x3', '\x2', '\x2', + '\x2', '\xAC', '\xAD', '\x3', '\x2', '\x2', '\x2', '\xAD', '\xAE', '\b', + '\x16', '\x2', '\x2', '\xAE', ',', '\x3', '\x2', '\x2', '\x2', '\n', '\x2', + '\x90', '\x93', '\x95', '\x9D', '\xA0', '\xA7', '\xAB', '\x3', '\b', '\x2', + '\x2', + }; + + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN); + + +} +} // namespace Eingabeverwaltung.Parser.Task_Parser diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Parser/TaskLexer.interp b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Parser/TaskLexer.interp new file mode 100644 index 0000000000000000000000000000000000000000..2fcc549bde2b455a7c9a8c32b5eb7f8a69b227bd --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Parser/TaskLexer.interp @@ -0,0 +1,80 @@ +token literal names: +null +'task' +'proof lemmata' +':' +'lemmata' +'induction' +'case' +'IH' +'maxpt' +'maxPt' +'minsteps' +'maxsteps' +'forall' +',' +'fixed' +'=' +'(' +')' +null +null +null +null + +token symbolic names: +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +BEZ +NAT +WHITESPACE +NEWLINE + +rule names: +T__0 +T__1 +T__2 +T__3 +T__4 +T__5 +T__6 +T__7 +T__8 +T__9 +T__10 +T__11 +T__12 +T__13 +T__14 +T__15 +T__16 +BEZ +NAT +WHITESPACE +NEWLINE + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 23, 175, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 17, 3, 17, 3, 18, 3, 18, 3, 19, 5, 19, 145, 10, 19, 3, 19, 7, 19, 148, 10, 19, 12, 19, 14, 19, 151, 11, 19, 3, 20, 3, 20, 3, 20, 7, 20, 156, 10, 20, 12, 20, 14, 20, 159, 11, 20, 5, 20, 161, 10, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 5, 22, 168, 10, 22, 3, 22, 3, 22, 5, 22, 172, 10, 22, 3, 22, 3, 22, 2, 2, 23, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18, 35, 19, 37, 20, 39, 21, 41, 22, 43, 23, 3, 2, 7, 4, 2, 67, 92, 99, 124, 6, 2, 50, 59, 67, 92, 97, 97, 99, 124, 3, 2, 51, 59, 3, 2, 50, 59, 4, 2, 11, 11, 34, 34, 2, 179, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 3, 45, 3, 2, 2, 2, 5, 50, 3, 2, 2, 2, 7, 64, 3, 2, 2, 2, 9, 66, 3, 2, 2, 2, 11, 74, 3, 2, 2, 2, 13, 84, 3, 2, 2, 2, 15, 89, 3, 2, 2, 2, 17, 92, 3, 2, 2, 2, 19, 98, 3, 2, 2, 2, 21, 104, 3, 2, 2, 2, 23, 113, 3, 2, 2, 2, 25, 122, 3, 2, 2, 2, 27, 129, 3, 2, 2, 2, 29, 131, 3, 2, 2, 2, 31, 137, 3, 2, 2, 2, 33, 139, 3, 2, 2, 2, 35, 141, 3, 2, 2, 2, 37, 144, 3, 2, 2, 2, 39, 160, 3, 2, 2, 2, 41, 162, 3, 2, 2, 2, 43, 171, 3, 2, 2, 2, 45, 46, 7, 118, 2, 2, 46, 47, 7, 99, 2, 2, 47, 48, 7, 117, 2, 2, 48, 49, 7, 109, 2, 2, 49, 4, 3, 2, 2, 2, 50, 51, 7, 114, 2, 2, 51, 52, 7, 116, 2, 2, 52, 53, 7, 113, 2, 2, 53, 54, 7, 113, 2, 2, 54, 55, 7, 104, 2, 2, 55, 56, 7, 34, 2, 2, 56, 57, 7, 110, 2, 2, 57, 58, 7, 103, 2, 2, 58, 59, 7, 111, 2, 2, 59, 60, 7, 111, 2, 2, 60, 61, 7, 99, 2, 2, 61, 62, 7, 118, 2, 2, 62, 63, 7, 99, 2, 2, 63, 6, 3, 2, 2, 2, 64, 65, 7, 60, 2, 2, 65, 8, 3, 2, 2, 2, 66, 67, 7, 110, 2, 2, 67, 68, 7, 103, 2, 2, 68, 69, 7, 111, 2, 2, 69, 70, 7, 111, 2, 2, 70, 71, 7, 99, 2, 2, 71, 72, 7, 118, 2, 2, 72, 73, 7, 99, 2, 2, 73, 10, 3, 2, 2, 2, 74, 75, 7, 107, 2, 2, 75, 76, 7, 112, 2, 2, 76, 77, 7, 102, 2, 2, 77, 78, 7, 119, 2, 2, 78, 79, 7, 101, 2, 2, 79, 80, 7, 118, 2, 2, 80, 81, 7, 107, 2, 2, 81, 82, 7, 113, 2, 2, 82, 83, 7, 112, 2, 2, 83, 12, 3, 2, 2, 2, 84, 85, 7, 101, 2, 2, 85, 86, 7, 99, 2, 2, 86, 87, 7, 117, 2, 2, 87, 88, 7, 103, 2, 2, 88, 14, 3, 2, 2, 2, 89, 90, 7, 75, 2, 2, 90, 91, 7, 74, 2, 2, 91, 16, 3, 2, 2, 2, 92, 93, 7, 111, 2, 2, 93, 94, 7, 99, 2, 2, 94, 95, 7, 122, 2, 2, 95, 96, 7, 114, 2, 2, 96, 97, 7, 118, 2, 2, 97, 18, 3, 2, 2, 2, 98, 99, 7, 111, 2, 2, 99, 100, 7, 99, 2, 2, 100, 101, 7, 122, 2, 2, 101, 102, 7, 82, 2, 2, 102, 103, 7, 118, 2, 2, 103, 20, 3, 2, 2, 2, 104, 105, 7, 111, 2, 2, 105, 106, 7, 107, 2, 2, 106, 107, 7, 112, 2, 2, 107, 108, 7, 117, 2, 2, 108, 109, 7, 118, 2, 2, 109, 110, 7, 103, 2, 2, 110, 111, 7, 114, 2, 2, 111, 112, 7, 117, 2, 2, 112, 22, 3, 2, 2, 2, 113, 114, 7, 111, 2, 2, 114, 115, 7, 99, 2, 2, 115, 116, 7, 122, 2, 2, 116, 117, 7, 117, 2, 2, 117, 118, 7, 118, 2, 2, 118, 119, 7, 103, 2, 2, 119, 120, 7, 114, 2, 2, 120, 121, 7, 117, 2, 2, 121, 24, 3, 2, 2, 2, 122, 123, 7, 104, 2, 2, 123, 124, 7, 113, 2, 2, 124, 125, 7, 116, 2, 2, 125, 126, 7, 99, 2, 2, 126, 127, 7, 110, 2, 2, 127, 128, 7, 110, 2, 2, 128, 26, 3, 2, 2, 2, 129, 130, 7, 46, 2, 2, 130, 28, 3, 2, 2, 2, 131, 132, 7, 104, 2, 2, 132, 133, 7, 107, 2, 2, 133, 134, 7, 122, 2, 2, 134, 135, 7, 103, 2, 2, 135, 136, 7, 102, 2, 2, 136, 30, 3, 2, 2, 2, 137, 138, 7, 63, 2, 2, 138, 32, 3, 2, 2, 2, 139, 140, 7, 42, 2, 2, 140, 34, 3, 2, 2, 2, 141, 142, 7, 43, 2, 2, 142, 36, 3, 2, 2, 2, 143, 145, 9, 2, 2, 2, 144, 143, 3, 2, 2, 2, 145, 149, 3, 2, 2, 2, 146, 148, 9, 3, 2, 2, 147, 146, 3, 2, 2, 2, 148, 151, 3, 2, 2, 2, 149, 147, 3, 2, 2, 2, 149, 150, 3, 2, 2, 2, 150, 38, 3, 2, 2, 2, 151, 149, 3, 2, 2, 2, 152, 161, 7, 50, 2, 2, 153, 157, 9, 4, 2, 2, 154, 156, 9, 5, 2, 2, 155, 154, 3, 2, 2, 2, 156, 159, 3, 2, 2, 2, 157, 155, 3, 2, 2, 2, 157, 158, 3, 2, 2, 2, 158, 161, 3, 2, 2, 2, 159, 157, 3, 2, 2, 2, 160, 152, 3, 2, 2, 2, 160, 153, 3, 2, 2, 2, 161, 40, 3, 2, 2, 2, 162, 163, 9, 6, 2, 2, 163, 164, 3, 2, 2, 2, 164, 165, 8, 21, 2, 2, 165, 42, 3, 2, 2, 2, 166, 168, 7, 15, 2, 2, 167, 166, 3, 2, 2, 2, 167, 168, 3, 2, 2, 2, 168, 169, 3, 2, 2, 2, 169, 172, 7, 12, 2, 2, 170, 172, 7, 15, 2, 2, 171, 167, 3, 2, 2, 2, 171, 170, 3, 2, 2, 2, 172, 173, 3, 2, 2, 2, 173, 174, 8, 22, 2, 2, 174, 44, 3, 2, 2, 2, 10, 2, 144, 147, 149, 157, 160, 167, 171, 3, 8, 2, 2] \ No newline at end of file diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Parser/TaskLexer.tokens b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Parser/TaskLexer.tokens new file mode 100644 index 0000000000000000000000000000000000000000..f045c4e0dd3118664b4921189098760f1d4b31d1 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Parser/TaskLexer.tokens @@ -0,0 +1,38 @@ +T__0=1 +T__1=2 +T__2=3 +T__3=4 +T__4=5 +T__5=6 +T__6=7 +T__7=8 +T__8=9 +T__9=10 +T__10=11 +T__11=12 +T__12=13 +T__13=14 +T__14=15 +T__15=16 +T__16=17 +BEZ=18 +NAT=19 +WHITESPACE=20 +NEWLINE=21 +'task'=1 +'proof lemmata'=2 +':'=3 +'lemmata'=4 +'induction'=5 +'case'=6 +'IH'=7 +'maxpt'=8 +'maxPt'=9 +'minsteps'=10 +'maxsteps'=11 +'forall'=12 +','=13 +'fixed'=14 +'='=15 +'('=16 +')'=17 diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Parser/TaskListener.cs b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Parser/TaskListener.cs new file mode 100644 index 0000000000000000000000000000000000000000..d7fdb8ff0320bda6e5123ffa250543527a06c6a2 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Parser/TaskListener.cs @@ -0,0 +1,275 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// ANTLR Version: 4.8 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +// Generated from Task.g4 by ANTLR 4.8 + +// Unreachable code detected +#pragma warning disable 0162 +// The variable '...' is assigned but its value is never used +#pragma warning disable 0219 +// Missing XML comment for publicly visible type or member '...' +#pragma warning disable 1591 +// Ambiguous reference in cref attribute +#pragma warning disable 419 + +namespace Eingabeverwaltung.Parser.Task_Parser { +using Antlr4.Runtime.Misc; +using IParseTreeListener = Antlr4.Runtime.Tree.IParseTreeListener; +using IToken = Antlr4.Runtime.IToken; + +/// <summary> +/// This interface defines a complete listener for a parse tree produced by +/// <see cref="TaskParser"/>. +/// </summary> +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.8")] +[System.CLSCompliant(false)] +public interface ITaskListener : IParseTreeListener { + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.task"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterTask([NotNull] TaskParser.TaskContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.task"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitTask([NotNull] TaskParser.TaskContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.task_eq"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterTask_eq([NotNull] TaskParser.Task_eqContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.task_eq"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitTask_eq([NotNull] TaskParser.Task_eqContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.lemma_tasks"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterLemma_tasks([NotNull] TaskParser.Lemma_tasksContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.lemma_tasks"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitLemma_tasks([NotNull] TaskParser.Lemma_tasksContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.lemma_task"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterLemma_task([NotNull] TaskParser.Lemma_taskContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.lemma_task"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitLemma_task([NotNull] TaskParser.Lemma_taskContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.task_lemmata"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterTask_lemmata([NotNull] TaskParser.Task_lemmataContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.task_lemmata"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitTask_lemmata([NotNull] TaskParser.Task_lemmataContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.task_lemma"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterTask_lemma([NotNull] TaskParser.Task_lemmaContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.task_lemma"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitTask_lemma([NotNull] TaskParser.Task_lemmaContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.ind_var"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterInd_var([NotNull] TaskParser.Ind_varContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.ind_var"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitInd_var([NotNull] TaskParser.Ind_varContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.config"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterConfig([NotNull] TaskParser.ConfigContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.config"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitConfig([NotNull] TaskParser.ConfigContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.ind_pt"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterInd_pt([NotNull] TaskParser.Ind_ptContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.ind_pt"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitInd_pt([NotNull] TaskParser.Ind_ptContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.case_pt"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterCase_pt([NotNull] TaskParser.Case_ptContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.case_pt"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitCase_pt([NotNull] TaskParser.Case_ptContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.ih_pt"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterIh_pt([NotNull] TaskParser.Ih_ptContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.ih_pt"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitIh_pt([NotNull] TaskParser.Ih_ptContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.task_pt"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterTask_pt([NotNull] TaskParser.Task_ptContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.task_pt"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitTask_pt([NotNull] TaskParser.Task_ptContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.maxpt"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterMaxpt([NotNull] TaskParser.MaxptContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.maxpt"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitMaxpt([NotNull] TaskParser.MaxptContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.minsteps"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterMinsteps([NotNull] TaskParser.MinstepsContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.minsteps"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitMinsteps([NotNull] TaskParser.MinstepsContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.maxsteps"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterMaxsteps([NotNull] TaskParser.MaxstepsContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.maxsteps"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitMaxsteps([NotNull] TaskParser.MaxstepsContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.var"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterVar([NotNull] TaskParser.VarContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.var"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitVar([NotNull] TaskParser.VarContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.sort"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterSort([NotNull] TaskParser.SortContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.sort"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitSort([NotNull] TaskParser.SortContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.forall"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterForall([NotNull] TaskParser.ForallContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.forall"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitForall([NotNull] TaskParser.ForallContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.fixed"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterFixed([NotNull] TaskParser.FixedContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.fixed"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitFixed([NotNull] TaskParser.FixedContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.eq_var_def"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterEq_var_def([NotNull] TaskParser.Eq_var_defContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.eq_var_def"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitEq_var_def([NotNull] TaskParser.Eq_var_defContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.eq"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterEq([NotNull] TaskParser.EqContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.eq"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitEq([NotNull] TaskParser.EqContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.mytree"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterMytree([NotNull] TaskParser.MytreeContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.mytree"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitMytree([NotNull] TaskParser.MytreeContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.treeLeaf"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterTreeLeaf([NotNull] TaskParser.TreeLeafContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.treeLeaf"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitTreeLeaf([NotNull] TaskParser.TreeLeafContext context); + /// <summary> + /// Enter a parse tree produced by <see cref="TaskParser.treeNode"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void EnterTreeNode([NotNull] TaskParser.TreeNodeContext context); + /// <summary> + /// Exit a parse tree produced by <see cref="TaskParser.treeNode"/>. + /// </summary> + /// <param name="context">The parse tree.</param> + void ExitTreeNode([NotNull] TaskParser.TreeNodeContext context); +} +} // namespace Eingabeverwaltung.Parser.Task_Parser diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Parser/TaskParser.cs b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Parser/TaskParser.cs new file mode 100644 index 0000000000000000000000000000000000000000..aee8ce853c8420a6ef2474647d29d5e79bd33a95 --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/Task_Parser/TaskParser.cs @@ -0,0 +1,1500 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// ANTLR Version: 4.8 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +// Generated from Task.g4 by ANTLR 4.8 + +// Unreachable code detected +#pragma warning disable 0162 +// The variable '...' is assigned but its value is never used +#pragma warning disable 0219 +// Missing XML comment for publicly visible type or member '...' +#pragma warning disable 1591 +// Ambiguous reference in cref attribute +#pragma warning disable 419 + +namespace Eingabeverwaltung.Parser.Task_Parser { +using System; +using System.IO; +using System.Text; +using System.Diagnostics; +using System.Collections.Generic; +using Antlr4.Runtime; +using Antlr4.Runtime.Atn; +using Antlr4.Runtime.Misc; +using Antlr4.Runtime.Tree; +using DFA = Antlr4.Runtime.Dfa.DFA; + +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.8")] +[System.CLSCompliant(false)] +public partial class TaskParser : Parser { + protected static DFA[] decisionToDFA; + protected static PredictionContextCache sharedContextCache = new PredictionContextCache(); + public const int + T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, + T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17, + BEZ=18, NAT=19, WHITESPACE=20, NEWLINE=21; + public const int + RULE_task = 0, RULE_task_eq = 1, RULE_lemma_tasks = 2, RULE_lemma_task = 3, + RULE_task_lemmata = 4, RULE_task_lemma = 5, RULE_ind_var = 6, RULE_config = 7, + RULE_ind_pt = 8, RULE_case_pt = 9, RULE_ih_pt = 10, RULE_task_pt = 11, + RULE_maxpt = 12, RULE_minsteps = 13, RULE_maxsteps = 14, RULE_var = 15, + RULE_sort = 16, RULE_forall = 17, RULE_fixed = 18, RULE_eq_var_def = 19, + RULE_eq = 20, RULE_mytree = 21, RULE_treeLeaf = 22, RULE_treeNode = 23; + public static readonly string[] ruleNames = { + "task", "task_eq", "lemma_tasks", "lemma_task", "task_lemmata", "task_lemma", + "ind_var", "config", "ind_pt", "case_pt", "ih_pt", "task_pt", "maxpt", + "minsteps", "maxsteps", "var", "sort", "forall", "fixed", "eq_var_def", + "eq", "mytree", "treeLeaf", "treeNode" + }; + + private static readonly string[] _LiteralNames = { + null, "'task'", "'proof lemmata'", "':'", "'lemmata'", "'induction'", + "'case'", "'IH'", "'maxpt'", "'maxPt'", "'minsteps'", "'maxsteps'", "'forall'", + "','", "'fixed'", "'='", "'('", "')'" + }; + private static readonly string[] _SymbolicNames = { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, "BEZ", "NAT", "WHITESPACE", "NEWLINE" + }; + public static readonly IVocabulary DefaultVocabulary = new Vocabulary(_LiteralNames, _SymbolicNames); + + [NotNull] + public override IVocabulary Vocabulary + { + get + { + return DefaultVocabulary; + } + } + + public override string GrammarFileName { get { return "Task.g4"; } } + + public override string[] RuleNames { get { return ruleNames; } } + + public override string SerializedAtn { get { return new string(_serializedATN); } } + + static TaskParser() { + decisionToDFA = new DFA[_ATN.NumberOfDecisions]; + for (int i = 0; i < _ATN.NumberOfDecisions; i++) { + decisionToDFA[i] = new DFA(_ATN.GetDecisionState(i), i); + } + } + + public TaskParser(ITokenStream input) : this(input, Console.Out, Console.Error) { } + + public TaskParser(ITokenStream input, TextWriter output, TextWriter errorOutput) + : base(input, output, errorOutput) + { + Interpreter = new ParserATNSimulator(this, _ATN, decisionToDFA, sharedContextCache); + } + + public partial class TaskContext : ParserRuleContext { + public Task_eqContext task_eq() { + return GetRuleContext<Task_eqContext>(0); + } + public ITerminalNode Eof() { return GetToken(TaskParser.Eof, 0); } + public Lemma_tasksContext lemma_tasks() { + return GetRuleContext<Lemma_tasksContext>(0); + } + public Task_lemmataContext task_lemmata() { + return GetRuleContext<Task_lemmataContext>(0); + } + public TaskContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_task; } } + public override void EnterRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.EnterTask(this); + } + public override void ExitRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.ExitTask(this); + } + } + + [RuleVersion(0)] + public TaskContext task() { + TaskContext _localctx = new TaskContext(Context, State); + EnterRule(_localctx, 0, RULE_task); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 48; task_eq(); + State = 50; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==T__1) { + { + State = 49; lemma_tasks(); + } + } + + State = 53; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==T__3) { + { + State = 52; task_lemmata(); + } + } + + State = 55; Match(Eof); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Task_eqContext : ParserRuleContext { + public EqContext eq() { + return GetRuleContext<EqContext>(0); + } + public ConfigContext config() { + return GetRuleContext<ConfigContext>(0); + } + public Ind_varContext ind_var() { + return GetRuleContext<Ind_varContext>(0); + } + public Task_eqContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_task_eq; } } + public override void EnterRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.EnterTask_eq(this); + } + public override void ExitRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.ExitTask_eq(this); + } + } + + [RuleVersion(0)] + public Task_eqContext task_eq() { + Task_eqContext _localctx = new Task_eqContext(Context, State); + EnterRule(_localctx, 2, RULE_task_eq); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 57; Match(T__0); + State = 58; eq(); + State = 60; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==T__4) { + { + State = 59; ind_var(); + } + } + + State = 62; config(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Lemma_tasksContext : ParserRuleContext { + public Lemma_taskContext[] lemma_task() { + return GetRuleContexts<Lemma_taskContext>(); + } + public Lemma_taskContext lemma_task(int i) { + return GetRuleContext<Lemma_taskContext>(i); + } + public Lemma_tasksContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_lemma_tasks; } } + public override void EnterRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.EnterLemma_tasks(this); + } + public override void ExitRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.ExitLemma_tasks(this); + } + } + + [RuleVersion(0)] + public Lemma_tasksContext lemma_tasks() { + Lemma_tasksContext _localctx = new Lemma_tasksContext(Context, State); + EnterRule(_localctx, 4, RULE_lemma_tasks); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 64; Match(T__1); + State = 66; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 65; lemma_task(); + } + } + State = 68; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==BEZ ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Lemma_taskContext : ParserRuleContext { + public ITerminalNode BEZ() { return GetToken(TaskParser.BEZ, 0); } + public EqContext eq() { + return GetRuleContext<EqContext>(0); + } + public ConfigContext config() { + return GetRuleContext<ConfigContext>(0); + } + public Ind_varContext ind_var() { + return GetRuleContext<Ind_varContext>(0); + } + public Lemma_taskContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_lemma_task; } } + public override void EnterRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.EnterLemma_task(this); + } + public override void ExitRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.ExitLemma_task(this); + } + } + + [RuleVersion(0)] + public Lemma_taskContext lemma_task() { + Lemma_taskContext _localctx = new Lemma_taskContext(Context, State); + EnterRule(_localctx, 6, RULE_lemma_task); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 70; Match(BEZ); + State = 71; Match(T__2); + State = 72; eq(); + State = 74; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==T__4) { + { + State = 73; ind_var(); + } + } + + State = 76; config(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Task_lemmataContext : ParserRuleContext { + public Task_lemmaContext[] task_lemma() { + return GetRuleContexts<Task_lemmaContext>(); + } + public Task_lemmaContext task_lemma(int i) { + return GetRuleContext<Task_lemmaContext>(i); + } + public Task_lemmataContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_task_lemmata; } } + public override void EnterRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.EnterTask_lemmata(this); + } + public override void ExitRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.ExitTask_lemmata(this); + } + } + + [RuleVersion(0)] + public Task_lemmataContext task_lemmata() { + Task_lemmataContext _localctx = new Task_lemmataContext(Context, State); + EnterRule(_localctx, 8, RULE_task_lemmata); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 78; Match(T__3); + State = 80; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 79; task_lemma(); + } + } + State = 82; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==BEZ ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Task_lemmaContext : ParserRuleContext { + public ITerminalNode BEZ() { return GetToken(TaskParser.BEZ, 0); } + public EqContext eq() { + return GetRuleContext<EqContext>(0); + } + public Task_lemmaContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_task_lemma; } } + public override void EnterRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.EnterTask_lemma(this); + } + public override void ExitRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.ExitTask_lemma(this); + } + } + + [RuleVersion(0)] + public Task_lemmaContext task_lemma() { + Task_lemmaContext _localctx = new Task_lemmaContext(Context, State); + EnterRule(_localctx, 10, RULE_task_lemma); + try { + EnterOuterAlt(_localctx, 1); + { + State = 84; Match(BEZ); + State = 85; Match(T__2); + State = 86; eq(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Ind_varContext : ParserRuleContext { + public ITerminalNode BEZ() { return GetToken(TaskParser.BEZ, 0); } + public Ind_varContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ind_var; } } + public override void EnterRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.EnterInd_var(this); + } + public override void ExitRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.ExitInd_var(this); + } + } + + [RuleVersion(0)] + public Ind_varContext ind_var() { + Ind_varContext _localctx = new Ind_varContext(Context, State); + EnterRule(_localctx, 12, RULE_ind_var); + try { + EnterOuterAlt(_localctx, 1); + { + State = 88; Match(T__4); + State = 89; Match(BEZ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ConfigContext : ParserRuleContext { + public Task_ptContext task_pt() { + return GetRuleContext<Task_ptContext>(0); + } + public Ind_ptContext ind_pt() { + return GetRuleContext<Ind_ptContext>(0); + } + public ConfigContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_config; } } + public override void EnterRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.EnterConfig(this); + } + public override void ExitRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.ExitConfig(this); + } + } + + [RuleVersion(0)] + public ConfigContext config() { + ConfigContext _localctx = new ConfigContext(Context, State); + EnterRule(_localctx, 14, RULE_config); + try { + EnterOuterAlt(_localctx, 1); + { + State = 93; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case T__7: + case T__8: + { + State = 91; task_pt(); + } + break; + case T__5: + { + State = 92; ind_pt(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Ind_ptContext : ParserRuleContext { + public Ih_ptContext ih_pt() { + return GetRuleContext<Ih_ptContext>(0); + } + public Case_ptContext[] case_pt() { + return GetRuleContexts<Case_ptContext>(); + } + public Case_ptContext case_pt(int i) { + return GetRuleContext<Case_ptContext>(i); + } + public Ind_ptContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ind_pt; } } + public override void EnterRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.EnterInd_pt(this); + } + public override void ExitRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.ExitInd_pt(this); + } + } + + [RuleVersion(0)] + public Ind_ptContext ind_pt() { + Ind_ptContext _localctx = new Ind_ptContext(Context, State); + EnterRule(_localctx, 16, RULE_ind_pt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 96; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 95; case_pt(); + } + } + State = 98; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==T__5 ); + State = 100; ih_pt(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Case_ptContext : ParserRuleContext { + public ITerminalNode BEZ() { return GetToken(TaskParser.BEZ, 0); } + public Task_ptContext task_pt() { + return GetRuleContext<Task_ptContext>(0); + } + public Case_ptContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_case_pt; } } + public override void EnterRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.EnterCase_pt(this); + } + public override void ExitRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.ExitCase_pt(this); + } + } + + [RuleVersion(0)] + public Case_ptContext case_pt() { + Case_ptContext _localctx = new Case_ptContext(Context, State); + EnterRule(_localctx, 18, RULE_case_pt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 102; Match(T__5); + State = 103; Match(BEZ); + State = 104; task_pt(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Ih_ptContext : ParserRuleContext { + public MaxptContext maxpt() { + return GetRuleContext<MaxptContext>(0); + } + public Ih_ptContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ih_pt; } } + public override void EnterRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.EnterIh_pt(this); + } + public override void ExitRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.ExitIh_pt(this); + } + } + + [RuleVersion(0)] + public Ih_ptContext ih_pt() { + Ih_ptContext _localctx = new Ih_ptContext(Context, State); + EnterRule(_localctx, 20, RULE_ih_pt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 106; Match(T__6); + State = 107; maxpt(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Task_ptContext : ParserRuleContext { + public MaxptContext maxpt() { + return GetRuleContext<MaxptContext>(0); + } + public MinstepsContext minsteps() { + return GetRuleContext<MinstepsContext>(0); + } + public MaxstepsContext maxsteps() { + return GetRuleContext<MaxstepsContext>(0); + } + public Task_ptContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_task_pt; } } + public override void EnterRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.EnterTask_pt(this); + } + public override void ExitRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.ExitTask_pt(this); + } + } + + [RuleVersion(0)] + public Task_ptContext task_pt() { + Task_ptContext _localctx = new Task_ptContext(Context, State); + EnterRule(_localctx, 22, RULE_task_pt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 109; maxpt(); + State = 110; minsteps(); + State = 111; maxsteps(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MaxptContext : ParserRuleContext { + public ITerminalNode NAT() { return GetToken(TaskParser.NAT, 0); } + public MaxptContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_maxpt; } } + public override void EnterRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.EnterMaxpt(this); + } + public override void ExitRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.ExitMaxpt(this); + } + } + + [RuleVersion(0)] + public MaxptContext maxpt() { + MaxptContext _localctx = new MaxptContext(Context, State); + EnterRule(_localctx, 24, RULE_maxpt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 113; + _la = TokenStream.LA(1); + if ( !(_la==T__7 || _la==T__8) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + State = 114; Match(NAT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MinstepsContext : ParserRuleContext { + public ITerminalNode NAT() { return GetToken(TaskParser.NAT, 0); } + public MinstepsContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_minsteps; } } + public override void EnterRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.EnterMinsteps(this); + } + public override void ExitRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.ExitMinsteps(this); + } + } + + [RuleVersion(0)] + public MinstepsContext minsteps() { + MinstepsContext _localctx = new MinstepsContext(Context, State); + EnterRule(_localctx, 26, RULE_minsteps); + try { + EnterOuterAlt(_localctx, 1); + { + State = 116; Match(T__9); + State = 117; Match(NAT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MaxstepsContext : ParserRuleContext { + public ITerminalNode NAT() { return GetToken(TaskParser.NAT, 0); } + public MaxstepsContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_maxsteps; } } + public override void EnterRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.EnterMaxsteps(this); + } + public override void ExitRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.ExitMaxsteps(this); + } + } + + [RuleVersion(0)] + public MaxstepsContext maxsteps() { + MaxstepsContext _localctx = new MaxstepsContext(Context, State); + EnterRule(_localctx, 28, RULE_maxsteps); + try { + EnterOuterAlt(_localctx, 1); + { + State = 119; Match(T__10); + State = 120; Match(NAT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class VarContext : ParserRuleContext { + public ITerminalNode BEZ() { return GetToken(TaskParser.BEZ, 0); } + public SortContext sort() { + return GetRuleContext<SortContext>(0); + } + public VarContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_var; } } + public override void EnterRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.EnterVar(this); + } + public override void ExitRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.ExitVar(this); + } + } + + [RuleVersion(0)] + public VarContext var() { + VarContext _localctx = new VarContext(Context, State); + EnterRule(_localctx, 30, RULE_var); + try { + EnterOuterAlt(_localctx, 1); + { + State = 122; Match(BEZ); + State = 123; Match(T__2); + State = 124; sort(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SortContext : ParserRuleContext { + public ITerminalNode BEZ() { return GetToken(TaskParser.BEZ, 0); } + public SortContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_sort; } } + public override void EnterRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.EnterSort(this); + } + public override void ExitRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.ExitSort(this); + } + } + + [RuleVersion(0)] + public SortContext sort() { + SortContext _localctx = new SortContext(Context, State); + EnterRule(_localctx, 32, RULE_sort); + try { + EnterOuterAlt(_localctx, 1); + { + State = 126; Match(BEZ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ForallContext : ParserRuleContext { + public VarContext[] var() { + return GetRuleContexts<VarContext>(); + } + public VarContext var(int i) { + return GetRuleContext<VarContext>(i); + } + public ForallContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_forall; } } + public override void EnterRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.EnterForall(this); + } + public override void ExitRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.ExitForall(this); + } + } + + [RuleVersion(0)] + public ForallContext forall() { + ForallContext _localctx = new ForallContext(Context, State); + EnterRule(_localctx, 34, RULE_forall); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 128; Match(T__11); + State = 129; var(); + State = 134; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==T__12) { + { + { + State = 130; Match(T__12); + State = 131; var(); + } + } + State = 136; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class FixedContext : ParserRuleContext { + public VarContext[] var() { + return GetRuleContexts<VarContext>(); + } + public VarContext var(int i) { + return GetRuleContext<VarContext>(i); + } + public FixedContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_fixed; } } + public override void EnterRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.EnterFixed(this); + } + public override void ExitRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.ExitFixed(this); + } + } + + [RuleVersion(0)] + public FixedContext @fixed() { + FixedContext _localctx = new FixedContext(Context, State); + EnterRule(_localctx, 36, RULE_fixed); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 137; Match(T__13); + State = 138; var(); + State = 143; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==T__12) { + { + { + State = 139; Match(T__12); + State = 140; var(); + } + } + State = 145; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Eq_var_defContext : ParserRuleContext { + public FixedContext @fixed() { + return GetRuleContext<FixedContext>(0); + } + public ForallContext forall() { + return GetRuleContext<ForallContext>(0); + } + public Eq_var_defContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_eq_var_def; } } + public override void EnterRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.EnterEq_var_def(this); + } + public override void ExitRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.ExitEq_var_def(this); + } + } + + [RuleVersion(0)] + public Eq_var_defContext eq_var_def() { + Eq_var_defContext _localctx = new Eq_var_defContext(Context, State); + EnterRule(_localctx, 38, RULE_eq_var_def); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 162; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case T__13: + { + { + State = 146; @fixed(); + State = 147; Match(T__2); + } + State = 152; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==T__11) { + { + State = 149; forall(); + State = 150; Match(T__2); + } + } + + } + break; + case T__11: + { + { + State = 154; forall(); + State = 155; Match(T__2); + } + State = 160; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==T__13) { + { + State = 157; @fixed(); + State = 158; Match(T__2); + } + } + + } + break; + case BEZ: + break; + default: + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class EqContext : ParserRuleContext { + public Eq_var_defContext eq_var_def() { + return GetRuleContext<Eq_var_defContext>(0); + } + public MytreeContext[] mytree() { + return GetRuleContexts<MytreeContext>(); + } + public MytreeContext mytree(int i) { + return GetRuleContext<MytreeContext>(i); + } + public EqContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_eq; } } + public override void EnterRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.EnterEq(this); + } + public override void ExitRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.ExitEq(this); + } + } + + [RuleVersion(0)] + public EqContext eq() { + EqContext _localctx = new EqContext(Context, State); + EnterRule(_localctx, 40, RULE_eq); + try { + EnterOuterAlt(_localctx, 1); + { + State = 164; eq_var_def(); + State = 165; mytree(); + State = 166; Match(T__14); + State = 167; mytree(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MytreeContext : ParserRuleContext { + public TreeLeafContext treeLeaf() { + return GetRuleContext<TreeLeafContext>(0); + } + public TreeNodeContext treeNode() { + return GetRuleContext<TreeNodeContext>(0); + } + public MytreeContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_mytree; } } + public override void EnterRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.EnterMytree(this); + } + public override void ExitRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.ExitMytree(this); + } + } + + [RuleVersion(0)] + public MytreeContext mytree() { + MytreeContext _localctx = new MytreeContext(Context, State); + EnterRule(_localctx, 42, RULE_mytree); + try { + State = 171; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,13,Context) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 169; treeLeaf(); + } + break; + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 170; treeNode(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TreeLeafContext : ParserRuleContext { + public ITerminalNode BEZ() { return GetToken(TaskParser.BEZ, 0); } + public TreeLeafContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_treeLeaf; } } + public override void EnterRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.EnterTreeLeaf(this); + } + public override void ExitRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.ExitTreeLeaf(this); + } + } + + [RuleVersion(0)] + public TreeLeafContext treeLeaf() { + TreeLeafContext _localctx = new TreeLeafContext(Context, State); + EnterRule(_localctx, 44, RULE_treeLeaf); + try { + EnterOuterAlt(_localctx, 1); + { + State = 173; Match(BEZ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TreeNodeContext : ParserRuleContext { + public ITerminalNode BEZ() { return GetToken(TaskParser.BEZ, 0); } + public MytreeContext[] mytree() { + return GetRuleContexts<MytreeContext>(); + } + public MytreeContext mytree(int i) { + return GetRuleContext<MytreeContext>(i); + } + public TreeNodeContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_treeNode; } } + public override void EnterRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.EnterTreeNode(this); + } + public override void ExitRule(IParseTreeListener listener) { + ITaskListener typedListener = listener as ITaskListener; + if (typedListener != null) typedListener.ExitTreeNode(this); + } + } + + [RuleVersion(0)] + public TreeNodeContext treeNode() { + TreeNodeContext _localctx = new TreeNodeContext(Context, State); + EnterRule(_localctx, 46, RULE_treeNode); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 175; Match(BEZ); + State = 176; Match(T__15); + State = 177; mytree(); + State = 182; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==T__12) { + { + { + State = 178; Match(T__12); + State = 179; mytree(); + } + } + State = 184; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + State = 185; Match(T__16); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + private static char[] _serializedATN = { + '\x3', '\x608B', '\xA72A', '\x8133', '\xB9ED', '\x417C', '\x3BE7', '\x7786', + '\x5964', '\x3', '\x17', '\xBE', '\x4', '\x2', '\t', '\x2', '\x4', '\x3', + '\t', '\x3', '\x4', '\x4', '\t', '\x4', '\x4', '\x5', '\t', '\x5', '\x4', + '\x6', '\t', '\x6', '\x4', '\a', '\t', '\a', '\x4', '\b', '\t', '\b', + '\x4', '\t', '\t', '\t', '\x4', '\n', '\t', '\n', '\x4', '\v', '\t', '\v', + '\x4', '\f', '\t', '\f', '\x4', '\r', '\t', '\r', '\x4', '\xE', '\t', + '\xE', '\x4', '\xF', '\t', '\xF', '\x4', '\x10', '\t', '\x10', '\x4', + '\x11', '\t', '\x11', '\x4', '\x12', '\t', '\x12', '\x4', '\x13', '\t', + '\x13', '\x4', '\x14', '\t', '\x14', '\x4', '\x15', '\t', '\x15', '\x4', + '\x16', '\t', '\x16', '\x4', '\x17', '\t', '\x17', '\x4', '\x18', '\t', + '\x18', '\x4', '\x19', '\t', '\x19', '\x3', '\x2', '\x3', '\x2', '\x5', + '\x2', '\x35', '\n', '\x2', '\x3', '\x2', '\x5', '\x2', '\x38', '\n', + '\x2', '\x3', '\x2', '\x3', '\x2', '\x3', '\x3', '\x3', '\x3', '\x3', + '\x3', '\x5', '\x3', '?', '\n', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', + '\x4', '\x3', '\x4', '\x6', '\x4', '\x45', '\n', '\x4', '\r', '\x4', '\xE', + '\x4', '\x46', '\x3', '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', '\x5', + '\x5', '\x5', 'M', '\n', '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', '\x6', + '\x3', '\x6', '\x6', '\x6', 'S', '\n', '\x6', '\r', '\x6', '\xE', '\x6', + 'T', '\x3', '\a', '\x3', '\a', '\x3', '\a', '\x3', '\a', '\x3', '\b', + '\x3', '\b', '\x3', '\b', '\x3', '\t', '\x3', '\t', '\x5', '\t', '`', + '\n', '\t', '\x3', '\n', '\x6', '\n', '\x63', '\n', '\n', '\r', '\n', + '\xE', '\n', '\x64', '\x3', '\n', '\x3', '\n', '\x3', '\v', '\x3', '\v', + '\x3', '\v', '\x3', '\v', '\x3', '\f', '\x3', '\f', '\x3', '\f', '\x3', + '\r', '\x3', '\r', '\x3', '\r', '\x3', '\r', '\x3', '\xE', '\x3', '\xE', + '\x3', '\xE', '\x3', '\xF', '\x3', '\xF', '\x3', '\xF', '\x3', '\x10', + '\x3', '\x10', '\x3', '\x10', '\x3', '\x11', '\x3', '\x11', '\x3', '\x11', + '\x3', '\x11', '\x3', '\x12', '\x3', '\x12', '\x3', '\x13', '\x3', '\x13', + '\x3', '\x13', '\x3', '\x13', '\a', '\x13', '\x87', '\n', '\x13', '\f', + '\x13', '\xE', '\x13', '\x8A', '\v', '\x13', '\x3', '\x14', '\x3', '\x14', + '\x3', '\x14', '\x3', '\x14', '\a', '\x14', '\x90', '\n', '\x14', '\f', + '\x14', '\xE', '\x14', '\x93', '\v', '\x14', '\x3', '\x15', '\x3', '\x15', + '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', '\x5', '\x15', + '\x9B', '\n', '\x15', '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', '\x3', + '\x15', '\x3', '\x15', '\x3', '\x15', '\x5', '\x15', '\xA3', '\n', '\x15', + '\x5', '\x15', '\xA5', '\n', '\x15', '\x3', '\x16', '\x3', '\x16', '\x3', + '\x16', '\x3', '\x16', '\x3', '\x16', '\x3', '\x17', '\x3', '\x17', '\x5', + '\x17', '\xAE', '\n', '\x17', '\x3', '\x18', '\x3', '\x18', '\x3', '\x19', + '\x3', '\x19', '\x3', '\x19', '\x3', '\x19', '\x3', '\x19', '\a', '\x19', + '\xB7', '\n', '\x19', '\f', '\x19', '\xE', '\x19', '\xBA', '\v', '\x19', + '\x3', '\x19', '\x3', '\x19', '\x3', '\x19', '\x2', '\x2', '\x1A', '\x2', + '\x4', '\x6', '\b', '\n', '\f', '\xE', '\x10', '\x12', '\x14', '\x16', + '\x18', '\x1A', '\x1C', '\x1E', ' ', '\"', '$', '&', '(', '*', ',', '.', + '\x30', '\x2', '\x3', '\x3', '\x2', '\n', '\v', '\x2', '\xB5', '\x2', + '\x32', '\x3', '\x2', '\x2', '\x2', '\x4', ';', '\x3', '\x2', '\x2', '\x2', + '\x6', '\x42', '\x3', '\x2', '\x2', '\x2', '\b', 'H', '\x3', '\x2', '\x2', + '\x2', '\n', 'P', '\x3', '\x2', '\x2', '\x2', '\f', 'V', '\x3', '\x2', + '\x2', '\x2', '\xE', 'Z', '\x3', '\x2', '\x2', '\x2', '\x10', '_', '\x3', + '\x2', '\x2', '\x2', '\x12', '\x62', '\x3', '\x2', '\x2', '\x2', '\x14', + 'h', '\x3', '\x2', '\x2', '\x2', '\x16', 'l', '\x3', '\x2', '\x2', '\x2', + '\x18', 'o', '\x3', '\x2', '\x2', '\x2', '\x1A', 's', '\x3', '\x2', '\x2', + '\x2', '\x1C', 'v', '\x3', '\x2', '\x2', '\x2', '\x1E', 'y', '\x3', '\x2', + '\x2', '\x2', ' ', '|', '\x3', '\x2', '\x2', '\x2', '\"', '\x80', '\x3', + '\x2', '\x2', '\x2', '$', '\x82', '\x3', '\x2', '\x2', '\x2', '&', '\x8B', + '\x3', '\x2', '\x2', '\x2', '(', '\xA4', '\x3', '\x2', '\x2', '\x2', '*', + '\xA6', '\x3', '\x2', '\x2', '\x2', ',', '\xAD', '\x3', '\x2', '\x2', + '\x2', '.', '\xAF', '\x3', '\x2', '\x2', '\x2', '\x30', '\xB1', '\x3', + '\x2', '\x2', '\x2', '\x32', '\x34', '\x5', '\x4', '\x3', '\x2', '\x33', + '\x35', '\x5', '\x6', '\x4', '\x2', '\x34', '\x33', '\x3', '\x2', '\x2', + '\x2', '\x34', '\x35', '\x3', '\x2', '\x2', '\x2', '\x35', '\x37', '\x3', + '\x2', '\x2', '\x2', '\x36', '\x38', '\x5', '\n', '\x6', '\x2', '\x37', + '\x36', '\x3', '\x2', '\x2', '\x2', '\x37', '\x38', '\x3', '\x2', '\x2', + '\x2', '\x38', '\x39', '\x3', '\x2', '\x2', '\x2', '\x39', ':', '\a', + '\x2', '\x2', '\x3', ':', '\x3', '\x3', '\x2', '\x2', '\x2', ';', '<', + '\a', '\x3', '\x2', '\x2', '<', '>', '\x5', '*', '\x16', '\x2', '=', '?', + '\x5', '\xE', '\b', '\x2', '>', '=', '\x3', '\x2', '\x2', '\x2', '>', + '?', '\x3', '\x2', '\x2', '\x2', '?', '@', '\x3', '\x2', '\x2', '\x2', + '@', '\x41', '\x5', '\x10', '\t', '\x2', '\x41', '\x5', '\x3', '\x2', + '\x2', '\x2', '\x42', '\x44', '\a', '\x4', '\x2', '\x2', '\x43', '\x45', + '\x5', '\b', '\x5', '\x2', '\x44', '\x43', '\x3', '\x2', '\x2', '\x2', + '\x45', '\x46', '\x3', '\x2', '\x2', '\x2', '\x46', '\x44', '\x3', '\x2', + '\x2', '\x2', '\x46', 'G', '\x3', '\x2', '\x2', '\x2', 'G', '\a', '\x3', + '\x2', '\x2', '\x2', 'H', 'I', '\a', '\x14', '\x2', '\x2', 'I', 'J', '\a', + '\x5', '\x2', '\x2', 'J', 'L', '\x5', '*', '\x16', '\x2', 'K', 'M', '\x5', + '\xE', '\b', '\x2', 'L', 'K', '\x3', '\x2', '\x2', '\x2', 'L', 'M', '\x3', + '\x2', '\x2', '\x2', 'M', 'N', '\x3', '\x2', '\x2', '\x2', 'N', 'O', '\x5', + '\x10', '\t', '\x2', 'O', '\t', '\x3', '\x2', '\x2', '\x2', 'P', 'R', + '\a', '\x6', '\x2', '\x2', 'Q', 'S', '\x5', '\f', '\a', '\x2', 'R', 'Q', + '\x3', '\x2', '\x2', '\x2', 'S', 'T', '\x3', '\x2', '\x2', '\x2', 'T', + 'R', '\x3', '\x2', '\x2', '\x2', 'T', 'U', '\x3', '\x2', '\x2', '\x2', + 'U', '\v', '\x3', '\x2', '\x2', '\x2', 'V', 'W', '\a', '\x14', '\x2', + '\x2', 'W', 'X', '\a', '\x5', '\x2', '\x2', 'X', 'Y', '\x5', '*', '\x16', + '\x2', 'Y', '\r', '\x3', '\x2', '\x2', '\x2', 'Z', '[', '\a', '\a', '\x2', + '\x2', '[', '\\', '\a', '\x14', '\x2', '\x2', '\\', '\xF', '\x3', '\x2', + '\x2', '\x2', ']', '`', '\x5', '\x18', '\r', '\x2', '^', '`', '\x5', '\x12', + '\n', '\x2', '_', ']', '\x3', '\x2', '\x2', '\x2', '_', '^', '\x3', '\x2', + '\x2', '\x2', '`', '\x11', '\x3', '\x2', '\x2', '\x2', '\x61', '\x63', + '\x5', '\x14', '\v', '\x2', '\x62', '\x61', '\x3', '\x2', '\x2', '\x2', + '\x63', '\x64', '\x3', '\x2', '\x2', '\x2', '\x64', '\x62', '\x3', '\x2', + '\x2', '\x2', '\x64', '\x65', '\x3', '\x2', '\x2', '\x2', '\x65', '\x66', + '\x3', '\x2', '\x2', '\x2', '\x66', 'g', '\x5', '\x16', '\f', '\x2', 'g', + '\x13', '\x3', '\x2', '\x2', '\x2', 'h', 'i', '\a', '\b', '\x2', '\x2', + 'i', 'j', '\a', '\x14', '\x2', '\x2', 'j', 'k', '\x5', '\x18', '\r', '\x2', + 'k', '\x15', '\x3', '\x2', '\x2', '\x2', 'l', 'm', '\a', '\t', '\x2', + '\x2', 'm', 'n', '\x5', '\x1A', '\xE', '\x2', 'n', '\x17', '\x3', '\x2', + '\x2', '\x2', 'o', 'p', '\x5', '\x1A', '\xE', '\x2', 'p', 'q', '\x5', + '\x1C', '\xF', '\x2', 'q', 'r', '\x5', '\x1E', '\x10', '\x2', 'r', '\x19', + '\x3', '\x2', '\x2', '\x2', 's', 't', '\t', '\x2', '\x2', '\x2', 't', + 'u', '\a', '\x15', '\x2', '\x2', 'u', '\x1B', '\x3', '\x2', '\x2', '\x2', + 'v', 'w', '\a', '\f', '\x2', '\x2', 'w', 'x', '\a', '\x15', '\x2', '\x2', + 'x', '\x1D', '\x3', '\x2', '\x2', '\x2', 'y', 'z', '\a', '\r', '\x2', + '\x2', 'z', '{', '\a', '\x15', '\x2', '\x2', '{', '\x1F', '\x3', '\x2', + '\x2', '\x2', '|', '}', '\a', '\x14', '\x2', '\x2', '}', '~', '\a', '\x5', + '\x2', '\x2', '~', '\x7F', '\x5', '\"', '\x12', '\x2', '\x7F', '!', '\x3', + '\x2', '\x2', '\x2', '\x80', '\x81', '\a', '\x14', '\x2', '\x2', '\x81', + '#', '\x3', '\x2', '\x2', '\x2', '\x82', '\x83', '\a', '\xE', '\x2', '\x2', + '\x83', '\x88', '\x5', ' ', '\x11', '\x2', '\x84', '\x85', '\a', '\xF', + '\x2', '\x2', '\x85', '\x87', '\x5', ' ', '\x11', '\x2', '\x86', '\x84', + '\x3', '\x2', '\x2', '\x2', '\x87', '\x8A', '\x3', '\x2', '\x2', '\x2', + '\x88', '\x86', '\x3', '\x2', '\x2', '\x2', '\x88', '\x89', '\x3', '\x2', + '\x2', '\x2', '\x89', '%', '\x3', '\x2', '\x2', '\x2', '\x8A', '\x88', + '\x3', '\x2', '\x2', '\x2', '\x8B', '\x8C', '\a', '\x10', '\x2', '\x2', + '\x8C', '\x91', '\x5', ' ', '\x11', '\x2', '\x8D', '\x8E', '\a', '\xF', + '\x2', '\x2', '\x8E', '\x90', '\x5', ' ', '\x11', '\x2', '\x8F', '\x8D', + '\x3', '\x2', '\x2', '\x2', '\x90', '\x93', '\x3', '\x2', '\x2', '\x2', + '\x91', '\x8F', '\x3', '\x2', '\x2', '\x2', '\x91', '\x92', '\x3', '\x2', + '\x2', '\x2', '\x92', '\'', '\x3', '\x2', '\x2', '\x2', '\x93', '\x91', + '\x3', '\x2', '\x2', '\x2', '\x94', '\x95', '\x5', '&', '\x14', '\x2', + '\x95', '\x96', '\a', '\x5', '\x2', '\x2', '\x96', '\x9A', '\x3', '\x2', + '\x2', '\x2', '\x97', '\x98', '\x5', '$', '\x13', '\x2', '\x98', '\x99', + '\a', '\x5', '\x2', '\x2', '\x99', '\x9B', '\x3', '\x2', '\x2', '\x2', + '\x9A', '\x97', '\x3', '\x2', '\x2', '\x2', '\x9A', '\x9B', '\x3', '\x2', + '\x2', '\x2', '\x9B', '\xA5', '\x3', '\x2', '\x2', '\x2', '\x9C', '\x9D', + '\x5', '$', '\x13', '\x2', '\x9D', '\x9E', '\a', '\x5', '\x2', '\x2', + '\x9E', '\xA2', '\x3', '\x2', '\x2', '\x2', '\x9F', '\xA0', '\x5', '&', + '\x14', '\x2', '\xA0', '\xA1', '\a', '\x5', '\x2', '\x2', '\xA1', '\xA3', + '\x3', '\x2', '\x2', '\x2', '\xA2', '\x9F', '\x3', '\x2', '\x2', '\x2', + '\xA2', '\xA3', '\x3', '\x2', '\x2', '\x2', '\xA3', '\xA5', '\x3', '\x2', + '\x2', '\x2', '\xA4', '\x94', '\x3', '\x2', '\x2', '\x2', '\xA4', '\x9C', + '\x3', '\x2', '\x2', '\x2', '\xA4', '\xA5', '\x3', '\x2', '\x2', '\x2', + '\xA5', ')', '\x3', '\x2', '\x2', '\x2', '\xA6', '\xA7', '\x5', '(', '\x15', + '\x2', '\xA7', '\xA8', '\x5', ',', '\x17', '\x2', '\xA8', '\xA9', '\a', + '\x11', '\x2', '\x2', '\xA9', '\xAA', '\x5', ',', '\x17', '\x2', '\xAA', + '+', '\x3', '\x2', '\x2', '\x2', '\xAB', '\xAE', '\x5', '.', '\x18', '\x2', + '\xAC', '\xAE', '\x5', '\x30', '\x19', '\x2', '\xAD', '\xAB', '\x3', '\x2', + '\x2', '\x2', '\xAD', '\xAC', '\x3', '\x2', '\x2', '\x2', '\xAE', '-', + '\x3', '\x2', '\x2', '\x2', '\xAF', '\xB0', '\a', '\x14', '\x2', '\x2', + '\xB0', '/', '\x3', '\x2', '\x2', '\x2', '\xB1', '\xB2', '\a', '\x14', + '\x2', '\x2', '\xB2', '\xB3', '\a', '\x12', '\x2', '\x2', '\xB3', '\xB8', + '\x5', ',', '\x17', '\x2', '\xB4', '\xB5', '\a', '\xF', '\x2', '\x2', + '\xB5', '\xB7', '\x5', ',', '\x17', '\x2', '\xB6', '\xB4', '\x3', '\x2', + '\x2', '\x2', '\xB7', '\xBA', '\x3', '\x2', '\x2', '\x2', '\xB8', '\xB6', + '\x3', '\x2', '\x2', '\x2', '\xB8', '\xB9', '\x3', '\x2', '\x2', '\x2', + '\xB9', '\xBB', '\x3', '\x2', '\x2', '\x2', '\xBA', '\xB8', '\x3', '\x2', + '\x2', '\x2', '\xBB', '\xBC', '\a', '\x13', '\x2', '\x2', '\xBC', '\x31', + '\x3', '\x2', '\x2', '\x2', '\x11', '\x34', '\x37', '>', '\x46', 'L', + 'T', '_', '\x64', '\x88', '\x91', '\x9A', '\xA2', '\xA4', '\xAD', '\xB8', + }; + + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN); + + +} +} // namespace Eingabeverwaltung.Parser.Task_Parser diff --git a/BaumtransformationBewerter/Eingabeverwaltung/Parser/TransformationStep_Listener.cs b/BaumtransformationBewerter/Eingabeverwaltung/Parser/TransformationStep_Listener.cs new file mode 100644 index 0000000000000000000000000000000000000000..125ec04e3d613f541832f77798e6e581b2f3c8dd --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/Parser/TransformationStep_Listener.cs @@ -0,0 +1,322 @@ +using Eingabeverwaltung.Parser.Proof_Parser; +using Eingabeverwaltung.Metamodell; +using Antlr4.Runtime.Tree; +using Antlr4.Runtime; +using Antlr4.Runtime.Misc; +using System.Collections.Generic; +using System; +using System.Linq; + +namespace Eingabeverwaltung.Parser +{ + /// <summary> + /// TransformationStep_Listener creates all TransformationSteps for the Transforamtions created by Proof_Listener. + /// Requires all lemmata and transformations to exist in container. + /// between Lemmata. + /// </summary> + public class TransformationStep_Listener : IProofListener + { + private Container container; + private Induction currentInd; + private InductionCase currentIndCase; + private int currentIndCaseIndex; + private Transformation currentTR; + Lemma currentLemma; + + private Listener_Helper LH; + + private class Transformation_Step + { + public Rule rule; + public char direction; + public Tree termpart; + public List<Substitution> subs; + public Tree resultTree; + } + + private Transformation_Step TS; + private List<Transformation_Step> TSs; + + public TransformationStep_Listener(Container container) + { + this.container = container; + currentTR = null; + currentInd = null; + currentIndCase = null; + currentIndCaseIndex = -1; + currentLemma = null; + LH = new Listener_Helper(container.ADT.sorts, container.ADT.operations, null, container.ADT.axioms, null, null); + + TS = null; + TSs = null; + } + + public void EnterProof([NotNull] ProofParser.ProofContext context) { } + public void ExitProof([NotNull] ProofParser.ProofContext context) { } + public void EnterMainProof([NotNull] ProofParser.MainProofContext context) + { + if (container.Proof.proof is Transformation tr) currentTR = tr; + else if (container.Proof.proof is Induction ind) currentInd = ind; // will find tr by ind rules + else throw new Exception("Error: The proof of MainProof is wether Transformation nor Induction!"); + // Variablen der Aufgabenstellung gelten im Hauptbeweis als erstes + List<List<Variable>> variableDefinitionContext; + variableDefinitionContext = new List<List<Variable>>() { container.Task.task.eq.variables }; + // Variablen des ADT gelten im Hauptbeweis als zweites, falls vorhanden + if (container.ADT.axioms.Count != 0) variableDefinitionContext.Add(container.ADT.axioms[0].eq.variables); + LH.setVariableContext(variableDefinitionContext); + LH.fixedVars = container.Task.task.fixedVars; + } + public void ExitMainProof([NotNull] ProofParser.MainProofContext context) { } + + public void EnterLemma([NotNull] ProofParser.LemmaContext context) + { + string lemmaName = ((ProofParser.LemmaDefContext)context.GetChild(0)).BEZ().GetText(); + currentLemma = null; + foreach(Lemma lemma in container.Proof.lemmata) + if (lemma.name == lemmaName) currentLemma = lemma; + if (currentLemma == null) throw new Exception("Cannot find current Lemma: "+lemmaName+" in Container!"); + if (currentLemma.proof is Transformation tr) currentTR = tr; + else if (currentLemma.proof is Induction ind) currentInd = ind; // will find tr by ind rules + else throw new Exception("Error: The proof of Lemma "+lemmaName+" is wether Transformation nor Induction!"); + } + public void ExitLemma([NotNull] ProofParser.LemmaContext context) => currentLemma = null; + + public void EnterLemmaDef([NotNull] ProofParser.LemmaDefContext context) { } + public void ExitLemmaDef([NotNull] ProofParser.LemmaDefContext context) + { + // Im Beweis des Lemmas gelten zuerst die Variablen des Lemmas (gilt bereits durch das Bauen der Gleichung) + List<List<Variable>> variableDefinitionContext; + variableDefinitionContext = new List<List<Variable>>() { currentLemma.eq.variables }; // hier bereits vorhandene Variablen verwenden + // Im Beweis des Lemmas gelten als zweites die Variablen des ADTs, falls vorhanden + if (container.ADT.axioms.Count != 0) variableDefinitionContext.Add(container.ADT.axioms[0].eq.variables); + LH.setVariableContext(variableDefinitionContext); + LH.fixedVars = currentLemma.fixedVars; + } + public void EnterSingleProof([NotNull] ProofParser.SingleProofContext context) { } + public void ExitSingleProof([NotNull] ProofParser.SingleProofContext context) { } + public void EnterProof_end([NotNull] ProofParser.Proof_endContext context) { } + public void ExitProof_end([NotNull] ProofParser.Proof_endContext context) { } + + // Transformation + public void EnterTransformation([NotNull] ProofParser.TransformationContext context) => TSs = new List<Transformation_Step>(); + public void ExitTransformation([NotNull] ProofParser.TransformationContext context) + { + if (TSs.Count < 1) throw new Exception("No TransformationSteps found in Transformation at ExitTransformation!"); + Tree startT = currentTR.startTree; + for (int i = 0; i < TSs.Count; i++) + { + currentTR.transformationSteps.Add(new TransformationStep(startT, TSs[i].rule, TSs[i].direction, TSs[i].termpart, TSs[i].resultTree, TSs[i].subs)); + startT = TSs[i].resultTree; + } + } + + public void EnterStart_tree([NotNull] ProofParser.Start_treeContext context) => LH.trees = new List<Tree>(); + public void ExitStart_tree([NotNull] ProofParser.Start_treeContext context) => LH.trees = null; + + public void EnterTransformation_step([NotNull] ProofParser.Transformation_stepContext context) => TS = new Transformation_Step(); + public void ExitTransformation_step([NotNull] ProofParser.Transformation_stepContext context) + { + TSs.Add(TS); + TS = null; + } + + public void EnterAxiom([NotNull] ProofParser.AxiomContext context) { } + public void ExitAxiom([NotNull] ProofParser.AxiomContext context) + { + Rule rule = null; + if (context.BEZ() != null) + { + string ruleName = context.BEZ().GetText(); + rule = LH.findAxiomInADT_Axioms(ruleName); + if (rule != null) TS.rule = rule; + else + { + rule = findRuleIn(ruleName, container.Task.lemmata.Cast<Rule>().ToList()); + if (rule != null) TS.rule = rule; + else + { + rule = findRuleIn(ruleName, container.Proof.lemmata.Cast<Rule>().ToList()); + if (rule != null) TS.rule = rule; + else + { + rule = findRuleIn(ruleName, container.Task.lemmaTasks.Cast<Rule>().ToList()); + if (rule != null) TS.rule = rule; + else + { + if (currentInd != null) + { + rule = findRuleIn(ruleName, currentInd.indHyps.Cast<Rule>().ToList()); + if (rule != null) TS.rule = rule; + else throw new Exception("The rule " + ruleName + " is not defined!"); + } + else throw new Exception("The rule " + ruleName + " is not defined!"); + } + } + } + } + } + else if (context.GetChild(0).GetText() == "IH") + { + if (currentInd != null) rule = findRuleIn("IH", currentInd.indHyps.Cast<Rule>().ToList()); ; + if (rule != null) TS.rule = rule; + else + { + string position = ""; + if (currentLemma == null) position += "main proof > "; + else position += "lemma: " + currentLemma.name + " > "; + if (currentInd != null) position += "induction "; + if (currentIndCase != null) position += " of case " + currentIndCase.type + " > "; + position += " TransformationStep No " + (TSs.Count+1); + throw new Exception("The Inductionhypothesis is not defined for the current TransformationStep (" + position + ")!"); + } + } + } + + public void EnterDirection([NotNull] ProofParser.DirectionContext context) { } + public void ExitDirection([NotNull] ProofParser.DirectionContext context) + { + string direction = context.GetText(); + switch (direction) + { + case "rl": TS.direction = '<'; break; + case "lr": TS.direction = '>'; break; + default: throw new Exception("The Direction of the TransformationStep is undefined! Expected \'rl\' or \'lr' but found \"" + direction + "\"."); + } + } + + public void EnterTermpart([NotNull] ProofParser.TermpartContext context) => LH.trees = new List<Tree>(); + public void ExitTermpart([NotNull] ProofParser.TermpartContext context) + { + if (LH.trees.Count != 1) throw new Exception("Trees was Expected to have 1 Tree for Termpart, but found " + LH.trees.Count + " trees! They are: " + LH.TreeListToString(LH.trees)); + TS.termpart = LH.trees[0]; + LH.trees = null; + } + + public void EnterSubst([NotNull] ProofParser.SubstContext context) => TS.subs = new List<Substitution>(); + public void ExitSubst([NotNull] ProofParser.SubstContext context) + { // Add all required trivial substitutions like n/n + List<Variable> ruleVars = LH.getVariableContext( // using this method to easily get rid of duplicates + new List<List<Variable>>() { TS.rule.eq.leftTree.findUsedVars(), TS.rule.eq.rightTree.findUsedVars() }); + foreach (Substitution sub in TS.subs) + ruleVars.Remove(sub.variable); + List<Variable> allContextVars = LH.adt_vars; + foreach (Variable RV in ruleVars) + foreach (Variable CV in allContextVars) + if (CV.name == RV.name && CV != RV) // do trivial subs even if it means sub of fixed var + TS.subs.Add(new Substitution(RV, new TreeVariable(CV))); + } + + public void EnterSub([NotNull] ProofParser.SubContext context) => LH.trees = new List<Tree>(); + public void ExitSub([NotNull] ProofParser.SubContext context) + { + if (LH.trees.Count != 1) throw new Exception("Trees was Expected to have 1 Tree for Termpart, but found " + LH.trees.Count + " trees! They are: " + LH.TreeListToString(LH.trees)); + string variableName = context.BEZ().GetText(); + Variable variable = LH.findVariable(variableName, TS.rule.eq.variables); + Test_Substitution_Variable_isCorrect(variableName, variable); + TS.subs.Add(new Substitution(variableName, variable, LH.trees[0])); + } + + public void EnterResult_tree([NotNull] ProofParser.Result_treeContext context) => LH.trees = new List<Tree>(); + public void ExitResult_tree([NotNull] ProofParser.Result_treeContext context) + { + if (LH.trees.Count != 1) throw new Exception("Trees was Expected to have 1 Tree for ResultTree, but found " + LH.trees.Count + " trees! They are: " + LH.TreeListToString(LH.trees)); + TS.resultTree = LH.trees[0]; + } + + // Induction + public void EnterInduction([NotNull] ProofParser.InductionContext context) => currentIndCaseIndex = -1; + public void ExitInduction([NotNull] ProofParser.InductionContext context) => currentInd = null; + public void EnterInd_var([NotNull] ProofParser.Ind_varContext context) { } + public void ExitInd_var([NotNull] ProofParser.Ind_varContext context) { } + public void EnterInd_basis([NotNull] ProofParser.Ind_basisContext context) + { + if (currentInd.GetIndBasises().Count < 1) throw new Exception("Error: Found no Inductionbasis in the current Induction!"); + else try { currentIndCase = currentInd.indCases[++currentIndCaseIndex]; } + catch(ArgumentOutOfRangeException) + { throw new ArgumentOutOfRangeException("Error: Found more Inductionbasises: " + +currentIndCaseIndex+" than Inductioncases in the current Induction!"); + } + } + public void ExitInd_basis([NotNull] ProofParser.Ind_basisContext context) => currentIndCase = null; + public void EnterInd_step([NotNull] ProofParser.Ind_stepContext context) + { + if (currentInd.GetIndSteps().Count < 1) throw new Exception("Error: Found no Inductionstep in the current Induction while entering Inductionstep!"); + else try { currentIndCase = currentInd.indCases[++currentIndCaseIndex]; } + catch (ArgumentOutOfRangeException) + { + throw new ArgumentOutOfRangeException("Error: Found more Inductionbasises and Inductionsteps: " + + currentIndCaseIndex + " than Inductioncases in the current Induction!"); + } + } + public void ExitInd_step([NotNull] ProofParser.Ind_stepContext context) => currentIndCase = null; + public void EnterInd_hyp([NotNull] ProofParser.Ind_hypContext context) { } + public void ExitInd_hyp([NotNull] ProofParser.Ind_hypContext context) { } + public void EnterInd_case([NotNull] ProofParser.Ind_caseContext context) { } + public void ExitInd_case([NotNull] ProofParser.Ind_caseContext context) + { + // Im Beweis gelten zuerst die Variablen der Gleichung (gilt bereits durch das Bauen der Gleichung) + List<List<Variable>> variableDefinitionContext; + variableDefinitionContext = new List<List<Variable>>() { currentIndCase.eq.variables }; + // Im Beweis gelten als zweites die Variablen des ADTs, falls vorhanden + if (container.ADT.axioms.Count != 0) variableDefinitionContext.Add(container.ADT.axioms[0].eq.variables); + LH.setVariableContext(variableDefinitionContext); + LH.fixedVars = currentIndCase.fixedVars; + currentTR = currentIndCase.proof; + } + // Equation Rules - Does same as in Proof_Listener, in order to not stuck at parsing trees of equations + public void EnterEq([NotNull] ProofParser.EqContext context) => LH.EnterEq(); + public void ExitEq([NotNull] ProofParser.EqContext context) => LH.ExitEq(); + public void EnterEq_var_def([NotNull] ProofParser.Eq_var_defContext context) => LH.EnterVars(); + public void ExitEq_var_def([NotNull] ProofParser.Eq_var_defContext context) => LH.ExitEqVarDef(); + public void EnterFixed([NotNull] ProofParser.FixedContext context) => LH.EnterVars(); + public void ExitFixed([NotNull] ProofParser.FixedContext context) => LH.fixedVars = LH.adt_vars; + public void EnterForall([NotNull] ProofParser.ForallContext context) => LH.EnterVars(); + public void ExitForall([NotNull] ProofParser.ForallContext context) => LH.allQVars = LH.adt_vars; + public void EnterVar([NotNull] ProofParser.VarContext context) { } + public void ExitVar([NotNull] ProofParser.VarContext context) + => LH.ExitVar(context.BEZ().GetText(), context.sort().BEZ().GetText()); + public void EnterSort([NotNull] ProofParser.SortContext context) { } + public void ExitSort([NotNull] ProofParser.SortContext context) { } + + // Trees + public void EnterMytree([NotNull] ProofParser.MytreeContext context) { } + public void ExitMytree([NotNull] ProofParser.MytreeContext context) { } + + public void EnterTreeLeaf([NotNull] ProofParser.TreeLeafContext context) { } + public void ExitTreeLeaf([NotNull] ProofParser.TreeLeafContext context) + => LH.ExitTreeLeaf(context.BEZ().GetText()); + + public void EnterTreeNode([NotNull] ProofParser.TreeNodeContext context) { } + public void ExitTreeNode([NotNull] ProofParser.TreeNodeContext context) + => LH.ExitTreeNode(context.BEZ().GetText(), context.ChildCount, context.GetText()); + + // useless Interface requirements + public void EnterEveryRule(ParserRuleContext ctx) { } + public void ExitEveryRule(ParserRuleContext ctx) { } + public void VisitErrorNode(IErrorNode node) { } + public void VisitTerminal(ITerminalNode node) { } + + // Helping Methods + + /// <summary> + /// Returns null if not able to find + /// </summary> + /// <param name="ruleName"></param> + /// <param name="rules"></param> + /// <returns></returns> + private Rule findRuleIn(string ruleName, List<Rule> rules) + { + foreach (Rule rule in rules) + if (rule.name == ruleName) return rule; + return null; + } + + // Alle Offiziell notwendige Typtests + private void Test_Substitution_Variable_isCorrect(string variableName, Variable variable) + { + if (variable != null && variableName != variable.name) + throw new Exception("The found Variable " + variable.ToString() + " has a different name than the inputed variableName " + variableName); + } + } +} + diff --git a/BaumtransformationBewerter/Eingabeverwaltung/SimpleEingabeverwalter.cs b/BaumtransformationBewerter/Eingabeverwaltung/SimpleEingabeverwalter.cs new file mode 100644 index 0000000000000000000000000000000000000000..2f9f0a938dde22c8db648420a0c224437bfaccdb --- /dev/null +++ b/BaumtransformationBewerter/Eingabeverwaltung/SimpleEingabeverwalter.cs @@ -0,0 +1,82 @@ +using Eingabeverwaltung.Metamodell; +using Eingabeverwaltung.Parser; +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace Eingabeverwaltung +{ + public class SimpleEingabeverwalter : AbstactEingabeverwalter + { + private string adtPath; + private string taskPath; + private string proofPath; + private Nullable<bool> isParsed; + private Nullable<bool> isProofParsed; + + public SimpleEingabeverwalter(string adtPath, string taskPath, string proofPath) : base() + { + this.adtPath = adtPath; + this.taskPath = taskPath; + this.proofPath = proofPath; + isParsed = null; + isProofParsed = null; + } + + public override void verwalteEingabe() + { + inputContainer = new Container(); + string adtInput = File.ReadAllText(adtPath); + string taskInput = File.ReadAllText(taskPath); + string proofInput = File.ReadAllText(proofPath); + try + { + inputContainer.ADT = ADT_Antlr.parse(adtInput); + } + catch (Exception e) + { + Console.WriteLine("Failed to parse the ADT!"); + Console.WriteLine(e.Message); + isParsed = false; + return; + } + try + { + Task_Antlr.parse(taskInput,inputContainer); + } + catch (Exception e) + { + Console.WriteLine("Failed to parse the Task!"); + Console.WriteLine(e.Message); + isParsed = false; + return; + } + try + { + Proof_Antlr.parse(proofInput,inputContainer); + } + catch (Exception e) + { + Console.WriteLine("Failed to parse the Proof!"); + Console.WriteLine(e.Message); + isParsed = false; + isProofParsed = false; + return; + } + isParsed = true; + isProofParsed = true; + } + + /// <summary> + /// Returns null if Parsing didn't started yet. Returns false if Parsing failed. Returns true if Parsing was successful. + /// </summary> + /// <returns></returns> + public Nullable<bool> IsParsed() => isParsed; + /// <summary> + /// Like IsParsed(), but only for Proof. + /// </summary> + /// <returns></returns> + public Nullable<bool> IsProofParsed() => isProofParsed; + } +} diff --git a/BaumtransformationBewerter/ProgramForHuman.cs b/BaumtransformationBewerter/ProgramForHuman.cs new file mode 100644 index 0000000000000000000000000000000000000000..02085a071745935ae99cd3b8f4cc6b51b0d0198e --- /dev/null +++ b/BaumtransformationBewerter/ProgramForHuman.cs @@ -0,0 +1,74 @@ +using Eingabeverwaltung; +using Bewertung; +using Ausgabeverwaltung; +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.IO; + +class ProgramForHuman +{ + private static Eingabeverwalter eingabeverwalter = new Eingabeverwalter(); + private static ImmutableDictionary<string, Action> ProgrammManager; + private static IBewerter Bewerter; + + static void Main(string[] args) + { + if (args.Length == 0) eingabeverwalter.verwalteEingabe(); + else if (args.Length == 1 && args[0] == "debug") while (true) manageProgramm(); + else if (args.Length == 3) eingabeverwalter.verwalteEingabe(args[0], args[1], args[2]); + else + { + Console.WriteLine("Unknown Number of Arguments " + args.Length + ". Please write 3 or no Arguments!"); + exit(); + } + ueberpruefe(); + bewerte(); + ausgabe(); + } + + /// <summary> + /// Can be used for Debuging. + /// </summary> + private static void manageProgramm() + { + Console.WriteLine("Was nun? "); + string input = Console.ReadLine(); + ProgrammManager = new Dictionary<string, Action> + { + ["eingabe"] = eingabeverwalter.verwalteEingabe, + ["ueberpruefe"] = ueberpruefe, + ["bewerte"] = bewerte, + ["ausgabe"] = ausgabe, + ["printErrors"] = printErrors, + ["test"] = test, + ["exit"] = exit, + ["?"] = giveHelp, + }.ToImmutableDictionary(); + try + { + ProgrammManager[input](); + } + catch (KeyNotFoundException) { Console.WriteLine("Command not found. Type ? for help."); manageProgramm(); } + } + private static void ueberpruefe() => Ueberpruefung.Ueberpruefer.ueberpruefe(eingabeverwalter.GetContainer()); + private static void bewerte() + { + try { Bewerter = new Bewerter(eingabeverwalter.GetContainer(), File.ReadAllText(".config")); } + catch (FileNotFoundException) + { + Console.WriteLine("Info: It was no config loaded for Bewertung."); + Bewerter = new Bewerter(eingabeverwalter.GetContainer()); + } + Bewerter.Bewerte(); + } + private static void ausgabe() => new Ausgabeverwalter().Ausgabe(eingabeverwalter.GetContainer(), Bewerter.GetBewertung(),Bewerter.GetRound()); + private static void printErrors() => Console.WriteLine(new Ausgabeverwalter().printAllErrors(eingabeverwalter.GetContainer())); + private static void test() => new Testverwaltung.Testverwalter(eingabeverwalter.GetContainer()).verwalteTests(); + private static void exit() => Environment.Exit(0); + private static void giveHelp() + { + foreach(string key in ProgrammManager.Keys) + Console.WriteLine(key); + } +} diff --git a/BaumtransformationBewerter/ProgramForYapex.cs b/BaumtransformationBewerter/ProgramForYapex.cs new file mode 100644 index 0000000000000000000000000000000000000000..285aad73313997c58cab85f2b0ab96470d2c9c34 --- /dev/null +++ b/BaumtransformationBewerter/ProgramForYapex.cs @@ -0,0 +1,91 @@ +using Eingabeverwaltung; +using Bewertung; +using Ausgabeverwaltung; +using System; +using System.IO; +using System.Linq; + +class ProgramForYapex +{ + private static SimpleEingabeverwalter eingabeverwalter; + private static Ausgabeverwalter ausgabeverwalter; + private static IBewerter Bewerter; + private static bool SyntaxCheckOnly; + private static string ConfigPath; + + static void Main(string[] args) + { + InitProgram(args); + eingabeverwalter.verwalteEingabe(); + if (eingabeverwalter.IsProofParsed().HasValue && !eingabeverwalter.IsProofParsed().Value) + Environment.Exit(1); // Bei Syntaxfehler im Beweis + if (!eingabeverwalter.IsParsed().HasValue) throw new Exception("It was not tried parse the input by some unknown reason."); // this should not happen + if (!eingabeverwalter.IsParsed().Value || SyntaxCheckOnly) + Environment.Exit(0); // Bei Syntaxfehler in ADT / Task oder bei SyntaxCheckOnly + else + { + ueberpruefe(); + bewerte(); + ausgabe(); + bool isZeroPoints = true; + foreach(IAssessmentResult ar in Bewerter.GetBewertung()) + isZeroPoints &= ar.Assessment() == 0.0; + if (isZeroPoints) Environment.Exit(1); + else Environment.Exit(0); + } + } + + private static void InitProgram(string[] args) + { + SyntaxCheckOnly = false; + ConfigPath = ""; + string adtPath = ""; + string taskPath = ""; + string proofPath = ""; + foreach (string arg in args) + { + string fileEnding = arg.Split('.').Last(); + switch (fileEnding) + { + case "adt": + if (adtPath == "") adtPath = arg; + else throw new Exception("Found more than one adt in args!"); + break; + case "task": + if (taskPath == "") taskPath = arg; + else throw new Exception("Found more than one task in args!"); + break; + case "proof": + if (proofPath == "") proofPath = arg; + else throw new Exception("Found more than one proof in args!"); + break; + case "config": + if (ConfigPath == "") ConfigPath = arg; + else throw new Exception("Found more than one config in args!"); + break; + default: + if (arg == "-checkSyntaxOnly") SyntaxCheckOnly = true; + else throw new Exception("Found unexpected argument: " + arg + " !"); + break; + } + } + if (adtPath == "") throw new Exception("Missing path to ADT in the arguments! ADT must have fileending \".adt\"."); + if (taskPath == "") throw new Exception("Missing path to Task in the arguments! Task must have fileending \".task\"."); + if (proofPath == "") throw new Exception("Missing path to Proof in the arguments! Proof must have fileending \".proof\"."); + eingabeverwalter = new SimpleEingabeverwalter(adtPath,taskPath,proofPath); + } + + private static void ueberpruefe() => Ueberpruefung.Ueberpruefer.ueberpruefe(eingabeverwalter.GetContainer()); + private static void bewerte() + { + if (ConfigPath == "") Bewerter = new Bewerter(eingabeverwalter.GetContainer()); + else Bewerter = new Bewerter(eingabeverwalter.GetContainer(), File.ReadAllText(ConfigPath)); + Bewerter.Bewerte(); + } + private static void ausgabe() + { + ausgabeverwalter = new Ausgabeverwalter("string"); + ausgabeverwalter.Ausgabe(eingabeverwalter.GetContainer(), Bewerter.GetBewertung(), Bewerter.GetRound()); + Console.WriteLine(ausgabeverwalter.GetOutPut()); + } +} diff --git a/BaumtransformationBewerter/Testverwaltung/InductionTest.cs b/BaumtransformationBewerter/Testverwaltung/InductionTest.cs new file mode 100644 index 0000000000000000000000000000000000000000..b7684bd788a901eb73c52e9ba2f54696ce7c44cc --- /dev/null +++ b/BaumtransformationBewerter/Testverwaltung/InductionTest.cs @@ -0,0 +1,135 @@ +using Eingabeverwaltung.Metamodell; +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using Ueberpruefung; + +namespace Testverwaltung +{ + public class InductionTest : Test + { + private readonly ImmutableList<string> testIDs; + private readonly ImmutableList<string> shouldValues; + private readonly ImmutableList<string> testIDsStruk; + private readonly ImmutableList<string> shouldValuesStruk; + + public InductionTest() : base() + { + testIDs = new List<string>() + { + "1,2", + "30,37", + "31,38", + "32,40,43", + "33d,41,43", + "33u", + "34c", + "34cIS,43", + "34h", + "35", + "36", + "39" + }.ToImmutableList(); + List<string> shouldValues = new List<string>(); + string L1 = "Lemma L1 geht ein in Teilaufgaben: L1 \r\n"; + string Lo = "Lemma L1 ohne Bewertung \r\n"; + string hb = "Hauptbeweis\r\n"; + string m32(string c) => aus.ErrorMessage(new List<Error>() { new Error(32, c+" ") }, true, "", false, -1, -1); + foreach (string testID in testIDs) + { + string str; + switch (testID) + { + case "1,2" : str = L1 + aus.ErrorMessage(new List<Error>() { new Error(1), new Error(2) }, true, "Fall null", true, -1, -1); break; + case "30,37" : str = hb + aus.ErrorMessage(new List<Error>() { new Error(21), new Error(37,"y ") }, true, "Fall null", true, 1, -1) + + Lo + aus.ErrorMessage(new List<Error>() { new Error(22) }, false, -1, -1) + + aus.ErrorMessage(new List<Error>() { new Error(30) },true,"", false, -1, -1); ; break; + case "31,38" : str = L1 + aus.ErrorMessage(new List<Error>() { new Error(38), new Error(31) }, true, "", false, -1, -1); break; + case "32,40,43" + : str = hb + m32("inc") + + aus.ErrorMessage(new List<Error>() { new Error(40, "m "), new Error(43) }, true, "IH", false, -1, -1) + + L1 + aus.ErrorMessage(new List<Error>() { new Error(8) },true,"Fall null", true, 1, -1); break; + case "33d,41,43" + : str = hb + m32("inc") + + aus.ErrorMessage(new List<Error>() { new Error(43) }, true, "IH", false, -1, -1) + + aus.ErrorMessage(new List<Error>() { new Error(41), new Error(33) }, true, "Fall null", false, -1, -1); break; + case "33u" : str = L1 + m32("null") + + aus.ErrorMessage(new List<Error>() { new Error(33) }, true, "Fall plus( null,plus( null,null ) ) = plus( null,null )", false, -1, -1); break; + case "34c" : str = hb + m32("null") + + aus.ErrorMessage(new List<Error>() { new Error(34), new Error(33) }, true, "Fall plus( null,null ) = null", false, -1, -1); break; + case "34cIS,43" + : str = hb + aus.ErrorMessage(new List<Error>() { new Error(43)}, true, "IH", false, -1, -1) + + aus.ErrorMessage(new List<Error>() { new Error(34, ": fixed Y-0 : Nat : forall m : Nat : plus( inc( Y-0 ),m ) = plus( m,inc( Y-0 ) )") }, true, "Fall inc", false, -1, -1); break; + case "34h" : str = hb + aus.ErrorMessage(new List<Error>() { new Error(34, ": fixed k : Nat : forall m : Nat : plus( k,m ) = plus( m,k )") }, true, "IH", false, -1, -1) + + aus.ErrorMessage(new List<Error>() { new Error(9, "[ plus( m,k ) / y ]") }, true, "Fall inc", true, 2, -1); break; + case "35" : str = hb + aus.ErrorMessage(new List<Error>() { new Error(35, "k ") }, true, "IH", false, -1, -1) + + aus.ErrorMessage(new List<Error>() { new Error(35, "k ") }, true, "Fall inc", false, -1, -1); break; + case "36" : str = hb + aus.ErrorMessage(new List<Error>() { new Error(36), new Error(37,"k ") }, true, "Fall null", true, 1, -1); break; + case "39" : str = L1 + aus.ErrorMessage(new List<Error>() { new Error(39) }, true, -1, -1) + + aus.ErrorMessage(new List<Error>() { new Error(21, "{ L1 }") }, true, 1, -1); break; + default: + Console.WriteLine("Found an unexpected testID " + testID+". This test may not be tested correctly."); + str = aus.NoErrors(); ; break; + } + shouldValues.Add(str); + } + this.shouldValues = shouldValues.ToImmutableList(); + testIDsStruk = new List<string>() + { + "22", + "42", + "43" + }.ToImmutableList(); + List<string> shouldValuesStruk = new List<string>(); + foreach (string testID in testIDsStruk) + { + string str; + switch (testID) + { + case "22": str = "Lemma Komm ohne Bewertung \r\n" + + aus.ErrorMessage(new List<Error>() { new Error(22) }, false, "", false, -1, -1); break; + case "42": str = hb + aus.ErrorMessage(new List<Error>() { new Error(42) }, true, "IH", false, -1, -1); break; + case "43": str = hb + aus.ErrorMessage(new List<Error>() { new Error(43) }, true, "IH3", false, -1, -1); break; + default: + Console.WriteLine("Found an unexpected testID " + testID + ". This test may not be tested correctly."); + str = aus.NoErrors(); ; break; + } + shouldValuesStruk.Add(str); + } + this.shouldValuesStruk = shouldValuesStruk.ToImmutableList(); + numTests = testIDs.Count + testIDsStruk.Count; + } + public override bool run() + { + string path = "Tests\\ind-simpl\\"; + resultString = "Testing Induction\r\n\r\n"; + ein.Eingabe_Interface("ADT", path + "ADT_Bsp2.adt"); + ein.Eingabe_Interface("Task", path + "Task_Bsp2.task"); + ein.Eingabe_Interface("Proof", path + "Proof_correct.proof"); + Ueberpruefer.ueberpruefe(ein.GetContainer()); + resultString += assert(0, aus.NoErrors(), aus.printAllErrors(ein.GetContainer())); + for(int i=0; i< testIDs.Count; i++) + { + ein.Eingabe_Interface("Proof", path + "Proof_error_"+testIDs[i]+".proof"); + Ueberpruefer.ueberpruefe(ein.GetContainer()); + resultString += assert(testIDs[i], shouldValues[i], aus.printAllErrors(ein.GetContainer())); + } + path = "Tests\\ind-struk\\"; + resultString += "\r\nTesting Induction - struktural extension\r\n\r\n"; + ein.Eingabe_Interface("ADT", path + "ADT_Bsp.adt"); + ein.Eingabe_Interface("Task", path + "Task_Bsp.task"); + ein.Eingabe_Interface("Proof", path + "Proof_correct.proof"); + Ueberpruefer.ueberpruefe(ein.GetContainer()); + resultString += assert(0, aus.NoErrors(), aus.printAllErrors(ein.GetContainer())); + for (int i = 0; i < testIDsStruk.Count; i++) + { + ein.Eingabe_Interface("Proof", path + "Proof_error_" + testIDsStruk[i] + ".proof"); + Ueberpruefer.ueberpruefe(ein.GetContainer()); + resultString += assert(testIDsStruk[i], shouldValuesStruk[i], aus.printAllErrors(ein.GetContainer())); + } + return passed; + } + + + } +} diff --git a/BaumtransformationBewerter/Testverwaltung/LemmaTest.cs b/BaumtransformationBewerter/Testverwaltung/LemmaTest.cs new file mode 100644 index 0000000000000000000000000000000000000000..7c9ae3fbe6bf31fd9a35bdd456c75341685d4ae8 --- /dev/null +++ b/BaumtransformationBewerter/Testverwaltung/LemmaTest.cs @@ -0,0 +1,30 @@ +using Ueberpruefung; + +namespace Testverwaltung +{ + public class LemmaTest : Test + { + public LemmaTest() : base() + { + numTests = 4; + } + public override bool run() + { + string path = "Tests\\lemma\\"; + resultString = "Testing Lemmata\r\n\r\n"; + ein.Eingabe_Interface("ADT", path + "ADT_Bsp.adt"); + ein.Eingabe_Interface("Task", path + "Task_Bsp.task"); + for (int testNum = 0; testNum < numTests-1; testNum++) + { + ein.Eingabe_Interface("Proof", path + "Proof_correct_" + testNum + ".proof"); + Ueberpruefer.ueberpruefe(ein.GetContainer()); + resultString += assert(testNum, aus.NoErrors(), aus.printAllErrors(ein.GetContainer())); + } + ein.Eingabe_Interface("Task", path + "Task_Bsp2.task"); + ein.Eingabe_Interface("Proof", path + "Proof_T2_correct_0.proof"); + Ueberpruefer.ueberpruefe(ein.GetContainer()); + resultString += assert(3, aus.NoErrors(), aus.printAllErrors(ein.GetContainer())); + return passed; + } + } +} diff --git a/BaumtransformationBewerter/Testverwaltung/ManualTests.cs b/BaumtransformationBewerter/Testverwaltung/ManualTests.cs new file mode 100644 index 0000000000000000000000000000000000000000..384fc74046c563220aa651426bc4cfb50b439411 --- /dev/null +++ b/BaumtransformationBewerter/Testverwaltung/ManualTests.cs @@ -0,0 +1,84 @@ +using Eingabeverwaltung.Metamodell; +using System.Collections.Generic; +using System; +using Ueberpruefung; + +namespace Testverwaltung +{ + /// <summary> + /// This class includes a few manual tests. + /// </summary> + public class ManualTests + { + private readonly Transformation tr; + public ManualTests(Container container) + { + tr = container.Proof.proof as Transformation; + doAllTests(); + } + + public void doAllTests() + { + testCheckHelper_Substitute(); + testChechHelper_FindSubstitution(); + testCheckHelper_transform(); + testTree_equals(); + } + + public void testCheckHelper_Substitute() + { + Tree substTree = CheckHelper.substitute(tr.transformationSteps[0].ruleStartTree(), tr.transformationSteps[0].substitutions); + Console.WriteLine("Test CheckHelper.substitute\n" + + "Input: Tree " + tr.transformationSteps[0].ruleStartTree().ToString() + "\n" + + " Substitution " + List_Substitution_ToString(tr.transformationSteps[0].substitutions) + "\n" + + "Result: " + substTree.ToString() + "\n"); + } + + public void testChechHelper_FindSubstitution() + { + Tree forTree = tr.transformationSteps[0].ruleStartTree(); + Tree toTree = tr.transformationSteps[0].termPart; + List<Substitution> subs = CheckHelper.findSubstitution(forTree, toTree); + Console.WriteLine("Test CheckHelper.findSubstitution\n" + + "Input: forTree " + forTree + "\n" + + " toTree " + toTree + "\n" + + "Result: " + List_Substitution_ToString(subs) + "\n"); + } + + public void testCheckHelper_transform() + { + Tree newSubtree = CheckHelper.substitute(tr.transformationSteps[0].ruleEndTree() + , tr.transformationSteps[0].substitutions + ); + Tree transformedtree = CheckHelper.transform(tr.startTree + , tr.transformationSteps[0].termPart + , newSubtree + ); + Console.WriteLine("Test CheckHelper.transform\n" + + "Input: oldTree " + tr.startTree + "\n" + + " subtree " + tr.transformationSteps[0].termPart + "\n" + + " newSubTree " + newSubtree + "\n" + + "Result: " + transformedtree.ToString() + "\n"); + } + + public void testTree_equals() + { + Tree tree = CheckHelper.substitute(tr.transformationSteps[0].ruleStartTree(), tr.transformationSteps[0].substitutions); + Tree this_ = tr.transformationSteps[0].termPart; + Console.WriteLine("Test Tree.equals\n" + + "Input: this " + this_ + "\n" + + " Tree " + tree + "\n" + + "Result: " + this_.Equals(tree) + "\n"); + } + + private string List_Substitution_ToString(List<Substitution> subs) + { + string result = "[ "; + foreach (Substitution sub in subs) + result += sub.tree.ToString() + " / " + sub.variable.name + ","; + result = result.Remove(result.Length - 1); + result += "]"; + return result; + } + } +} diff --git a/BaumtransformationBewerter/Testverwaltung/Test.cs b/BaumtransformationBewerter/Testverwaltung/Test.cs new file mode 100644 index 0000000000000000000000000000000000000000..4a40333e5580610990a39787f14a075cd7305986 --- /dev/null +++ b/BaumtransformationBewerter/Testverwaltung/Test.cs @@ -0,0 +1,35 @@ +using Eingabeverwaltung; +using Ausgabeverwaltung; + +namespace Testverwaltung +{ + public abstract class Test { + + protected string resultString; + protected int numTests; + protected bool passed; + protected Eingabeverwalter ein; + protected Ausgabeverwalter aus; + + public Test() + { + resultString = ""; + ein = new Eingabeverwalter(); + aus = new Ausgabeverwalter(); + passed = true; + } + + public abstract bool run(); + public string getResultString() => resultString+"\r\n\r\n"; + public int getNumTests() => numTests; + + protected string assert(int TestID, string shallValue, string isValue) => assert(TestID.ToString(), shallValue, isValue); + protected string assert(string TestID, string shallValue, string isValue) + { + bool pass = shallValue == isValue; + passed = passed && pass; + if (pass) return "Test " + TestID + " passed.\r\n"; + else return "\r\nTest " + TestID + " failed.\r\nshallValue:\r\n" + shallValue + "\r\nisValue:\r\n" + isValue + "\r\n\r\n"; + } + } +} diff --git a/BaumtransformationBewerter/Testverwaltung/Testverwalter.cs b/BaumtransformationBewerter/Testverwaltung/Testverwalter.cs new file mode 100644 index 0000000000000000000000000000000000000000..2581dbef2be6764a0c4d890a2c6ca6c4ca53f8bf --- /dev/null +++ b/BaumtransformationBewerter/Testverwaltung/Testverwalter.cs @@ -0,0 +1,102 @@ +using Eingabeverwaltung.Metamodell; +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.IO; + +namespace Testverwaltung +{ + public class Testverwalter + { + private Container con; + private ImmutableDictionary<string, Action> TestManager; + public Testverwalter(Container con) + { + this.con = con; + } + + public void verwalteTests() + { + string ausgabe = "Welche Tests sollen gestartet werden?"; + TestManager = new Dictionary<string, Action> + { + ["manuell"] = Manual, + ["all auto"] = TestAll, + ["Transformation"] = TestTransformation, + ["Lemma"] = TestLemma, + ["Induktion"] = TestInduction, + ["?"] = giveHelp, + ["exit"] = Exit_Tests, + }.ToImmutableDictionary(); + Console.WriteLine(ausgabe); + string eingabeArt = Console.ReadLine(); + if (eingabeArt == "manuell" && con == null) + { + Console.WriteLine("Cannot start manual Test. First fill the Container!"); + verwalteTests(); return; + } + try + { + TestManager[eingabeArt](); + } + catch (KeyNotFoundException) { Console.WriteLine("Command not found. Type ? for help."); verwalteTests(); } + } + + /// <summary> + /// Starts manual Tests. + /// </summary> + private void Manual() => new ManualTests(con); + + private void giveHelp() + { + foreach (string key in TestManager.Keys) + Console.WriteLine(key); + verwalteTests(); + } + + /// <summary> + /// Does nothing in order to let the Eingabe exit. + /// </summary> + private void Exit_Tests() { } + /// <summary> + /// Starts All Tests of Errorfinding. + /// </summary> + private void TestAll() => Test(new List<Test>() { new TransformationTest(), new LemmaTest(), new InductionTest() }); + /// <summary> + /// Starts Test of Errorfinding for Transformation. + /// </summary> + private void TestTransformation() => Test(new List<Test>() { new TransformationTest() }); + /// <summary> + /// Starts Test of Errorfinding for Lemma. + /// </summary> + private void TestLemma() => Test(new List<Test>() { new LemmaTest() }); + /// <summary> + /// Starts Test of Errorfinding for Induction + /// </summary> + private void TestInduction() => Test(new List<Test>() { new InductionTest() }); + + private void Test(List<Test> tests) + { + string resultString = ""; bool result = true; int numTests = 0; DateTime time = DateTime.Now; + foreach (Test test in tests) + { + result = result && test.run(); + resultString += test.getResultString(); + numTests += test.getNumTests(); + } + File.WriteAllText(fileName(), startText(numTests,time) + resultString); + Console.WriteLine("Testergebnis: bestanden = " + result + ". Mehr Details sind in txt Datei."); + } + + private string startText(int numTests, DateTime startTime) + { + return "Test of BaumTransformationBewerter according:\r\n" + + "Finding of Errors\r\n" + + "Number of Tests: " + numTests + "\r\n" + + "Time started: " + startTime + "\r\n" + + "Run Time "+((DateTime.Now-startTime))+"\r\n\r\n"; + } + + private string fileName() => "Test Ergebnisse.txt"; + } +} diff --git a/BaumtransformationBewerter/Testverwaltung/TransformationTest.cs b/BaumtransformationBewerter/Testverwaltung/TransformationTest.cs new file mode 100644 index 0000000000000000000000000000000000000000..8ed6f71f9ad5462b4a0ec44b9cdf1424614eb9bc --- /dev/null +++ b/BaumtransformationBewerter/Testverwaltung/TransformationTest.cs @@ -0,0 +1,56 @@ +using Ueberpruefung; +using System.Collections.Generic; + +namespace Testverwaltung +{ + public class TransformationTest : Test + { + private List<string> shouldValues; + + public TransformationTest() : base() + { + numTests = 15; + shouldValues = new List<string>(); + string err = ""; + string errO = "[ inc( n ) / n ]"; + for (int ts = -1, sub = -1, error = 1; error < numTests; error++) + { + switch (error) + { + case 3: err = aus.ErrorMessage(new List<Error>() { new Error(error) }, 1 , 2 ); ts = 1; break; + case 4: err = aus.ErrorMessage(new List<Error>() { new Error(error) }, 1 , 1 ); break; + case 5: err = aus.ErrorMessage(new List<Error>() { new Error(error) }, 1 , sub)+ + aus.ErrorMessage(new List<Error>() { new Error(error) }, 2 , sub); break; + case 6: err = aus.ErrorMessage(new List<Error>() { new Error(6),new Error(7) }, 2 , sub); break; + case 8: err = aus.ErrorMessage(new List<Error>() { new Error(error) }, 2 , sub); break; + case 9: err = aus.ErrorMessage(new List<Error>() { new Error(error,errO) }, ts, sub); break; + case 10: err = aus.ErrorMessage(new List<Error>() { new Error(8),new Error(error,errO) }, ts, sub); break; + case 12: err = aus.ErrorMessage(new List<Error>() { new Error(8),new Error(error) }, ts, sub); break; + case 13: err = aus.ErrorMessage(new List<Error>() { new Error(error) }, 1 , 2 ); break; + default: err = aus.ErrorMessage(new List<Error>() { new Error(error) }, ts, sub); break; + } + shouldValues.Add("Hauptbeweis\r\n" + err); + } + } + public override bool run() + { + string path = "Tests\\simpl\\"; + resultString = "Testing Finding Errors in Transformation\r\n\r\n"; + ein.Eingabe_Interface("ADT", path + "ADT_Bsp.adt"); + ein.Eingabe_Interface("Task", path + "Task_Bsp.task"); + ein.Eingabe_Interface("Proof", path + "Proof_correct.proof"); + Ueberpruefer.ueberpruefe(ein.GetContainer()); + resultString += assert(0, aus.NoErrors(), aus.printAllErrors(ein.GetContainer())); + for (int error = 1; error < numTests - 1; error++) + { + ein.Eingabe_Interface("Proof", path + "Proof_error_" + error + ".proof"); + Ueberpruefer.ueberpruefe(ein.GetContainer()); + resultString += assert(error, shouldValues[error - 1], aus.printAllErrors(ein.GetContainer())); + } + ein.Eingabe_Interface("Proof", path + "Proof_correct_rl.proof"); + Ueberpruefer.ueberpruefe(ein.GetContainer()); + resultString += assert(14, aus.NoErrors(), aus.printAllErrors(ein.GetContainer())); + return passed; + } + } +} diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckHelper.cs b/BaumtransformationBewerter/Ueberpruefung/CheckHelper.cs new file mode 100644 index 0000000000000000000000000000000000000000..4eb72270b240e995eebfb14bb36b89730ff04c93 --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckHelper.cs @@ -0,0 +1,214 @@ +using Eingabeverwaltung.Metamodell; +using System.Collections.Generic; +using System; + +namespace Ueberpruefung +{ + public static class CheckHelper + { + public static Tree substitute(Tree tree, Substitution sub) => substitute(tree, new List<Substitution>() { sub }); + public static Tree substitute(Tree tree, List<Substitution> subs) + { + foreach(Substitution sub in subs) + { + if (tree as TreeVariable != null) + { + TreeVariable workingTree = tree as TreeVariable; + if (workingTree.variable == sub.variable) tree = sub.tree.Copy(); + } + else + { + if (tree as ComposedTree != null) + { + ComposedTree workingTree = tree as ComposedTree; + List<Tree> substitutedChildren = new List<Tree>(); + for (int i = 0; i < workingTree.children.Count; i++) + substitutedChildren.Add(substitute(workingTree.children[i], sub)); + tree = new ComposedTree(workingTree.operation, substitutedChildren); + } + else throw new Exception("Found a tree that is wether TreeVariable nor ComposedTree: " + tree.ToString()); + } + } + return tree; + } + + /// <summary> + /// finds substitution from fromEq to toEq. Splits the found substitutions in substitutions with composed trees (subs) and + /// substitutions with tree variable (renamings). Subs is null, if result is false. + /// </summary> + /// <param name="fromEq"></param> + /// <param name="toEq"></param> + /// <param name="subs"></param> + /// <param name="renamings"></param> + public static bool getSubsAndRenamings(Equation fromEq, Equation toEq, out List<Substitution> subs, out List<Substitution> renamings) + { + subs = findSubstitution(fromEq, toEq, new List<Variable>(), new List<Variable>()); + renamings = new List<Substitution>(); + // split in renamings and real substitutions + if (subs == null) + return false; + else + for (int i = 0; i < subs.Count; i++) + if (subs[i].tree is TreeVariable) + { + renamings.Add(subs[i]); + subs.RemoveAt(i); i--; + } + return true; + } + + /// <summary> + /// Same as findSubstitution for Trees, but this is for Equation. + /// It tries substitution for equal direction first, if fails tries substitution for crossed direction. + /// </summary> + /// <param name="forEq"></param> + /// <param name="toEq"></param> + /// <param name="forFixed">Fixed variables in forEq. Input empty List here if you want to ignore that variables are fixed.</param> + /// <param name="toFixed">Fixed variables in toEq. Input empty List here if you don't want to substitute fixed variables at all.</param> + /// <returns></returns> + public static List<Substitution> findSubstitution(Equation forEq, Equation toEq, List<Variable> forFixed, List<Variable> toFixed) + { + List<Substitution> findSubsOneDirection(Equation forEq, Equation toEq, List<Variable> forFixed, List<Variable> toFixed, bool swapped) + { + List<Substitution> result1 = null, result2 = null; + if (!swapped) + { + result1 = findSubstitution(forEq.leftTree , toEq.leftTree , forFixed, toFixed); + result2 = findSubstitution(forEq.rightTree, toEq.rightTree, forFixed, toFixed); + } + else + { + result1 = findSubstitution(forEq.leftTree, toEq.rightTree, forFixed, toFixed); + result2 = findSubstitution(forEq.rightTree, toEq.leftTree, forFixed, toFixed); + } + return unionSubstitutions(result1, result2); + } + List<Substitution> result = findSubsOneDirection(forEq, toEq, forFixed, toFixed, false); + if (result == null) result = findSubsOneDirection(forEq, toEq, forFixed, toFixed, true); + return result; + } + + /// <summary> + /// Same as findSubstitution(forTree,toTree), but checks to not substitute fixed variables, + /// except it is a renaming to another fixed variable with same name. + /// </summary> + /// <param name="forTree"></param> + /// <param name="toTree"></param> + /// <param name="forFixed">Fixed variables in forTree. Input empty List here if you want to ignore that variables are fixed.</param> + /// <param name="toFixed">Fixed variables in toTree. Input empty List here if you don't want to substitute fixed variables at all.</param> + /// <param name="allowFixedRenaming"> Determines if renaming of fixed variables to a fixed Variable with another name is allowed.</param> + /// <returns></returns> + public static List<Substitution> findSubstitution(Tree forTree, Tree toTree, List<Variable> forFixed, List<Variable> toFixed, bool allowFixedRenaming = false) + { + List<Substitution> result = findSubstitution(forTree, toTree); + if (result != null) + foreach(Substitution sub in result) + if (forFixed.Contains(sub.variable)) + if (sub.tree is TreeVariable tv && toFixed.Contains(tv.variable) && (allowFixedRenaming || sub.variable.name == tv.variable.name)) { } + else return null; // substitution not possible due to fixedVars + return result; + } + + /// <summary> + /// Finds a List of Substitutions for the <paramref name="forTree"/>, so if you use this Substitutions + /// on the <paramref name="forTree"/> you will get the <paramref name="toTree"/>. + /// + /// </summary> + /// <remarks> + /// Assumes all variables are allquantified. + /// Use findSubstitution with Lists of fixed variables, if the substitutions should consider fixed variables + /// </remarks> + /// <param name="forTree"></param> + /// <param name="toTree"></param> + /// <returns> + /// Returns an empty List if forTree.Equals(toTree). + /// Returns null if such a Substitution not exists. + /// </returns> + public static List<Substitution> findSubstitution(Tree forTree, Tree toTree) + { + if (forTree as TreeVariable != null) + return new List<Substitution>() { new Substitution(((TreeVariable)forTree).variable, toTree) }; + else if (forTree as ComposedTree != null && toTree as ComposedTree != null) + { + ComposedTree forCTree = forTree as ComposedTree; + ComposedTree toCTree = toTree as ComposedTree; + if (forCTree.operation == toCTree.operation) + { + List<Substitution> result = new List<Substitution>(); + for (int forChild = 0; forChild < forCTree.children.Count; forChild++) + { + List<Substitution> childResult = findSubstitution(forCTree.children[forChild], toCTree.children[forChild]); + if (unionSubstitutions(result, childResult) == null) return null; + } + return result; + } + return null; + } + else if (forTree as ComposedTree != null && toTree as TreeVariable != null) return null; + else throw new Exception("Found a tree that is wether TreeVariable nor ComposedTree: forTree: " + forTree.ToString() + ", toTree: " + toTree.ToString()); + } + + /// <summary> + /// Given two substitutions, result is the union of them. + /// Returns null if one argument is null or the substitutions are incompatible. + /// @pre: subs1 and subs2 are correct substitutions or null + /// @post: result is correct substitution and result = @post.subs1 and @post.subs2 = @pre.subs2-@pre.subs1 or result = null + /// </summary> + /// <param name="subs1"></param> + /// <param name="subs2"></param> + /// <returns></returns> + public static List<Substitution> unionSubstitutions(List<Substitution> subs1, List<Substitution> subs2) + { + if (subs1 == null || subs2 == null) return null; + foreach (Substitution sub in subs1) + for (int sub2 = 0; sub2 < subs2.Count; sub2++) + { + if (sub.variable == subs2[sub2].variable) + { + if (!sub.tree.Equals(subs2[sub2].tree)) return null; + subs2.RemoveAt(sub2); + sub2--; + } + } + subs1.AddRange(subs2); + return subs1; + } + + /// <summary> + /// Searches the subTree in the oldTree and replace it with newSubTree. + /// Returns a new Tree or null if not able to find. + /// </summary> + /// <param name="oldTree"></param> + /// <param name="subTree"></param> + /// <param name="newSubTree"></param> + /// <returns></returns> + public static Tree transform(Tree oldTree, Tree subTree, Tree newSubTree, int matchingID = 1) + => transform(oldTree, subTree, newSubTree, matchingID, new int[] { 0 }); + private static Tree transform(Tree oldTree, Tree subTree, Tree newSubTree, int matchingID, int[] foundMatchings ) + { + Tree tree = oldTree.Copy(); + if (tree.Equals(subTree)) + if (++foundMatchings[0] == matchingID) return newSubTree; + else return null; + if (tree as TreeVariable != null) return null; + if (tree as ComposedTree != null) + { + ComposedTree cTree = tree as ComposedTree; + bool foundSubTree = false; + for (int childNr = 0; childNr < cTree.children.Count; childNr++) + { + Tree transformedSChild = transform(cTree.children[childNr], subTree, newSubTree, matchingID, foundMatchings); + if (transformedSChild != null) + { + cTree.children[childNr] = transformedSChild; + foundSubTree = true; + break; + } + } + if (foundSubTree) return cTree; + else return null; + } + else throw new Exception("Found a tree that is wether TreeVariable nor ComposedTree: " + tree.ToString()); + } + } +} diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckFixedVarsNotSubstituted.cs b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckFixedVarsNotSubstituted.cs new file mode 100644 index 0000000000000000000000000000000000000000..30ec506c45d8f776b2dc0f8f7a898bb32c41d478 --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckFixedVarsNotSubstituted.cs @@ -0,0 +1,29 @@ +using Eingabeverwaltung.Metamodell; +using System; + +namespace Ueberpruefung.CheckInduction +{ + /// <summary> + /// checks error 37 + /// </summary> + public class CheckFixedVarsNotSubstituted : ElementChecker + { + public CheckFixedVarsNotSubstituted() : base() { } + public override bool check(Element e) + { + if (e is TransformationStep ts) + { + bool result = true; + string output = ""; + foreach(Substitution sub in ts.substitutions) + if (ts.rule.IsFixed(sub.variable)) + // renamings without changing name are substitutions added at model creating and are no errors + if (!(sub.tree is TreeVariable tv && tv.name == sub.variable.name)) + { result = false; output += sub.variable.name+" "; } + if (!result) ts.errors.Add(new Error(37, output)); + return result; + } + else throw new InvalidOperationException(); + } + } +} diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndCaseType.cs b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndCaseType.cs new file mode 100644 index 0000000000000000000000000000000000000000..2d11e8bef116d152f3c63a10f607b9a3bf776dc4 --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndCaseType.cs @@ -0,0 +1,33 @@ +using Eingabeverwaltung.Metamodell; +using System; + +namespace Ueberpruefung.CheckInduction +{ + /// <summary> + /// checks error 41 + /// @pre: constructors of cases must be set + /// </summary> + public class CheckIndCaseType : ElementChecker + { + /// <summary> + /// checks error 41 + /// @pre: constructors of cases must be set + /// </summary> + public CheckIndCaseType() : base() { } + public override bool check(Element e) + { + if (e is InductionCase indC) + { + bool result = true; + if (indC.type == "IA") + { if (indC.Constructor != null) result = indC.Constructor is BasicConstructor; } + else if (indC.type == "IS") + { if (indC.Constructor != null) result = indC.Constructor is BuildingConstructor; } + else throw new Exception("Found an unknown induction case type: " + indC.type); + if (!result) indC.errors.Add(new Error(41)); + return result; + } + else throw new InvalidOperationException(); + } + } +} diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndCaseTypeIsValid.cs b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndCaseTypeIsValid.cs new file mode 100644 index 0000000000000000000000000000000000000000..4c6f65cc84346deb3dd5635c74f8941bded07242 --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndCaseTypeIsValid.cs @@ -0,0 +1,45 @@ +using Eingabeverwaltung.Metamodell; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Ueberpruefung.CheckInduction +{ + /// <summary> + /// checks error 33 + /// @pre: constructors of cases must be set + /// </summary> + public class CheckIndCaseTypeIsValid : ElementChecker + { + /// <summary> + /// checks error 33 + /// @pre: constructors of cases must be set + /// </summary> + public CheckIndCaseTypeIsValid() : base() { } + public override bool check(Element e) + { + if (e is Induction ind) + { + if (ind.indVar == null) return true; + List<InductionCase> invalidCases = new List<InductionCase>(); + for (int i1 = 0; i1 < ind.indCases.Count; i1++) + { + InductionCase ic1 = ind.indCases[i1]; + if (ic1.Constructor == null) { if (!invalidCases.Contains(ic1)) invalidCases.Add(ic1); } + else + for (int i2 = i1 + 1; i2 < ind.indCases.Count; i2++) + { + InductionCase ic2 = ind.indCases[i2]; + if (ic1.Constructor == ic2.Constructor) + if (!invalidCases.Contains(ic2)) invalidCases.Add(ic2); + } + } + foreach (InductionCase ic in invalidCases) + ic.errors.Add(new Error(33)); + return invalidCases.Count == 0; + } + else throw new InvalidOperationException(); + } + } +} diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndCasesAllExisting.cs b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndCasesAllExisting.cs new file mode 100644 index 0000000000000000000000000000000000000000..08179f4cf082326f97777a9b7419a612db70d9f1 --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndCasesAllExisting.cs @@ -0,0 +1,40 @@ +using Eingabeverwaltung.Metamodell; +using System; +using System.Collections.Generic; + +namespace Ueberpruefung.CheckInduction +{ + /// <summary> + /// checks error 32 + /// @pre: constructors of cases must be set + /// </summary> + public class CheckIndCasesAllExisting : ElementChecker + { + /// <summary> + /// checks error 32 + /// @pre: constructors of cases must be set + /// </summary> + public CheckIndCasesAllExisting() : base() { } + public override bool check(Element e) + { + if (e is Induction ind) + { + if (ind.indVar == null) return true; + List<Constructor> indCasesCs = new List<Constructor>(); + foreach (InductionCase indCase in ind.indCases) indCasesCs.Add(indCase.Constructor); + List<Constructor> indVarCs = new List<Constructor>(ind.indVar.sort.GetConstructors()); + for (int iVC = 0; iVC < indVarCs.Count; iVC++) + if (indCasesCs.Contains(indVarCs[iVC])) { indVarCs.RemoveAt(iVC); iVC--; } + if (indVarCs.Count != 0) + { + string output = ""; + foreach (Constructor indVarC in indVarCs) output += indVarC.name + " "; + ind.errors.Add(new Error(32, output)); + return false; + } + else return true; + } + else throw new InvalidOperationException(); + } + } +} diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndHypCanBeUseful.cs b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndHypCanBeUseful.cs new file mode 100644 index 0000000000000000000000000000000000000000..ff7eccc10f9105858a2eded6036f488fdf4b1786 --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndHypCanBeUseful.cs @@ -0,0 +1,44 @@ +using Eingabeverwaltung.Metamodell; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Ueberpruefung.CheckInduction +{ + /// <summary> + /// checks error 43 + /// </summary> + public class CheckIndHypCanBeUseful : ElementChecker + { + /// <summary> + /// checks error 43 + /// </summary> + public CheckIndHypCanBeUseful() : base() { } + public override bool check(Element e) + { + if (e is Induction ind) + { + List<string> bPVNames = new List<string>(); + foreach (InductionCase ic in ind.indCases) + if (ic.BuildingParameterVariables != null) + foreach (Variable bPV in ic.BuildingParameterVariables) + if (!bPVNames.Contains(bPV.name)) bPVNames.Add(bPV.name); + bool result = true; + foreach(InductionHypothesis ih in ind.indHyps) + { + CheckHelper.getSubsAndRenamings(ind.eq, ih.eq, out List<Substitution> subs, out List<Substitution> renamings); + if (subs == null) continue; + string ihBuildingVarName = ""; + foreach (Substitution renaming in renamings) + if (renaming.tree is TreeVariable tv && renaming.variable == ind.indVar) + ihBuildingVarName = tv.name; + if (ihBuildingVarName != "") + if (!bPVNames.Contains(ihBuildingVarName)) + { result = false; ih.errors.Add(new Error(43)); } + } + return result; + } + else throw new InvalidOperationException(); + } + } +} diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndHypNotUsedInIA.cs b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndHypNotUsedInIA.cs new file mode 100644 index 0000000000000000000000000000000000000000..fc8c890bd549dfb52d71e7f1f93651a16f55cb1d --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndHypNotUsedInIA.cs @@ -0,0 +1,37 @@ +using Eingabeverwaltung.Metamodell; +using System; + +namespace Ueberpruefung.CheckInduction +{ + /// <summary> + /// checks error 36 + /// @pre: constructors of cases must be set + /// </summary> + public class CheckIndHypNotUsedInIA : ElementChecker + { + /// <summary> + /// checks error 36 + /// @pre: constructors of cases must be set + /// </summary> + public CheckIndHypNotUsedInIA() : base() { } + public override bool check(Element e) + { + if (e is InductionCase indC) + { + if (indC.Constructor != null && indC.Constructor is BasicConstructor) + { + bool result = true; + foreach (TransformationStep ts in indC.proof.transformationSteps) + if (ts.rule is InductionHypothesis) + { + result = false; + ts.errors.Add(new Error(36)); + } + return result; + } + else return true; + } + else throw new InvalidOperationException(); + } + } +} diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndHypsUnique.cs b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndHypsUnique.cs new file mode 100644 index 0000000000000000000000000000000000000000..eca6d670e5bb5d00cd21ec62a9956531de5f607f --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndHypsUnique.cs @@ -0,0 +1,41 @@ +using Eingabeverwaltung.Metamodell; +using System; +using System.Collections.Generic; + +namespace Ueberpruefung.CheckInduction +{ + /// <summary> + /// checks error 42 + /// </summary> + public class CheckIndHypsUnique : ElementChecker + { + /// <summary> + /// checks error 42 + /// </summary> + public CheckIndHypsUnique() :base() { } + public override bool check(Element e) + { + if (e is Induction ind) + { + if (ind.indVar == null) return true; + bool result = true; + List<string> ihBuildingVarNames = new List<string>(); + foreach(InductionHypothesis ih in ind.indHyps) + { + CheckHelper.getSubsAndRenamings(ind.eq, ih.eq, out List<Substitution> subs, out List<Substitution> renamings); + if (subs == null) continue; + string ihBuildingVarName = ""; + foreach (Substitution renaming in renamings) + if (renaming.tree is TreeVariable tv && renaming.variable == ind.indVar) + ihBuildingVarName = tv.name; + if (ihBuildingVarName != "") + if (ihBuildingVarNames.Contains(ihBuildingVarName)) + { result = false; ih.errors.Add(new Error(42)); } + else ihBuildingVarNames.Add(ihBuildingVarName); + } + return result; + } + else throw new InvalidOperationException(); + } + } +} diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndPartEquation.cs b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndPartEquation.cs new file mode 100644 index 0000000000000000000000000000000000000000..8cc4a13a57fb7a4f30fecb3558b9ed19bc3ed8f0 --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndPartEquation.cs @@ -0,0 +1,143 @@ +using Eingabeverwaltung.Metamodell; +using System; +using System.Collections.Generic; + +namespace Ueberpruefung.CheckInduction +{ + /// <summary> + /// checks error 34 + /// <br></br> + /// sets constructor and buildingParamaterVariable of ind cases if context is Induction + /// </summary> + public class CheckIndPartEquation : ElementChecker + { + private readonly Induction parent; + public CheckIndPartEquation(Induction parent) : base() { this.parent = parent; } + public override bool check(Element e) + { + if (parent.indVar == null) return true; + if (e is InductionHypothesis ih) + { + CheckHelper.getSubsAndRenamings(parent.eq, ih.eq, out List<Substitution> subs, out List<Substitution> renamings); + bool result = true; + string errOutput = ""; + // check sub + if (subs == null || subs.Count != 0) + { + result = false; + // find any buildingParameterVariable in one of the Inductioncases, if existing + Variable bPV = null; + foreach (InductionCase ic in parent.indCases) + if (ic.BuildingParameterVariables != null) { bPV = ic.BuildingParameterVariables[0]; break; } + if (bPV != null) + errOutput += constructCorrectedEquation(parent.eq, parent.fixedVars, new Substitution(parent.indVar, new TreeVariable(bPV))); + } + else// check renamings: the name should not change, except for indVar + foreach (Substitution sub in renamings) + if (sub.variable != parent.indVar) + result &= sub.variable.name == ((TreeVariable)sub.tree).name; + if (!result) ih.errors.Add(new Error(34, errOutput)); + return result; + } + else if (e is InductionCase ic) + { + CheckHelper.getSubsAndRenamings(parent.eq, ic.eq, out List<Substitution> subs, out List<Substitution> renamings); + // check sub, only 1 real substitution allowed + bool result = subs != null && subs.Count == 1; string errOutput = ""; + if (result && subs[0].tree is ComposedTree cTree) + { + if (cTree.operation is Constructor c) // if its not constructor, then its job of 33 + { + {// 1. safe constructor and buildingParameterVariable + ic.Constructor = c; + if (c is BuildingConstructor bc) + { + ic.BuildingParameterVariables = new List<Variable>(); + bool variableIsOnBuildingParameter = true; + foreach (int buildingParameter in bc.buildingParameters) + if (cTree.children[buildingParameter] is TreeVariable tv) + ic.BuildingParameterVariables.Add(tv.variable); + else // instead of inductionvariable an inner Tree or constant is used + variableIsOnBuildingParameter = false; + if (variableIsOnBuildingParameter && ic.BuildingParameterVariables.Count == 0) + throw new Exception("Found building constructor " + bc.name + " without building parameters!"); + result &= variableIsOnBuildingParameter; + } + } + // 2. all children must be variable + List<string> childVars = new List<string>(); + foreach (Tree child in cTree.children) + if (child is TreeVariable tv) childVars.Add(tv.variable.name); + else result = false; + // 3. get all variables from parent, except ind var + List<string> indVars = new List<string>(); + foreach (Variable var in parent.eq.variables) + indVars.Add(var.name); + indVars.Remove(parent.indVar.name); + // 4. the children's variables must be new for the equation (except indVar) + for (int i = 0; i < childVars.Count; i++) + if (!indVars.Contains(childVars[i])) { childVars.RemoveAt(i); i--; } + result &= childVars.Count == 0; + // 5. check renamings: the name should not change + foreach (Substitution sub in renamings) + result &= sub.variable.name == ((TreeVariable)sub.tree).name; + // 6. only ind var is allowed to be substituted by composed tree + result &= subs[0].variable == parent.indVar; + // 7. build corrected constructor for error output + if (!result) + { + if (parent.indVar.sort == cTree.sort) + { + List<Tree> children = new List<Tree>(); + for (int i = 0; i < cTree.children.Count; i++) + if (cTree.children[i] is TreeVariable tv && !childVars.Contains(tv.name)) children.Add(tv); + else children.Add(new TreeVariable(new Variable("Y-" + i, cTree.children[i].sort))); + ComposedTree correctConstructor = new ComposedTree(cTree.operation, children); + errOutput = constructCorrectedEquation(parent.eq, parent.fixedVars, new Substitution(parent.indVar, correctConstructor)); + } + } + } + } + if (!result) ic.errors.Add(new Error(34, errOutput)); + return result; + } + else throw new InvalidOperationException(); + } + + /// <summary> + /// @pre: if sub.tree is ComposedTree : all children must be TreeVariable + /// </summary> + /// <param name="fromEq"></param> + /// <param name="fixedVars"></param> + /// <param name="sub"></param> + /// <param name="bPV">buildingParameterVariable</param> + /// <returns></returns> + private string constructCorrectedEquation(Equation fromEq, List<Variable> fromFixedVars, Substitution sub) + { + Tree leftTree = CheckHelper.substitute(fromEq.leftTree.Copy(), sub); + Tree rightTree = CheckHelper.substitute(fromEq.rightTree.Copy(), sub); + List<Variable> variables = new List<Variable>(fromEq.variables); variables.Remove(sub.variable); + Equation eq = new Equation(leftTree, rightTree, variables); + List<Variable> fixedVars = new List<Variable>(fromFixedVars); + if (sub.tree is ComposedTree cTree) + { // constructing for indCase + List<Variable> constructorVariables = new List<Variable>(); + foreach (Tree child in cTree.children) + if (child is TreeVariable tv) + constructorVariables.Add(tv.variable); + variables.AddRange(constructorVariables); + if (cTree.operation is BuildingConstructor bc) + foreach(int buildingParameter in bc.buildingParameters) + if (cTree.children[buildingParameter] is TreeVariable tv) + fixedVars.Add(tv.variable); + } + else if (sub.tree is TreeVariable tr) + { // constructing for indHypothesis + variables.Add(tr.variable); + fixedVars.Add(tr.variable); + } + string result = new TaskLemma("", eq, fixedVars).ToString(); + return result.Remove(result.Length - 2); // remove new line character at the end + } + } +} diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndPartEquationFixedVars.cs b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndPartEquationFixedVars.cs new file mode 100644 index 0000000000000000000000000000000000000000..abd581a698a223bd2932c1e2ef5b5fcf5417713e --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndPartEquationFixedVars.cs @@ -0,0 +1,72 @@ +using Eingabeverwaltung.Metamodell; +using System; +using System.Collections.Generic; + +namespace Ueberpruefung.CheckInduction +{ + /// <summary> + /// abstract class for checker of error 35 and 40 <br></br> + /// This class is usefull, because both checker need 95% same code and its necessary to have two different checker for + /// both errors, because error 35 have to influence on the value isProved while error 40 shouldn't. + /// </summary> + public abstract class CheckIndPartEquationFixedVars : ElementChecker + { + protected readonly Induction parent; + public CheckIndPartEquationFixedVars(Induction parent) : base() + { + this.parent = parent; + } + + public override bool check(Element e) + { + if (parent.indVar == null) return true; + if (e is InductionCase ic) + { + List<Variable> shouldValue = new List<Variable>(parent.fixedVars); + shouldValue.Remove(parent.indVar); // for the case ind var is fixed + if (ic.BuildingParameterVariables != null) + foreach(Variable bPV in ic.BuildingParameterVariables) + shouldValue.Add(bPV); + return check(shouldValue, ic.fixedVars, ic.errors); + } + else if (e is InductionHypothesis ih) + { + List<Variable> shouldValue = new List<Variable>(parent.fixedVars); + shouldValue.Remove(parent.indVar); // for the case ind var is fixed + List<Substitution> subs = CheckHelper.findSubstitution(parent.eq, ih.eq, new List<Variable>(), new List<Variable>()); + if (subs != null) + foreach (Substitution sub in subs) + if (sub.variable == parent.indVar) + if (sub.tree is TreeVariable tv) shouldValue.Add(tv.variable); + return check(shouldValue, ih.fixedVars, ih.errors); + } + else throw new InvalidOperationException(); + } + + protected abstract bool check(List<Variable> shouldValueFixedVars, List<Variable> isValueFixedVars, List<Error> contextErrorList); + + /// <summary> + /// checks error 35. Removes all should be fixed vars from isValueFixedVars and prints error output in err35Output if result is false. + /// </summary> + /// <param name="shouldValueFixedVars"></param> + /// <param name="isValueFixedVars"></param> + /// <param name="err35Output"></param> + /// <returns></returns> + protected bool check35(List<Variable> shouldValueFixedVars, List<Variable> isValueFixedVars, out string err35Output) + { + err35Output = ""; + // 35: each fixed var from ind must be in fixed vars of indCase + bool result35 = true; + foreach (Variable indFixedVar in shouldValueFixedVars) + { // not direct comparison of vars, because can be renamed to different var with same name + bool found = false; + foreach (Variable caseFixedVar in isValueFixedVars) + if (indFixedVar.name == caseFixedVar.name) + { found = true; isValueFixedVars.Remove(caseFixedVar); break; } + if (!found) err35Output += indFixedVar.name + " "; + result35 &= found; + } + return result35; + } + } +} diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndPartEquationIsFixed.cs b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndPartEquationIsFixed.cs new file mode 100644 index 0000000000000000000000000000000000000000..deb2e3bd70aefde6721cdc1d3a1cb127398c73af --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndPartEquationIsFixed.cs @@ -0,0 +1,29 @@ +using Eingabeverwaltung.Metamodell; +using System.Collections.Generic; + +namespace Ueberpruefung.CheckInduction +{ + /// <summary> + /// checks error 35 + /// </summary> + public class CheckIndPartEquationIsFixed : CheckIndPartEquationFixedVars + { + public CheckIndPartEquationIsFixed(Induction parent) :base(parent) { } + + /// <summary> + /// checks using the should value and is value of fixed vars. Writes errors to contextErrorList <br></br> + /// uses check35 from base class. + /// </summary> + /// <param name="shouldValueFixedVars"></param> + /// <param name="isValueFixedVars"></param> + /// <param name="contextErrorList"></param> + /// <returns></returns> + protected override bool check(List<Variable> shouldValueFixedVars, List<Variable> isValueFixedVars, List<Error> contextErrorList) + { + isValueFixedVars = new List<Variable>(isValueFixedVars); // copy list + bool result = check35(shouldValueFixedVars,isValueFixedVars, out string err35Output); + if (!result) contextErrorList.Add(new Error(35, err35Output)); + return result; + } + } +} diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndPartEquationIsNotFixed.cs b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndPartEquationIsNotFixed.cs new file mode 100644 index 0000000000000000000000000000000000000000..cdf38add6f144faea39dd838d52a611e30affaae --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndPartEquationIsNotFixed.cs @@ -0,0 +1,36 @@ +using Eingabeverwaltung.Metamodell; +using System.Collections.Generic; + +namespace Ueberpruefung.CheckInduction +{ + /// <summary> + /// checks error 40 + /// </summary> + public class CheckIndPartEquationIsNotFixed : CheckIndPartEquationFixedVars + { + public CheckIndPartEquationIsNotFixed(Induction parent) : base(parent) { } + + /// <summary> + /// checks using the should value and is value of fixed vars. Writes errors to contextErrorList <br></br> + /// uses check35 from base class. + /// </summary> + /// <param name="shouldValueFixedVars"></param> + /// <param name="isValueFixedVars"></param> + /// <param name="contextErrorList"></param> + /// <returns></returns> + protected override bool check(List<Variable> shouldValueFixedVars, List<Variable> isValueFixedVars, List<Error> contextErrorList) + { + isValueFixedVars = new List<Variable>(isValueFixedVars); // copy list + check35(shouldValueFixedVars, isValueFixedVars, out _); + bool result = isValueFixedVars.Count == 0; + if (!result) + { + string output = ""; + foreach (Variable var in isValueFixedVars) + output += var.name + " "; + contextErrorList.Add(new Error(40, output)); + } + return result; + } + } +} diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndTask_Satisfied.cs b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndTask_Satisfied.cs new file mode 100644 index 0000000000000000000000000000000000000000..75f0b64715cde0812d0378131da66966b95c1b5c --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndTask_Satisfied.cs @@ -0,0 +1,65 @@ +using Eingabeverwaltung.Metamodell; +using System; +using System.Collections.Generic; + +namespace Ueberpruefung.CheckInduction +{ + /// <summary> + /// checks error 38, 39 + /// </summary> + public class CheckIndTask_Satisfied : ElementChecker + { + public CheckIndTask_Satisfied() : base() { } + + public override bool check(Element e) + { + if (e is Container con) + if (con.Task.task.indVariable == null) return true; + else return check(con.Task.task.indVariable, con.Proof.proof); + else if (e is Lemma l) + if (l.OwnTask != null && l.OwnTask.indVariable != null) + { // due to variables of lemmata can be renamed, this must also be considered at induction variable + CheckHelper.getSubsAndRenamings(l.eq, l.OwnTask.eq, out _, out List<Substitution> renamings); + Substitution indVarRenaming = FindVariableOfSubstitution(renamings, new TreeVariable(l.OwnTask.indVariable)); + if (indVarRenaming != null) return check(indVarRenaming, l.proof); + else return check(l.OwnTask.indVariable, l.proof); + } + else return true; + else throw new InvalidOperationException(); + } + + private bool check(Variable taskIndVar, SingleProof proof) => check(new Substitution(taskIndVar, new TreeVariable(taskIndVar)), proof); + + /// <param name="taskRenaming">Renaming of induction variable of proof to induction variable of Task.</param> + /// <param name="proof"></param> + /// <returns></returns> + private bool check(Substitution taskRenaming, SingleProof proof) + { + bool result = true; + Variable taskIndVar = ((TreeVariable)taskRenaming.tree).variable; + if (proof is Transformation tr) + { result = false; tr.errors.Add(new Error(39)); } + else if (proof is Induction ind) + { + if (ind.indVar != taskRenaming.variable) + { result = false; ind.errors.Add(new Error(38)); } + } + else throw new Exception("Found a single proof that is neither Transformation nor Induction!"); + return result; + } + + /// <summary> + /// Finds the first substitution in the list of substitutions where the tree is equal to the given tree. + /// </summary> + /// <param name="subs"></param> + /// <param name="tree"></param> + /// <returns></returns> + private Substitution FindVariableOfSubstitution(List<Substitution> subs, Tree tree) + { + Substitution result = null; + foreach(Substitution sub in subs) + if (sub.tree.Equals(tree)) return sub; + return result; + } + } +} diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndVarHasConstructors.cs b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndVarHasConstructors.cs new file mode 100644 index 0000000000000000000000000000000000000000..a4dc095012672f199bfb22b8a87282086e371c45 --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndVarHasConstructors.cs @@ -0,0 +1,24 @@ +using Eingabeverwaltung.Metamodell; +using System; + +namespace Ueberpruefung.CheckInduction +{ + /// <summary> + /// checks error 31 + /// </summary> + public class CheckIndVarHasConstructors : ElementChecker + { + public CheckIndVarHasConstructors() : base() { } + public override bool check(Element e) + { + if (e is Induction ind) + { + if (ind.indVar == null) return true; + bool result = ind.indVar.sort.GetConstructors().Count > 0; + if (!result) ind.errors.Add(new Error(31)); + return result; + } + else throw new InvalidOperationException(); + } + } +} diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndVarNotFixed.cs b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndVarNotFixed.cs new file mode 100644 index 0000000000000000000000000000000000000000..1afc7b29076e5c04e056d36074412051678c9c1a --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckInduction/CheckIndVarNotFixed.cs @@ -0,0 +1,24 @@ +using Eingabeverwaltung.Metamodell; +using System; + +namespace Ueberpruefung.CheckInduction +{ + /// <summary> + /// checks error 30 + /// </summary> + public class CheckIndVarNotFixed : ElementChecker + { + public CheckIndVarNotFixed() :base() { } + + public override bool check(Element e) + { + if (e is Induction ind) + { + bool result = !ind.fixedVars.Contains(ind.indVar); + if (!result) ind.errors.Add(new Error(30)); + return result; + } + else throw new InvalidOperationException(); + } + } +} diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckLemmaEqualsTask.cs b/BaumtransformationBewerter/Ueberpruefung/CheckLemmaEqualsTask.cs new file mode 100644 index 0000000000000000000000000000000000000000..7d84807b0dc7fc161ffab929635d810a2d73def6 --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckLemmaEqualsTask.cs @@ -0,0 +1,63 @@ +using Eingabeverwaltung.Metamodell; +using System; +using System.Collections.Generic; + +namespace Ueberpruefung +{ + class CheckLemmaEqualsTask : ElementChecker + { + private readonly SingleTask ownTask; + public CheckLemmaEqualsTask(SingleTask ownTask) { this.ownTask = ownTask; } + public override bool check(Element e) + { + if (e is Lemma l) + { + if (l.name == ownTask.name) + { + bool FindVariableRenamings(List<Substitution> variableRenaming1, List<Substitution> variableRenaming2, bool swapped) + { + // 1. find a substitution + try + { + if (!swapped) + { + variableRenaming1.AddRange(CheckHelper.findSubstitution(l.eq.leftTree, ownTask.eq.leftTree )); + variableRenaming2.AddRange(CheckHelper.findSubstitution(l.eq.rightTree, ownTask.eq.rightTree)); + } + else + { + variableRenaming1.AddRange(CheckHelper.findSubstitution(l.eq.leftTree, ownTask.eq.rightTree)); + variableRenaming2.AddRange(CheckHelper.findSubstitution(l.eq.rightTree, ownTask.eq.leftTree)); + } + } + catch (ArgumentNullException) { return false; } + // 2. check all substitutions are variable renamings with: isFixed(sub.variable) <-> isFixed(sub.tree.variable) + bool IsRenaming(List<Substitution> subs) + { + foreach (Substitution sub in subs) + if (sub.tree as TreeVariable == null + || l.IsFixed(sub.variable) && !ownTask.IsFixed(((TreeVariable)sub.tree).variable) + || !l.IsFixed(sub.variable) && ownTask.IsFixed(((TreeVariable)sub.tree).variable) + ) return false; + return true; + } + return IsRenaming(variableRenaming1) && IsRenaming(variableRenaming2); + } + List<Substitution> variableRenaming1 = new List<Substitution>(); + List<Substitution> variableRenaming2 = new List<Substitution>(); + if (!FindVariableRenamings(variableRenaming1, variableRenaming2, false)) + { + variableRenaming1.Clear(); variableRenaming2.Clear(); + if (!FindVariableRenamings(variableRenaming1, variableRenaming2, true)) + { l.errors.Add(new Error(22)); return false; } + } + if (CheckHelper.unionSubstitutions(variableRenaming1, variableRenaming2) == null) + { l.errors.Add(new Error(22)); return false; } + return true; + } + else return true; + } + else throw new InvalidOperationException(); + } + } +} diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckLemmaIsAcyclic.cs b/BaumtransformationBewerter/Ueberpruefung/CheckLemmaIsAcyclic.cs new file mode 100644 index 0000000000000000000000000000000000000000..d79f9224edc77db56a3b62244125529d5e9fb53b --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckLemmaIsAcyclic.cs @@ -0,0 +1,26 @@ +using System; +using Eingabeverwaltung.Metamodell; + +namespace Ueberpruefung +{ + public class CheckLemmaIsAcyclic : ElementChecker + { + public CheckLemmaIsAcyclic() { } + public override bool check(Element e) + { + if (e is Lemma l) + { + bool result = l.cyclicDependencies.Count == 0; + if (!result) + { + string output = "{ "; + foreach (Lemma dep in l.cyclicDependencies) output += dep.name + " "; + output += "}"; + l.errors.Add(new Error(20,output)); + } + return result; + } + else throw new InvalidOperationException(); + } + } +} diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckLemmaTaskIsUsed.cs b/BaumtransformationBewerter/Ueberpruefung/CheckLemmaTaskIsUsed.cs new file mode 100644 index 0000000000000000000000000000000000000000..bc6c9454a29c114b115352dbdf779cef6a43e88b --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckLemmaTaskIsUsed.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using Eingabeverwaltung.Metamodell; + +namespace Ueberpruefung +{ + /// <summary> + /// @pre: Needs to be called after Ueberpruefer.analyseUsefulness + /// </summary> + class CheckLemmaTaskIsUsed : ElementChecker + { + /// <summary> + /// @pre: Needs to be called after Ueberpruefer.analyseUsefulness + /// </summary> + public CheckLemmaTaskIsUsed() { } + public override bool check(Element e) + { + if (e is Container con) + { + List<Lemma> mainLemmata = new List<Lemma>(); + // 1. collect all Lemmata, that are main proof for a task + foreach (Lemma lemma in con.Proof.lemmata) + if (lemma.OwnTask != null) mainLemmata.Add(lemma); + // 2. remove all those Lemmata from collected list that are reachable from main proof + void RemoveAllUsefulLemmata(List<Lemma> visited, SingleProof proof) + { + void RemoveAllUsefulLemmataTR(List<Lemma> visited, List<Lemma> newLemmata, Transformation tr) + { + foreach (TransformationStep ts in tr.transformationSteps) + { + if (ts.rule is Lemma lemma && !visited.Contains(lemma)) + { + visited.Add(lemma); + newLemmata.Add(lemma); + mainLemmata.Remove(lemma); + } + } + } + List<Lemma> newLemmata = new List<Lemma>(); + if (proof is Transformation tr) + RemoveAllUsefulLemmataTR(visited, newLemmata, tr); + else if (proof is Induction ind) + foreach (InductionCase indC in ind.indCases) + RemoveAllUsefulLemmataTR(visited, newLemmata, indC.proof); + else throw new Exception("Found a proof that is neither Transformation nor Induction!"); + foreach (Lemma newLemma in newLemmata) + RemoveAllUsefulLemmata(visited, newLemma.proof); + } + RemoveAllUsefulLemmata(new List<Lemma>(), con.Proof.proof); + bool result = mainLemmata.Count == 0; + if (!result) + foreach (Lemma lemma in mainLemmata) + lemma.errors.Add(new Error(23)); + return result; + } + else throw new InvalidOperationException(); + } + } +} diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckResultTree_for_RuleEndTree.cs b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckResultTree_for_RuleEndTree.cs new file mode 100644 index 0000000000000000000000000000000000000000..da4284f2ed4d5b7d1aa7af1ec32d1961081ad149 --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckResultTree_for_RuleEndTree.cs @@ -0,0 +1,21 @@ +using Eingabeverwaltung.Metamodell; +using System; + +namespace Ueberpruefung.CheckTransformation +{ + public class CheckResultTree_for_RuleEndTree : ElementChecker + { + public CheckResultTree_for_RuleEndTree() { } + + public override bool check(Element e) + { + if (e is TransformationStep ts) + { + bool result = ts.resultTree.Equals(CheckHelper.transform(ts.startTree, ts.termPart, CheckHelper.substitute(ts.ruleStartTree(), ts.substitutions))); + if (!result) ts.errors.Add(new Error(12)); + return result; + } + else throw new InvalidOperationException(); + } + } +} \ No newline at end of file diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckResultTree_for_RuleStartTree.cs b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckResultTree_for_RuleStartTree.cs new file mode 100644 index 0000000000000000000000000000000000000000..ab9480e387d60538545b86fe74a7dc3672890f11 --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckResultTree_for_RuleStartTree.cs @@ -0,0 +1,21 @@ +using Eingabeverwaltung.Metamodell; +using System; + +namespace Ueberpruefung.CheckTransformation +{ + public class CheckResultTree_for_RuleStartTree : ElementChecker + { + public CheckResultTree_for_RuleStartTree() { } + + public override bool check(Element e) + { + if (e is TransformationStep ts) + { + bool result = ts.resultTree.Equals(CheckHelper.transform(ts.startTree,ts.termPart,CheckHelper.substitute(ts.ruleEndTree(),ts.substitutions))); + if (!result) ts.errors.Add(new Error(11)); + return result; + } + else throw new InvalidOperationException(); + } + } +} \ No newline at end of file diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckSubstitutionVariable_DefinedIn_ADT.cs b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckSubstitutionVariable_DefinedIn_ADT.cs new file mode 100644 index 0000000000000000000000000000000000000000..1270c0beb11da1df552abe8987483af2dc963440 --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckSubstitutionVariable_DefinedIn_ADT.cs @@ -0,0 +1,21 @@ +using Eingabeverwaltung.Metamodell; +using System; + +namespace Ueberpruefung.CheckTransformation +{ + public class CheckSubstitutionVariable_DefinedIn_ADT : ElementChecker + { + public CheckSubstitutionVariable_DefinedIn_ADT() { } + + public override bool check(Element e) + { + if (e is Substitution sub) + { + bool result = sub.variable != null; + if (!result) sub.errors.Add(new Error(3)); + return result; + } + else throw new InvalidOperationException(); + } + } +} \ No newline at end of file diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckSubstitutionVariable_isUsedInRule.cs b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckSubstitutionVariable_isUsedInRule.cs new file mode 100644 index 0000000000000000000000000000000000000000..b911a0cc49d41a0222c147db33d218f6fb588dd1 --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckSubstitutionVariable_isUsedInRule.cs @@ -0,0 +1,31 @@ +using Eingabeverwaltung.Metamodell; +using System; + +namespace Ueberpruefung.CheckTransformation +{ + public class CheckSubstitutionVariable_isUsedInRule : ElementChecker + { + public CheckSubstitutionVariable_isUsedInRule() { } + + /// <summary> + /// Requires: all variables in substitutions are not null, otherwise NullReferenceException will be thrown. + /// </summary> + /// <param name="ts"></param> + /// <returns></returns> + public override bool check(Element e) + { + if (e is TransformationStep ts) + { + bool result = true, res; + foreach (Substitution sub in ts.substitutions) + { + res = ts.rule.eq.leftTree.findSubTree(new TreeVariable(sub.variable)).Count > 0 + || ts.rule.eq.rightTree.findSubTree(new TreeVariable(sub.variable)).Count > 0; + if (!res) sub.errors.Add(new Error(13)); + } + return result; + } + else throw new InvalidOperationException(); + } + } +} \ No newline at end of file diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckSubstitution_NoSortChange.cs b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckSubstitution_NoSortChange.cs new file mode 100644 index 0000000000000000000000000000000000000000..6eb8a5e865987e4005726d656ef81b465c555af7 --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckSubstitution_NoSortChange.cs @@ -0,0 +1,21 @@ +using Eingabeverwaltung.Metamodell; +using System; + +namespace Ueberpruefung.CheckTransformation +{ + public class CheckSubstitution_NoSortChange : ElementChecker + { + public CheckSubstitution_NoSortChange() { } + + public override bool check(Element e) + { + if (e is Substitution sub) + { + bool result = sub.variable.sort == sub.tree.sort; + if (!result) sub.errors.Add(new Error(4)); + return result; + } + else throw new InvalidOperationException(); + } + } +} diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckSubstitution_for_RuleEndTree.cs b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckSubstitution_for_RuleEndTree.cs new file mode 100644 index 0000000000000000000000000000000000000000..81688818d0da54e4fe63bab57a23caa91e17e6bd --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckSubstitution_for_RuleEndTree.cs @@ -0,0 +1,28 @@ +using Eingabeverwaltung.Metamodell; +using System; +using System.Collections.Generic; + +namespace Ueberpruefung.CheckTransformation +{ + public class CheckSubstitution_for_RuleEndTree : ElementChecker + { + public CheckSubstitution_for_RuleEndTree() { } + + public override bool check(Element el) + { + if (el is TransformationStep ts) + { + bool e = new CheckTermPart_match_RuleEndTree().check(ts), + r = ts.termPart.Equals(CheckHelper.substitute(ts.ruleEndTree(), ts.substitutions)); + if (e && !r && !(new CheckTermPart_match_RuleStartTree().check(ts))) + { + Error err = new Error(10); + err.Output = Util.ListSubstitutionToString(CheckHelper.findSubstitution(ts.ruleEndTree(),ts.termPart)); + ts.errors.Add(err); + } + return !e || r; + } + else throw new InvalidOperationException(); + } + } +} \ No newline at end of file diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckSubstitution_for_RuleStartTree.cs b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckSubstitution_for_RuleStartTree.cs new file mode 100644 index 0000000000000000000000000000000000000000..c8bb4e1aeb991024d7f0cb23ff7ce2e1dabb6d6e --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckSubstitution_for_RuleStartTree.cs @@ -0,0 +1,28 @@ +using Eingabeverwaltung.Metamodell; +using System; +using System.Collections.Generic; + +namespace Ueberpruefung.CheckTransformation +{ + public class CheckSubstitution_for_RuleStartTree : ElementChecker + { + public CheckSubstitution_for_RuleStartTree() { } + + public override bool check(Element e) + { + if (e is TransformationStep ts) + { + bool s = new CheckTermPart_match_RuleStartTree().check(ts), + r = ts.termPart.Equals(CheckHelper.substitute(ts.ruleStartTree(), ts.substitutions)); + if (s && !r) + { + Error err = new Error(9); + err.Output = Util.ListSubstitutionToString(CheckHelper.findSubstitution(ts.ruleStartTree(), ts.termPart)); + ts.errors.Add(err); + } + return !s || r; + } + else throw new InvalidOperationException(); + } + } +} \ No newline at end of file diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckTask_Satisfied.cs b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckTask_Satisfied.cs new file mode 100644 index 0000000000000000000000000000000000000000..dd668e6ef577276f2f37e1f56112f3e8d55abf97 --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckTask_Satisfied.cs @@ -0,0 +1,52 @@ +using Eingabeverwaltung.Metamodell; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Ueberpruefung.CheckTransformation +{ + public class CheckTask_Satisfied : ElementChecker + { + public CheckTask_Satisfied() { } + + public override bool check(Element e) + { + if (e is Container con) + if (con.Proof.proof is Transformation tr) + return check(con.Task.task.eq, tr); + else if (con.Proof.proof is Induction) return true; // is true by creation of Induction + else throw new Exception("Found a Singleproof that is either Transformation nor Induction"); + else if (e is Lemma l) + if (l.proof is Transformation tr) + return check(l.eq, tr); + else if (l.proof is Induction) return true; // is true by creation of Induction + else throw new Exception("Found a Singleproof that is either Transformation nor Induction"); + else if (e is InductionCase ic) return check(ic.eq, ic.proof); + else throw new InvalidOperationException(); + } + + private bool check(Equation task, Transformation tr) + { + List<Error> errors = check(task, new Equation(tr.startTree, tr.transformationSteps.Last().resultTree, null)); + if (errors == null) return true; + tr.errors.AddRange(errors); + return false; + } + + private List<Error> check(Equation task ,Equation proofResult) + { + List<Error> result = new List<Error>(); + bool startL = proofResult.leftTree.Equals(task.leftTree); + bool startR = proofResult.leftTree.Equals(task.rightTree); + bool endL = proofResult.rightTree.Equals(task.leftTree); + bool endR = proofResult.rightTree.Equals(task.rightTree); + if (startL && endR || startR && endL) result = null; + else + { + if (!startL && !startR) result.Add(new Error(1)); + if (!endL && !endR || startL && !endR || startR && !endL) result.Add(new Error(2)); + } + return result; + } + } +} diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckTermPart_isSubTreeFrom_StartTree.cs b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckTermPart_isSubTreeFrom_StartTree.cs new file mode 100644 index 0000000000000000000000000000000000000000..8c2bb831cbe6f9f7c50a77bedaea3f39baba1035 --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckTermPart_isSubTreeFrom_StartTree.cs @@ -0,0 +1,21 @@ +using Eingabeverwaltung.Metamodell; +using System; + +namespace Ueberpruefung.CheckTransformation +{ + public class CheckTermPart_isSubTreeFrom_StartTree : ElementChecker + { + public CheckTermPart_isSubTreeFrom_StartTree() { } + + public override bool check(Element e) + { + if (e is TransformationStep ts) + { + bool result = ts.startTree.findSubTree(ts.termPart).Count > 0; + if (!result) ts.errors.Add(new Error(6)); + return result; + } + else throw new InvalidOperationException(); + } + } +} \ No newline at end of file diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckTermPart_match_RuleEndTree.cs b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckTermPart_match_RuleEndTree.cs new file mode 100644 index 0000000000000000000000000000000000000000..9cc8b0ac618034368a35c932e645703f07f4d186 --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckTermPart_match_RuleEndTree.cs @@ -0,0 +1,17 @@ +using Eingabeverwaltung.Metamodell; +using System; + +namespace Ueberpruefung.CheckTransformation +{ + public class CheckTermPart_match_RuleEndTree : ElementChecker + { + public CheckTermPart_match_RuleEndTree() { } + + public override bool check(Element e) + { + if (e is TransformationStep ts) + return CheckHelper.findSubstitution(ts.ruleEndTree(), ts.termPart) != null; + else throw new InvalidOperationException(); + } + } +} \ No newline at end of file diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckTermPart_match_RuleStartTree.cs b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckTermPart_match_RuleStartTree.cs new file mode 100644 index 0000000000000000000000000000000000000000..d31efa8d70b09061072ecd9c3533dfd8a30123b4 --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckTermPart_match_RuleStartTree.cs @@ -0,0 +1,17 @@ +using Eingabeverwaltung.Metamodell; +using System; + +namespace Ueberpruefung.CheckTransformation +{ + public class CheckTermPart_match_RuleStartTree : ElementChecker + { + public CheckTermPart_match_RuleStartTree() { } + + public override bool check(Element e) + { + if (e is TransformationStep ts) + return CheckHelper.findSubstitution(ts.ruleStartTree(), ts.termPart) != null; + else throw new InvalidOperationException(); + } + } +} \ No newline at end of file diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckTransformationStep_NoSortChange.cs b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckTransformationStep_NoSortChange.cs new file mode 100644 index 0000000000000000000000000000000000000000..3980c59c180b1e66931f2e5775e47185b9c4a205 --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckTransformationStep_NoSortChange.cs @@ -0,0 +1,21 @@ +using Eingabeverwaltung.Metamodell; +using System; + +namespace Ueberpruefung.CheckTransformation +{ + public class CheckTransformationStep_NoSortChange : ElementChecker + { + public CheckTransformationStep_NoSortChange() { } + + public override bool check(Element e) + { + if (e is TransformationStep ts) + { + bool result = ts.startTree.sort == ts.resultTree.sort; + if (!result) ts.errors.Add(new Error(5)); + return result; + } + else throw new InvalidOperationException(); + } + } +} \ No newline at end of file diff --git a/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckUsedLemmaIsProved.cs b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckUsedLemmaIsProved.cs new file mode 100644 index 0000000000000000000000000000000000000000..9b01ccbe84a40c5cc38501801de38475355eb234 --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/CheckTransformation/CheckUsedLemmaIsProved.cs @@ -0,0 +1,47 @@ +using Eingabeverwaltung.Metamodell; +using System; + +namespace Ueberpruefung.CheckTransformation +{ + public class CheckUsedLemmaIsProved : ElementChecker + { + Lemma user; + public CheckUsedLemmaIsProved(Lemma user) { this.user = user; } + public override bool check(Element e) + { + if (e is TransformationStep ts) + { + if (ts.rule is Lemma l) + { + bool result; string output = ""; + if (l.IsProved is bool p) result = p; + else throw new Exception("Tried to check if lemma " + l.name + " is proved while isProved is not set."); + if (result) + { + // This error must occure also when a main proof of a task has cyclic dependencies, + // but only if this usage is in that cycle + bool result2 = l.cyclicDependencies.Count == 0 || !l.cyclicDependencies.Contains(user); + if (!result2) + { + output = "{ "; + foreach (Lemma dep in user.cyclicDependencies) output += dep.name + " "; + output += "}"; + } + result &= result2; + } + if (!result) ts.errors.Add(new Error(21,output)); + return result; + } + else if (ts.rule is InductionHypothesis ih) + { + bool result; + if (ih.IsProved is bool p) result = p; + else throw new Exception("Tried to check if inductionhypothesis is proved while isProved is not set."); + return result; + } + else return true; + + }else throw new InvalidOperationException(); + } + } +} diff --git a/BaumtransformationBewerter/Ueberpruefung/Element.cs b/BaumtransformationBewerter/Ueberpruefung/Element.cs new file mode 100644 index 0000000000000000000000000000000000000000..25f92e9d833ad0aceedb8406e8494def2b7743f5 --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/Element.cs @@ -0,0 +1,7 @@ +namespace Ueberpruefung +{ + public abstract class Element + { + public bool accept(ElementChecker e) => e.check(this); + } +} diff --git a/BaumtransformationBewerter/Ueberpruefung/ElementChecker.cs b/BaumtransformationBewerter/Ueberpruefung/ElementChecker.cs new file mode 100644 index 0000000000000000000000000000000000000000..d7d47dca67b11c867471eb8d9dc19416e31d9fe8 --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/ElementChecker.cs @@ -0,0 +1,16 @@ +using Eingabeverwaltung.Metamodell; + +namespace Ueberpruefung +{ + public abstract class ElementChecker + { + /// <summary> + /// Checks element e. Returns true if constraint is satisfied, false if not satisfied and + /// throws InvalidOperationException if the context (Type of e) is wrong for the constraint. + /// PreCondition: All necessary pre-checkings must be complete. + /// </summary> + /// <param name="e"></param> + /// <returns></returns> + public abstract bool check(Element e); + } +} diff --git a/BaumtransformationBewerter/Ueberpruefung/Ueberpruefer.cs b/BaumtransformationBewerter/Ueberpruefung/Ueberpruefer.cs new file mode 100644 index 0000000000000000000000000000000000000000..7ffd2093e028d1227d1b6e5fd70e9639dc61d9f2 --- /dev/null +++ b/BaumtransformationBewerter/Ueberpruefung/Ueberpruefer.cs @@ -0,0 +1,391 @@ +using Eingabeverwaltung.Metamodell; +using System; +using System.Collections.Generic; +using Ueberpruefung.CheckTransformation; +using Ueberpruefung.CheckInduction; + +namespace Ueberpruefung +{ + public static class Ueberpruefer + { + public static void ueberpruefe(Container con) + { + // pre checkings and ordering of lemmata, their dependencies, usefulness and pre required (in)validness for cycles + analyseCyclicDependencies(con.Proof.lemmata); + List<SingleTask> allTasks = new List<SingleTask>() { con.Task.task }; + allTasks.AddRange(con.Task.lemmaTasks); + analyseUsefulness(allTasks,con.Proof); + // main checkings of errors + foreach (Lemma lemma in con.Proof.lemmata) + { + if (lemma.OwnTask != null) lemma.IsProved = true; + else if (!lemma.accept(new CheckLemmaIsAcyclic())) // 20 + lemma.IsProved = false; + } + con.accept(new CheckLemmaTaskIsUsed()); // 23 + // now check all proofs in their topological order + // (lemmata are ordered by analyseCyclicDependencies, main proof is last in this order) + foreach (Lemma lemma in con.Proof.lemmata) + { + bool isProved = true; + isProved &= lemma.accept(new CheckTask_Satisfied()); // 1, 2 + isProved &= lemma.accept(new CheckIndTask_Satisfied()); // 38, 39 + isProved &= ueberpruefe(lemma.proof, lemma); + if (lemma.IsProved == null) lemma.IsProved = isProved; + } + con.accept(new CheckTask_Satisfied()); // 1, 2 + con.accept(new CheckIndTask_Satisfied()); // 38, 39 + ueberpruefe(con.Proof.proof,null); + // post checkings for assessment: usefulness of lemmata to induction cases of their tasks with induction config + analyseUsefulnessToIndCases(allTasks,con.Proof); + } + + private static bool ueberpruefe(SingleProof sp, Lemma Owner) + { + if (sp is Transformation tr) return ueberpruefe(tr, Owner); + else if (sp is Induction ind) return ueberpruefe(ind, Owner); + else throw new NotImplementedException("Ueberpruefer can only check transformation or induction as single proof"); + } + + private static bool ueberpruefe(Induction ind, Lemma Owner) + { + bool isProved = true; + isProved &= ind.accept(new CheckIndVarNotFixed()); // 30 + if (ind.accept(new CheckIndVarHasConstructors())) // 31 + { + foreach (InductionCase ic in ind.indCases) + { + isProved &= ic.accept(new CheckTask_Satisfied()); // 1, 2 + isProved &= ic.accept(new CheckIndPartEquation(ind)); // 34 (ic) + isProved &= ic.accept(new CheckIndPartEquationIsFixed(ind)); // 35 (ic) + isProved &= ic.accept(new CheckIndHypNotUsedInIA()); // 36 + // this errors don't making lemmata unproved + ic.accept(new CheckIndPartEquationIsNotFixed(ind)); // 40 (ic) + ic.accept(new CheckIndCaseType()); // 41 + } + isProved &= ind.accept(new CheckIndCasesAllExisting()); // 32 + isProved &= ind.accept(new CheckIndCaseTypeIsValid()); // 33 + // check ihs (must be done after check ic: requires ic.buildingParameterVariable) + foreach (InductionHypothesis ih in ind.indHyps) + { + bool IHisProved = true; + IHisProved &= ih.accept(new CheckIndPartEquation(ind)); // 34 (ih) + IHisProved &= ih.accept(new CheckIndPartEquationIsFixed(ind)); // 35 (ih) + ih.accept(new CheckIndPartEquationIsNotFixed(ind)); // 40 (ih) (don't makes lemma or ih unproved) + // must be set before checkings of transformation (for error 37) + ih.IsProved = IHisProved; + isProved &= IHisProved; + } + ind.accept(new CheckIndHypsUnique()); // 42 + ind.accept(new CheckIndHypCanBeUseful()); // 43 + // check transformations + foreach (InductionCase ic in ind.indCases) + isProved &= ueberpruefe(ic.proof, Owner); + } + else isProved = false; + return isProved; + } + + private static bool ueberpruefe(Transformation tr, Lemma Owner) { + bool isProved = true; + foreach (TransformationStep ts in tr.transformationSteps) + { + bool formalError = false; + foreach (Substitution sub in ts.substitutions) + { + if (sub.accept(new CheckSubstitutionVariable_DefinedIn_ADT())) // 3 + { + if (!sub.accept(new CheckSubstitution_NoSortChange())) // 4 + formalError = true; + } + else formalError = true; + } + if (!ts.accept(new CheckTransformationStep_NoSortChange())) // 5 + formalError = true; + isProved &= !formalError; + if (!formalError) + { + bool termPart_isSubTreeFrom_starTree = + ts.accept(new CheckTermPart_isSubTreeFrom_StartTree()); // 6 + bool termPart_match_RuleStartTree = + ts.accept(new CheckTermPart_match_RuleStartTree()); // 7 + bool termPart_match_RuleEndTree = + ts.accept(new CheckTermPart_match_RuleEndTree()); // 8 + isProved &= termPart_isSubTreeFrom_starTree; + if (termPart_match_RuleStartTree && termPart_match_RuleEndTree + && !ts.ruleStartTree().Equals(ts.ruleEndTree())) // when both sides are equal, direction can't be wrong + { + // assume wrong direction + // 10 here don't marks the error, + // because termpart match also ruleStartTree + if (ts.accept(new CheckSubstitution_for_RuleEndTree())) // 10 + { + // direction is wrong + ts.errors.Add(new Error(8)); + if (termPart_isSubTreeFrom_starTree) + isProved &= ts.accept(new CheckResultTree_for_RuleEndTree()); // 12 + } + else + { // direction is correct + if (ts.accept(new CheckSubstitution_for_RuleStartTree()) // 9 + && termPart_isSubTreeFrom_starTree) + isProved &= ts.accept(new CheckResultTree_for_RuleStartTree()); // 11 + else isProved = false; + } + } + else + { + if (termPart_match_RuleStartTree) + { + if (ts.accept(new CheckSubstitution_for_RuleStartTree()) // 9 + && termPart_isSubTreeFrom_starTree) + isProved &= ts.accept(new CheckResultTree_for_RuleStartTree()); // 11 + else isProved = false; + } + else + { + if (termPart_match_RuleEndTree) + { + ts.errors.Add(new Error(8)); + if (ts.accept(new CheckSubstitution_for_RuleEndTree()) // 10 + && termPart_isSubTreeFrom_starTree) + isProved &= ts.accept(new CheckResultTree_for_RuleEndTree()); // 12 + else isProved = false; + } + else { ts.errors.Add(new Error(7)); isProved = false; } + } + } + ts.accept(new CheckSubstitutionVariable_isUsedInRule()); // 13 + isProved &= ts.accept(new CheckUsedLemmaIsProved(Owner)); // 21 + isProved &= ts.accept(new CheckFixedVarsNotSubstituted()); // 37 + } + } + return isProved; + } + + /// <summary> + /// This Method is helping the Ueberpruefer checking cycles in lemmata + /// by analysing their dependencies. + /// @pre: All cyclicDependencies of lemmata are empty. + /// @post: The whole cycle of the lemma ist saved in its cyclicDependencies. + /// </summary> + /// <param name="lemmata"></param> + private static void analyseCyclicDependencies(List<Lemma> lemmata) + { + // 1. get all direct dependencies + void writeDirectCyclicDependencies(Lemma lemma, Transformation tr) + { + foreach (TransformationStep ts in tr.transformationSteps) + { + if (ts.rule is Lemma usedLemma) + { + bool found = false; + foreach (Lemma current in lemmata) + if (current == usedLemma) + { + if (!lemma.cyclicDependencies.Contains(usedLemma)) lemma.cyclicDependencies.Add(usedLemma); + found = true; break; + } + if (!found) throw new Exception("Error in Ueberpruefung: Could not find Lemma " + usedLemma.name + " in Lemmata!"); + } + } + } + foreach(Lemma lemma in lemmata) + { + if (lemma.proof is Transformation tr) + writeDirectCyclicDependencies(lemma, tr); + else if (lemma.proof is Induction ind) + foreach (InductionCase indC in ind.indCases) + writeDirectCyclicDependencies(lemma, indC.proof); + else throw new Exception("Found a proof in Lemma that is neither Transformation nor Induction!"); + } + //Console.WriteLine("After 1."); print(lemmata,true); + // 2. remove Lemmata not depending from cyclic Lemmata by topological sort + List<Lemma> nonCyclic = new List<Lemma>(); + List<Lemma> remaining = new List<Lemma>(lemmata); + List<Lemma> moved; + do + { + moved = new List<Lemma>(); int i = -1; + while (i < remaining.Count - 1) // move independent lemmata to nonCyclic + { + i++; + if (remaining[i].cyclicDependencies.Count == 0) + { + nonCyclic.Add(remaining[i]); + moved.Add(remaining[i]); + remaining.RemoveAt(i); i--; + } + } + foreach (Lemma movedLemma in moved) // remove Dependencies from moved + foreach (Lemma remLemma in remaining) remLemma.cyclicDependencies.Remove(movedLemma); + } while (moved.Count != 0); + //Console.WriteLine("After 2."); print(lemmata,true); + // 3. distinguish cyclic Lemmata and Lemmata depending from cyclic Lemmata: + // Only real cycle elements must be marked with that error + List<Lemma> useCyclic = new List<Lemma>(); + Dictionary<Lemma, List<Lemma>> transitiveHullSaving = new Dictionary<Lemma, List<Lemma>>(); + List<Lemma> getTransitiveHull(Lemma current, List<Lemma> hull) + { + foreach(Lemma dep in current.cyclicDependencies) + if (!hull.Contains(dep)) + { + hull.Add(dep); + if (transitiveHullSaving.ContainsKey(dep)) + { + foreach (Lemma saved in transitiveHullSaving[dep]) + if (!hull.Contains(saved)) hull.Add(saved); + }else getTransitiveHull(dep, hull); + } + return hull; + } + for (int i = 0; i< remaining.Count; i++) + { + Lemma current = remaining[i]; + List<Lemma> transitiveHull = getTransitiveHull(current, new List<Lemma>()); + transitiveHullSaving.Add(current, transitiveHull); + if (transitiveHull.Contains(current)) + {// found element of cycle + current.cyclicDependencies.Clear(); + current.cyclicDependencies.AddRange(transitiveHull); + //current.cyclicDependencies.Remove(current); + } + else + {// not an element of cycle + current.cyclicDependencies.Clear(); + useCyclic.Add(current); + remaining.RemoveAt(i); i--; + foreach (Lemma remLemma in remaining) remLemma.cyclicDependencies.Remove(current); + } + } + //Console.WriteLine("After 3."); print(lemmata,true); + // 4. move the topological order to list "lemmata" + lemmata.Clear(); + lemmata.AddRange(nonCyclic); + lemmata.AddRange(remaining); // = cycle(s) + lemmata.AddRange(useCyclic); + // result is already contained in the list "lemmata" + } + + /// <summary> + /// This Method finds all Lemmata that are main proof for a task + /// and let every Lemma know for which task it is useful. + /// Also Checks Error 22. + /// @pre: tasks[0].name = "main task" + /// </summary> + /// <param name="tasks"></param> + /// <param name="proof"></param> + private static void analyseUsefulness(List<SingleTask> tasks, Proof proof) + { + // 1. find all Lemmata that are main proof for a task + List<Lemma> mainLemmata = new List<Lemma>(); + for (int i = 1; i < tasks.Count; i++) + { + SingleTask task = tasks[i]; + foreach (Lemma lemma in proof.lemmata) + { + if (lemma.name == task.name && lemma.accept(new CheckLemmaEqualsTask(task))) // 22 + { + lemma.OwnTask = task; + lemma.usefulFor.Add(new TaskAssignment(task)); + mainLemmata.Add(lemma); + } + } + } + // 2. analyse usefulness of other lemmata + List<Lemma> usefulLemmata = GetAllUsefulLemmata(new List<Lemma>(), proof.proof); + foreach (Lemma usefulLemma in usefulLemmata) + usefulLemma.usefulFor.Add(new TaskAssignment(tasks[0])); + foreach (Lemma mainLemma in mainLemmata) + { + usefulLemmata = GetAllUsefulLemmata(new List<Lemma>(), mainLemma.proof); + foreach (Lemma usefulLemma in usefulLemmata) + usefulLemma.usefulFor.Add(new TaskAssignment(mainLemma.OwnTask)); + } + } + + /// <summary> + /// Analyses usefulness of lemmata to the induction cases of their tasks with induction config. <br></br> + /// @pre: All induction cases must have analysed their constructor. <br></br> + /// Does nothing if an induction case don't knows its constructor. + /// </summary> + /// <param name="tasks"></param> + /// <param name="proof"></param> + private static void analyseUsefulnessToIndCases(List<SingleTask> tasks, Proof proof) + { + // 1. get all lemmata inclusive a lemma for main proof + Lemma mainProofLemma = new Lemma("main proof", tasks[0].eq, tasks[0].fixedVars, proof.proof); + mainProofLemma.OwnTask = tasks[0]; + mainProofLemma.usefulFor.Add(new TaskAssignment(tasks[0])); + List<Lemma> allLemmata = new List<Lemma>() { mainProofLemma }; + allLemmata.AddRange(proof.lemmata); + List<Lemma> mainIndLemmata = new List<Lemma>(); + // 2. get all main lemma of tasks with induction config + foreach (Lemma lemma in allLemmata) + if (lemma.OwnTask != null && lemma.OwnTask.config is InductionConfig) mainIndLemmata.Add(lemma); + // 3. specialize the usefulness to induction cases of the mainIndLemmata + foreach(Lemma mainIndLemma in mainIndLemmata) + { + if (mainIndLemma.proof is Induction ind) + { + foreach(InductionCase ic in ind.indCases) + { + if (ic.Constructor == null) continue; + foreach (Lemma usefulLemma in GetAllUsefulLemmata(new List<Lemma>(), ic.proof)) + { + TaskAssignment ta = null; + foreach(TaskAssignment currentTa in usefulLemma.usefulFor) + if (currentTa.task == mainIndLemma.OwnTask) { ta = currentTa; break; } + if (ta == null) throw new Exception("Could not find Task Assignment to task "+mainIndLemma.OwnTask.name+" for Lemma "+usefulLemma.name+" in its Task Assignments!"); + ta.AddIndCase(ic.Constructor); + } + } + } + } + } + + /// <summary> + /// Finds all transitive useful lemmata to the given proof. <br></br> + /// Start with input result = new List. <br></br> + /// Adds all useful Lemmata to input list result and returns the same list. + /// </summary> + /// <param name="result"></param> + /// <param name="proof"></param> + /// <returns></returns> + private static List<Lemma> GetAllUsefulLemmata(List<Lemma> result, SingleProof proof) + { + List<Lemma> GetAllUsefulLemmataTR(List<Lemma> result, List<Lemma> newLemmata, Transformation tr) + { + foreach (TransformationStep ts in tr.transformationSteps) + { + + if (ts.rule is Lemma lemma && !result.Contains(lemma) && lemma.OwnTask == null) + { + // lemma with error 22 should not be added, because it would be a main proof for a task + bool lemmaNotMainProof = true; + foreach (Error err in lemma.errors) + if (err.errorCode == 22) lemmaNotMainProof = false; + if (lemmaNotMainProof) + { + result.Add(lemma); + newLemmata.Add(lemma); + } + } + } + return result; + } + List<Lemma> newLemmata = new List<Lemma>(); + if (proof is Transformation tr) + GetAllUsefulLemmataTR(result, newLemmata, tr); + else if (proof is Induction ind) + { + foreach (InductionCase indC in ind.indCases) + GetAllUsefulLemmataTR(result, newLemmata, indC.proof); + } + else throw new NotImplementedException("Found a single proof that is neither Transformation nor Induction!"); + foreach (Lemma newLemma in newLemmata) + GetAllUsefulLemmata(result, newLemma.proof); + return result; + } + } +} diff --git a/BaumtransformationBewerter/Util.cs b/BaumtransformationBewerter/Util.cs new file mode 100644 index 0000000000000000000000000000000000000000..63eafe3264309dd77c50e72bfba38430a4a963ec --- /dev/null +++ b/BaumtransformationBewerter/Util.cs @@ -0,0 +1,22 @@ +using Eingabeverwaltung.Metamodell; +using System.Collections.Generic; + +public static class Util +{ + public static string ListSubstitutionToString(List<Substitution> subs) + { + string result = "[ "; + foreach (Substitution sub in subs) + result += sub.tree.ToString() + " / " + sub.variable.name + " "; + result += "]"; + return result; + } + public static string ErrorListToString(List<Error> errors) + { + string result = "Errors: { "; + foreach (Error err in errors) + result += err.errorCode + "(" + err.Output + ") "; + result += "}"; + return result; + } +} diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Standardkonfiguration.config b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Standardkonfiguration.config new file mode 100644 index 0000000000000000000000000000000000000000..b0e71e37962c72fa747f1ce535d830a25f2ff70d --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Standardkonfiguration.config @@ -0,0 +1,8 @@ +Round 5 +1 1.0 +2 0.25 +3 0.5 +4 0.25 +5 0.5 +6 0.25 +7 0.25 \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/ADT_Bsp.adt b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/ADT_Bsp.adt new file mode 100644 index 0000000000000000000000000000000000000000..038c96c8b6de658b86652581e1698a8f1dfc7bfa --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/ADT_Bsp.adt @@ -0,0 +1,11 @@ +name Peano +sorts Nat +constructors null: Nat + inc: Nat -> Nat +operations plus: Nat >< Nat -> Nat + mal: Nat >< Nat -> Nat +vars n : Nat, m : Nat +axioms p0: plus(n,null) = n + p1: plus(n,inc(m)) = inc(plus(n,m)) + m0: mal(n,null) = null + m1: mal(n,inc(m)) = plus(mal(n,m),n) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/ADT_Bsp2.adt b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/ADT_Bsp2.adt new file mode 100644 index 0000000000000000000000000000000000000000..f857a2248e4bf80aa411206e5975889dcae2c7ae --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/ADT_Bsp2.adt @@ -0,0 +1,19 @@ +name Peano_List +sorts Nat, List, T +constructors null: Nat + inc: Nat -> Nat + nil: List + seq: T >< List -> List +operations plus: Nat >< Nat -> Nat + mal: Nat >< Nat -> Nat + conc: List >< List -> List + reverse: List -> List +vars n : Nat, m : Nat, x : T, xs : List, ys : List +axioms p0: plus(n,null) = n + p1: plus(n,inc(m)) = inc(plus(n,m)) + m0: mal(n,null) = null + m1: mal(n,inc(m)) = plus(mal(n,m),n) + c0: conc(nil,ys) = ys + c1: conc(seq(x,xs),ys) = seq(x,conc(xs,ys)) + r0: reverse(nil) = nil + r1: reverse(seq(x,xs)) = conc(reverse(xs),seq(x,nil)) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_correct.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_correct.proof new file mode 100644 index 0000000000000000000000000000000000000000..64a6995aee628216ac96123e2be02a42fef89b32 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_correct.proof @@ -0,0 +1,46 @@ +lemma L1: forall y:Nat : plus(null,y) = y induction y +IA: zu zeigen: plus(null,null) = null +plus(null,null) + {p0, lr, plus(null,null), [null/n]} += null +IH: fixed y:Nat : plus(null,y) = y +IS: zu zeigen: fixed y:Nat : plus(null,inc(y)) = inc(y) +plus(null,inc(y)) + {p1, lr, plus(null,inc(y)), [null/n,y/m]} += inc(plus(null,y)) + {IH, lr, plus(null,y), []} += inc(y) + +lemma L2: forall a:Nat, b:Nat : plus(inc(a),b) = inc(plus(a,b)) induction b +IA: zu zeigen: forall a:Nat : plus(inc(a),null) = inc(plus(a,null)) +plus(inc(a),null) + {p0,lr,plus(inc(a),null),[inc(a)/n]} += inc(a) + {p0,rl,a,[a/n]} += inc(plus(a,null)) +IH: forall a:Nat : fixed b:Nat : plus(inc(a),b) = inc(plus(a,b)) +IS: zu zeigen: forall a:Nat : fixed b:Nat : plus(inc(a),inc(b)) = inc(plus(a,inc(b))) +plus(inc(a),inc(b)) + {p1,lr,plus(inc(a),inc(b)),[inc(a)/n,b/m]} += inc(plus(inc(a),b)) + {IH,lr,plus(inc(a),b),[]} += inc(inc(plus(a,b))) + {p1,rl,inc(plus(a,b)),[a/n,b/m]} += inc(plus(a,inc(b))) + +proof +IA: zu zeigen: forall m:Nat : plus(null,m) = plus(m,null) +plus(null,m) + {L1,lr,plus(null,m),[m/y]} += m + {p0,rl,m,[m/n]} += plus(m,null) +IH: fixed k:Nat : forall m:Nat : plus(k,m) = plus(m,k) +IS: zu zeigen: forall m:Nat : fixed k:Nat : plus(inc(k),m) = plus(m,inc(k)) +plus(m,inc(k)) + {p1,lr,plus(m,inc(k)),[m/n,k/m]} += inc(plus(m,k)) + {IH,rl,plus(m,k),[]} += inc(plus(k,m)) + {L2,rl,inc(plus(k,m)),[k/a,m/b]} += plus(inc(k),m) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_1,2.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_1,2.proof new file mode 100644 index 0000000000000000000000000000000000000000..cd795084cfb3d6df8760e0143457b5ba6fc90d58 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_1,2.proof @@ -0,0 +1,48 @@ +lemma L1: forall y:Nat : plus(null,y) = y induction y +IA: zu zeigen: plus(null,null) = null +plus(inc(n),null) + {p0,lr,plus(inc(n),null),[inc(n)/n]} += inc(n) + {p0,rl,n,[n/n]} += inc(plus(n,null)) +IH: fixed y:Nat : plus(null,y) = y +IS: zu zeigen: fixed y:Nat : plus(null,inc(y)) = inc(y) +plus(null,inc(y)) + {p1, lr, plus(null,inc(y)), [null/n,y/m]} += inc(plus(null,y)) + {IH, lr, plus(null,y), []} += inc(y) + +lemma L2: forall n:Nat, m:Nat : plus(inc(n),m) = inc(plus(n,m)) induction m +IA: zu zeigen: forall n:Nat : plus(inc(n),null) = inc(plus(n,null)) +plus(inc(n),null) + {p0,lr,plus(inc(n),null),[inc(n)/n]} += inc(n) + {p0,rl,n,[n/n]} += inc(plus(n,null)) +IH: forall n:Nat : fixed m:Nat : plus(inc(n),m) = inc(plus(n,m)) +IS: zu zeigen: forall n:Nat : fixed m:Nat : plus(inc(n),inc(m)) = inc(plus(n,inc(m))) +plus(inc(n),inc(m)) + {p1,lr,plus(inc(n),inc(m)),[inc(n)/n,m/m]} += inc(plus(inc(n),m)) + {IH,lr,plus(inc(n),m),[]} += inc(inc(plus(n,m))) + {p1,rl,inc(plus(n,m)),[n/n,m/m]} += inc(plus(n,inc(m))) + +proof +IA: zu zeigen: forall m:Nat : plus(null,m) = plus(m,null) +plus(null,m) + {L1,lr,plus(null,m),[m/y]} += m + {p0,rl,m,[m/n]} += plus(m,null) +IH: fixed k:Nat : forall m:Nat : plus(k,m) = plus(m,k) +IS: zu zeigen: forall m:Nat : fixed k:Nat : plus(inc(k),m) = plus(m,inc(k)) +plus(m,inc(k)) + {p1,lr,plus(m,inc(k)),[m/n,k/m]} += inc(plus(m,k)) + {IH,rl,plus(m,k),[]} += inc(plus(k,m)) + {L2,rl,inc(plus(k,m)),[k/n,m/m]} += plus(inc(k),m) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_30,37.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_30,37.proof new file mode 100644 index 0000000000000000000000000000000000000000..9aea5cbe1edc9c771828b16fa72edfcd12c56d01 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_30,37.proof @@ -0,0 +1,46 @@ +lemma L1: fixed y:Nat : plus(null,y) = y induction y +IA: zu zeigen: plus(null,null) = null +plus(null,null) + {p0, lr, plus(null,null), [null/n]} += null +IH: fixed y:Nat : plus(null,y) = y +IS: zu zeigen: fixed y:Nat : plus(null,inc(y)) = inc(y) +plus(null,inc(y)) + {p1, lr, plus(null,inc(y)), [null/n,y/m]} += inc(plus(null,y)) + {IH, lr, plus(null,y), []} += inc(y) + +lemma L2: forall a:Nat, b:Nat : plus(inc(a),b) = inc(plus(a,b)) induction b +IA: zu zeigen: forall a:Nat : plus(inc(a),null) = inc(plus(a,null)) +plus(inc(a),null) + {p0,lr,plus(inc(a),null),[inc(a)/n]} += inc(a) + {p0,rl,a,[a/n]} += inc(plus(a,null)) +IH: forall a:Nat : fixed b:Nat : plus(inc(a),b) = inc(plus(a,b)) +IS: zu zeigen: forall a:Nat : fixed b:Nat : plus(inc(a),inc(b)) = inc(plus(a,inc(b))) +plus(inc(a),inc(b)) + {p1,lr,plus(inc(a),inc(b)),[inc(a)/n,b/m]} += inc(plus(inc(a),b)) + {IH,lr,plus(inc(a),b),[]} += inc(inc(plus(a,b))) + {p1,rl,inc(plus(a,b)),[a/n,b/m]} += inc(plus(a,inc(b))) + +proof +IA: zu zeigen: forall m:Nat : plus(null,m) = plus(m,null) +plus(null,m) + {L1,lr,plus(null,m),[m/y]} += m + {p0,rl,m,[m/n]} += plus(m,null) +IH: fixed k:Nat : forall m:Nat : plus(k,m) = plus(m,k) +IS: zu zeigen: forall m:Nat : fixed k:Nat : plus(inc(k),m) = plus(m,inc(k)) +plus(m,inc(k)) + {p1,lr,plus(m,inc(k)),[m/n,k/m]} += inc(plus(m,k)) + {IH,rl,plus(m,k),[]} += inc(plus(k,m)) + {L2,rl,inc(plus(k,m)),[k/a,m/b]} += plus(inc(k),m) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_31,38.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_31,38.proof new file mode 100644 index 0000000000000000000000000000000000000000..c91f943fbffbc4b146c1218e961b3ed1c9495a65 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_31,38.proof @@ -0,0 +1,46 @@ +lemma L1: forall y:Nat : plus(null,y) = y induction x +IA: zu zeigen: plus(null,null) = null +plus(null,null) + {p0, lr, plus(null,null), [null/n]} += null +IH: fixed y:Nat : plus(null,y) = y +IS: zu zeigen: fixed y:Nat : plus(null,inc(y)) = inc(y) +plus(null,inc(y)) + {p1, lr, plus(null,inc(y)), [null/n,y/m]} += inc(plus(null,y)) + {IH, lr, plus(null,y), []} += inc(y) + +lemma L2: forall a:Nat, b:Nat : plus(inc(a),b) = inc(plus(a,b)) induction b +IA: zu zeigen: forall a:Nat : plus(inc(a),null) = inc(plus(a,null)) +plus(inc(a),null) + {p0,lr,plus(inc(a),null),[inc(a)/n]} += inc(a) + {p0,rl,a,[a/n]} += inc(plus(a,null)) +IH: forall a:Nat : fixed b:Nat : plus(inc(a),b) = inc(plus(a,b)) +IS: zu zeigen: forall a:Nat : fixed b:Nat : plus(inc(a),inc(b)) = inc(plus(a,inc(b))) +plus(inc(a),inc(b)) + {p1,lr,plus(inc(a),inc(b)),[inc(a)/n,b/m]} += inc(plus(inc(a),b)) + {IH,lr,plus(inc(a),b),[]} += inc(inc(plus(a,b))) + {p1,rl,inc(plus(a,b)),[a/n,b/m]} += inc(plus(a,inc(b))) + +proof +IA: zu zeigen: forall m:Nat : plus(null,m) = plus(m,null) +plus(null,m) + {L1,lr,plus(null,m),[m/y]} += m + {p0,rl,m,[m/n]} += plus(m,null) +IH: fixed k:Nat : forall m:Nat : plus(k,m) = plus(m,k) +IS: zu zeigen: forall m:Nat : fixed k:Nat : plus(inc(k),m) = plus(m,inc(k)) +plus(m,inc(k)) + {p1,lr,plus(m,inc(k)),[m/n,k/m]} += inc(plus(m,k)) + {IH,rl,plus(m,k),[]} += inc(plus(k,m)) + {L2,rl,inc(plus(k,m)),[k/a,m/b]} += plus(inc(k),m) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_32,40,43.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_32,40,43.proof new file mode 100644 index 0000000000000000000000000000000000000000..4d57cde859682039248bdfaae7e99b42eed4acbe --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_32,40,43.proof @@ -0,0 +1,21 @@ +lemma L1: forall y:Nat : plus(null,y) = y induction y +IA: zu zeigen: plus(null,null) = null +plus(null,null) + {p0, rl, plus(null,null), [null/n]} += null +IH: fixed y:Nat : plus(null,y) = y +IS: zu zeigen: fixed y:Nat : plus(null,inc(y)) = inc(y) +plus(null,inc(y)) + {p1, lr, plus(null,inc(y)), [null/n,y/m]} += inc(plus(null,y)) + {IH, lr, plus(null,y), []} += inc(y) + +proof +IA: zu zeigen: forall m:Nat : plus(null,m) = plus(m,null) +plus(null,m) + {L1,lr,plus(null,m),[m/y]} += m + {p0,rl,m,[m/n]} += plus(m,null) +IH: fixed n:Nat, m:Nat : plus(n,m) = plus(m,n) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_33d,41,43.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_33d,41,43.proof new file mode 100644 index 0000000000000000000000000000000000000000..73d7cbd58af8f02c663c0600d35e40be2e349036 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_33d,41,43.proof @@ -0,0 +1,27 @@ +lemma L1: forall y:Nat : plus(null,y) = y induction y +IA: zu zeigen: plus(null,null) = null +plus(null,null) + {p0, lr, plus(null,null), [null/n]} += null +IH: fixed y:Nat : plus(null,y) = y +IS: zu zeigen: fixed y:Nat : plus(null,inc(y)) = inc(y) +plus(null,inc(y)) + {p1, lr, plus(null,inc(y)), [null/n,y/m]} += inc(plus(null,y)) + {IH, lr, plus(null,y), []} += inc(y) + +proof +IA: zu zeigen: forall m:Nat : plus(null,m) = plus(m,null) +plus(null,m) + {L1,lr,plus(null,m),[m/y]} += m + {p0,rl,m,[m/n]} += plus(m,null) +IH: fixed k:Nat : forall m:Nat : plus(k,m) = plus(m,k) +IS: zu zeigen: forall m:Nat : plus(null,m) = plus(m,null) +plus(null,m) + {L1,lr,plus(null,m),[m/y]} += m + {p0,rl,m,[m/n]} += plus(m,null) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_33u.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_33u.proof new file mode 100644 index 0000000000000000000000000000000000000000..c6d5cfad8a01b62b51f18e8fa52515bb238420d8 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_33u.proof @@ -0,0 +1,46 @@ +lemma L1: forall y:Nat : plus(null,y) = y induction y +IA: zu zeigen: plus(null,plus(null,null)) = plus(null,null) +plus(null,plus(null,null)) + {p0, lr, plus(null,null), [null/n]} += plus(null,null) +IH: fixed y:Nat : plus(null,y) = y +IS: zu zeigen: fixed y:Nat : plus(null,inc(y)) = inc(y) +plus(null,inc(y)) + {p1, lr, plus(null,inc(y)), [null/n,y/m]} += inc(plus(null,y)) + {IH, lr, plus(null,y), []} += inc(y) + +lemma L2: forall a:Nat, b:Nat : plus(inc(a),b) = inc(plus(a,b)) induction b +IA: zu zeigen: forall a:Nat : plus(inc(a),null) = inc(plus(a,null)) +plus(inc(a),null) + {p0,lr,plus(inc(a),null),[inc(a)/n]} += inc(a) + {p0,rl,a,[a/n]} += inc(plus(a,null)) +IH: forall a:Nat : fixed b:Nat : plus(inc(a),b) = inc(plus(a,b)) +IS: zu zeigen: forall a:Nat : fixed b:Nat : plus(inc(a),inc(b)) = inc(plus(a,inc(b))) +plus(inc(a),inc(b)) + {p1,lr,plus(inc(a),inc(b)),[inc(a)/n,b/m]} += inc(plus(inc(a),b)) + {IH,lr,plus(inc(a),b),[]} += inc(inc(plus(a,b))) + {p1,rl,inc(plus(a,b)),[a/n,b/m]} += inc(plus(a,inc(b))) + +proof +IA: zu zeigen: forall m:Nat : plus(null,m) = plus(m,null) +plus(null,m) + {L1,lr,plus(null,m),[m/y]} += m + {p0,rl,m,[m/n]} += plus(m,null) +IH: fixed k:Nat : forall m:Nat : plus(k,m) = plus(m,k) +IS: zu zeigen: forall m:Nat : fixed k:Nat : plus(inc(k),m) = plus(m,inc(k)) +plus(m,inc(k)) + {p1,lr,plus(m,inc(k)),[m/n,k/m]} += inc(plus(m,k)) + {IH,rl,plus(m,k),[]} += inc(plus(k,m)) + {L2,rl,inc(plus(k,m)),[k/a,m/b]} += plus(inc(k),m) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_34c.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_34c.proof new file mode 100644 index 0000000000000000000000000000000000000000..c7fde5a9daf7234afc1db3a8cc68411feba5f058 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_34c.proof @@ -0,0 +1,31 @@ +lemma L2: forall a:Nat, b:Nat : plus(inc(a),b) = inc(plus(a,b)) induction b +IA: zu zeigen: forall a:Nat : plus(inc(a),null) = inc(plus(a,null)) +plus(inc(a),null) + {p0,lr,plus(inc(a),null),[inc(a)/n]} += inc(a) + {p0,rl,a,[a/n]} += inc(plus(a,null)) +IH: forall a:Nat : fixed b:Nat : plus(inc(a),b) = inc(plus(a,b)) +IS: zu zeigen: forall a:Nat : fixed b:Nat : plus(inc(a),inc(b)) = inc(plus(a,inc(b))) +plus(inc(a),inc(b)) + {p1,lr,plus(inc(a),inc(b)),[inc(a)/n,b/m]} += inc(plus(inc(a),b)) + {IH,lr,plus(inc(a),b),[]} += inc(inc(plus(a,b))) + {p1,rl,inc(plus(a,b)),[a/n,b/m]} += inc(plus(a,inc(b))) + +proof +IA: zu zeigen: plus(null,null) = null +plus(null,null) + {p0, lr, plus(null,null), [null/n]} += null +IH: fixed k:Nat : forall m:Nat : plus(k,m) = plus(m,k) +IS: zu zeigen: forall m:Nat : fixed k:Nat : plus(inc(k),m) = plus(m,inc(k)) +plus(m,inc(k)) + {p1,lr,plus(m,inc(k)),[m/n,k/m]} += inc(plus(m,k)) + {IH,rl,plus(m,k),[]} += inc(plus(k,m)) + {L2,rl,inc(plus(k,m)),[k/a,m/b]} += plus(inc(k),m) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_34cIS,43.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_34cIS,43.proof new file mode 100644 index 0000000000000000000000000000000000000000..3ffa41800f2b216ad1e9cce557dba4a5f666fd93 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_34cIS,43.proof @@ -0,0 +1,48 @@ +lemma L1: forall y:Nat : plus(null,y) = y induction y +IA: zu zeigen: plus(null,null) = null +plus(null,null) + {p0, lr, plus(null,null), [null/n]} += null +IH: fixed y:Nat : plus(null,y) = y +IS: zu zeigen: fixed y:Nat : plus(null,inc(y)) = inc(y) +plus(null,inc(y)) + {p1, lr, plus(null,inc(y)), [null/n,y/m]} += inc(plus(null,y)) + {IH, lr, plus(null,y), []} += inc(y) + +lemma L2: forall a:Nat, b:Nat : plus(inc(a),b) = inc(plus(a,b)) induction b +IA: zu zeigen: forall a:Nat : plus(inc(a),null) = inc(plus(a,null)) +plus(inc(a),null) + {p0,lr,plus(inc(a),null),[inc(a)/n]} += inc(a) + {p0,rl,a,[a/n]} += inc(plus(a,null)) +IH: forall a:Nat : fixed b:Nat : plus(inc(a),b) = inc(plus(a,b)) +IS: zu zeigen: forall a:Nat : fixed b:Nat : plus(inc(a),inc(b)) = inc(plus(a,inc(b))) +plus(inc(a),inc(b)) + {p1,lr,plus(inc(a),inc(b)),[inc(a)/n,b/m]} += inc(plus(inc(a),b)) + {IH,lr,plus(inc(a),b),[]} += inc(inc(plus(a,b))) + {p1,rl,inc(plus(a,b)),[a/n,b/m]} += inc(plus(a,inc(b))) + +proof +IA: zu zeigen: forall m:Nat : plus(null,m) = plus(m,null) +plus(null,m) + {L1,lr,plus(null,m),[m/y]} += m + {p0,rl,m,[m/n]} += plus(m,null) +IH: fixed k:Nat : forall m:Nat : plus(k,m) = plus(m,k) +IS: zu zeigen: forall m:Nat : plus(inc(null),m) = plus(m,inc(null)) +plus(m,inc(null)) + {p1,lr,plus(m,inc(null)),[m/n,null/m]} += inc(plus(m,null)) + {p0,lr,plus(m,null),[m/n]} += inc(m) + {L1,rl,m,[m/y]} += inc(plus(null,m)) + {L2,rl,inc(plus(null,m)),[null/a,m/b]} += plus(inc(null),m) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_34h.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_34h.proof new file mode 100644 index 0000000000000000000000000000000000000000..2008759021a2a80e199114d6b1e2d68bd693b168 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_34h.proof @@ -0,0 +1,46 @@ +lemma L1: forall y:Nat : plus(null,y) = y induction y +IA: zu zeigen: plus(null,null) = null +plus(null,null) + {p0, lr, plus(null,null), [null/n]} += null +IH: fixed y:Nat : plus(null,y) = y +IS: zu zeigen: fixed y:Nat : plus(null,inc(y)) = inc(y) +plus(null,inc(y)) + {p1, lr, plus(null,inc(y)), [null/n,y/m]} += inc(plus(null,y)) + {IH, lr, plus(null,y), []} += inc(y) + +lemma L2: forall a:Nat, b:Nat : plus(inc(a),b) = inc(plus(a,b)) induction b +IA: zu zeigen: forall a:Nat : plus(inc(a),null) = inc(plus(a,null)) +plus(inc(a),null) + {p0,lr,plus(inc(a),null),[inc(a)/n]} += inc(a) + {p0,rl,a,[a/n]} += inc(plus(a,null)) +IH: forall a:Nat : fixed b:Nat : plus(inc(a),b) = inc(plus(a,b)) +IS: zu zeigen: forall a:Nat : fixed b:Nat : plus(inc(a),inc(b)) = inc(plus(a,inc(b))) +plus(inc(a),inc(b)) + {p1,lr,plus(inc(a),inc(b)),[inc(a)/n,b/m]} += inc(plus(inc(a),b)) + {IH,lr,plus(inc(a),b),[]} += inc(inc(plus(a,b))) + {p1,rl,inc(plus(a,b)),[a/n,b/m]} += inc(plus(a,inc(b))) + +proof +IA: zu zeigen: forall m:Nat : plus(null,m) = plus(m,null) +plus(null,m) + {L1,lr,plus(null,m),[m/y]} += m + {p0,rl,m,[m/n]} += plus(m,null) +IH: forall y:Nat : plus(null,y) = y +IS: zu zeigen: forall m:Nat : fixed k:Nat : plus(inc(k),m) = plus(m,inc(k)) +plus(m,inc(k)) + {p1,lr,plus(m,inc(k)),[m/n,k/m]} += inc(plus(m,k)) + {IH,rl,plus(m,k),[]} += inc(plus(k,m)) + {L2,rl,inc(plus(k,m)),[k/a,m/b]} += plus(inc(k),m) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_35.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_35.proof new file mode 100644 index 0000000000000000000000000000000000000000..9d3aa2de07b386e7510ae90d4d83a6a77d3d06e9 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_35.proof @@ -0,0 +1,46 @@ +lemma L1: forall y:Nat : plus(null,y) = y induction y +IA: zu zeigen: plus(null,null) = null +plus(null,null) + {p0, lr, plus(null,null), [null/n]} += null +IH: fixed y:Nat : plus(null,y) = y +IS: zu zeigen: fixed y:Nat : plus(null,inc(y)) = inc(y) +plus(null,inc(y)) + {p1, lr, plus(null,inc(y)), [null/n,y/m]} += inc(plus(null,y)) + {IH, lr, plus(null,y), []} += inc(y) + +lemma L2: forall a:Nat, b:Nat : plus(inc(a),b) = inc(plus(a,b)) induction b +IA: zu zeigen: forall a:Nat : plus(inc(a),null) = inc(plus(a,null)) +plus(inc(a),null) + {p0,lr,plus(inc(a),null),[inc(a)/n]} += inc(a) + {p0,rl,a,[a/n]} += inc(plus(a,null)) +IH: forall a:Nat : fixed b:Nat : plus(inc(a),b) = inc(plus(a,b)) +IS: zu zeigen: forall a:Nat : fixed b:Nat : plus(inc(a),inc(b)) = inc(plus(a,inc(b))) +plus(inc(a),inc(b)) + {p1,lr,plus(inc(a),inc(b)),[inc(a)/n,b/m]} += inc(plus(inc(a),b)) + {IH,lr,plus(inc(a),b),[]} += inc(inc(plus(a,b))) + {p1,rl,inc(plus(a,b)),[a/n,b/m]} += inc(plus(a,inc(b))) + +proof +IA: zu zeigen: forall m:Nat : plus(null,m) = plus(m,null) +plus(null,m) + {L1,lr,plus(null,m),[m/y]} += m + {p0,rl,m,[m/n]} += plus(m,null) +IH: forall m:Nat, k:Nat : plus(k,m) = plus(m,k) +IS: zu zeigen: forall m:Nat, k:Nat : plus(inc(k),m) = plus(m,inc(k)) +plus(m,inc(k)) + {p1,lr,plus(m,inc(k)),[m/n,k/m]} += inc(plus(m,k)) + {IH,rl,plus(m,k),[]} += inc(plus(k,m)) + {L2,rl,inc(plus(k,m)),[k/a,m/b]} += plus(inc(k),m) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_36.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_36.proof new file mode 100644 index 0000000000000000000000000000000000000000..007869f36046f0435e5906445d6f21a82b160be5 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_36.proof @@ -0,0 +1,31 @@ +lemma L2: forall a:Nat, b:Nat : plus(inc(a),b) = inc(plus(a,b)) induction b +IA: zu zeigen: forall a:Nat : plus(inc(a),null) = inc(plus(a,null)) +plus(inc(a),null) + {p0,lr,plus(inc(a),null),[inc(a)/n]} += inc(a) + {p0,rl,a,[a/n]} += inc(plus(a,null)) +IH: forall a:Nat : fixed b:Nat : plus(inc(a),b) = inc(plus(a,b)) +IS: zu zeigen: forall a:Nat : fixed b:Nat : plus(inc(a),inc(b)) = inc(plus(a,inc(b))) +plus(inc(a),inc(b)) + {p1,lr,plus(inc(a),inc(b)),[inc(a)/n,b/m]} += inc(plus(inc(a),b)) + {IH,lr,plus(inc(a),b),[]} += inc(inc(plus(a,b))) + {p1,rl,inc(plus(a,b)),[a/n,b/m]} += inc(plus(a,inc(b))) + +proof +IA: zu zeigen: forall m:Nat : plus(null,m) = plus(m,null) +plus(null,m) + {IH,lr,plus(null,m),[null/k]} += plus(m,null) +IH: fixed k:Nat : forall m:Nat : plus(k,m) = plus(m,k) +IS: zu zeigen: forall m:Nat : fixed k:Nat : plus(inc(k),m) = plus(m,inc(k)) +plus(m,inc(k)) + {p1,lr,plus(m,inc(k)),[m/n,k/m]} += inc(plus(m,k)) + {IH,rl,plus(m,k),[]} += inc(plus(k,m)) + {L2,rl,inc(plus(k,m)),[k/a,m/b]} += plus(inc(k),m) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_39.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_39.proof new file mode 100644 index 0000000000000000000000000000000000000000..cb25e01be72a73efdbd171fa35c16c9fbfd81f05 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_error_39.proof @@ -0,0 +1,38 @@ +lemma L1: forall y:Nat : plus(null,y) = y +y + {L1,rl,y,[]} += plus(null,y) + +lemma L2: forall a:Nat, b:Nat : plus(inc(a),b) = inc(plus(a,b)) induction b +IA: zu zeigen: forall a:Nat : plus(inc(a),null) = inc(plus(a,null)) +plus(inc(a),null) + {p0,lr,plus(inc(a),null),[inc(a)/n]} += inc(a) + {p0,rl,a,[a/n]} += inc(plus(a,null)) +IH: forall a:Nat : fixed b:Nat : plus(inc(a),b) = inc(plus(a,b)) +IS: zu zeigen: forall a:Nat : fixed b:Nat : plus(inc(a),inc(b)) = inc(plus(a,inc(b))) +plus(inc(a),inc(b)) + {p1,lr,plus(inc(a),inc(b)),[inc(a)/n,b/m]} += inc(plus(inc(a),b)) + {IH,lr,plus(inc(a),b),[]} += inc(inc(plus(a,b))) + {p1,rl,inc(plus(a,b)),[a/n,b/m]} += inc(plus(a,inc(b))) + +proof +IA: zu zeigen: forall m:Nat : plus(null,m) = plus(m,null) +plus(null,m) + {L1,lr,plus(null,m),[m/y]} += m + {p0,rl,m,[m/n]} += plus(m,null) +IH: fixed k:Nat : forall m:Nat : plus(k,m) = plus(m,k) +IS: zu zeigen: forall m:Nat : fixed k:Nat : plus(inc(k),m) = plus(m,inc(k)) +plus(m,inc(k)) + {p1,lr,plus(m,inc(k)),[m/n,k/m]} += inc(plus(m,k)) + {IH,rl,plus(m,k),[]} += inc(plus(k,m)) + {L2,rl,inc(plus(k,m)),[k/a,m/b]} += plus(inc(k),m) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_not_parsable_IH_nd.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_not_parsable_IH_nd.proof new file mode 100644 index 0000000000000000000000000000000000000000..dac90b050022f21a6daaa33d466e545b4b1e6658 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Proof_not_parsable_IH_nd.proof @@ -0,0 +1,26 @@ +lemma L1: forall y:Nat : plus(null,y) = y induction y +IA: zu zeigen: plus(null,null) = null +plus(null,null) + {p0, lr, plus(null,null), [null/n]} += null +IH: fixed y:Nat : plus(null,y) = y +IS: zu zeigen: fixed y:Nat : plus(null,inc(y)) = inc(y) +plus(null,inc(y)) + {p1, lr, plus(null,inc(y)), [null/n,y/m]} += inc(plus(null,y)) + {IH, lr, plus(null,y), []} += inc(y) + +lemma L: null = null +null + {IH,lr,null,[]} += null + +proof +IA: zu zeigen: forall m:Nat : plus(null,m) = plus(m,null) +plus(null,m) + {L1,lr,plus(null,m),[m/y]} += m + {p0,rl,m,[m/n]} += plus(m,null) +IH: fixed n:Nat : forall m:Nat : plus(n,m) = plus(m,n) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Task_Bsp.task b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Task_Bsp.task new file mode 100644 index 0000000000000000000000000000000000000000..6e99499f5b1f0943e4fddcc010b50f1f5f887220 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Task_Bsp.task @@ -0,0 +1,5 @@ +task forall n:Nat, m:Nat : plus(n,m) = plus(m,n) + induction n + case null maxpt 4 minsteps 6 maxsteps 8 + case inc maxpt 6 minsteps 9 maxsteps 12 + IH maxpt 1 \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Task_Bsp2.task b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Task_Bsp2.task new file mode 100644 index 0000000000000000000000000000000000000000..2907fd6572542670b841a5b9e9c4d1a9a2ee5979 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-simpl/Task_Bsp2.task @@ -0,0 +1,17 @@ +task forall n:Nat, m:Nat : plus(n,m) = plus(m,n) + induction n + case null maxpt 2 minsteps 2 maxsteps 3 + case inc maxpt 3 minsteps 3 maxsteps 5 + IH maxpt 1 + +proof lemmata + L1: forall m:Nat : plus(null,m) = m + induction m + case null maxpt 1 minsteps 1 maxsteps 2 + case inc maxpt 2 minsteps 2 maxsteps 3 + IH maxpt 1 + L2: forall n:Nat, m:Nat : plus(inc(n),m) = inc(plus(n,m)) + induction m + case null maxpt 2 minsteps 2 maxsteps 3 + case inc maxpt 3 minsteps 3 maxsteps 5 + IH maxpt 1 diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-struk/ADT_Bsp.adt b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-struk/ADT_Bsp.adt new file mode 100644 index 0000000000000000000000000000000000000000..2a57725acf2c7deb8b2586288a9a759544f36bfc --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-struk/ADT_Bsp.adt @@ -0,0 +1,29 @@ +sorts Nat, List, T, NatTree +constructors null: Nat + inc: Nat -> Nat + nil: List + seq: T >< List -> List + E: NatTree + B: Nat -> NatTree + N: Nat >< NatTree >< NatTree -> NatTree +operations plus: Nat >< Nat -> Nat + mal: Nat >< Nat -> Nat + conc: List >< List -> List + reverse: List -> List + inr: Nat >< NatTree -> NatTree + sum: NatTree -> Nat +vars n : Nat, m : Nat, x : T, xs : List, ys : List, t1 : NatTree, t2 : NatTree +axioms p0: plus(n,null) = n + p1: plus(n,inc(m)) = inc(plus(n,m)) + m0: mal(n,null) = null + m1: mal(n,inc(m)) = plus(mal(n,m),n) + c0: conc(nil,ys) = ys + c1: conc(seq(x,xs),ys) = seq(x,conc(xs,ys)) + rv0: reverse(nil) = nil + rv1: reverse(seq(x,xs)) = conc(reverse(xs),seq(x,nil)) + r0: inr(n,E) = B(n) + r1: inr(n,B(m)) = N(m,E,B(n)) + r2: inr(n,N(m,t1,t2)) = N(m,t1,inr(n,t2)) + s0: sum(E) = null + s1: sum(B(n)) = n + s2: sum(N(n,t1,t2)) = plus(n,plus(sum(t1),sum(t2))) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-struk/Proof_correct.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-struk/Proof_correct.proof new file mode 100644 index 0000000000000000000000000000000000000000..7a0c13d84bf6b06b48e0e8a541c068898a797c14 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-struk/Proof_correct.proof @@ -0,0 +1,95 @@ +lemma Komm: forall n:Nat, m:Nat : plus(n,m) = plus(m,n) +IA: zu zeigen: forall m:Nat : plus(null,m) = plus(m,null) +plus(null,m) + {L1,lr,plus(null,m),[]} += m + {p0,rl,m,[m/n]} += plus(m,null) +IH: fixed k:Nat : forall m:Nat : plus(k,m) = plus(m,k) +IS: zu zeigen: forall m:Nat : fixed k:Nat : plus(inc(k),m) = plus(m,inc(k)) +plus(m,inc(k)) + {p1,lr,plus(m,inc(k)),[m/n,k/m]} += inc(plus(m,k)) + {IH,rl,plus(m,k),[]} += inc(plus(k,m)) + {L2,rl,inc(plus(k,m)),[k/n]} += plus(inc(k),m) + +lemma Asso: forall n:Nat, m:Nat, k:Nat : plus(plus(n,m),k) = plus(n,plus(m,k)) +induction k +IA: zu zeigen: forall n:Nat, m:Nat : plus(plus(n,m),null) = plus(n,plus(m,null)) +plus(plus(n,m),null) + {p0,lr,plus(plus(n,m),null),[plus(n,m)/n]} += plus(n,m) + {p0,rl,m,[m/n]} += plus(n,plus(m,null)) +IH: forall n:Nat, m:Nat : fixed k:Nat : plus(plus(n,m),k) = plus(n,plus(m,k)) +IS: zu zeigen: forall n:Nat, m:Nat : fixed k:Nat : plus(plus(n,m),inc(k)) = plus(n,plus(m,inc(k))) +plus(plus(n,m),inc(k)) + {p1,lr,plus(plus(n,m),inc(k)),[plus(n,m)/n,k/m]} += inc(plus(plus(n,m),k)) + {IH,lr,plus(plus(n,m),k),[]} += inc(plus(n,plus(m,k))) + {p1,rl,inc(plus(n,plus(m,k))),[plus(m,k)/m]} += plus(n,inc(plus(m,k))) + {p1,rl,inc(plus(m,k)),[m/n,k/m]} += plus(n,plus(m,inc(k))) + +proof +IA: zu zeigen: forall n:Nat : sum(inr(n,E)) = plus(n,sum(E)) +sum(inr(n,E)) + {r0,lr,inr(n,E),[]} += sum(B(n)) + {s1,lr,sum(B(n)),[]} += n + {p0,rl,n,[]} += plus(n,null) + {s0,rl,null,[]} += plus(n,sum(E)) +IA: zu zeigen: forall n:Nat, m:Nat : sum(inr(n,B(m))) = plus(n,sum(B(m))) +sum(inr(n,B(m))) + {r1,lr,inr(n,B(m)),[]} += sum(N(m,E,B(n))) + {s2,lr,sum(N(m,E,B(n))),[m/n,E/t1,B(n)/t2]} += plus(m,plus(sum(E),sum(B(n)))) + {s0,lr,sum(E),[]} += plus(m,plus(null,sum(B(n)))) + {s1,lr,sum(B(n)),[]} += plus(m,plus(null,n)) + {L1,lr,plus(null,n),[n/m]} += plus(m,n) + {Komm,rl,plus(m,n),[]} += plus(n,m) + {s1,rl,m,[m/n]} += plus(n,sum(B(m))) +IH: IH1 forall n:Nat : fixed t1:NatTree : sum(inr(n,t1)) = plus(n,sum(t1)) +IH: IH2 forall n:Nat : fixed t2:NatTree : sum(inr(n,t2)) = plus(n,sum(t2)) +IS: zu zeigen: forall n:Nat, m:Nat : fixed t1:NatTree, t2:NatTree + : sum(inr(n,N(m,t1,t2))) = plus(n,sum(N(m,t1,t2))) +sum(inr(n,N(m,t1,t2))) + {r2,lr,inr(n,N(m,t1,t2)),[]} += sum(N(m,t1,inr(n,t2))) + {s2,lr,sum(N(m,t1,inr(n,t2))),[m/n,inr(n,t2)/t2]} += plus(m,plus(sum(t1),sum(inr(n,t2)))) + {IH2,lr,sum(inr(n,t2)),[]} += plus(m,plus(sum(t1),plus(n,sum(t2)))) + {KommAsso,rl,plus(sum(t1),plus(n,sum(t2))),[sum(t1)/m,sum(t2)/k]} += plus(m,plus(n,plus(sum(t1),sum(t2)))) + {KommAsso,rl,plus(m,plus(n,plus(sum(t1),sum(t2)))),[plus(sum(t1),sum(t2))/k]} += plus(n,plus(m,plus(sum(t1),sum(t2)))) + {s2,rl,plus(m,plus(sum(t1),sum(t2))),[m/n]} += plus(n,sum(N(m,t1,t2))) + +lemma KommAsso: forall n:Nat, m:Nat, k:Nat : plus(n,plus(m,k)) = plus(m,plus(n,k)) +plus(n,plus(m,k)) + {Asso,rl,plus(n,plus(m,k)),[]} += plus(plus(n,m),k) + {Komm,lr,plus(n,m),[]} += plus(plus(m,n),k) + {Asso,lr,plus(plus(m,n),k),[m/n,n/m]} += plus(m,plus(n,k)) + + + + + diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-struk/Proof_error_22.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-struk/Proof_error_22.proof new file mode 100644 index 0000000000000000000000000000000000000000..8c9d177c4c5c7f1a31c3ce2b55420bd17b066f17 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-struk/Proof_error_22.proof @@ -0,0 +1,112 @@ +lemma Komm: forall n:Nat, m:Nat : plus(n,inc(m)) = plus(inc(m),n) +IA: zu zeigen: forall m:Nat : plus(null,inc(m)) = plus(inc(m),null) +plus(null,inc(m)) + {L1,lr,plus(null,inc(m)),[inc(m)/m]} += inc(m) + {p0,rl,inc(m),[inc(m)/n]} += plus(inc(m),null) +IH: fixed k:Nat : forall m:Nat : plus(k,inc(m)) = plus(inc(m),k) +IS: zu zeigen: forall m:Nat : fixed k:Nat : plus(inc(k),inc(m)) = plus(inc(m),inc(k)) +plus(inc(m),inc(k)) + {p1,lr,plus(inc(m),inc(k)),[inc(m)/n,k/m]} += inc(plus(inc(m),k)) + {IH,rl,plus(inc(m),k),[]} += inc(plus(k,inc(m))) + {L2,rl,inc(plus(k,inc(m))),[k/n,inc(m)/m]} += plus(inc(k),inc(m)) + +lemma Komm1: forall n:Nat, m:Nat : plus(n,m) = plus(m,n) induction n +IA: zu zeigen: forall m:Nat : plus(null,m) = plus(m,null) +plus(null,m) + {L1,lr,plus(null,m),[]} += m + {p0,rl,m,[m/n]} += plus(m,null) +IH: fixed k:Nat : forall m:Nat : plus(k,m) = plus(m,k) +IS: zu zeigen: forall m:Nat : fixed k:Nat : plus(inc(k),m) = plus(m,inc(k)) +plus(m,inc(k)) + {p1,lr,plus(m,inc(k)),[m/n,k/m]} += inc(plus(m,k)) + {IH,rl,plus(m,k),[]} += inc(plus(k,m)) + {L2,rl,inc(plus(k,m)),[k/n]} += plus(inc(k),m) + +lemma Asso: forall n:Nat, m:Nat, k:Nat : plus(plus(n,m),k) = plus(n,plus(m,k)) +induction k +IA: zu zeigen: forall n:Nat, m:Nat : plus(plus(n,m),null) = plus(n,plus(m,null)) +plus(plus(n,m),null) + {p0,lr,plus(plus(n,m),null),[plus(n,m)/n]} += plus(n,m) + {p0,rl,m,[m/n]} += plus(n,plus(m,null)) +IH: forall n:Nat, m:Nat : fixed k:Nat : plus(plus(n,m),k) = plus(n,plus(m,k)) +IS: zu zeigen: forall n:Nat, m:Nat : fixed k:Nat : plus(plus(n,m),inc(k)) = plus(n,plus(m,inc(k))) +plus(plus(n,m),inc(k)) + {p1,lr,plus(plus(n,m),inc(k)),[plus(n,m)/n,k/m]} += inc(plus(plus(n,m),k)) + {IH,lr,plus(plus(n,m),k),[]} += inc(plus(n,plus(m,k))) + {p1,rl,inc(plus(n,plus(m,k))),[plus(m,k)/m]} += plus(n,inc(plus(m,k))) + {p1,rl,inc(plus(m,k)),[m/n,k/m]} += plus(n,plus(m,inc(k))) + +proof +IA: zu zeigen: forall n:Nat : sum(inr(n,E)) = plus(n,sum(E)) +sum(inr(n,E)) + {r0,lr,inr(n,E),[]} += sum(B(n)) + {s1,lr,sum(B(n)),[]} += n + {p0,rl,n,[]} += plus(n,null) + {s0,rl,null,[]} += plus(n,sum(E)) +IA: zu zeigen: forall n:Nat, m:Nat : sum(inr(n,B(m))) = plus(n,sum(B(m))) +sum(inr(n,B(m))) + {r1,lr,inr(n,B(m)),[]} += sum(N(m,E,B(n))) + {s2,lr,sum(N(m,E,B(n))),[m/n,E/t1,B(n)/t2]} += plus(m,plus(sum(E),sum(B(n)))) + {s0,lr,sum(E),[]} += plus(m,plus(null,sum(B(n)))) + {s1,lr,sum(B(n)),[]} += plus(m,plus(null,n)) + {L1,lr,plus(null,n),[n/m]} += plus(m,n) + {Komm1,rl,plus(m,n),[]} += plus(n,m) + {s1,rl,m,[m/n]} += plus(n,sum(B(m))) +IH: IH1 forall n:Nat : fixed t1:NatTree : sum(inr(n,t1)) = plus(n,sum(t1)) +IH: IH2 forall n:Nat : fixed t2:NatTree : sum(inr(n,t2)) = plus(n,sum(t2)) +IS: zu zeigen: forall n:Nat, m:Nat : fixed t1:NatTree, t2:NatTree + : sum(inr(n,N(m,t1,t2))) = plus(n,sum(N(m,t1,t2))) +sum(inr(n,N(m,t1,t2))) + {r2,lr,inr(n,N(m,t1,t2)),[]} += sum(N(m,t1,inr(n,t2))) + {s2,lr,sum(N(m,t1,inr(n,t2))),[m/n,inr(n,t2)/t2]} += plus(m,plus(sum(t1),sum(inr(n,t2)))) + {IH2,lr,sum(inr(n,t2)),[]} += plus(m,plus(sum(t1),plus(n,sum(t2)))) + {KommAsso,rl,plus(sum(t1),plus(n,sum(t2))),[sum(t1)/m,sum(t2)/k]} += plus(m,plus(n,plus(sum(t1),sum(t2)))) + {KommAsso,rl,plus(m,plus(n,plus(sum(t1),sum(t2)))),[plus(sum(t1),sum(t2))/k]} += plus(n,plus(m,plus(sum(t1),sum(t2)))) + {s2,rl,plus(m,plus(sum(t1),sum(t2))),[m/n]} += plus(n,sum(N(m,t1,t2))) + +lemma KommAsso: forall n:Nat, m:Nat, k:Nat : plus(n,plus(m,k)) = plus(m,plus(n,k)) +plus(n,plus(m,k)) + {Asso,rl,plus(n,plus(m,k)),[]} += plus(plus(n,m),k) + {Komm1,lr,plus(n,m),[]} += plus(plus(m,n),k) + {Asso,lr,plus(plus(m,n),k),[m/n,n/m]} += plus(m,plus(n,k)) + + + + + diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-struk/Proof_error_42.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-struk/Proof_error_42.proof new file mode 100644 index 0000000000000000000000000000000000000000..066c099ca81e03a470f7bb6f9ce8f46b862c5aa8 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-struk/Proof_error_42.proof @@ -0,0 +1,96 @@ +lemma Komm: forall n:Nat, m:Nat : plus(n,m) = plus(m,n) +IA: zu zeigen: forall m:Nat : plus(null,m) = plus(m,null) +plus(null,m) + {L1,lr,plus(null,m),[]} += m + {p0,rl,m,[m/n]} += plus(m,null) +IH: fixed k:Nat : forall m:Nat : plus(k,m) = plus(m,k) +IS: zu zeigen: forall m:Nat : fixed k:Nat : plus(inc(k),m) = plus(m,inc(k)) +plus(m,inc(k)) + {p1,lr,plus(m,inc(k)),[m/n,k/m]} += inc(plus(m,k)) + {IH,rl,plus(m,k),[]} += inc(plus(k,m)) + {L2,rl,inc(plus(k,m)),[k/n]} += plus(inc(k),m) + +lemma Asso: forall n:Nat, m:Nat, k:Nat : plus(plus(n,m),k) = plus(n,plus(m,k)) +induction k +IA: zu zeigen: forall n:Nat, m:Nat : plus(plus(n,m),null) = plus(n,plus(m,null)) +plus(plus(n,m),null) + {p0,lr,plus(plus(n,m),null),[plus(n,m)/n]} += plus(n,m) + {p0,rl,m,[m/n]} += plus(n,plus(m,null)) +IH: forall n:Nat, m:Nat : fixed k:Nat : plus(plus(n,m),k) = plus(n,plus(m,k)) +IS: zu zeigen: forall n:Nat, m:Nat : fixed k:Nat : plus(plus(n,m),inc(k)) = plus(n,plus(m,inc(k))) +plus(plus(n,m),inc(k)) + {p1,lr,plus(plus(n,m),inc(k)),[plus(n,m)/n,k/m]} += inc(plus(plus(n,m),k)) + {IH,lr,plus(plus(n,m),k),[]} += inc(plus(n,plus(m,k))) + {p1,rl,inc(plus(n,plus(m,k))),[plus(m,k)/m]} += plus(n,inc(plus(m,k))) + {p1,rl,inc(plus(m,k)),[m/n,k/m]} += plus(n,plus(m,inc(k))) + +proof +IA: zu zeigen: forall n:Nat : sum(inr(n,E)) = plus(n,sum(E)) +sum(inr(n,E)) + {r0,lr,inr(n,E),[]} += sum(B(n)) + {s1,lr,sum(B(n)),[]} += n + {p0,rl,n,[]} += plus(n,null) + {s0,rl,null,[]} += plus(n,sum(E)) +IA: zu zeigen: forall n:Nat, m:Nat : sum(inr(n,B(m))) = plus(n,sum(B(m))) +sum(inr(n,B(m))) + {r1,lr,inr(n,B(m)),[]} += sum(N(m,E,B(n))) + {s2,lr,sum(N(m,E,B(n))),[m/n,E/t1,B(n)/t2]} += plus(m,plus(sum(E),sum(B(n)))) + {s0,lr,sum(E),[]} += plus(m,plus(null,sum(B(n)))) + {s1,lr,sum(B(n)),[]} += plus(m,plus(null,n)) + {L1,lr,plus(null,n),[n/m]} += plus(m,n) + {Komm,rl,plus(m,n),[]} += plus(n,m) + {s1,rl,m,[m/n]} += plus(n,sum(B(m))) +IH: IH1 forall n:Nat : fixed t1:NatTree : sum(inr(n,t1)) = plus(n,sum(t1)) +IH: IH2 forall n:Nat : fixed t2:NatTree : sum(inr(n,t2)) = plus(n,sum(t2)) +IH: forall n:Nat : fixed t2:NatTree : sum(inr(n,t2)) = plus(n,sum(t2)) +IS: zu zeigen: forall n:Nat, m:Nat : fixed t1:NatTree, t2:NatTree + : sum(inr(n,N(m,t1,t2))) = plus(n,sum(N(m,t1,t2))) +sum(inr(n,N(m,t1,t2))) + {r2,lr,inr(n,N(m,t1,t2)),[]} += sum(N(m,t1,inr(n,t2))) + {s2,lr,sum(N(m,t1,inr(n,t2))),[m/n,inr(n,t2)/t2]} += plus(m,plus(sum(t1),sum(inr(n,t2)))) + {IH2,lr,sum(inr(n,t2)),[]} += plus(m,plus(sum(t1),plus(n,sum(t2)))) + {KommAsso,rl,plus(sum(t1),plus(n,sum(t2))),[sum(t1)/m,sum(t2)/k]} += plus(m,plus(n,plus(sum(t1),sum(t2)))) + {KommAsso,rl,plus(m,plus(n,plus(sum(t1),sum(t2)))),[plus(sum(t1),sum(t2))/k]} += plus(n,plus(m,plus(sum(t1),sum(t2)))) + {s2,rl,plus(m,plus(sum(t1),sum(t2))),[m/n]} += plus(n,sum(N(m,t1,t2))) + +lemma KommAsso: forall n:Nat, m:Nat, k:Nat : plus(n,plus(m,k)) = plus(m,plus(n,k)) +plus(n,plus(m,k)) + {Asso,rl,plus(n,plus(m,k)),[]} += plus(plus(n,m),k) + {Komm,lr,plus(n,m),[]} += plus(plus(m,n),k) + {Asso,lr,plus(plus(m,n),k),[m/n,n/m]} += plus(m,plus(n,k)) + + + + + diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-struk/Proof_error_43.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-struk/Proof_error_43.proof new file mode 100644 index 0000000000000000000000000000000000000000..e67b480dbb54dab58bc29058b3651aec0118c582 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-struk/Proof_error_43.proof @@ -0,0 +1,96 @@ +lemma Komm: forall n:Nat, m:Nat : plus(n,m) = plus(m,n) +IA: zu zeigen: forall m:Nat : plus(null,m) = plus(m,null) +plus(null,m) + {L1,lr,plus(null,m),[]} += m + {p0,rl,m,[m/n]} += plus(m,null) +IH: fixed k:Nat : forall m:Nat : plus(k,m) = plus(m,k) +IS: zu zeigen: forall m:Nat : fixed k:Nat : plus(inc(k),m) = plus(m,inc(k)) +plus(m,inc(k)) + {p1,lr,plus(m,inc(k)),[m/n,k/m]} += inc(plus(m,k)) + {IH,rl,plus(m,k),[]} += inc(plus(k,m)) + {L2,rl,inc(plus(k,m)),[k/n]} += plus(inc(k),m) + +lemma Asso: forall n:Nat, m:Nat, k:Nat : plus(plus(n,m),k) = plus(n,plus(m,k)) +induction k +IA: zu zeigen: forall n:Nat, m:Nat : plus(plus(n,m),null) = plus(n,plus(m,null)) +plus(plus(n,m),null) + {p0,lr,plus(plus(n,m),null),[plus(n,m)/n]} += plus(n,m) + {p0,rl,m,[m/n]} += plus(n,plus(m,null)) +IH: forall n:Nat, m:Nat : fixed k:Nat : plus(plus(n,m),k) = plus(n,plus(m,k)) +IS: zu zeigen: forall n:Nat, m:Nat : fixed k:Nat : plus(plus(n,m),inc(k)) = plus(n,plus(m,inc(k))) +plus(plus(n,m),inc(k)) + {p1,lr,plus(plus(n,m),inc(k)),[plus(n,m)/n,k/m]} += inc(plus(plus(n,m),k)) + {IH,lr,plus(plus(n,m),k),[]} += inc(plus(n,plus(m,k))) + {p1,rl,inc(plus(n,plus(m,k))),[plus(m,k)/m]} += plus(n,inc(plus(m,k))) + {p1,rl,inc(plus(m,k)),[m/n,k/m]} += plus(n,plus(m,inc(k))) + +proof +IA: zu zeigen: forall n:Nat : sum(inr(n,E)) = plus(n,sum(E)) +sum(inr(n,E)) + {r0,lr,inr(n,E),[]} += sum(B(n)) + {s1,lr,sum(B(n)),[]} += n + {p0,rl,n,[]} += plus(n,null) + {s0,rl,null,[]} += plus(n,sum(E)) +IA: zu zeigen: forall n:Nat, m:Nat : sum(inr(n,B(m))) = plus(n,sum(B(m))) +sum(inr(n,B(m))) + {r1,lr,inr(n,B(m)),[]} += sum(N(m,E,B(n))) + {s2,lr,sum(N(m,E,B(n))),[m/n,E/t1,B(n)/t2]} += plus(m,plus(sum(E),sum(B(n)))) + {s0,lr,sum(E),[]} += plus(m,plus(null,sum(B(n)))) + {s1,lr,sum(B(n)),[]} += plus(m,plus(null,n)) + {L1,lr,plus(null,n),[n/m]} += plus(m,n) + {Komm,rl,plus(m,n),[]} += plus(n,m) + {s1,rl,m,[m/n]} += plus(n,sum(B(m))) +IH: IH1 forall n:Nat : fixed t1:NatTree : sum(inr(n,t1)) = plus(n,sum(t1)) +IH: IH2 forall n:Nat : fixed t2:NatTree : sum(inr(n,t2)) = plus(n,sum(t2)) +IH: IH3 forall n:Nat : fixed t3:NatTree : sum(inr(n,t3)) = plus(n,sum(t3)) +IS: zu zeigen: forall n:Nat, m:Nat : fixed t1:NatTree, t2:NatTree + : sum(inr(n,N(m,t1,t2))) = plus(n,sum(N(m,t1,t2))) +sum(inr(n,N(m,t1,t2))) + {r2,lr,inr(n,N(m,t1,t2)),[]} += sum(N(m,t1,inr(n,t2))) + {s2,lr,sum(N(m,t1,inr(n,t2))),[m/n,inr(n,t2)/t2]} += plus(m,plus(sum(t1),sum(inr(n,t2)))) + {IH2,lr,sum(inr(n,t2)),[]} += plus(m,plus(sum(t1),plus(n,sum(t2)))) + {KommAsso,rl,plus(sum(t1),plus(n,sum(t2))),[sum(t1)/m,sum(t2)/k]} += plus(m,plus(n,plus(sum(t1),sum(t2)))) + {KommAsso,rl,plus(m,plus(n,plus(sum(t1),sum(t2)))),[plus(sum(t1),sum(t2))/k]} += plus(n,plus(m,plus(sum(t1),sum(t2)))) + {s2,rl,plus(m,plus(sum(t1),sum(t2))),[m/n]} += plus(n,sum(N(m,t1,t2))) + +lemma KommAsso: forall n:Nat, m:Nat, k:Nat : plus(n,plus(m,k)) = plus(m,plus(n,k)) +plus(n,plus(m,k)) + {Asso,rl,plus(n,plus(m,k)),[]} += plus(plus(n,m),k) + {Komm,lr,plus(n,m),[]} += plus(plus(m,n),k) + {Asso,lr,plus(plus(m,n),k),[m/n,n/m]} += plus(m,plus(n,k)) + + + + + diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-struk/Task_Bsp.task b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-struk/Task_Bsp.task new file mode 100644 index 0000000000000000000000000000000000000000..3941526262bb7ba1e74d32e36dc9f1f1a9f02361 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/ind-struk/Task_Bsp.task @@ -0,0 +1,19 @@ +task forall n:Nat, t:NatTree : sum(inr(n,t)) = plus(n,sum(t)) + induction t + case E maxpt 4 minsteps 4 maxsteps 6 + case B maxpt 5 minsteps 5 maxsteps 7 + case N maxpt 9 minsteps 9 maxsteps 10 + IH maxpt 1 + +proof lemmata + Komm: forall n:Nat, m:Nat : plus(n,m) = plus(m,n) + induction n + case null maxpt 2 minsteps 2 maxsteps 3 + case inc maxpt 3 minsteps 3 maxsteps 4 + IH maxpt 1 + Asso: forall n:Nat, m:Nat, k:Nat : plus(plus(n,m),k) = plus(n,plus(m,k)) + maxpt 7 minsteps 7 maxsteps 10 + +lemmata + L1: forall m:Nat : plus(null,m) = m + L2: forall n:Nat, m:Nat : plus(inc(n),m) = inc(plus(n,m)) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/ADT_Bsp.adt b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/ADT_Bsp.adt new file mode 100644 index 0000000000000000000000000000000000000000..d79ca5ccf2688d8c6ed53d3cf476470b6c7b34b0 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/ADT_Bsp.adt @@ -0,0 +1,14 @@ +sorts Nat, Bool +operations + null: Nat + inc: Nat -> Nat + wahr: Bool + falsch: Bool + gerade: Nat -> Bool + ungerade: Nat -> Bool +vars n : Nat, m : Nat +axioms + a1: gerade(null) = wahr + a2: gerade(inc(null)) = falsch + a3: gerade(inc(inc(n))) = gerade(n) + a4: ungerade(n) = gerade(inc(n)) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_T2_correct_0.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_T2_correct_0.proof new file mode 100644 index 0000000000000000000000000000000000000000..682e73c5f59f6c6bb4377f5264b532822b5629bd --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_T2_correct_0.proof @@ -0,0 +1,10 @@ +proof +ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))) + {a4,lr,ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))),[inc(inc(inc(inc(inc(inc(inc(null)))))))/n]} += gerade(inc(inc(inc(inc(inc(inc(inc(inc(null))))))))) + {G32,lr,gerade(inc(inc(inc(inc(inc(inc(inc(inc(null))))))))),[inc(inc(inc(inc(null))))/n]} += gerade(inc(inc(inc(inc(null))))) + {G32,lr,gerade(inc(inc(inc(inc(null))))),[null/n]} += gerade(null) + {a1,lr,gerade(null),[]} += wahr \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_T3,4_error_20,21.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_T3,4_error_20,21.proof new file mode 100644 index 0000000000000000000000000000000000000000..e880512efb71bae0673b986ddd270da0499e26ba --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_T3,4_error_20,21.proof @@ -0,0 +1,20 @@ +lemma G32: forall n:Nat : gerade(inc(inc(inc(inc(n))))) = gerade(n) +gerade(inc(inc(inc(inc(n))))) + {G32_,lr,gerade(inc(inc(inc(inc(n))))),[]} += gerade(n) + +proof +ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))) + {a4,lr,ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))),[inc(inc(inc(inc(inc(inc(inc(null)))))))/n]} += gerade(inc(inc(inc(inc(inc(inc(inc(inc(null))))))))) + {G32,lr,gerade(inc(inc(inc(inc(inc(inc(inc(inc(null))))))))),[inc(inc(inc(inc(null))))/n]} += gerade(inc(inc(inc(inc(null))))) + {G32,lr,gerade(inc(inc(inc(inc(null))))),[null/n]} += gerade(null) + {a1,lr,gerade(null),[]} += wahr + +lemma G32_: forall n:Nat : gerade(inc(inc(inc(inc(n))))) = gerade(n) +gerade(inc(inc(inc(inc(n))))) + {G32,lr,gerade(inc(inc(inc(inc(n))))),[]} += gerade(n) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_T3_error_21-2.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_T3_error_21-2.proof new file mode 100644 index 0000000000000000000000000000000000000000..154ec1b99e6546f779deb4e7ed1d0770d1e5bd22 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_T3_error_21-2.proof @@ -0,0 +1,19 @@ +lemma G32: forall n:Nat : gerade(inc(inc(inc(inc(n))))) = gerade(n) +gerade(inc(inc(inc(inc(n))))) + {G32,lr,gerade(inc(inc(inc(inc(n))))),[]} += gerade(n) + {G32,rl,gerade(n),[]} += gerade(inc(inc(inc(inc(n))))) + {G32,lr,gerade(inc(inc(inc(inc(n))))),[]} += gerade(n) + +proof +ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))) + {a4,lr,ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))),[inc(inc(inc(inc(inc(inc(inc(null)))))))/n]} += gerade(inc(inc(inc(inc(inc(inc(inc(inc(null))))))))) + {G32,lr,gerade(inc(inc(inc(inc(inc(inc(inc(inc(null))))))))),[inc(inc(inc(inc(null))))/n]} += gerade(inc(inc(inc(inc(null))))) + {G32,lr,gerade(inc(inc(inc(inc(null))))),[null/n]} += gerade(null) + {a1,lr,gerade(null),[]} += wahr diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_T3_error_21.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_T3_error_21.proof new file mode 100644 index 0000000000000000000000000000000000000000..7a13ccf012460ce6f164d10dc722c8f2f232985d --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_T3_error_21.proof @@ -0,0 +1,33 @@ +lemma G32: forall n:Nat : gerade(inc(inc(inc(inc(n))))) = gerade(n) +gerade(inc(inc(inc(inc(n))))) + {a3,lr,gerade(inc(inc(inc(inc(n))))),[]} += gerade(inc(inc(n))) + {a3,lr,gerade(inc(inc(n))),[]} += gerade(n) + {T,lr,gerade(n),[]} += gerade(n) + +proof +ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))) + {A4,lr,ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))),[inc(inc(inc(inc(inc(inc(inc(null)))))))/m]} += gerade(inc(inc(inc(inc(inc(inc(inc(inc(null))))))))) + {G32,lr,gerade(inc(inc(inc(inc(inc(inc(inc(inc(null))))))))),[inc(inc(inc(inc(null))))/n]} += gerade(inc(inc(inc(inc(null))))) + {G32,lr,gerade(inc(inc(inc(inc(null))))),[null/n]} += gerade(null) + {T,lr,gerade(null),[null/n]} += gerade(null) + {a1,lr,gerade(null),[]} += wahr + +lemma A4: forall m:Nat : ungerade(m) = gerade(inc(m)) +ungerade(m) + {a4,lr,ungerade(m),[]} += gerade(inc(m)) + +lemma T: forall n:Nat : gerade(n) = gerade(n) +gerade(n) + {a3,rl,gerade(n),[]} += gerade(inc(inc(n))) + {a3,lr,gerade(inc(inc(n))),[]} += gerade(n) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_T3_error_22.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_T3_error_22.proof new file mode 100644 index 0000000000000000000000000000000000000000..1880fc314a205d63a66d7adfb2cffe954b76a9bc --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_T3_error_22.proof @@ -0,0 +1,22 @@ +lemma G32: forall n:Nat : gerade(inc(inc(inc(inc(inc(inc(inc(inc(n))))))))) = gerade(n) +gerade(inc(inc(inc(inc(inc(inc(inc(inc(n))))))))) + {G32_,lr,gerade(inc(inc(inc(inc(inc(inc(inc(inc(n))))))))),[inc(inc(inc(inc(n))))/n]} += gerade(inc(inc(inc(inc(n))))) + {G32_,lr,gerade(inc(inc(inc(inc(n))))),[]} += gerade(n) + +lemma G32_: forall n:Nat : gerade(inc(inc(inc(inc(n))))) = gerade(n) +gerade(inc(inc(inc(inc(n))))) + {a3,lr,gerade(inc(inc(inc(inc(n))))),[inc(inc(n))/n]} += gerade(inc(inc(n))) + {a3,lr,gerade(inc(inc(n))),[]} += gerade(n) + +proof +ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))) + {a4,lr,ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))),[inc(inc(inc(inc(inc(inc(inc(null)))))))/n]} += gerade(inc(inc(inc(inc(inc(inc(inc(inc(null))))))))) + {G32,lr,gerade(inc(inc(inc(inc(inc(inc(inc(inc(null))))))))),[null/n]} += gerade(null) + {a1,lr,gerade(null),[]} += wahr \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_T3_error_23.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_T3_error_23.proof new file mode 100644 index 0000000000000000000000000000000000000000..91c7061c281130984e0e023183dedaa7e2c13bcf --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_T3_error_23.proof @@ -0,0 +1,21 @@ +lemma G32: forall n:Nat : gerade(inc(inc(inc(inc(n))))) = gerade(n) +gerade(inc(inc(inc(inc(n))))) + {a3,lr,gerade(inc(inc(inc(inc(n))))),[inc(inc(n))/n]} += gerade(inc(inc(n))) + {a3,lr,gerade(inc(inc(n))),[]} += gerade(n) + +proof +ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))) + {a4,lr,ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))),[inc(inc(inc(inc(inc(inc(inc(null)))))))/n]} += gerade(inc(inc(inc(inc(inc(inc(inc(inc(null))))))))) + {a3,lr,gerade(inc(inc(inc(inc(inc(inc(inc(inc(null))))))))),[inc(inc(inc(inc(inc(inc(null))))))/n]} += gerade(inc(inc(inc(inc(inc(inc(null))))))) + {a3,lr,gerade(inc(inc(inc(inc(inc(inc(null))))))),[inc(inc(inc(inc(null))))/n]} += gerade(inc(inc(inc(inc(null))))) + {a3,lr,gerade(inc(inc(inc(inc(null))))),[inc(inc(null))/n]} += gerade(inc(inc(null))) + {a3,lr,gerade(inc(inc(null))),[null/n]} += gerade(null) + {a1,lr,gerade(null),[]} += wahr \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_T4_error_20,21.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_T4_error_20,21.proof new file mode 100644 index 0000000000000000000000000000000000000000..7ffa851d0ea14cd4ddb3311beca348e9eea9cb96 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_T4_error_20,21.proof @@ -0,0 +1,30 @@ +lemma G32: forall n:Nat : gerade(inc(inc(inc(inc(n))))) = gerade(n) +gerade(inc(inc(inc(inc(n))))) + {G32_2,lr,gerade(inc(inc(inc(inc(n))))),[]} += gerade(n) + +proof +ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))) + {a4,lr,ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))),[inc(inc(inc(inc(inc(inc(inc(null)))))))/n]} += gerade(inc(inc(inc(inc(inc(inc(inc(inc(null))))))))) + {G32,lr,gerade(inc(inc(inc(inc(inc(inc(inc(inc(null))))))))),[inc(inc(inc(inc(null))))/n]} += gerade(inc(inc(inc(inc(null))))) + {G32,lr,gerade(inc(inc(inc(inc(null))))),[null/n]} += gerade(null) + {a1,lr,gerade(null),[]} += wahr + +lemma G32_2: forall n:Nat : gerade(inc(inc(inc(inc(n))))) = gerade(n) +gerade(inc(inc(inc(inc(n))))) + {G32,lr,gerade(inc(inc(inc(inc(n))))),[]} += gerade(n) + +lemma G32_: forall n:Nat : gerade(inc(inc(inc(inc(n))))) = gerade(n) +gerade(inc(inc(inc(inc(n))))) + {G32,lr,gerade(inc(inc(inc(inc(n))))),[]} += gerade(n) + {G32,rl,gerade(n),[]} += gerade(inc(inc(inc(inc(n))))) + {G32,lr,gerade(inc(inc(inc(inc(n))))),[]} += gerade(n) + diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_correct_0.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_correct_0.proof new file mode 100644 index 0000000000000000000000000000000000000000..b575570e355a41a1eaeb347077ad1e28576ea701 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_correct_0.proof @@ -0,0 +1,17 @@ +lemma G32: forall n:Nat : gerade(inc(inc(inc(inc(n))))) = gerade(n) +gerade(inc(inc(inc(inc(n))))) + {a3,lr,gerade(inc(inc(inc(inc(n))))),[inc(inc(n))/n]} += gerade(inc(inc(n))) + {a3,lr,gerade(inc(inc(n))),[]} += gerade(n) + +proof +ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))) + {a4,lr,ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))),[inc(inc(inc(inc(inc(inc(inc(null)))))))/n]} += gerade(inc(inc(inc(inc(inc(inc(inc(inc(null))))))))) + {G32,lr,gerade(inc(inc(inc(inc(inc(inc(inc(inc(null))))))))),[inc(inc(inc(inc(null))))/n]} += gerade(inc(inc(inc(inc(null))))) + {G32,lr,gerade(inc(inc(inc(inc(null))))),[null/n]} += gerade(null) + {a1,lr,gerade(null),[]} += wahr \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_correct_1.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_correct_1.proof new file mode 100644 index 0000000000000000000000000000000000000000..16fc648b7702958aa40a441b3aef0db8feced894 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_correct_1.proof @@ -0,0 +1,17 @@ +proof +ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))) + {a4,lr,ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))),[inc(inc(inc(inc(inc(inc(inc(null)))))))/n]} += gerade(inc(inc(inc(inc(inc(inc(inc(inc(null))))))))) + {G32,lr,gerade(inc(inc(inc(inc(inc(inc(inc(inc(null))))))))),[inc(inc(inc(inc(null))))/n]} += gerade(inc(inc(inc(inc(null))))) + {G32,lr,gerade(inc(inc(inc(inc(null))))),[null/n]} += gerade(null) + {a1,lr,gerade(null),[]} += wahr + +lemma G32: forall n:Nat : gerade(inc(inc(inc(inc(n))))) = gerade(n) +gerade(inc(inc(inc(inc(n))))) + {a3,lr,gerade(inc(inc(inc(inc(n))))),[inc(inc(n))/n]} += gerade(inc(inc(n))) + {a3,lr,gerade(inc(inc(n))),[]} += gerade(n) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_correct_2.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_correct_2.proof new file mode 100644 index 0000000000000000000000000000000000000000..ee886a17b72576ca9867c0b51ecf58d740cae81b --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_correct_2.proof @@ -0,0 +1,27 @@ +lemma G32: forall n:Nat : gerade(inc(inc(inc(inc(n))))) = gerade(n) +gerade(inc(inc(inc(inc(n))))) + {G3,lr,gerade(inc(inc(inc(inc(n))))),[inc(inc(n))/n]} += gerade(inc(inc(n))) + {G3,lr,gerade(inc(inc(n))),[]} += gerade(n) + +proof +ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))) + {A4,lr,ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))),[inc(inc(inc(inc(inc(inc(inc(null)))))))/n]} += gerade(inc(inc(inc(inc(inc(inc(inc(inc(null))))))))) + {G32,lr,gerade(inc(inc(inc(inc(inc(inc(inc(inc(null))))))))),[inc(inc(inc(inc(null))))/n]} += gerade(inc(inc(inc(inc(null))))) + {G32,lr,gerade(inc(inc(inc(inc(null))))),[null/n]} += gerade(null) + {a1,lr,gerade(null),[]} += wahr + +lemma G3: forall n:Nat : gerade(inc(inc(n))) = gerade(n) +gerade(inc(inc(n))) + {a3,lr,gerade(inc(inc(n))),[]} += gerade(n) + +lemma A4: forall n:Nat : ungerade(n) = gerade(inc(n)) +ungerade(n) + {a4,lr,ungerade(n),[]} += gerade(inc(n)) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_error_20,21.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_error_20,21.proof new file mode 100644 index 0000000000000000000000000000000000000000..7ed6333de975553c0f6aeb066a8cff1c0f57ae77 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Proof_error_20,21.proof @@ -0,0 +1,46 @@ +lemma uc: wahr = wahr +wahr + {c1,lr,wahr,[]} += wahr + +lemma nc: wahr = wahr +wahr + {a1,rl,wahr,[]} += gerade(null) + {a1,lr,gerade(null),[]} += wahr + +lemma G32: forall n:Nat : gerade(inc(inc(inc(inc(n))))) = gerade(n) +gerade(inc(inc(inc(inc(n))))) + {a3,lr,gerade(inc(inc(inc(inc(n))))),[inc(inc(n))/n]} += gerade(inc(inc(n))) + {a3,lr,gerade(inc(inc(n))),[]} += gerade(n) + +proof +ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))) + {a4,lr,ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))),[inc(inc(inc(inc(inc(inc(inc(null)))))))/n]} += gerade(inc(inc(inc(inc(inc(inc(inc(inc(null))))))))) + {G32,lr,gerade(inc(inc(inc(inc(inc(inc(inc(inc(null))))))))),[inc(inc(inc(inc(null))))/n]} += gerade(inc(inc(inc(inc(null))))) + {G32,lr,gerade(inc(inc(inc(inc(null))))),[null/n]} += gerade(null) + {a1,lr,gerade(null),[]} += wahr + +lemma c1: wahr = wahr +wahr + {c2,lr,wahr,[]} += wahr + +lemma c2: wahr = wahr +wahr + {c3,lr,wahr,[]} += wahr + {nc,lr,wahr,[]} += wahr + +lemma c3: wahr = wahr +wahr + {c1,lr,wahr,[]} += wahr \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Task_Bsp.task b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Task_Bsp.task new file mode 100644 index 0000000000000000000000000000000000000000..76b939bbf23a457df0c804e6bc348c704a8b5592 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Task_Bsp.task @@ -0,0 +1,2 @@ +task ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))) = wahr +maxpt 8 minsteps 4 maxsteps 6 \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Task_Bsp2.task b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Task_Bsp2.task new file mode 100644 index 0000000000000000000000000000000000000000..bd4093371564e758602a0debd6422d2955694602 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Task_Bsp2.task @@ -0,0 +1,3 @@ +task ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))) = wahr + maxpt 8 minsteps 4 maxsteps 6 +lemmata G32: forall n:Nat : gerade(inc(inc(inc(inc(n))))) = gerade(n) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Task_Bsp3.task b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Task_Bsp3.task new file mode 100644 index 0000000000000000000000000000000000000000..57eef18fa7196ab99e1ddfcdb46d08dc0acaa02e --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Task_Bsp3.task @@ -0,0 +1,4 @@ +task ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))) = wahr + maxpt 8 minsteps 4 maxsteps 6 +proof lemmata G32: forall n:Nat : gerade(inc(inc(inc(inc(n))))) = gerade(n) + maxpt 2 minsteps 2 maxsteps 2 \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Task_Bsp4.task b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Task_Bsp4.task new file mode 100644 index 0000000000000000000000000000000000000000..6fed621b5ae2811ee9df04d7e1d2c5fb275720d4 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/lemma/Task_Bsp4.task @@ -0,0 +1,6 @@ +task ungerade(inc(inc(inc(inc(inc(inc(inc(null)))))))) = wahr + maxpt 6 minsteps 4 maxsteps 6 +proof lemmata G32: forall n:Nat : gerade(inc(inc(inc(inc(n))))) = gerade(n) + maxpt 2 minsteps 2 maxsteps 2 + G32_: forall n:Nat : gerade(inc(inc(inc(inc(n))))) = gerade(n) + maxpt 2 minsteps 2 maxsteps 2 \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/ADT_Bsp.adt b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/ADT_Bsp.adt new file mode 100644 index 0000000000000000000000000000000000000000..d79ca5ccf2688d8c6ed53d3cf476470b6c7b34b0 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/ADT_Bsp.adt @@ -0,0 +1,14 @@ +sorts Nat, Bool +operations + null: Nat + inc: Nat -> Nat + wahr: Bool + falsch: Bool + gerade: Nat -> Bool + ungerade: Nat -> Bool +vars n : Nat, m : Nat +axioms + a1: gerade(null) = wahr + a2: gerade(inc(null)) = falsch + a3: gerade(inc(inc(n))) = gerade(n) + a4: ungerade(n) = gerade(inc(n)) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_correct.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_correct.proof new file mode 100644 index 0000000000000000000000000000000000000000..7b24edf20981ece2cea65895d82b44f4ec5b425e --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_correct.proof @@ -0,0 +1,6 @@ +proof +ungerade(inc(n)) + {a4, lr, ungerade(inc(n)), [inc(n)/n]} += gerade(inc(inc(n))) + {a3, lr, gerade(inc(inc(n))), []} += gerade(n) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_correct_rl.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_correct_rl.proof new file mode 100644 index 0000000000000000000000000000000000000000..d18bf8260870ee36047368d286b84eaa75e58450 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_correct_rl.proof @@ -0,0 +1,8 @@ +proof +gerade(n) + {a3, rl, gerade(n), []} += gerade(inc(inc(n))) + {a4, rl, gerade(inc(inc(n))), [inc(n)/n]} += ungerade(inc(n)) + + \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_1.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_1.proof new file mode 100644 index 0000000000000000000000000000000000000000..7f9ffcde954941c85ac15b42c3a665d7febf96ef --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_1.proof @@ -0,0 +1,4 @@ +proof +gerade(inc(inc(n))) + {a3, lr, gerade(inc(inc(n))), []} += gerade(n) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_10.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_10.proof new file mode 100644 index 0000000000000000000000000000000000000000..403511634a0c2805c4009bd94aa7cf39d6053b23 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_10.proof @@ -0,0 +1,6 @@ +proof +ungerade(inc(n)) + {a4, rl, ungerade(inc(n)), [inc(inc(n))/n]} += gerade(inc(inc(n))) + {a3, lr, gerade(inc(inc(n))), []} += gerade(n) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_11.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_11.proof new file mode 100644 index 0000000000000000000000000000000000000000..57f2b13d8212d4257e9f176dd2616b25ffec523e --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_11.proof @@ -0,0 +1,4 @@ +proof +ungerade(inc(n)) + {a4, lr, ungerade(inc(n)), [inc(n)/n]} += gerade(n) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_12.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_12.proof new file mode 100644 index 0000000000000000000000000000000000000000..af7746848b0e0f4aaf4efccbd0b8b37e6c0c23c3 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_12.proof @@ -0,0 +1,4 @@ +proof +ungerade(inc(n)) + {a4, rl, ungerade(inc(n)), [inc(n)/n]} += gerade(n) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_13.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_13.proof new file mode 100644 index 0000000000000000000000000000000000000000..38375852f92120197c434e69b21bb7ed5db62bae --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_13.proof @@ -0,0 +1,6 @@ +proof +ungerade(inc(n)) + {a4, lr, ungerade(inc(n)), [inc(n)/n, m/m]} += gerade(inc(inc(n))) + {a3, lr, gerade(inc(inc(n))), []} += gerade(n) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_2.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_2.proof new file mode 100644 index 0000000000000000000000000000000000000000..dc3fb8a398ea175c2c65f493bf7aaf1c9d6795b5 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_2.proof @@ -0,0 +1,4 @@ +proof +ungerade(inc(n)) + {a4, lr, ungerade(inc(n)), [inc(n)/n]} += gerade(inc(inc(n))) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_3.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_3.proof new file mode 100644 index 0000000000000000000000000000000000000000..d807642933708dc879e1dea0dcff25b617025baa --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_3.proof @@ -0,0 +1,6 @@ +proof +ungerade(inc(n)) + {a4, lr, ungerade(inc(n)), [inc(n)/n,n/k]} += gerade(inc(inc(n))) + {a3, lr, gerade(inc(inc(n))), []} += gerade(n) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_4.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_4.proof new file mode 100644 index 0000000000000000000000000000000000000000..cad50e742f1f3572df41577f088d25c6d6773a17 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_4.proof @@ -0,0 +1,6 @@ +proof +ungerade(inc(n)) + {a4, lr, ungerade(inc(n)), [gerade(n)/n]} += gerade(inc(inc(n))) + {a3, lr, gerade(inc(inc(n))), []} += gerade(n) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_5.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_5.proof new file mode 100644 index 0000000000000000000000000000000000000000..81be2fabec1aefeae4ef4d492f43ad538d717095 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_5.proof @@ -0,0 +1,6 @@ +proof +ungerade(inc(n)) + {a4, lr, ungerade(inc(n)), [inc(n)/n]} += inc(inc(n)) + {a3, lr, gerade(inc(inc(n))), []} += gerade(n) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_6.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_6.proof new file mode 100644 index 0000000000000000000000000000000000000000..dc546564f8d5aee68ec3624b55ed21a68eb20fbd --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_6.proof @@ -0,0 +1,6 @@ +proof +ungerade(inc(n)) + {a4, lr, ungerade(inc(n)), [inc(n)/n]} += gerade(inc(inc(n))) + {a3, lr, ungerade(inc(inc(n))), []} += gerade(n) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_7.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_7.proof new file mode 100644 index 0000000000000000000000000000000000000000..e8e4f12c1844bf35865d1de39d5cb662976030f7 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_7.proof @@ -0,0 +1,6 @@ +proof +ungerade(inc(n)) + {a4, lr, inc(n), [inc(n)/n]} += gerade(inc(inc(n))) + {a3, lr, gerade(inc(inc(n))), []} += gerade(n) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_8.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_8.proof new file mode 100644 index 0000000000000000000000000000000000000000..8259e389495f6f647dec4576bbadedb7f06351d2 --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_8.proof @@ -0,0 +1,6 @@ +proof +ungerade(inc(n)) + {a4, lr, ungerade(inc(n)), [inc(n)/n]} += gerade(inc(inc(n))) + {a3, rl, gerade(inc(inc(n))), []} += gerade(n) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_9.proof b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_9.proof new file mode 100644 index 0000000000000000000000000000000000000000..f5d4584304f8cffec0cdc9d9fe39a5f35076fc7e --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Proof_error_9.proof @@ -0,0 +1,6 @@ +proof +ungerade(inc(n)) + {a4, lr, ungerade(inc(n)), [inc(inc(n))/n]} += gerade(inc(inc(n))) + {a3, lr, gerade(inc(inc(n))), []} += gerade(n) \ No newline at end of file diff --git a/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Task_Bsp.task b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Task_Bsp.task new file mode 100644 index 0000000000000000000000000000000000000000..db3b841f4450b3d34458f2ebb89a30dc1f7fd35e --- /dev/null +++ b/BaumtransformationBewerter/bin/Debug/netcoreapp3.1/Tests/simpl/Task_Bsp.task @@ -0,0 +1 @@ +task forall n:Nat : ungerade(inc(n)) = gerade(n) maxpt 50 minsteps 1 maxsteps 100 \ No newline at end of file diff --git a/Create_And_Test_Parsers.bat b/Create_And_Test_Parsers.bat new file mode 100644 index 0000000000000000000000000000000000000000..a37da4bb9ced6b2f76edc1997ad1130b4703c6b5 --- /dev/null +++ b/Create_And_Test_Parsers.bat @@ -0,0 +1,29 @@ +@echo off +call SET START_PATH=%~dp0 + +echo calculating ADT +call cd ANTRL-Grammatiken\ADT +call antlr4 -lib "%START_PATH%ANTRL-Grammatiken\Lib" ADT.g4 +call javac ADT*.java +call grun ADT adt -gui ADT_Bsp_NatTree.txt +call antlr4 -lib "%START_PATH%ANTRL-Grammatiken\Lib" -o "%START_PATH%BaumtransformationBewerter\Eingabeverwaltung\Parser\ADT_Parser" -Dlanguage=CSharp -package "Eingabeverwaltung.Parser.ADT_Parser" ADT.g4 + +call cd %START_PATH% + +echo calculating Task +call cd ANTRL-Grammatiken\Aufgabenstellung +call antlr4 -lib "%START_PATH%ANTRL-Grammatiken\Lib" Task.g4 +call javac Task*.java +call grun Task task -gui Task_Bsp_plus_komm.txt +call antlr4 -lib "%START_PATH%ANTRL-Grammatiken\Lib" -o "%START_PATH%BaumtransformationBewerter\Eingabeverwaltung\Parser\Task_Parser" -Dlanguage=CSharp -package "Eingabeverwaltung.Parser.Task_Parser" Task.g4 + +call cd %START_PATH% + +echo calculating Proof +call cd ANTRL-Grammatiken\Beweis +call antlr4 -lib "%START_PATH%ANTRL-Grammatiken\Lib" Proof.g4 +call javac Proof*.java +call grun Proof proof -gui Induction_Bsp_plus_komm.txt +call antlr4 -lib "%START_PATH%ANTRL-Grammatiken\Lib" -o "%START_PATH%BaumtransformationBewerter\Eingabeverwaltung\Parser\Proof_Parser" -Dlanguage=CSharp -package "Eingabeverwaltung.Parser.Proof_Parser" Proof.g4 + +call cd %START_PATH% \ No newline at end of file diff --git a/RenameExamples.bat b/RenameExamples.bat new file mode 100644 index 0000000000000000000000000000000000000000..ff9ec64dc1fc851fe17c5d5c08476e8c55809389 --- /dev/null +++ b/RenameExamples.bat @@ -0,0 +1,63 @@ +@ECHO OFF + +FOR /F "TOKENS=*" %%A IN ('"DIR /B "ADT_*.txt""') DO ( + + rem fullFileName=%%~NXA + + rem fileNameNoExtension=%%~NA + + rem fileExtension=%%~XA + + CALL :RenameLogicADT "%%~NXA" "%%~NA" + +) +GOTO :Task + +:RenameLogicADT +set FnameNoExt=%~2 +FOR /F "TOKENS=1 DELIMS= " %%R IN ("%FnameNoExt%") DO (SET FnamePart1=%%R) +echo Parsed Scan: %FnamePart1% + +ren "%~1" "%FnamePart1%.adt" + +:Task +FOR /F "TOKENS=*" %%A IN ('"DIR /B "Task_*.txt""') DO ( + + rem fullFileName=%%~NXA + + rem fileNameNoExtension=%%~NA + + rem fileExtension=%%~XA + + CALL :RenameLogicTask "%%~NXA" "%%~NA" + +) +GOTO :Proof + +:RenameLogicTask +set FnameNoExt=%~2 +FOR /F "TOKENS=1 DELIMS= " %%R IN ("%FnameNoExt%") DO (SET FnamePart1=%%R) +echo Parsed Scan: %FnamePart1% + +ren "%~1" "%FnamePart1%.task" + +:Proof +FOR /F "TOKENS=*" %%A IN ('"DIR /B "Proof_*.txt""') DO ( + + rem fullFileName=%%~NXA + + rem fileNameNoExtension=%%~NA + + rem fileExtension=%%~XA + + CALL :RenameLogicTask "%%~NXA" "%%~NA" + +) +GOTO :EOF + +:RenameLogicTask +set FnameNoExt=%~2 +FOR /F "TOKENS=1 DELIMS= " %%R IN ("%FnameNoExt%") DO (SET FnamePart1=%%R) +echo Parsed Scan: %FnamePart1% + +ren "%~1" "%FnamePart1%.proof" diff --git a/Test_Parsers.bat b/Test_Parsers.bat new file mode 100644 index 0000000000000000000000000000000000000000..e675819a5de4c0cbbb9444511645555bb5b69cc6 --- /dev/null +++ b/Test_Parsers.bat @@ -0,0 +1,26 @@ +@echo off +call SET START_PATH=%~dp0 + +echo calculating ADT +call cd ANTRL-Grammatiken\ADT +call antlr4 -lib "%START_PATH%ANTRL-Grammatiken\Lib" ADT.g4 +call javac ADT*.java +call grun ADT adt -gui ADT_Bsp_NatTree.txt + +call cd %START_PATH% + +echo calculating Task +call cd ANTRL-Grammatiken\Aufgabenstellung +call antlr4 -lib "%START_PATH%ANTRL-Grammatiken\Lib" Task.g4 +call javac Task*.java +call grun Task task -gui Task_Bsp_NatTree.txt + +call cd %START_PATH% + +echo calculating Proof +call cd ANTRL-Grammatiken\Beweis +call antlr4 -lib "%START_PATH%ANTRL-Grammatiken\Lib" Proof.g4 +call javac Proof*.java +call grun Proof proof -gui demo).proof + +call cd %START_PATH% \ No newline at end of file diff --git a/antlr-4.8-complete.jar b/antlr-4.8-complete.jar new file mode 100644 index 0000000000000000000000000000000000000000..89a0640e2688aa1ad5a851ae52c51d9c6774c31d Binary files /dev/null and b/antlr-4.8-complete.jar differ